Bootstrap

HDLBits——Module

本人持续更新HDLBits其他题目,详细讲解我们编程时会遇到的各种错误,若有兴趣可以移步我的博客中心浏览本人的其他文章,感谢赏光!

原题如下

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
这道题的本质就是内部的module 和top_module的连接问题。
众所周知,信号连接有两种方式,一种是根据位置来摆放,一种是根据名称来直接连接而与位置无关,接下来我就用代码来帮大家解释解释。
假如我们有一个模块(instance) mod_a(output out,input in1,input in2) 而我有一个顶层文件top_mod(input a,input b,output out)
我有两种方式将他们连接
1、偷懒法mod_a instance1(in1,in2,out); 因为在top_mod(1,2,3)我们可以发现1位置是a,2位置是输入b,3位置是输出out,所以我们mod_a instance1(4,5,6)位置对应连接的就是(1,2,3)三个位置,分别是1连接4,2连接5,3连接6。
2、常规法 常规法mod_a instance2(.out(out),.in1(a), .in2(b)); 就是我们这样连接,.out(out),.in1(a), .in2(b) 没有括号的out ,in1,in2,是mod_a,而在括号内部的是顶层模块的引脚out、a、b。

常规法可以把内部的引脚顺序打乱如mod_a instance2(.in1(a), .out(out),.in2(b)); 然而“偷懒法”却不可以

一般我们采用常规法进行连接,这样不用担心顺序问题,而且引脚的连接情况也一目了然

;