verilog for advanced testing - users.wpi.eduusers.wpi.edu/~rjduck/verilog for advanced testing -...
TRANSCRIPT
![Page 1: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/1.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 81
Verilog for Advanced Testing
Module 8
![Page 2: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/2.jpg)
Simulating with DCM
Jim Duckworth, WPI Verilog for Testing and Modeling - Module 82
![Page 3: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/3.jpg)
Simulation waveform
• Add clk_20M and cntr to waveform
• Restart, run 1us
Jim Duckworth, WPI Verilog for Testing and Modeling - Module 83
![Page 4: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/4.jpg)
Test Bench – System Tasks
• Verilog provides system tasks ($keyword) to write out information, monitor, and end simulation
• $display – display strings, expression or values to standard output – adds newline at end – $write is similar but no newline
• $display(“This is an example string”);
• $display(“The value is %h at time %t”, q, $time);
– Format specifier %d, %b, %h, %o, %t
• $monitor – same as display but displays when any of the values change, very useful!
• $monitor($time, “: R0 = %b, R1 = %b ”, r0, r1);
• $stop – suspend simulation, put in interactive mode
• $finish – stop simulation altogether
![Page 5: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/5.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 85
Additional Verilog System Tasks
• @ (posedge clk) – event control, wait for rising edge of clk
• wait (state == ENTER && ready == 1’b1) – wait for
specific condition
• #123 – wait for 123 ref time units (123 ns)
• $time and $realtime
• $fopen and $fclose
• Integer log_file = $fopen(“my_log”)
• $readmemb and $readmemh
![Page 6: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/6.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 86
Test Bench Example – Shift Register
![Page 7: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/7.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 87
![Page 8: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/8.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 88
![Page 9: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/9.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 89
(
![Page 10: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/10.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 810
![Page 11: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/11.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 811
Verilog task
• Like a procedure (pass in inputs, carry out operation, and
generate outputs)
– Must be called with a statement
![Page 12: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/12.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 812
Task example and writing to file
Open file for writing
Call task “CHECK_y”
![Page 13: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/13.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 813
Task example (continued)
Task declaration
![Page 14: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/14.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 814
Simulation Results
![Page 15: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/15.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 815
VHDL for Synthesis
![Page 16: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/16.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 816
Decoder Test Bench in Verilog with Files
![Page 17: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/17.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 817
test_vec.txt File
• Format is
– 3 bits for SEL input
– 8 bits for expected output
00000000001
00100000010
01000000100
01100001000
10000010000
10100110000
11001000000
11110000000
![Page 18: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/18.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 818
Opening file in Verilog
![Page 19: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/19.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 819
![Page 20: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/20.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 820
Waveform Generated
![Page 21: Verilog for Advanced Testing - users.wpi.eduusers.wpi.edu/~rjduck/Verilog for Advanced Testing - module 8a.pdf · values change, very useful! ... Module 8 Additional Verilog System](https://reader030.vdocument.in/reader030/viewer/2022020215/5b3f88477f8b9af6438c41cb/html5/thumbnails/21.jpg)
Jim Duckworth, WPI Verilog for Advanced Testing - Module 821
Console (and results file)