Skip to content

Instantly share code, notes, and snippets.

@sam-falvo
Created February 13, 2017 00:28
Show Gist options
  • Save sam-falvo/68b886caac9dee64de43282a6ed2dbd1 to your computer and use it in GitHub Desktop.
Save sam-falvo/68b886caac9dee64de43282a6ed2dbd1 to your computer and use it in GitHub Desktop.
Macro templates for creating assert functions in Verilog. (my original work)
`define NTB(name)\
`"name``_tb`"
`define DEFASSERT(name,msb)\
task assert_``name``;\
input [``msb``:0] expected;\
begin\
if(expected !== ``name``_tb) begin\
$display("@E %03X %s Expected %X, got %X", story_tb, `NTB(name), expected, ``name``_tb);\
$stop;\
end\
end\
endtask
`define DEFASSERT0(name)\
task assert_``name``;\
input expected;\
begin\
if(expected !== ``name``_tb) begin\
$display("@E %03X %s Expected %X, got %X", story_tb, `NTB(name), expected, ``name``_tb);\
$stop;\
end\
end\
endtask
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment