This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
labs:sp20_structural_verilog [2020/04/20 14:15] nelson [Final Pass Off] |
labs:sp20_structural_verilog [2020/05/07 11:55] (current) nelson |
||
---|---|---|---|
Line 70: | Line 70: | ||
You do not need to minimize these functions, just implement the logic functions directly using basic gates (AND, NAND, OR, NOR, NOT, etc). | You do not need to minimize these functions, just implement the logic functions directly using basic gates (AND, NAND, OR, NOR, NOT, etc). | ||
- | Complete your initial attempt at the SystemVerilog for these four functions before proceeding. In the next exercise you will have the opportunity to find and correct errors when you analyze the syntax and behavior of your SystemVerilog. | + | As you type and save your SystemVerilog code, Vivado will identify syntax errors in the code. Edit the code until there are no syntax errors. |
- | **Exercise 2 Pass-off:** Review your code with a TA before proceeding. \\ \\ | + | With no syntax errors in your HDL code you can perform **elaboration** and generate a notional schematic of the circuit. Follow the [[tutorials:viewing_design_elaboration]] tutorial to view a schematic of your code. |
+ | |||
+ | Although it is difficult to find logic errors in the schematic view, it is easy to see problems such as missing connections between the gates, inputs, and outputs. Look for unconnected top-level ports or missing connections in your gates (missing connections are annotated with **n/c** on the schematic). | ||
+ | |||
+ | **Exercise 2 Pass-off:** Review your code with a TA as well as your circuit schematic (the schematic under "RTL Analysis"). Be able to explain what each of the components are and how Vivado has implemented your four functions. | ||
+ | |||
+ | <color red> | ||
+ | Attach a screenshot of the resulting schematic to LearningSuite. | ||
+ | </color> | ||
+ | \\ \\ | ||
==== Exercise #3: SystemVerilog Simulation ==== | ==== Exercise #3: SystemVerilog Simulation ==== | ||
+ | |||
+ | **If you are using Option #2: before beginning this step, you need to do the following just once to set up the tools:** | ||
+ | - Open a terminal in your Linux VM | ||
+ | - Type the following at a command prompt: sudo apt install gcc | ||
+ | - It will ask for your password | ||
+ | - It will install the needed C compiler for the simulator to work | ||
+ | |||
+ | **If you are running Option #1 or Option #3 you should not have to do the above step.** | ||
Simulating your design is //the most important phase of digital logic design//. You will do extensive simulations of all your digital circuits and it is very important that you learn how to use the logic simulation tools. | Simulating your design is //the most important phase of digital logic design//. You will do extensive simulations of all your digital circuits and it is very important that you learn how to use the logic simulation tools. | ||
Line 106: | Line 123: | ||
3. Compare the resulting waveform with a truth table for your four functions. Verify that your simulation outputs match the expected outputs. If there are errors, fix your SystemVerilog file and simulate again until your circuit operates as intended. | 3. Compare the resulting waveform with a truth table for your four functions. Verify that your simulation outputs match the expected outputs. If there are errors, fix your SystemVerilog file and simulate again until your circuit operates as intended. | ||
- | **Exercise 3 Pass-off:** Show a TA your simulation and explain how you know that your circuit is working correctly. The TA will also check your tcl commands to see if you have tested all possible input combinations.\\ \\ | + | 4. What if it doesn't simulate correctly? It could be that (a) your code is wrong of (b) there is something wrong with the simulation. Yes, we have found times when you can get the simulator in a weird state, where re-simulating doesn't seem to reflect your most recent code changes. On the wiki, there is a item on the left side near the top called "Taming Vivado". If the simulator is just not making sense you may need to follow the steps in "Taming Vivado" to fix it. You should learn how to do those steps so you are not totally stuck when you can't get help from a TA. |
+ | |||
+ | Go read through the "Taming Vivado" information right now. | ||
+ | |||
+ | <color red> | ||
+ | What are the steps, in order, to fix a "simulator-is-wedged" problem? | ||
+ | </color> | ||
+ | |||
+ | <color red> | ||
+ | Attach a PDF file of your Tcl file commands to LearningSuite. You can create such a PDF file from the File->Print menu in Vivado while editing it. | ||
+ | </color> | ||
+ | |||
+ | <color red> | ||
+ | Attach a screenshot of your simulation results that show how your circuit works as intended. In order to receive full credit on this (and all simulations for the rest of the semester), you MUST describe in detail in words in the LearningSuite response box for this question, how you went out verifying that it works. Point out the important time places in the simulation, what was happening there, what the inputs were, what the outputs were, and why they are the correct outputs, etc. | ||
+ | </color> | ||
+ | |||
+ | **Exercise 3 Pass-off:** Show a TA your simulation and explain it to him. The TA will also check your tcl commands to see if you have tested all possible input combinations.\\ \\ | ||
Line 161: | Line 194: | ||
<color red>Indicate the number of **LUT**s (Look-up Tables) and **I/O** (Input/Output) pins for your design.</color> These are in the **Utilization** column of the table. | <color red>Indicate the number of **LUT**s (Look-up Tables) and **I/O** (Input/Output) pins for your design.</color> These are in the **Utilization** column of the table. | ||
- | |||
- | **Exercise 4 Pass-off:** No pass-off - just answer the questions above.\\ \\ | ||
Line 174: | Line 205: | ||
Test all four functions in your circuit on the board to make sure that it works correctly. When you are convinced that your circuit is correct, proceed to the final pass off. | Test all four functions in your circuit on the board to make sure that it works correctly. When you are convinced that your circuit is correct, proceed to the final pass off. | ||
- | <color red>Submit your final SystemVerilog code using the code submission on Learning Suite.</color> (Make sure your SystemVerilog conforms to the lab SystemVerilog coding standards). | + | <color red>Upload your FourFunctions SystemVerilog module. |
+ | The file(s) must be in PDF format. You can print to PDF directly from Vivado. | ||
+ | Then, attach it here to this question. | ||
+ | </color> (Make sure your SystemVerilog conforms to the lab SystemVerilog coding standards). | ||
===== Final Pass Off ===== | ===== Final Pass Off ===== | ||
- | + | <color green> | |
- | The following must be shown to a TA to pass off this laboratory: | + | Attach a video of your board (with narration) showing that your design is operating correctly. Be sure to show how all 4 functions are working correctly on the board. Your video must be right-side up, large enough to see, high enough quality to understand, and with sound that can be understood. |
- | * The circuit operating correctly on the FPGA board. | + | </color> |
=====Final Questions===== | =====Final Questions===== |