The following gates have to be implemented as internal chips: ### Very basic: - [x] ~Nand~ (https://github.com/DmitrySoshnikov/hdl-js/commit/4e0b154520cb702ad95db7e45d679ce5cf4bcac1) - [x] ~Nor~ (https://github.com/DmitrySoshnikov/hdl-js/commit/3fb717da362cc70085ced99c917835db2324af81) ### Basic chips: - [x] ~And~ (https://github.com/DmitrySoshnikov/hdl-js/commit/1c85c216729911dc39e7c333296876417afd932a) - [x] ~And16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/9268e81c23fad3b9996f72947740ddcdf06af4eb) - [x] ~Or~ (https://github.com/DmitrySoshnikov/hdl-js/commit/b0a69c04464e705ccab8bbf34e27dca9af29da6f) - [x] ~Or16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/743b071685f9e88f33b647a2166f78ee43036834) - [x] ~Or8Way~ (https://github.com/DmitrySoshnikov/hdl-js/commit/38b3470d93c9f483380f75f3f9e2316cbfdc048d) - [x] ~Not~ (https://github.com/DmitrySoshnikov/hdl-js/commit/ad84c5d690bf39a1095a3f82d1de3ef777372cac) - [x] ~Not16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/5b40743f764dac0d5ba1ff421da629a74e34882e) - [x] ~Xor~ (https://github.com/DmitrySoshnikov/hdl-js/commit/3e75a0442f7606366142f185c62aa5e2ce9a7536) - [x] ~Mux (multiplexer)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/b8f144366a65ac22cf2e6ac7e90f9ec103d44d97) - [x] ~Mux16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/565570cf3f0e3f676c998f6b9b05eba87ccdb348) - [x] ~Mux4Way16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/fd33d3a97440ae2c469d25f07da0213b74b85a6e) - [x] ~Mux8Way16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/8dbdca75c4dcb98cad7b288544eb24233acc5e78) - [x] ~DMux (demultiplexer)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/fbc8b20c90e74ac41282433953a0dc2d6524acd3) - [x] ~DMux4Way~ (https://github.com/DmitrySoshnikov/hdl-js/commit/7732a942f20180d8c38887681a7374651f5bf9ed) - [x] ~DMux8Way~ (https://github.com/DmitrySoshnikov/hdl-js/commit/113ccab1e05e3faea3f1649162cf14d0d457a82a) ### ALU: - [x] ~HalfAdder (2 bits adder)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/da8f494a7fc1b3b2b8ddea8576f64acb25330647) - [x] ~FullAdder (3 bits adder)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/8383fbfe2f92e0cfac3ec4f2eb92cf8b6370f296) - [x] ~Add16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/2a5ed1f11c8ec912e7f2b606cbefecaf2b9ffe3d) - [x] ~Inc16~ (https://github.com/DmitrySoshnikov/hdl-js/commit/090a9837359bd6745a29fea108a7c9d422dfca9c) - [x] ~ALU~ (https://github.com/DmitrySoshnikov/hdl-js/commit/8905bbb8efcd710b1532bc33d94fe5090a249e1d) ### Memory chips: - [x] ~DFF (data/delay flip-flop)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/57ce043f831c3c174d8eb3dd4341099cea44ec9a) - [x] ~Bit (1-bit memory unit)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/c4b46ce77d2c37b6b41ce99a7a13629f025f55ae) - [x] ~Register (16-bit memory unit)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/549f957037dc4eed670118be5fd264e0052be804) - [x] ~ARegister (Address Register)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/43d8a2d9baf4c38feea3a031fe2e5f68edbe7bcc) - [x] ~DRegister (Data Register)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/43d8a2d9baf4c38feea3a031fe2e5f68edbe7bcc) - [x] ~PC (Program Counter)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/47680c07af64af1db81ebce09f2b5c594b91a3de) - [x] ~RAM (Random Access Memory)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/c31852703f02e7130e596164755032a12d316a58) - [x] ~RAM8~ (https://github.com/DmitrySoshnikov/hdl-js/commit/ea2b935552d32568446d7f1b3160deff24e88213) - [x] ~RAM64~ (https://github.com/DmitrySoshnikov/hdl-js/commit/ad06fa9e164c3de2c548f8fc57eb1db9735f1b2b) - [x] ~RAM512~ (https://github.com/DmitrySoshnikov/hdl-js/commit/f4aff20667411d44318c3b014706ccb3fed78556) - [x] ~RAM4K~ (https://github.com/DmitrySoshnikov/hdl-js/commit/67b3e90dd6487c7dea55eae37eac5b705b469fea) - [x] ~RAM16K~ (https://github.com/DmitrySoshnikov/hdl-js/commit/c13023699c3f8f3adc7dddf8cd0e4e97985eab2b) - [ ] ROM (ready-only memory) ### Computer - [x] ~Screen (video/screen memory)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/81de2b95a4bf98261f819f4c516534c49c571bce) - [x] ~Keyboard (memory to map keyboard)~ (https://github.com/DmitrySoshnikov/hdl-js/commit/6583e4a2b8652329f451a58d5016e14809665236) - [ ] Memory (abstract memory block: logical partitioning by addresses: Screen, Keyboard, etc) - [ ] CPU (main central processing unit chip)
The following gates have to be implemented as internal chips:
Very basic:
Nand(4e0b154)Nor(3fb717d)Basic chips:
And(1c85c21)And16(9268e81)Or(b0a69c0)Or16(743b071)Or8Way(38b3470)Not(ad84c5d)Not16(5b40743)Xor(3e75a04)Mux (multiplexer)(b8f1443)Mux16(565570c)Mux4Way16(fd33d3a)Mux8Way16(8dbdca7)DMux (demultiplexer)(fbc8b20)DMux4Way(7732a94)DMux8Way(113ccab)ALU:
HalfAdder (2 bits adder)(da8f494)FullAdder (3 bits adder)(8383fbf)Add16(2a5ed1f)Inc16(090a983)ALU(8905bbb)Memory chips:
DFF (data/delay flip-flop)(57ce043)Bit (1-bit memory unit)(c4b46ce)Register (16-bit memory unit)(549f957)ARegister (Address Register)(43d8a2d)DRegister (Data Register)(43d8a2d)PC (Program Counter)(47680c0)RAM (Random Access Memory)(c318527)RAM8(ea2b935)RAM64(ad06fa9)RAM512(f4aff20)RAM4K(67b3e90)RAM16K(c130236)Computer
Screen (video/screen memory)(81de2b9)Keyboard (memory to map keyboard)(6583e4a)