310 likes | 675 Views
Useful Modeling Techniques. Programmable Logic Design (40-493) Fall 2001 Computer Engineering Department Sharif University of Technology. Maziar Gudarzi. Outline. Procedural Continuous Assignment Overriding Parameters Conditional Compilation and Execution Useful System Tasks.
E N D
UsefulModelingTechniques Programmable Logic Design (40-493) Fall 2001 Computer Engineering Department Sharif University of Technology Maziar Gudarzi
Outline • Procedural Continuous Assignment • Overriding Parameters • Conditional Compilation and Execution • Useful System Tasks
Procedural Continuous Assignment Useful Modeling Techniques
Procedural Continuous Assignment • Overrides, for a certain time, the effect of regular assignments to a variable. • Two types • assign/deassign • Works only on register data types • force/release • Works on both register and net data types
Procedural Continuous Assignment (cont’d) • assign/deassign • Keywords • assign: overrides regular procedural assignments • deassign: re-enables regular procedural assignments • After deassign: • Last value remains on the register until a new procedural assignment changes it.
Procedural Continuous Assignment (cont’d) • force/release • Keywords: • force: overrides all procedural/continuous/ procedural continuous assignments • release: re-enables other assignments • Hence, assignments in priority order: 1. force 2. assign (procedural continuous) 3. Procedural/continuous assignments
Overriding Parameters Useful Modeling Techniques
Overriding Parameters • Two methods • defparam statement • Module instance parameter values • defparam statement • Keyword: defparam • Syntax: defparam <parameter_hierarchical_name>=<value>;
Overriding Parameters (cont’d) • Module instance parameter values • Parameters are overridden when the module is instantiated • Syntax: <module_name> #(<param_vals>) <instance_name>;
Conditional Compilation and Execution Useful Modeling Techniques
Conditional Compilation • Usage: • To compile some part of code under certain conditions • Keywords: • ‘ifdef, `else, `endif
Conditional Execution • Usage: • To execute some part of code when a flag is set at runtime • Used only in behavioral modeling • Not contained in Verilog IEEE Standard, • Keywords: • $test$plusargs • Syntax: • $test$plusargs( <argument_to_check> )
UsefulSystem Tasks Useful Modeling Techniques
Useful System TasksFile Output • Opening a file • Syntax: <file_handle> = $fopen( “<file_name>” ); • File_handle is a 32 bit value, called multi-channel descriptor • Only 1 bit is set in each descriptor • Standard output has a descriptor of 1 (Channel 0)
Useful System TasksFile Output (cont’d) • Writing to files • $fdisplay, $fmonitor, $fwrite, $fstrobe • Syntax: $fdisplay(<handle>, p1, p2,…, pn); • Closing files • $fclose(<handle>);
Useful System TasksRandom Number Generation • Syntax: $random; $random(<seed>); • Returns a 32 bit random value
Useful System TasksInitializing Memory from File • Keywords: • $readmemb, $readmemh • Syntax: $readmemb(“<file_name>”, <memory_name>); $readmemb(“<file_name>”, <memory_name>, <start_addr>); $readmemb(“<file_name>”, <memory_name>, <start_addr>,<finish_addr>);
Useful System TasksValue Change Dump (VCD) File • ASCII file containing information on • Simulation time • Scope and signal definitions • Signal value changes • Keywords • $dumpvars • $dumpfile • $dumpon • $dumpoff • $dumpall
Today Summary • Reviewed some modeling techniques useful in various applications.
Complementary Notes • Assignment 7 (Optional, Extra Score) • Chapter 9: • All exercises with ModelSim, except for 3 and 5 • 3 and 5 in paper and pencil • Due date: Saturday, Day 22nd • Lab. Final Project • Announce your group members and tart your work
Complementary Notes (cont’d) • Don’t forget to subscribe to course mailing list: ce493list