Project: Register File + ALU
Milestone Checklist
- Preliminary project cell layouts: defines full schematic hierarchy and functionality.
- updated version of your milestone #2 writeup with any changes based on comments made. [ updated MS#2 submission with errors fixed (Canvas)]
- conclusion is missing.
- drop multiplication for ALU
- schematic is not working
- demonstrate loading of values to the reg file and operating on them
- Please only include one test harness. It should consist of input pins, output ins, and a single part.
- Please turn off the three-state inputs on your input pins
- DFFs have serious design flaws. Please fix Logisim simulation is not working.
- Many of the layouts submitted have design errors in them.
- Please include .cmd files to demonstrate that the layouts simulate proerly
- complete Logisim/LogicWorks schematic (Canvas command)
- .cmd test files for IRSIM (turnin command)
- partially complete set of Magic layouts for standard cells (these should only be submitted if DRC correct) (turnin command)
Magic Hierarchy Development [Layer0 - Layer4]
-- ** *Layer0: transistor-level* **
- magic: OR2 gate
- magic: NOR2 gate
- magic: INV
- magic: OR3 gate
- magic: OR4 gate
- magic: NAND2 gate
- magic: XOR2 gate
- magic: AND2 gate
- magic: AND3 gate
-- ** Layer1: gate-level **
- magic: 1-bit MUX3
- magic: 1-bit MUX2
- magic: 1-bit MUX8
- magic: 1-bit 3-to-8 Decoder
- magic: 1-bit D Flip Flop
- magic: 1-bit full-Adder
- magic: 1-bit full-Subtractor
- magic: 1-bit half-Adder
- magic: 1-bit half-Subtractor
- magic: 4-bit AND2
- magic: 4-bit OR2
- magic: 4-bit NAND2
- magic: 4-bit NOR2
-- ** Layer2: parts-level **
- magic: 4-bit MUX3
- magic: 4-bit MUX8
- magic: 4-bit Register
- magic: 1-bit DFF with Enabler [merge MUX2 + DFF]
- magic: 4-bit Adder
- magic: 4-bit Subtractor
-- ** Layer3: block-level **
- magic: 4-bit Register File
- magic: 4-bit ALU
-- ** Layer4: top-level [single block] **
- magic: 4-bit single-block [merge MUX3 + Register File + ALU]
Progress
- Logisim functional (unless bugs/issues encountered)
- magic gate layouts
- make a single block as top level
- make sure all magic simulates properly (will help us in the long run before we build the parts)
- build MUX3 in magic?
- build Register File in magic?
- build ALU in magic?
Issues
- Fix DFF incorrect output
- Fix Oscillation Apparent
Workload
- Remove Multiplier
- 8 bits to 4 bits
- Remove MUX3?
- cut down number of registers? (8 registers currently)
Abstract: This project shows three crucial blocks: MUX3, Register File, and Arithmetic Logic Unit (ALU). The MUX3 selects data for storage in the Register File, which features 8 registers and dynamic address selection. The ALU performs arithmetic operations based on user selection, producing 4-bit results. Also, the ALU's output loops back to the MUX3, forming a crucial feedback loop for iterative calculations. Understanding these blocks is essential for understanding computing systems.
Parts: MUX3, Reg File, ALU
Top level
![Screenshot 2024-03-19 at 3 37 23 PM](https://private-user-images.githubusercontent.com/98930957/314617939-2724f08f-e18e-4366-a934-91c9c3273caf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3OTc1NTQsIm5iZiI6MTcyMDc5NzI1NCwicGF0aCI6Ii85ODkzMDk1Ny8zMTQ2MTc5MzktMjcyNGYwOGYtZTE4ZS00MzY2LWE5MzQtOTFjOWMzMjczY2FmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDE1MTQxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgzYWM5MGQ2OWNmOWM3MTJmZmJjYzA4MzgxYjAyZmFiYTA4NzU4NjMxYjhhNjFlNDkyYjAzZWZjOTFhNTEyNzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.D8i-mEGfvykZRxBkPUMQHeEjP401rvVL7DRbkloxYNg)
4 bit MUX3
1 bit MUX
Register File
![image](https://private-user-images.githubusercontent.com/98930957/314623635-7beeacc0-43db-49b1-9af0-bd99ea1ce79e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3OTc1NTQsIm5iZiI6MTcyMDc5NzI1NCwicGF0aCI6Ii85ODkzMDk1Ny8zMTQ2MjM2MzUtN2JlZWFjYzAtNDNkYi00OWIxLTlhZjAtYmQ5OWVhMWNlNzllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDE1MTQxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU0ZTczZWU3MDMwYmI5ZjgzYTc4OWJhYzExZTJmZjg3NzY2NDdhNTE4MmQ0Y2VhNGFlYTRkMzFjOGEzYTBmYTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.VQGWMJn82v96hCX72L9tfam-EPwLPihdeshY8oz4wxc)
MUX8 (to cover 8 registers)
4 bit Register
D Flip Flop + MUX2[as enabler]
![image](https://private-user-images.githubusercontent.com/98930957/313958992-600beece-724b-4916-a03c-d6780ff568af.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3OTc1NTQsIm5iZiI6MTcyMDc5NzI1NCwicGF0aCI6Ii85ODkzMDk1Ny8zMTM5NTg5OTItNjAwYmVlY2UtNzI0Yi00OTE2LWEwM2MtZDY3ODBmZjU2OGFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDE1MTQxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM4MzFjMjEyOWY4MDU0MGI5MzFkYzEwZGQzNGIyZmVhOWViNjg2ZDVjZWRiNGNlMTM2MWQyMDhmMGFiMjc1NTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.nQDEnmiYhMpO3mb1BPQUy5PziQzvWnw5pxJ6FaYpH08)
D Flip Flop
![image](https://private-user-images.githubusercontent.com/98930957/313959147-972b4de3-60a2-4bb7-8ef3-ef21c3290e14.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3OTc1NTQsIm5iZiI6MTcyMDc5NzI1NCwicGF0aCI6Ii85ODkzMDk1Ny8zMTM5NTkxNDctOTcyYjRkZTMtNjBhMi00YmI3LThlZjMtZWYyMWMzMjkwZTE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzEyVDE1MTQxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFlNWQyMDc2NGVkMzQ0YTIzYjcwMGY5NmE3NWE2ZjNmZTY3M2FjMTJhNWEyNGM3ZGZjODg1MDVhZjIzZjNkMzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.15fNHNR6sYviZSZ__hiNZ-OD3cLGdPw590nk50FeKaM)
ALU (Need one more logic to replace multiplier)