四位全加器实验Verilog.doc

四位全加器实验Verilog.doc

ID:49167937

大小:1.04 MB

页数:6页

时间:2020-02-29

四位全加器实验Verilog.doc_第1页
四位全加器实验Verilog.doc_第2页
四位全加器实验Verilog.doc_第3页
四位全加器实验Verilog.doc_第4页
四位全加器实验Verilog.doc_第5页
资源描述:

《四位全加器实验Verilog.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四 四位全加器一、实验目的  l.用组合电路设计4位全加器。  2.了解VerilogHDL语言的行为描述的优点。二、实验原理4位全加器工作原理1)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。能实现全加运算功能的电路称为全加电路。全加器的逻辑功能真值表如表中所列。2)1位全加器一位全加器(FA)的逻辑表达式为:S=A⊕B⊕Cin;Co=AB+BCin+ACin其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出;这两幅图略微有差别

2、,但最后的结果是一样的。3)4位全加器4位全加器可看作4个1位全加器串行构成,具体连接方法如下图所示:采用VerilogHDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。二、实验步骤新建文件定义模块,顶层模块与工程名字一致,不可有并列的顶层模块每个模块中设置端口及内部变量,注意调用接口子模块写好1位全加器主模块中设定时钟上升沿控制计数(always)全加输出计数输出信号控制扬声器与数码管(case)配置引脚,连接硬件,编译后,把程序下载到硬件中运行输入不同的数值,根据LED灯验证结果,输入clk信号,听不同数值控制的不同频率的扬声器声音四、实

3、验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIJN:83L4:64KHZ:80五、心得体会首先,实现这一段全加器代码并不难,但是由于困惑给的三个时钟输入,没有太懂意思,所以只写了全加器控制LED灯的代码;后来问清楚后,运行全加器代码,有错误,原来是建文件时用的是veriloghdl,我建的是其他类型的;后来还有错,原来是把冒号打成分号;编译成功后,LED不亮,后来发现是硬件老化,换了箱子。这一部分做好后,我准备把控制声音的加上去,本来准备再加一个模块,可是不能有两个顶层块,就对主模块做了补充,用case命令调用不同的状态,因为时间紧迫,所以

4、代码写得比较简单,没有用经典的分频代码。这里附一小段,是我在研究分频控制时看懂的网上的经典分频代码,适合乐曲自动播放等高级的实现,仅供分享assignpreclk=(divider==16383)?1:0;//divider==16383,preclk=1always@(posedgeclk)//基频上升沿触发beginif(preclk)//preclk=1divider=origin;elsedivider=divider+1;endalways@(posedgepreclk)//调整占空比beginspeaker=~speaker;//2分频产生方波信号end这

5、部分实现了分频功能,其中origin+divider=16384=2^14,这个数根据自己的需要而定。在这个过程中我明白了:1)细心,每个步骤不能错;2)出现问题要仔细排查,软硬件都要;3)注意regwire的设定;4)学到了额外的扩展知识六、代码分析:modulefull_add1(SUM,C_OUT,A,B,C_IN);//一位全加器子模块outputSUM,C_OUT;inputA,B,C_IN;wireC1,C2,C3;and(C1,A,B);//内部门实现xor(C3,A,B);and(C2,C3,C_IN);xor(SUM,C_IN,C3);xor(C_O

6、UT,C1,C2);endmodulemoduleshiyan4(speaker,s,c_out,a,b,c_in,clk_4MHz,);//主模块output[3:0]s;outputc_out;outputspeaker;inputclk_4MHz;input[3:0]a,b;inputc_in;regspeaker;wirec1,c2,c3;full_add1f0(s[0],c1,a[0],b[0],c_in);//调用子模块(4个一位全加器)full_add1f1(s[1],c2,a[1],b[1],c1);full_add1f2(s[2],c3,a[2],b

7、[2],c2);full_add1f3(s[3],c_out,a[3],b[3],c3);always@(posedgeclk_4MHz)//时钟信号上升沿触发if(c_out==1)//全加器部分进位输出为1的情况case(s)4'b0000:speaker=clk_4MHz;//全加器s为0扬声器输出的频率4'b0001:speaker=clk_4MHz;//全加器s为1扬声器输出的频率(同样目的,以下依次分成不同频率)4'b0010:speaker=clk_4MHz;4'b0011:speaker=clk_4MHz;4'b0100:speake

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。