Verilog HDL QUICK Reference Card: Evision
Verilog HDL QUICK Reference Card: Evision
Verilog HDL QUICK Reference Card: Evision
PARALLEL STATEMENTS
assign [(strength1, strength0)] WIRID = expr; initial sequential_statement always sequential_statement MODID [#({expr,})] INSTID ([{expr,} | {.PORTID(expr),}]); GATEID [(strength1, strength0)] [#delay] [INSTID] ({expr,}); defparam {HIERID = constexpr,}; strength ::= supply | strong | pull | weak | highz () {} bold Grouping Repeated As is [] | CAPS Optional Alternative User Identifier delay ::= number | PARID | ( expr [, expr [, expr]] )
lvalue [<]= [#(number | (expr))] expr; lvalue [<]= [@ (event [{or event}])] expr; wait (expr) sequential_statement -> EVENTID; fork[: BLKID [{declaration}]] [{sequential_statement}] join TASKID[({expr,})]; disable BLKID | TASKID; assign lvalue = expr; deassign lvalue; lvalue ::= ID[range] | ID[expr] | {{lvalue,}}
4. GATE PRIMITIVES
and (out, in1, ..., inN); or (out, in1, ..., inN); xor (out, in1, ..., inN); buf (out1, ..., outN, in); bufif0 (out, in, ctl); notif0 (out, in, ctl); pullup (out); [r]pmos (out, in, ctl); [r]nmos (out, in, ctl); [r]cmos (out, in, nctl, pctl); [r]tran (inout, inout); [r]tranif1 (inout, inout, ctl); [r]tranif0 (inout, inout, ctl); nand (out, in1, ..., inN); nor (out, in1, ..., inN); xnor (out, in1, ..., inN); not (out1, ..., outN, in); bufif1 (out, in, ctl); notif1 (out, in, ctl); pulldown (out);
1. MODULE
module MODID[({PORTID,})]; [input | output | inout [range] {PORTID,};] [{declaration}] [{parallel_statement}] [specify {specify_statement} endspecify] endmodule range ::= [constexpr : constexpr]
2. DECLARATIONS
parameter {PARID = constexpr,}; wire | wand | wor [range] {WIRID,}; reg [range] {REGID [range],}; integer {INTID [range],}; time {TIMID [range],}; real {REALID,}; realtime {REALTIMID,}; event {EVTID,}; task TASKID; [{input | output | inout [range] {ARGID,};}] [{declaration}] begin [{sequential_statement}] end endtask function [range] FCTID; {input [range] {ARGID,};} [{declaration}] begin [{sequential_statement}] end endfunction 1995 Qualis Design Corporation
5. SEQUENTIAL STATEMENTS
; begin[: BLKID [{declaration}]] [{sequential_statement}] end if (expr) sequential_statement [else sequential_statement] case | casex | casez (expr) [{{expr,}: sequential_statement}] [default: sequential_statement] endcase forever sequential_statement repeat (expr) sequential_statement while (expr) sequential_statement for (lvalue = expr; expr; lvalue = expr) sequential_statement #(number | (expr)) sequential_statement @ (event [{or event}]) sequential_statement
1995 Qualis Design Corporation. Permission to reproduce and distribute strictly verbatim copies of this document in whole is hereby granted. See reverse side for additional information.
7. EXPRESSIONS
primary unop primary expr binop expr expr ? expr : expr primary ::= literal | lvalue | FCTID({expr,}) | ( expr )
$readmemh(fname, ID [, startadd [, stopadd]]); *$sreadmemb(ID, startadd, stopadd {, string}); *$sreadmemh(ID, startadd, stopadd {, string});
8.2. OUTPUT
$display[defbase]([fmtstr,] {expr,}); $write[defbase] ([fmtstr,] {expr,}); $strobe[defbase] ([fmtstr,] {expr,}); $monitor[defbase] ([fmtstr,] {expr,}); $fdisplay[defbase] (fileno, [fmtstr,] {expr,}); $fwrite[defbase] (fileno, [fmtstr,] {expr,}); $fstrobe(fileno, [fmtstr,] {expr,}); $fmonitor(fileno, [fmtstr,] {expr,}); fileno = $fopen(filename); $fclose(fileno); defbase ::= h | b | o
Reset and run again Reset with reset_value Reset_value of last $reset # of times $reset was used
8.5. M ISCELLANEOUS
$random[(ID)] *$getpattern(mem) $rtoi(expr) $itor(expr) $realtobits(expr) $bitstoreal(expr) Assign mem content Convert real to integer Convert integer to real Convert real to 64-bit vector Convert 64-bit vector to real
8.3. TIME
$time now as TIME $stime now as INTEGER $realtime now as REAL $scale(hierid) Scale foreign time value $printtimescale[(path)] Display time unit & precision $timeformat(unit#, prec#, unit, minwidth) Set time %t display format
9. LEXICAL ELEMENTS
hierarchical identifier ::= {INSTID .} identifier identifier ::= letter | _ { alphanumeric | $ | _} escaped identifer ::= \ {nonwhite} decimal literal ::= [+|-]integer [. integer] [E|e[+|-] integer] based literal ::= integer base {hexdigit | x | z} base ::= b | o | d | h comment ::= // comment newline comment block ::= /* comment */
8. SYSTEM T ASKS
* indicates tasks not part of the IEEE standard but mentionned in the informative appendix.
1995 Qualis Design Corporation. Permission to reproduce and distribute strictly verbatim copies of this document in whole is hereby granted. Qualis Design Corporation Beaverton, OR USA Phone: +1-503-531-0377 FAX: +1-503-629-5525 E-mail: info@qualis.com Also available: VHDL Quick Reference Card 1164 Packages Quick Reference Card
8.1. INPUT
$readmemb(fname, ID [, startadd [, stopadd]]);