The original Sinclair ZX81 had four chips:
ZXGATE's ZX81 uses only one chip! The implementation is based on Bodo Wenzels ZX97. Only minor changes have been made to the original source code. A new top level named zx01.vhd was created from zx97.vhd and instead of the external CPU and memory interface this top level contains the T80 soft core, 8k ROM and 2k RAM. A PS/2 keyboard interface was also added. If you prefer external RAM there is also a top level named zx01xr.vhd without internal RAM. Both versions have been tested successfully on a BurchED B5-SPARTAN2+ FPGA development board using Leonardo Spectrum synthesis. This board has a Spartan 200k FPGA and zx01 should run on any FPGA at least this big.
There are some know issues with the current implementation. ZX97 was written for an external asynchronous Z80, not the synchronous T80. This made it necessary to have more than one clock domain, but this should no longer be the case. This might be what causes zx01xr to behave incorrect when synthesised with Xilinx XST.
There is a short description on how to download the source code and synthesize the design in readme.txt.