Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
TOPIC : VCD and Random generation example Module 4.1 Memory modeling in Verilog
Value Change Dump File • A value change dump (VCD) is an ASCII file that contains information about simulation time, scope and signal definitions, and signal value changes in the simulation run. • All signals or a selected set of signals in a design can be written to a VCD file during simulation. • Post processing tools can take the VCD file as input and visually display hierarchical information, signal values and signal waveforms. • For simulation of large designs, designers dump selected signals to a VCD file and use a postprocessing tool to debug, analyze, and verify the simulation output.
VCD file system tasks • $dumpvars - Signals to dump • $dumpfile - Name of VCD file • $dumpon – starting the dump process • $dumpoff – stopping the dump proccess • $dumpall – generating checkpoints
VCD file system tasks • Intial • $dumpfile(“myfile.dmp”); • //Simulation info dumped to myfile.dmp • Initial • $dumpvars; //no arguments, dump all signals in the deisgn • Initial • $dumpvars(1, top); //dump variables in module instance top • Initial • $dumpvars(2,top.m1);//dump up to 2 levels of hierarchy below top.m1
VCD system tasks Initial Begin $dumpon; //start the dump process #10000 $dumpoff; //stop the dump process after 100,000 time units. End Initial $dumpall; //Create a checkpoint. Dump current value of all VCD variables.
Random number generation • Random generation capabilities are required for generating a random set of test vectors. Random testing is important because it often catches hidden bugs in the design. Random vector generation is also used in performance analysis of chip architectures. The system task $random is used for generating a random number. • Usage : $random; or $random(<seed>); The value of <seed> is optional and is used to ensure the same random number sequence each time the test is run, The task $random returns a 32-bit random number.