4位全加器实验报告docWord文件下载.docx
《4位全加器实验报告docWord文件下载.docx》由会员分享,可在线阅读,更多相关《4位全加器实验报告docWord文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
modulefulladd4(sum,cout,a,b,cin);
wirecout;
output[3:
reg[3:
0]a,b;
outputcout;
regcin;
input[3:
fulladd4f1(sum,cout,a,b,cin);
inputcin;
initialassign{cout,sum}=a+b+cin;
beginendmodulea=4'
b0;
b=4'
cin=1'
#210$stop;
endalways#10a=a+1;
always#5b=b+1;
always#100cin=cin+1;
endmodule四、仿真波形如下:
续图
篇二:
数电第一次实验
通信1402程杰UXX13468
【实验目的】
采纳ISE集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四进制全加器。
【实验内容】
加法器是数字系统中的大体逻辑器件。
多位加法器的组成有两种方式:
并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;
串行进位方式是将全加器级联组成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,而且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会愈来愈大。
实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(固然还有0+0、0+一、1+0).
【实验原理】全加器
除本位两个数相加外,还要加上从低位来的进位数,称为全加器。
图4为全加器的方框图。
图5全加器原理图。
被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。
能实现全加运算
表2全加器逻辑功能真值表
图4全加器方框图
图5全加器原理图
多位全加器连接能够是逐位进位,也能够是超前进位。
逐位进位也称串行进位,其逻辑电路简单,但速度也较低。
四位全加器
如图9所示,四位全加器是由半加器和一名全加器组建而成:
图9四位全加器原理图
【实验步骤】
(1)成立新工程项目:
打开ISE软件,进入集成开发环境,点击File→Newproject成立一个工程项目adder_4bit。
成立文本编辑文件:
点击File→New在该项目下新建Verilog源程序文件adder_4bit.v而且输入源程序。
(2)编译和仿真工程项目:
在verilog主页面下,选择Compile—Compile
All或点击工具栏上的按钮启动编译,直到project显现status栏全勾,即可进行仿真。
选择simulate-startsimulate或点击工具栏上的按钮开始仿真,在跳出来的startsimulate框当选择work-test_adder_4bit测试模块,同时撤销EnableOptimisim前的勾,以后选择ok。
在sim-default框内右击选择test_adder_4bit,选择AddWave,然后选择simulate-run-runall,观看波形,得出结论,仿真终止。
一、原理图设计
【程序源代码】
半加器程序代码如下:
moduleHalfadder(S,C,A,B
);
inputA,B;
outputS,C;
xor(S,A,B);
and(C,A,B);
endmodule
一名全加器程序代码如下:
moduleonebit_adder(Sum,Co,A,B,Ci);
inputA,B,Ci;
outputSum,Co;
wireS1,D1,D2;
HalfadderHA1(.B(B),.S(S1),.C(D1),.A(A));
HalfadderHA2(.A(S1),.B(Ci),.S(Sum),.C(D2));
org1(Co,D2,D1);
四位全加器程序代码如下:
modulefourbit_adder(S,C3,A,B,C_1);
input[3:
0]A,B;
inputC_1;
output[3:
0]S;
outputC3;
wireC0,C1,C2;
onebit_adderU0_FA(S[0],C0,A[0],B[0],C_1);
onebit_adderU1_FA(S[1],C1,A[1],B[1],C0);
onebit_adderU2_FA(S[2],C2,A[2],B[2],C1);
onebit_adderU3_FA(S[3],C3,A[3],B[3],C2);
四位全加器仿真代码如下:
modulefourbir_adder_TF;
//Inputs
reg[3:
0]A_t;
reg[3:
0]B_t;
regC_1_t;
//Outputs
0]S_t;
wireC3_t;
//InstantiatetheUnitUnderTest(UUT)
fourbit_adderuut(.S(S_t),.C3(C3_t),.A(A_t),.B(B_t),.C_1(C_1_t));
initialbegin
//InitializeInputs
A_t=0000;
B_t=0001;
C_1_t=0;
#10$display("
AB=%b%b,S_t=%b,C3_t=%b"
A_t,B_t,S_t,C3_t);
A_t=0011;
B_t=0011;
A_t=0111;
B_t=1100;
endendmodule
仿真结果截图
引脚分派代码
NET"
A[0]"
LOC="
P11"
;
NET"
A[1]"
L3"
A[2]"
K3"
B4"
B[0]"
G3"
F3"
篇三:
武汉轻工大学
数学与运算机学院
《运算机组成原理》
实验报告
题目:
4位二进制计数器实验
专业:
软件工程
班级:
130X班
学号:
1305110XXX
姓名:
XX
指导教师:
郭峰林
XX年11月3日
【实验环境】
1.Win7
2.QuartusII9.1运算机组成原理教学实验系统一台。
【实验目的】
一、熟悉VHDL语言的编写。
二、验证计数器的计数功能。
【实验要求】
本实验要求设计一个4位二进制计数器。
要求在时钟脉冲的作用下,完成计数功能,能在输出端看到0-9,A-F的数据显示。
(第二要求下载到实验版实现显示)
【实验原理】
计数器是一种用来实现计数功能的时序部件,计数器在数字系统中主若是对脉冲的个数进行计数,以实现测量、计数和操纵的功能,同时兼有分频功能。
计数器由大体的计数单元和一些操纵门所组成,计数单元那么由一系列具有存储信息功能的各类触发器组成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。
计数器在数字系统中应用普遍,如在电子运算机的操纵器中对指令地址进行计数,以便顺序掏出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。
计数器按计数进制不同,可分为二进制计数器、十进制计数器、其他进制计数器和可变进制计数器,假设按计数单元中各触发器所接收计数脉冲和翻转顺序或计数功能来划分,那么有异步计数器和同步计数器两大类,和加法计数器、减法计数器、加/减计数器等,如按预置和清除方式来分,那么有并行预置、直接预置、异步清除和同步清除等不同,按权码来分,那么有“8421”码,“5421”码、余“3”码等计数器,按集成度来分,有单、双位计数器等等,其最大体的分类如下:
?
?
同步计数器?
一、结构?
异步计数器?
计数器的种类?
加法计数器?
二、功能?
减法计数器
可逆计数器?
二进制计数器?
3、进制?
十进制计数器?
N进制计数器?
下面对同步二进制加法计数器做一些介绍。
同步计数器中,所有触发器的CP端是相连的,CP的每一个触发沿都会使所有的触发器状态更新。
因此不能利用T′触发器。
应操纵触发器的输入端,即将触发器接成T触发器。
只有当低位向高位进位时(即低位全1时再加1),令高位触发器的T=1,触发器翻转,计数加1。
例如由JK触发器组成的4位同步二进制加法计数器,令其用下降沿触发。
下面分析它的工作原理。
①输出方程
nnnnCQ?
Q3Q2Q1Q0
②驱动方程
J0?
K0?
1?
n?
J1?
K1?
Q0?
nn?
J2?
K2?
Q1Q0
nnn?
J3?
K3?
Q2Q1Q0
③状态方程
本实验中要求用VHDL语言设计同步4位二进制计数器,令其上升沿触发。
说明:
为了方便在QuartusII9.1sp2中完成编译和功能仿真,咱们选择芯片CycloneII,EP2C70F89C6,而在DE2-115开发板中进行下载时,那么需要选择与开发板相匹配的芯片CycloneIVE中的EP4CE115F29C7。
(芯片选择见下文详述,注意每次变换芯片后都需要从头编译)
1.1.1创建项目工程
一、第一新建一个文件夹。
利用资源治理器,新建一个文件夹,如:
d:
\test1。
作为本项目所有文件寄存位置。
二、创建一个工程
(1)
软件。
(2)、再开始成立新项目工程。
点击:
【File】菜单,选择下拉列表中的【NewProjectWizard...】命令,打开成立新项目工程的向导对话框。
点击next。
完成以上命名工作后,点击Next,进入下一步。
图1.1.3添加其他工程的文件到本项目工程中
(5)选择设计文件所需要的可编程芯片的型号,实验中咱们所用的实验平台是DE2-115开发板。
由于DE2-115实验板中的FPGA芯片较新,QuartusII9.1sp2软件尚未为其提供相应的仿真功能,因此,咱们要选择较早的芯片CycloneII,EP2C70F89C6
图1.1.4选择目标芯片的型号
点击Next,进入下一步。
如以下图对话框:
点击Finish,完成新建项目工程的任务。
1.1.2创建源程序文件
(1)新建一个VHDL项目文件。
打开QuartusII,选择菜单“File”?
“New”,在New窗中的“Design
Files”当选择编译文件的语言类型,选“VHDLFile”(如下图)。
图1.1.6选择编辑文件的语言类型
(2)然后在VHDL文本编译窗中键入VHDL程序。
VHDL语言的程序代码如以下图所示:
图1.1.7VHDL语言的程序代码
其中,CLK是时钟信号,CQ是4位数据输出端。
每当检测到CLK显现一个上升沿时,计数器就自加1并输出结果。
(3)键入程序后,点击保留,选择默许保留名。
在对工程进行编译处置前,必需做好必要的设置:
(1)选择目标芯片。
目标芯片的选择也能够如此来实现:
选择Assignments菜单中的Settings项,在弹出的对话框当选择Category项下的Device(也能够直接选择Assignments菜单中的Device项),然后选择目标芯片(方式同创建工程中的第5步)。
(2)选择目标器件闲置引脚的状态。
点击Assignments-----Device?
,在Device&
PinOptions窗口中,选择UnusedPin项,设置目标器件闲置引脚的状态为输入状态(呈高阻态Asinputtri-stated)。
图1.2.1设置目标器件闲置引脚的状态为呈高阻态