【数字IC手撕代码】Verilog全加器半加器|题目|原理|设计|仿真

简介: 【数字IC手撕代码】Verilog全加器半加器|题目|原理|设计|仿真

image.png


一、前言


本系列旨在提供100%准确的数字IC设计/验证手撕代码环节的题目,原理,RTL设计,Testbench和参考仿真波形,每篇文章的内容都经过仿真核对。快速导航链接如下:


1.奇数分频

2.偶数分频

3.半整数分批

4.小数/分数分频

5.序列检测器

6.模三检测器

7.饮料机

8.异步复位,同步释放

9.边沿检测(上升沿,下降沿,双边沿)

10.全加器,半加器

11.格雷码转二进制

12.单bit跨时钟域(打两拍,边沿同步,脉冲同步)

13.奇偶校验

14.伪随机数生成器[线性反馈移位寄存器]

15.同步FIFO

16.无毛刺时钟切换电路


应当说,手撕代码环节是面试流程中既重要又简单的一个环节,跟软件类的岗位相比起来,数字IC的手撕代码题目固定,数量有限,属于整个面试中必得分的一个环节,在这个系列以外,笔者同样推荐数字IC求职者使用“HdlBits”进行代码的训练

链接如下

HDLBits — Verilog Practice


二、题目


1.使用Verilog设计全加器和半加器


三、全加器和半加器原理


3.1 从加减乘除观加法器的重要性

应该说,全加器和半加器是作为整个数字IC设计最底层的内容出现的


加操作:全加器和半加器,配合其他的控制电路,可以组成从Ripple-Carry Adder, Carry-Select Adder,到Carry-Lookahead Adder等不同PPA性能的加法器,进一步组成ALU等CPU component.

具体的案例可以参考【ALU】32-bit低时延高速整数ALU的设计|超前进位加法器

减操作:通过对原码和补码的转换,我们可以将减的操作,转变为加的操作。

乘操作:引入部分积的概念,部分积求和的过程中,我们同样需要使用各式各样的加法器,同时在对普通乘法器的优化过程中,也同样将全加器视为3:2压缩器来进行部分积的压缩。

具体的案例可以参考【乘法器】大数乘法器的设计与优化(32位,16位,8位 树型阵列乘法器Dadda Tree与Wallace Tree)

除操作:无论是恢复余数法还是不恢复余数法,我们都需要使用到减法操作,进一步转变为加法操作,使用全加器和半加器来完成电路的搭建。


从上面的案例,我们可以看到,全加器和半加器作为整个电路设计过程中底层出现的重要性,实际上,不论是加减乘除,还是目前业界很火的AI和卷积,电路的底层都离不开全加器和半加器的出现。


3.2 全加器和半加器的真值表

半加器的真值表

image.png

全加器的真值表

image.png


对于半加器而言,A和B是两个需要相加的数,S是和,C是进位

对于全加器而言,A和B是两个需要相加的数,Cin是来自上一级的进位,S是和,Cout是输入到下一级的进位


四、RTL设计


半加器

module Half_Adder(A,B,S,Cout);
input A,B;
output S,Cout;
assign S = A^B;
assign Cout = A&B;


全加器

module Full_Adder(A,B,Cin,S,Cout);
input A,B,Cin;
output S,Cout;
assign S = A^B^Cin;
assign Cout = (A&B)|(A&Cin)|(B&Cin);
endmodul


五、Testbench和仿真分析


电路太简单了,肯定没错,题主不截图了

相关文章
|
10月前
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
334 26
【verilog】同步复位,异步复位以及异步复位同步释放
该文讨论了数字电路设计中触发器复位机制的三种类型:同步复位、异步复位和异步复位同步释放。同步复位在时钟边沿确保稳定性,但对复位脉冲宽度有要求;异步复位响应快速,但可能受干扰且时序不确定;异步复位同步释放则结合两者的优点。设计时需根据需求权衡选择。文中还给出了Verilog代码示例。
【数字IC手撕代码】Verilog小数分频|题目|原理|设计|仿真
【数字IC手撕代码】Verilog小数分频|题目|原理|设计|仿真
【数字IC手撕代码】Verilog小数分频|题目|原理|设计|仿真
【数字IC手撕代码】Verilog序列检测器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog序列检测器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog序列检测器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog同步FIFO|题目|原理|设计|仿真
【数字IC手撕代码】Verilog同步FIFO|题目|原理|设计|仿真
【数字IC手撕代码】Verilog同步FIFO|题目|原理|设计|仿真
|
数据安全/隐私保护
【数字IC手撕代码】Verilog伪随机数生成器|线性反馈移位寄存器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog伪随机数生成器|线性反馈移位寄存器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog伪随机数生成器|线性反馈移位寄存器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog模三检测器(判断输入序列能否被三整除)|题目|原理|设计|仿真
【数字IC手撕代码】Verilog模三检测器(判断输入序列能否被三整除)|题目|原理|设计|仿真
【数字IC手撕代码】Verilog模三检测器(判断输入序列能否被三整除)|题目|原理|设计|仿真
【数字IC手撕代码】Verilog自动售卖饮料机|题目|原理|设计|仿真
【数字IC手撕代码】Verilog自动售卖饮料机|题目|原理|设计|仿真
【数字IC手撕代码】Verilog自动售卖饮料机|题目|原理|设计|仿真
|
自然语言处理 算法
【数字IC手撕代码】Verilog固定优先级仲裁器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog固定优先级仲裁器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog固定优先级仲裁器|题目|原理|设计|仿真
【数字IC手撕代码】Verilog偶数分频|题目|原理|设计|仿真(二分频,四分频,六分频,八分频,偶数分频及特殊占空比)
【数字IC手撕代码】Verilog偶数分频|题目|原理|设计|仿真(二分频,四分频,六分频,八分频,偶数分频及特殊占空比)
【数字IC手撕代码】Verilog偶数分频|题目|原理|设计|仿真(二分频,四分频,六分频,八分频,偶数分频及特殊占空比)