Verilog学习日志(2021.7.3)

本文讲述了作者学习HDLbits过程中,如何用16位加法器构建32位加法器,遇到的实例化问题,以及改进后的穿行多位加法器设计,涉及加法器-减法器模块,并介绍了异或门的综合。

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


2021.7.3

继续HDLbits,今天的任务是把module学完。

(25)要我用两个16位的加法器做一个32位的加法器,电路思路都给我了,简单。

(26)和前面那题差不多,只是16位加法器里面的1位进位加法器要我写module。

对于参数sum的运算,我没有用hint给的异或写法,我用的是自己通过真值表整理出来的东西(自己写的果然bug了好多次hhh)。

然后我自己也尝试写一下16位加法器的module,很stupid地实例化了16个1位进位加法器,然后导致代码写了一百多行。因为我不懂实例化怎么通过循环语句实现emm(instance能通过向量之类的方法排一列吗?!)

(27)前面那题那个加法器叫做穿行多位加法器(行波进位加法器),它的缺点就是时延太高了,因为module里你前一级的加法器执行完才能执行下一级的,感觉电路资源在时间域里被浪费了。

然后这题的解决方案是把第二级的16位加法器用两个16位加法器加上一个MUX代替了。然后在前一级计算的时候后一级在同时计算,这样时延就得到了降低。总的来说这就是选择进位加法器的设计思路。(这玩意和超前进位加法器是啥关系?反正都是牺牲电路规模来满足缩短时延的思想啦)

然后解题的话一样,实例化三次16位加法器加上一个MUX就行了。

(28)做一个adder-subtractor(加法器-减法器)

//hint说一个异或门可以用一个MUX和反相器来综合,如下:

没有什么难的,但是对于这种Adder-subtractor算是第一次接触8,怪我见识短浅了。

其实减法在数字电路里就是取补码啦...就是取反加一就完事了。

然后module模块也完成了,明天整procedures的活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值