2.module的实例化

在第一节中,我们已经将以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语法,觉得必须要有输出,一定要有输出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值