- ๐งโโ๏ธ I'm a fullstack developer using python, HTML/CSS/JS, react, django
- ๐ง How to reach me: [email protected]
- ๐ซ You can also connect with me on my linkedin
- ๐ค My hobbies include watching anime, taking naps and playing mobile games
- ๐ฑ Iโm currently a computer science engineering undergraduate student
- ๐ป check out my site https://sandilsranasinghe.com/
digital-lab-9's Introduction
digital-lab-9's People
digital-lab-9's Issues
Register Bank
Component to make - Register Bank
Relevant file - Reg_Bank.vhd
- Create a branch for developing this (reg_bank)
- Create register component to use for individual registers
- Import decoder units from previous labs if necessary
- Check if needed to optimize any imports
- Implement component logic
- Create testbench
- Verify Simulation
Note:
- Currently thinking of using a single 32-bit bus as output, we can use the relevant indices for connecting each register output here. Not much of a logical difference, but will reduce code.
3-bit Adder
Component to make - 3-bit Adder
Relevant File - Adder_3.vhd
- Create a branch for developing this (3_bit_adder)
- Implement component logic
- Make Testbench
- Verify Simulation
Notes:
- Sub components used for #3 can probably be used here (half adder, full adder)
- As mentioned in #6 , since this is fairly small it is better if it is done with the program counter
- Note that one of the bus inputs will have to be hardwired to one here. Need to decide if that will be done in the component itself or only when using the component. Probably better to do it when using.
Program Counter
Component to make - Program Counter
Relevant files - Program_Counter.vhd
- Create a branch for developing this (program_counter)
- Implement component logic
- Make Testbench
- Verify Simulation
Notes:
- This will probably be very similar to the register component used for #2 . See if it can be used here
- Since this is relatively small it will be good if this can be done with the 3-bit adder which is connected to this, since that too will be having a lot in common with the 4-bit add/sub unit.
- Might need an enabling input from the Instruction Decoder as mentioned in #5
4-bit Add/Sub unit
Component to make - 4-bit Add/Sub unit
Relevant file - Add_Sub_4.vhd
- Create a branch for developing this (add_sub_unit)
- Import any necessary sub components (half adder, full adder maybe)
- Check if any imports can be optimized
- Implement addition logic
- Discuss how subtract works
- Implement subtract logic
- Create testbench
- Verify simulation
Notes:
- Add any other IO if absolutely needed, but try to minimize things that we can do without
Assemble NanoProcessor
Program ROM
Component to make - Program ROM
Relevant file - Program_ROM.vhd
- Create a branch for developing this (program_rom)
- Implement component logic
- Decide if we need a testbench
Notes:
- A rom was used in a previous lab, the code will probably be similar
Instruction Decoder
Component to make - Instruction Decoder
Relevant file - Instruction_Decoder
- Create a branch for developing this (instruction_decoder)
- Figure out how instructions with multiple cycles will work
- Implement logic for recognizing instructions
- Implement logic for
MOVI
- Implement logic for
ADD
- Implement logic for
NEG
- Implement logic for
JZR
- Create Testbench
- Verify Simulation
Notes:
- Might need to give an enabler input to the Program Counter
- Need to figure out the instruction cycles and the point at which the PC is incremented
Multiplexers
There are several different multiplexers in the design. We should be able to have a significant amount of common code in between them.
Components to make - 2way-3bit MUX, 2way-4bit MUX, 8way-4bit MUX
Relevant files - Mux_2_3.vhd, Mux_2_4.vhd, Mux_8_4.vhd
- Create a branch for developing these (mux)
- See what can be reused from our decoder/mux implementations from previous labs
- Check if any imports can be optimized
- Create any common sub components needed
- Implement component logic
- Create testbench
- Verify Simulation
Notes:
- I doubt us being able to use Mux_8_to_1 which we had built in previous labs directly.
- We will need to test each different mux separately just to be safe
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.