专题:元件例化

元件例化是指在一个module中调用了其他的module。
例如,下图中模块MUXK调用了两个MUX21A模块u1和u2。

元件例化

实现方式如下:

module MUXK(input a1,a2,a3,s0,s1,output outy)
   wire tmp; 
   MUX21A  u1(.a(a2), .b(a3) , .s(s0), .y(tmp));
   MUX21A  u2(.a(a1), .b(tmp) , .s(s1), .y(outy));
endmodule

相信你已经看明白了。解释如下:
1、要调用某个子模块,直接写上子模块名MUX21A,后面加上实例名u1,再后面括号内是子模块引脚信号与当前顶层module内信号的连接关系。
2、实例名u1,u2可以省略。
3、子模块引脚名(.a .b .s .y)可以省略,条件是括号内被连接的信号排列顺序,需要与子模块定义时的引脚名保持一致。
4、如果连接线tmp是单根信号线,可以省略不定义。
即,简略版的描述可以这样:

module MUXK(input a1,a2,a3,s0,s1,output outy)
   // wire tmp; 
   MUX21A  (a2, a3 , s0, tmp);
   MUX21A  (a1, tmp, s1, outy);
endmodule

需要注意的事项
1、虽然上面说了一些可以省略的内容,但为了保证便于调试,以及防止因省略产生歧义,强烈建议不要省略。
2、在连接两个多位宽端口(信号线宽大于1)的时候,连接线wire必须定义,且wire线宽需与总线宽度一致。否则,程序会认为只连接总线所有信号线里的其中一根线。
例如:下图元件例化中,用导线data连接DOUT[7..0]和B[7..0]时,必须事先定义
wire [7:0] data ;

元件例化 - 多位宽总线连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 总线 计算机的各个功能部件通过总线连接在一起构成完整的计算机系统,总线是多个系统功能部件之间进行数据传送的公共通路...
    罗蓁蓁阅读 10,457评论 0 10
  • testbench 1. 激励的产生 对于testbench而言,端口应当和被测试的module一一对应。端口分为...
    Michael_Johnson阅读 7,690评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,461评论 19 139
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo阅读 9,207评论 1 20
  • (接上文) 其实不管是什么样子的笔试和面试,最后我总结出来只有两个原则:快速学习,表达真我。 应届生在找工作的时候...
    连滚带爬向前跑阅读 3,056评论 0 2