FPGA设计:4位全加器代码以及仿真

大家好!今天给大家分享的是4位全加器的代码以及仿真程序。俗话说:“千里之行,始于足下。”对于初学者来说, 加法器是fpga初学者入门必须掌握的内容。我们很多朋友在入门时囫囵吞枣,一些基础的东西没有掌握好,导致后面在做大型项目的时候漏洞百出。因此,大家在开始学习或者正在学习fpga的过程中,一定要把一些基础的模块理解透彻。我会给大家分享一些常见的模块代码以及仿真程序,希望能帮助到大家更好的去学习fpga!下面一起来看下4位加法器的代码以及仿真程序:
4位全加器代码:
module adder4(cout,sum,ina,inb,cin);output cout;output [3:0] sum;input [3:0] ina,inb;input cin;assign {cout,sum}=ina+inb+cin;endmodule  
4位全加器的仿真程序:
`timescale 1ns/1nsmodule tb; // 测试模块的名字reg [3:0] ina,inb; // 测试输入信号定义为 reg 型reg cin;wire [3:0] sum; // 测试输出信号定义为 wire 型wire cout;integer i,j;adder4 adder(cout,sum[3:0],ina[3:0],inb[3:0],cin); // 调用测试对象always #5 cin=~cin; // 设定 cin 的取值initialbeginina=0;inb=0;cin=0;for (i=1;i<16;i=i+1)#10 ina=i; // 设定 a 的取值endinitialbeginfor (j=1;j<16;j=j+1)#10 inb=j; // 设定 b 的取值endinitial // 定义结果显示格式begin$monitor($time,,,%d+%d+%b={%b,%d},ina,inb,cin,cout,sum);#160 $finish;endendmodule  
modelsim仿真结果:
具体的代码细节我就不详细阐述了,大家一定要学会思考,在这个代码中,主要要理解清楚这样几个问题:
什么叫全加器?
半加器和全加器的区别是什么?
什么叫低位进位?什么叫高位进位?
为什么仿真出来的波形图感觉和modelsim打印出来的结果不一样?比如感觉数据没对齐?
$monitor是什么意思?怎么使用?格式是什么?
这个4位全加器的电路图是什么样的?
    就这样一个“简单”的4位全加器,你真的掌握了吗?如果你能快速回答出我上面提出的几个问题,那你就掌握了;如果不能,那还要好好看下!其实,我们很多的公司笔试就是考这些简单的题目,但是却可以难倒一大片同学!再次提醒大家!重视基础!


详解VR设备、VR头盔的构成
4G模块LTE之前的移动通信系统演进
NAND闪存价格连跌6个季度 出货位元总量大幅增长
电源适配器压敏电阻防雷小知识
亚马逊推出基于Zigbee无线技术的语音服务设备 可服务千万计智能家居设备
FPGA设计:4位全加器代码以及仿真
三相交流输入驱动器多等级的滤波设计方案
Buck+定频谐振电路的工作原理
无损检测常用词汇中英文对照
边缘人工智能蕴藏着物联网的崭新机遇
杭州万高荣获“浙江省科技小巨人”认定
美国即将推出价值约为80亿美元的国防企业办公解决方案(DEOS)合同
优化在极端环境中工作的射频设计
画面太美! 小米6发布会爆料: 不一样的雷军
谷歌地图推出了阿尔法AR导航功能 能为用户提供基于真实街景的导航
DRAM价格二季度暴跌25%!
基于新型磁电阻材料TaP的强磁场传感器
PLC怎样控制污水沉淀池的运作?
特斯拉Model 3真车曝光,将于7月份正式发布,轮毂画风眼前一亮
具有优异催化性能的Pd10@Pt1/MOF复合催化材料