CE 433 Spring 2024
Homework 4: Data Storage
Sahra Genc
sggenc@fortlewis.edu
HOMEWORK 4: Data Storage
Task 1: Repeat the simulation in Sections 1 - 3.
![](../HW1/strructural_modeling_1.png)
![](srlatch.m.png)
Figure 1. Gvim windows snapshot of the SR latch code implementation
![](srlatch.png)
Figure 2. Vivado simulation of the SR latch
![](srff.m.png)
Figure 3. Gvim windows snapshot of the SR flip-flop code implementation
![](srff.png)
Figure 4. Vivado simulation of the SR flip-flop
![](dlatch.m.png)
Figure 5. Gvim windows snapshot of the D latch code implementation
![](dlatch.png)
Figure 6. Vivado simulation of the D latch
![](dflipflop.m.png)
Figure 7. Gvim windows snapshot of the D flip-flop code implementation
![](dflipflop.png)
Figure 8. Vivado simulation of the D flip-flop
Task 2: Build a debounce circuit on a breadboard using a pushbutton, a passive low-pass filter, and a schmitt trigger IC chip.
![](breadboard.png)
Figure 9. Breadboard set up of the debounce circuit
![](oscilloscope.png)
Figure 10. Illustration of the debounce circuit on the oscilloscope
Task 3: Write the testbenches and run simulations for Section 4 and Section 5.
![](jkflipflop.m.png)
Figure 11. Gvim windows snapshot of the JK flip-flop code implementation
![](jkflipflop.png)
Figure 12. Vivado simulation of the JK flip-flop
![](tflipflop.m.png)
Figure 13. Gvim windows snapshot of the T flip-flop code implementation
![](tflipflop.png)
Figure 14. Vivado simulation of the T flip-flop
Task 4: Repeat all the work in Section 8 and complete the task described in the end of Section 8.
Figure 15. Gvim windows snapshot of the ROM memory code implementation
![](rom.sim.png)
Figure 16. Vivado simulation of the ROM memory
![](romhex.m.png)
Figure 17. Gvim windows snapshot of the ROM memory using hex number code implementation
![](romhex.png)
Figure 18. Vivado simulation of the ROM memory using hex number
![](rom8bit.m.png)
Figure 19. Gvim windows snapshot of the ROM memory using 8 bit binary code implementation
![](rom8bit.png)
Figure 20. Vivado simulation of the ROM memory using 8 bit binary
![](rom3bit.m.png)
Figure 21. Gvim windows snapshot of the ROM memory using 3 bit binary code implementation
![](rom3bit.png)
Figure 22. Vivado simulation of the ROM memory using 3 bit binary
Figure 23. Gvim windows snapshot of the testbench used to extract data from the ROM IP core
![](rom.ip.png)
Figure 24. Vivado simulation of the extracted data from the ROM IP