以前一直没能搞明白verilog中input、output和reg、wire的关系问题,今天似乎有了一点点心得,赶紧记录下来。
1、首先先看2个模块:
A module是一个电路模块,它具有3个输入和1个输出,B module是A module的测试模块,具有3个输出和1个输入。当B module的输入加入A module,将引发A module的行为,并产生一个结果输出,该输出将加入到B module的输入。于是A module的工作状况就能通过由B module输出设定的信号,检查B module的输入信号的状态加以验证。
2、模块间的接口关系:
A module的输入是B module的输出,B module的输入是A module的输出。这里A module的接口是客观的存在无法改变的,其信号类型是input和output。verilog规定被赋值的信号必须是reg信号,由于B module的输出需要引起A module的响应,因此必须是被赋值的信号,因此B module的输出信号必须是reg类型。同样的,A module的输出信号也必须是reg类型,而承接该信号的B module的输入信号就是wire类型。
文章评论(0条评论)
登录后参与讨论