在verilog中实例化一个模型应注意的问题,是不是对应端口对的数据类型必须一致??

如题所述

当然可以不一样,顶层文件例化是将两个端口对应连接在一起,若该信号在当前模块中没有用到always语句等必须要reg型的 那是要用wire型的,因为他们是连线(将各个模块端口连接起来),而你说的原型模块那是设计时实现内部功能的,根据需求来定义数据类型。他们两个有对应关系却是不一样的东西。所以LZ多虑了追问

你说的 顶层文件例化是将两个端口对应连接在一起,特别是在测试台程序中,就是将对应的端口连接起来是吗,我看到测试台程序中的端口类型都不对应

追答

测试的对应原设计输入端口都是reg型,因为它在赋值中需要用到 initial always 过程赋值语句,所以用什么类型要看程序 而不是看端口对应什么的。
你要知道在某个模块中输入端口不能用reg型,因为他是输入数据并不需要寄存数据
而在顶层模块例化端口连接中你前面的 模块输出端口(线网类型或者reg) 连接的 是另一个模块的输入端口(线网类型) 所以顶层定义的那个是那个变量用来连接用的线(wire),当然最后一个模块的输出也是顶层模块的输出,那个就看程序中是否使用的assign (wire型),always (reg型)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-10
必须对应的,否则,即使能通过编译,这个在建模已经没意义了,任何硬件描述必须是根据实际建模追问

嗯,谢谢,之前看一本书,在原模型中端口类型声明的是REG,实例化的时候成了Wire类型,搞的我好晕,谢谢了

第2个回答  2012-11-13
不是,主要还是看顶层模块需要用到什么类型
相似回答