Binding SVA module to design can be done using system verilog bind statement. This is semantically equivalent to instantiation of SVA module. The bind directive can be specified in a module, interface or a compilation unit scope.
There are many ways binding can be done. Following section discusses these.
Normal Bind
Binding fifo to fifo_sva assertion module can be done as follows
1 | bind fifo fifo_sva fifo_sva_inst (.clk(clk_i ),.rst_n(rst_n_i),.data_i(data_i),.data_o(data_o),.wr(wr_i),.rd(rd_i)) |
Bind using Implicit port connections
By using this method, port names need not be specified and all ports will be accessible to assertion module.
1 | bind fifo fifo_sva fifo_sva_inst(.*); |
Bind to a lower level module
Hierarchy needs to be specified along with the bind statement.
1 2 | bind $root.vhdl_top.sub1_inst.sub2_inst slave_sva_check slave_bind(..) //Design with vhdl top (in IFV tool) bind vlog_top.sub1_inst.sub2_ins slave_sva_check slave_bind(..) //vlog |
Bind using different parameters/generic
Passing parameter values in bind can be done in the following way.
1 2 3 4 |
全部作者的其他最新日志
评论 (0 个评论) |


eetop公众号
创芯大讲堂
创芯人才网