- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数电第一次实验
通信1402 程杰 U201413468
【实验目的】
采用ISE集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四进制全加器。
【实验内容】
加法器是数字系统中的基本逻辑器件。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0).
全加器
除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图4为全加器的方框图。图5全加器原理图。被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。能实现全加运算功能的电路称为全加电路。全加器的逻辑功能真值表如表2中所列。
信号输入端 信号输出端 Ai Bi Ci Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 图4 全加器方框图
图5 全加器原理图
多位全加器连接可以是逐位进位,也可以是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。
四位全加器
如图9所示,四位全加器是由半加器和一位全加器组建而成:
图9 四位全加器原理图
【实验步骤】
(1)建立新工程项目:
打开ISE软件,进入集成开发环境,点击File→New project建立一个工程项目adder_4bit。
建立文本编辑文件:
点击File→New在该项目下新建Verilog源程序文件adder_4bit.v
并且输入源程序。
(2)编译和仿真工程项目:
在verilog主页面下,选择Compile— Compile All或点击工具栏上的按钮启动编译,直到project出现status栏全勾,即可进行仿真。
选择simulate - start simulate或点击工具栏上的按钮开始仿真,在跳出来的 start simulate框中选择work-test_adder_4bit测试模块,同时撤销Enable Optimisim前的勾,之后选择ok。
在sim-default框内右击选择test_adder_4bit,选择Add Wave,然后选择simulate-run-runall,观察波形,得出结论,仿真结束。
四位全加器
原理图设计
如图9所示,四位全加器是由半加器和一位全加器组建而成:
图9 四位全加器原理图
【程序源代码】
半加器程序代码如下:
module Halfadder(S,C,A,B
);
input A, B;
output S, C;
xor (S,A,B);
and (C,A,B);
endmodule
一位全加器程序代码如下:
module onebit_adder(Sum,Co,A ,B,Ci
);
input A,B,Ci;
output Sum,Co;
wire S1,D1,D2;
Halfadder HA1(.B(B), .S(S1), .C(D1), .A(A));
Halfadder HA2(.A(S1), .B(Ci), .S(Sum), .C(D2));
or g1(Co, D2, D1);
endmodule
四位全加器程序代码如下:
module fourbit_adder(S,C3,A,B,C_1
);
input [3:0] A,B;
input C_1;
output [3:0] S;
output C3;
wire C0,C1,C2;
onebit_adder U0_FA(S[0],C0,A[0],B[0],C_1);
onebit_adder U1_FA(S[1],C1,A[1],B[1],C0);
onebit_adder U2_FA(S[2],C2,A[2],B[2],C1);
onebit_adder U3_FA(S[3],C3,A[3],B[3],C2);
endmodule
四位全加器仿真代码如下:
module fourbir_adder_TF;
// Inputs
reg [3:0] A_t;
reg [3:0] B_t;
reg C_1_t;
// Outputs
wire [3:0] S_t;
原创力文档


文档评论(0)