HDLBits——Module

本文深入探讨了HDL中模块连接的两种主要方法:位置匹配和名称匹配,并通过实例对比了‘偷懒法’与‘常规法’的优劣,强调了在实际编程中采用‘常规法’的重要性和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人持续更新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)); 然而“偷懒法”却不可以

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值