在第一节中,我们已经将以xxxxxx名字的module进行了定义,这就是个设计(俗称DUT),那么我们需要去验证,就需要将其实例化,这一节主要进行实例化的工作,再来回顾一下上一节的定义的module
module xxxxxx(
input a, 一定要用逗号隔开
input [2:0] b,
output c,
output[2:0] d,
); //分号不能忘
--------------------------------
--------------------------------做一些逻辑运算
-------------------------------
endmodule // 没有分号
下面将其实例化
module tb(); //在以tb为名字的module中进行实例化,因为主要是做测试工作,
//所以tb后面的()可以省略
//即直接可以这样写,module tb;
//从上面可知,xxxxxx输入有a,b输出有c和d,因此这里需要定义变量
//重要知识点总结:对于输入类型都要定义成reg类型(作驱动),对于输出都要定义成wire类型(采样dut的输出)
reg a_in;//对应于xxxx中的input类型的a,下同
reg [2:0] b_in;//位宽要和b保持一致
wire c_out;//对应于xxxxx中的c,为wire类型,输出,下同
wire[2:0] d_out;//位宽要和d保持一致
//下面将dut xxxxxx进行实例化操作
//xxxxxx是dut(module)的名字,u_xxxxxx表示实例化的名字,你写成任何都可以(rmb,sb)都行
xxxxxx u_xxxxxx(
//下面进行信号连接
// .a表示调用xxxxxx中的a,然后给其赋值a_in
.a (a_in),//用逗号隔开,表示xxxxxx中的a此时我用reg a_in,对其进行驱动,下同
.b (b_in),
.c (c_in), //表示输出的c用c_in对其进行采样,保存到wire c_out这个变量中
.d (d_in) //切记最后是没有逗号的
);//最后是分号表示结束
endmodule //有始有终,endmodule一定不要忘了
注:每天挑战一条Verilog语法,觉得必须要有输出,一定要有输出