实验一四位串行进位加法器的设计实验报告

合集下载

实验一用硬件描述语言设计一个4位加法器

实验一用硬件描述语言设计一个4位加法器

实验一用硬件描述语言设计一个4位加法器
0806024208 金晓会
1、整理实验结果,填写实验报告。

2、小结实验心得体会。

通过本实验我学会了设计全加器,同时巩固了VHDL的知识,也学会了MAXPLUS软件,学会了纠错。

3、写出程序或画出原理图,写出仿真结果。

下图为一位全加器的程序:
下图为:GDF格式的四位全加器原理图:
下图为仿真结果:
4、回答思考题。

什么叫全加器,它的作用是什么?4位加法器和全加器的区别和联系是什么?
(1)全加器:用门电路实现两个二进数相加并求出和的组合线路,称为一个全加器。

一位全加器,全加器是能够计算低位进位的二进制加法电路,一位全加器(FA)的逻辑表达式为:
S=A⊕B⊕Cin
Co=AB+BCin+ACin
其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出;
(2)区别和联系
加法器:加法器是产生数的和的装置。

加数和被加数为输入,和数与进位为输出的装置为半加器。

若加数、被加数与低位的进位数
为输入,而和数与进位为输出则为全加器。

常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。

在电子学中,加法器是一种数位电路,其可进行数字的加法计算。

EDA实验报告-加法进位器

EDA实验报告-加法进位器

EDA实验报告一.实验任务设计四位串行进位加法器,并以此为基础设计输入输出带寄存器的四位加法电路二.实验内容(一)设计思路1.输入a,b两个四位二进制数,输入进位cin为一位二进制数,输出s为四位二进制数,输出进位cout为一位二进制数。

2.A,b,s,cout的每一位需用d触发器锁存,那么一共需要13个d触发器。

(二)。

源程序和电路图1.d触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 ISPORT (CLK,D:IN STD_LOGIC;Q:OUT STD_LOGIC );END;ARCHITECTURE bhv OF DFF1 ISSIGNAL Q1 : STD_LOGIC;BEGINPROCESS(CLK,Q1)BEGINIF CLK'EVENT AND CLK ='1'THEN Q1<=D;END IF;END PROCESS;Q<=Q1;END bhv;2.一位二进制进位加法器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder ISPORT (a,b,c0:IN STD_LOGIC;s,c1:OUT STD_LOGIC);END ENTITY f_adder;ARCHITECTURE one OF f_adder ISSIGNAL abc:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL ain,bin,c0in:STD_LOGIC;BEGINain<=a;bin<=b;c0in<=c0;abc<=ain&bin&c0in;PROCESS(abc)BEGINCASE abc ISWHEN"000"=>s<='0';c1<='0';WHEN"001"=>s<='1';c1<='0';WHEN"010"=>s<='1';c1<='1';WHEN"011"=>s<='0';c1<='0';WHEN"100"=>s<='1';c1<='0';WHEN"101"=>s<='0';c1<='1';WHEN"110"=>s<='0';c1<='1';WHEN"111"=>s<='1';c1<='1';WHEN OTHERS =>NULL;END CASE;END PROCESS;END ARCHITECTURE one;3.四位二进制加法计数器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_4adder ISPORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(3DOWNTO 0); cin:IN STD_LOGIC;cout:OUT STD_LOGIC);END ENTITY;ARCHITECTURE one OF f_4adder IS COMPONENT f_adderPORT(a,b,c0:IN STD_LOGIC ;c1,s:OUT STD_LOGIC);END COMPONENT ;SIGNAL c2,c3,c4:STD_LOGIC;BEGIN u1:f_adder PORT MAP (a=>A(0),b=>B(0),c0=>cin,c1=>c2,s=>S(0));u2:f_adder PORT MAP (a=>A(1),b=>B(1),c0=>c2,c1=>c3,s=>S(1));u3:f_adder PORT MAP (a=>A(2),b=>B(2),c0=>c3,c1=>c4,s=>S(2));u4:f_adder PORT MAP (a=>A(3),b=>B(3),c0=>c4,c1=>cout,s=>S(3)); END ARCHITECTURE one;4.带寄存器的四位二进制加法器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_4adder ISPORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S:OUT STD_LOGIC_VECTOR(3DOWNTO 0);cin:IN STD_LOGIC;cout:OUT STD_LOGIC;SHIZHONG:IN STD_LOGIC);END ENTITY;ARCHITECTURE one OF h_4adder ISCOMPONENT f_adderPORT(a,b,c0:IN STD_LOGIC ;c1,s:OUT STD_LOGIC);END COMPONENT ;COMPONENT DFF1PORT(CLK,D:IN STD_LOGIC;Q:OUT STD_LOGIC);END COMPONENT ;SIGNAL g,h,f:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL e,c1,c2,c3,c4 : STD_LOGIC;BEGINu1:f_adder PORT MAP (a=>A(0),b=>B(0),c0=>cin,c1=>c2,s=>f(0));u2:f_adder PORT MAP (a=>A(1),b=>B(1),c0=>c2,c1=>c3,s=>f(1));u3:f_adder PORT MAP (a=>A(2),b=>B(2),c0=>c3,c1=>c4,s=>f(2));u4:f_adder PORT MAP (a=>A(3),b=>B(3),c0=>c4,c1=>e,s=>f(3));u5: DFF1 PORT MAP (D=>A(0),Q=>g(0),CLK=>SHIZHONG);u6:DFF1 PORT MAP (D=>A(1),Q=>g(1),CLK=>SHIZHONG);u7:DFF1 PORT MAP (D=>A(2),Q=>g(2),CLK=>SHIZHONG);u8:DFF1 PORT MAP (D=>A(3),Q=>g(3),CLK=>SHIZHONG);u9:DFF1 PORT MAP (D=>B(0),Q=>h(0),CLK=>SHIZHONG);u10:DFF1 PORT MAP (D=>B(1),Q=>h(1),CLK=>SHIZHONG);u11:DFF1 PORT MAP (D=>B(2),Q=>h(2),CLK=>SHIZHONG);u12:DFF1 PORT MAP (D=>B(3),Q=>h(3),CLK=>SHIZHONG);U13:DFF1 PORT MAP (D=>f(0),Q=>S(0),CLK=>SHIZHONG);u14: DFF1 PORT MAP (D=>f(1),Q=>S(1),CLK=>SHIZHONG);u15:DFF1 PORT MAP (D=>f(2),Q=>S(2),CLK=>SHIZHONG);u16:DFF1 PORT MAP (D=>f(3),Q=>S(3),CLK=>SHIZHONG);u17:DFF1 PORT MAP (D=>e,Q=>cout,CLK=>SHIZHONG); END ARCHITECTURE one;(三)时序仿真波形图。

四位串行进位加法器设计

四位串行进位加法器设计

四位串行进位加法器设计集成电路CAD课程设计报告四位串行加法器设计1串行进位加法器简介1.1加法器实现多为二进制数相加的电路,称为加法器。

根据进位方式不同,有串行进位加法器和超前进位加法器之分。

采用串行进位方式,优点是电路简单,连接方便;缺点是运算速度不高。

原理:把四个全加器(例如两片74LS183)依次级联起来,便可构成四位串行进位加法器。

因此四位串行进位加法器的设计可以分以下两步进行:(1)全加器设计;(2)将全加器级联,构成四位串行进位加法器(a)(b)图(1)四位串行加法器74831.2 图2为四位串行加法器7483逻辑图图(2)四位串行加法器2 四位串行进位加法器的设计实现:2.1 输出级电路设计与TTL电路兼容驱动10个TTL①输出高电平时|IoH|<=20uAV oHmin=4.4V②输出低点平时|IoH|<=20mAV oHmax=0.4V③输出级充放电时间tr=tf计算电路如图3所示①以15个PF的电容负载代替10个TTL电路来计算tr、tf②输入V为的前一级的输出被认为是理想的输出,即:ViL=Vss,ViH=Vdd③计算电流时,负载为电流负载,有拉电流的灌电流。

图3(1)CMOS N 管(W/L )N 的计算:当输入为高电平时(Vi=Vdd ),N 管导通后级TTL 电路有较大的灌电流输入,此时(表示成对称形式)使方括号中的值和栅电容Cox 及电子迁移率un 为最小值:o u t00f f[]200200)()(2V V V V V V C L W I tn i s tn oxN ndsn -----?=μm ax0m in 2ox SiOox t C εε=230m ax0m in-=TT n n μμ(2) CMOS P 管(W/P )p 的计算|IoH |<=20uA时有 V oHmin=4.4V tr=tf① 以Ioh<=20uA时V oHmin=4.4V 的条件计算最坏的情况下Vdd=4.5V ,V ohmin=4.4v,Vtp=0.8V ,经计算可得===?233034956.164m inn L W []202)()(2oh tp i dd tp i oxp p ohV V V V V V C L W I -----??? ??=μm ax 0m in 2ox SiOox t C εε=230m ax 0m in-=T T n p μμ??=== 21532227.7pL W②tr=tp 的条件计算:CMOS 中αp=αn所以2.2 输入级设计ddtp p V V =αddtn n V V =αddp L p V k C =τ()-???? ??--+--=p n n n n f arth t αααατ111.011)1.0(2 p pn n pn n p f r LW L W k k t t μμττ===?===233034956.164minn L W ??==275931138minn L W ??===?233034956.164minn L W输入电平Vih 可能为2.4V(1)拉管P2为了节省面积,同时又能使Vih 较快上升,取图4(2)CMOS 反向器的P1管此P1管应取内部基本反向器的尺寸(3)CMOS 反相器的N 管TTL 的输出电平在0.4-2.4之间 V1*=ViLmax+Vihmin=1.4V===?223312p L W==?231.546内p L W式中βk=kn/kp,Vdd=5V ,Vtn=0.7V ,Vi*=1.4V , βk=17.162.3 内部基本反相器中各MOS 管尺寸的计算内部反相器的负载电容:①本级漏极的PN 结电容Cpn ②下级的栅电容Cc1 ③连线杂散电容Cs Cpn+Cc1=10CsCs :铝线宽5um,长100um ,在场区上面,此铝线的电容为1K k V V k V p n TP DD p *I+++=+++=R TP DD TN R TN N V V V V k ββ)(??==??? ??2230W np R pl nl L L W μμβ??==22303345nlL W ??==?231.546plL W ??===?223312p L WCpn 和Cl :N 管其衬底是P 型,所以 NB=2?1016 cm-3 设结深Xi=0.5um R □=20Ω/□对于P 管Cpn=而CC1可以由:Cc1=10Cs-Cpn 求出。

基于FPGA的4位全加器实验

基于FPGA的4位全加器实验

试验一 4位全加器实验1.实验原理.实验原理全加器能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号。

该位的进位信号。

全加器的真值表如表1所示。

所示。

表1 全加器真值表全加器真值表输入输入输出输出AiBi Ci-1 Si Ci0 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 111114位全加器可以采用四个1位全加器级连成并行相加串行进位的加法器,位全加器级连成并行相加串行进位的加法器,实实现框图如图1所示,其中CSA 为1位全加器。

由图可以看出,每1位的进位信号送给下1位作为输入信号,因此,任1位的加法运算必须在低1位的运算完成之后才能进行,因此它的延迟非常可观,高速运算肯定无法胜任。

之后才能进行,因此它的延迟非常可观,高速运算肯定无法胜任。

图1 4位串行进位加法器实现框图位串行进位加法器实现框图在图1中,A 和B 为加法器的输入位串,对于四位全加器则位宽为4位,D 为加法器输出位串,和输入位串相同,C 为进位输入( Ci ) 或输出或输出( Co )。

实现代码为:实现代码为:module adder4(cout,sum,ina,inb,cin); output[3:0] sum; output cout;input[3:0] ina,inb; input cin;assign {cout,sum}=ina+inb+cin; endmodule2.实验目的.实验目的⒈熟悉⒈熟悉 ISE9.1 开发环境,掌握工程的生成方法;开发环境,掌握工程的生成方法; ⒉了解⒉了解 V erilog HDL 语言在语言在 FPGA 中的使用;中的使用; ⒊了解4位全加器的V erilog HDL 语言实现。

语言实现。

3.实验内容.实验内容⒈用V erilog HDL 语言设计4位全加器,进行功能仿真验证。

四位串行进位加法器设计教学文稿

四位串行进位加法器设计教学文稿

四位串行进位加法器设计集成电路CAD课程设计报告四位串行加法器设计1串行进位加法器简介1.1加法器实现多为二进制数相加的电路,称为加法器。

根据进位方式不同,有串行进位加法器和超前进位加法器之分。

采用串行进位方式,优点是电路简单,连接方便;缺点是运算速度不高。

原理:把四个全加器(例如两片74LS183)依次级联起来,便可构成四位串行进位加法器。

因此四位串行进位加法器的设计可以分以下两步进行:(1)全加器设计;(2)将全加器级联,构成四位串行进位加法器(a)(b)图(1)四位串行加法器74831.2 图2为四位串行加法器7483逻辑图图(2)四位串行加法器2 四位串行进位加法器的设计实现:2.1 输出级电路设计与TTL电路兼容驱动10个TTL①输出高电平时|IoH|<=20uA VoHmin=4.4V②输出低点平时|IoH|<=20mA VoHmax=0.4V③输出级充放电时间tr=tf计算电路如图3所示①以15个PF 的电容负载代替10个TTL 电路来计算tr 、tf ②输入V 为的前一级的输出被认为是理想的输出,即:ViL=Vss,ViH=Vdd③计算电流时,负载为电流负载,有拉电流的灌电流。

图3(1)CMOS N 管(W/L )N 的计算:当输入为高电平时(Vi=Vdd ),N 管导通后级TTL 电路有较大的灌电流输入,此时(表示成对称形式)使方括号中的值和栅电容Cox 及电子迁移率un 为最小值:o u t00f f[]200200)()(2V V V V V V C L W I tn i s tn ox N n dsn -----⎪⎭⎫ ⎝⎛=μm ax0m in 2ox SiO ox t C εε=(2) CMOS P 管(W/P )p 的计算|IoH |<=20uA时有 VoHmin=4.4Vtr=tf① 以Ioh<=20uA时VoHmin=4.4V 的条件计算最坏的情况下Vdd=4.5V,Vohmin=4.4v,Vtp=0.8V,230m ax 0m in -⎪⎪⎭⎫ ⎝⎛=T T n n μμ∆∆===⎪⎭⎫ ⎝⎛233034956.164m in n L W []202)()(2oh tp i dd tp i ox p p oh V V V V V V C L W I -----⎪⎭⎫ ⎝⎛=μm ax 0m in 2ox SiO ox t C εε=230m ax 0m in -⎪⎪⎭⎫ ⎝⎛=T T n p μμ经计算可得②tr=tp 的条件计算:CMOS 中αp=αn所以 ∆∆===⎪⎭⎫ ⎝⎛21532227.7pL W dd tp p V V =αddtn n V V =αdd p L p V k C =τ()⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡-⎪⎪⎭⎫ ⎝⎛--+--=p n n n n f arth t αααατ111.011)1.0(2p p n n p n n p f r L W L W k k t tμμττ⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛===⎪⎪⎭⎫ ⎝⎛∆∆===⎪⎭⎫ ⎝⎛233034956.164minn L W ∆∆==⎪⎭⎫ ⎝⎛275931138minn L W2.2 输入级设计输入电平Vih 可能为2.4V(1)拉管P2为了节省面积,同时又能使Vih 较快上升,取图4(2)CMOS 反向器的P1管此P1管应取内部基本反向器的尺寸∆===⎪⎭ ⎝236.164minn L ∆∆===⎪⎭⎫ ⎝⎛223312p L W∆∆==⎪⎭⎫ ⎝⎛231.546内p L W(3)CMOS 反相器的N 管TTL 的输出电平在0.4-2.4之间V1*=ViLmax+Vihmin=1.4V式中βk=kn/kp,Vdd=5V,Vtn=0.7V,Vi*=1.4V, βk=17.162.3 内部基本反相器中各MOS 管尺寸的计算 内部反相器的负载电容:①本级漏极的PN 结电容Cpn1K k V V k V p n TP DD p *I+++=+++=R TP DD TN R TN N V V V V k ββ)(∆∆=⎪⎭⎫ ⎝⎛=⎪⎭⎫ ⎝⎛2230W n p R plnl L L W μμβ∆∆==⎪⎭⎫ ⎝⎛22303345nl L W ∆∆==⎪⎭⎫ ⎝⎛231.546plL W ∆∆===⎪⎭⎫ ⎝⎛223312p L W②下级的栅电容Cc1③连线杂散电容CsCpn+Cc1=10CsCs :铝线宽5um,长100um ,在场区上面,此铝线的电容为Cpn 和Cl :N 管 其衬底是P 型,所以 NB=2⨯1016 cm-3设结深Xi=0.5um R □=20Ω/□对于P 管Cpn= )(10726.1100.19.31085.8101005C 14482014F t A s oxF SiO Al ---⨯=⨯⨯⨯⨯⨯⨯==-εεϕεε2021021C C p jn n jp Si qN C jpn ===++2l n iB n N N q k T =ϕ318õ10862.7R 1N -⨯==cm x q j μ28/10195.2cm F C p jN -+⨯=28/101396.1cm F C N jP -+⨯=Cp n Cn p+++而CC1可以由:Cc1=10Cs-Cpn求出。

EDA技术实验报告(1)

EDA技术实验报告(1)

实验一利用原理图输入法设计4位全加器一、实验目的:掌握利用原理图输入法设计简单组合电路的方法,掌握MAX+plusII的层次化设计方法。

通过一个4位全加器的设计,熟悉用EDA软件进行电路设计的详细流程。

二、实验原理:一个4位全加器可以由4个一位全加器构成,全加器的进位以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的低位进位输入信号cin相接。

1位全加器f-adder由2个半加器h-adder和一个或门按照下列电路来实现。

半加器h-adder由与门、同或门和非门构成。

四位加法器由4个全加器构成1234三、实验内容:1. 熟悉QuartusII软件界面,掌握利用原理图进行电路模块设计的方法。

QuartusII设计流程见教材第五章:QuartusII应用向导。

2.设计1位全加器原理图(1)生成一个新的图形文件(file->new->graphic editor)(2)按照给定的原理图输入逻辑门(symbol->enter symbol)(3)根据原理图连接所有逻辑门的端口,并添加输入/输出端口(4)为管脚和节点命名:在管脚上的PIN_NAME处双击鼠标左键,然后输入名字;选中需命名的线,然后输入名字。

(5)创建缺省(Default)符号:在File菜单中选择Create Symbol Files for Current File项,即可创建一个设计的符号,该符号可被高层设计调用。

3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器的缺省符号作为电路单元,设计4位全加器的原理图.4.新建波形文件(file->new->Other Files->Vector Waveform File),保存后进行仿真(Processing ->Start Simulation),对4位全加器进行时序仿真。

用原理图输入法设计四位全加器实验

用原理图输入法设计四位全加器实验

实验一用原理图输入法设计四位全加器
一实验目的
熟悉利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。

二实验原理
一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。

而1位全加器可以按照5.4节介绍的方法来完成。

三实验内容
分层设计:
1:先设计一个一位半加器,由一个2输入与门一个非门和一个异或门构成。

2个input a和b
2个输出co 和so
Co为进位
半加器原理图如下所示:
半加器仿真波形图如下图所示:
一个一位全加器分别由2个刚设计的半加器构成,2个半加器之间通过一个2输入或门连接。

一位全加器设计原理图如下:
一位全加器仿真波形如下图所示:
2,建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真、和硬件测试。

其中A0 A1 A2 A3 B0 B1 B2 B3为2个四位输入,4位输出D0 D1 D2 D3为4个全加器so输出,4个co 进位依次连接,最后只输出一个进位co,表示最后结果总进位。

四位全加器原理图如下所示:
四位全加器波形图如下所示:
四实验总结
通过本次实验,我掌握了Quartus II 的原理图输入方法设计简单组合电路和层次化设计的方法和详细流
程。

实验一四位串行进位加法器的设计实验报告[详细讲解]

实验一四位串行进位加法器的设计实验报告[详细讲解]

实验一四位串行进位加法器的设计一、实验目的1.理解一位全加器的工作原理2.掌握串行进位加法器的逻辑原理3.进一步熟悉Quartus软件的使用,了解设计的全过程,二、实验内容1.采用VHDL语言设计四位串行进位的加法器2.采用画原理图的方法设计四位串行进位加法器三、实验步骤1、使用VHDL语言设计1.打开File—>New Project Wizard输入文件名adder4保存在D盘内,打开File—>New—>VHDL File,从模版中选择库的说明,use 语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后保存、编译。

打开File—>New—>Other File—>V ectorW aveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。

从Assignments—>Settings—>Simulator Settings—>Functional然后Processing—>Generate Functional Simnlation Netlist —>确定。

选择Start Simulation保存最后的波形图,打开File—>close 关闭工程。

底层文件:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY fadder ISPORT(a, b,cin : IN STD_LOGIC;s, co : OUT STD_LOGIC);END fadder;ARCHITECTURE arc1 OF fadder ISBEGINs<=a xor b xor cin;co<=((a xor b)and cin)or(a and b);END arc1;顶层文件:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY adder4 ISPORT(c0: IN STD_LOGIC;a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0);s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);c4 : OUT STD_LOGIC);END adder4;ARCHITECTURE arc2 OF adder4 ISCOMPONENT fadderPORT(a, b,cin : IN STD_LOGIC;s, co : OUT STD_LOGIC);END COMPONENT;SIGNAL carry : STD_LOGIC_VECTOR(3 DOWNTO 1);BEGINu1 : fadder PORT MAP (a=>a(0), b=>b(0),cin=>c0,s=>s(0),co=>carry (1));u2 : fadder PORT MAP (a=>a(1),b=>b(1),cin=>carry(1),s=>s(1),co=>carry (2));u3 : fadder PORT MAP (a=>a(2),b=>b(2),cin=>carry(2),s=>s(2),co=>carry (3));u4 : fadder PORT MAP(a=>a(3),b=>b(3),cin=>carry(3),s=>s(3),co=>c4);END arc2;2、使用原理图的方法设计打开File—>New Project Wizard输入文件名adder4保存在D盘内,打开File—>New—>VHDL File,从模版中选择库的说明,use 语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后选择File-->Create/Update-->Create Symbol Files for Current File,选择File-->New-->Other File-->V ector W aveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一四位串行进位加法器的设计
一、实验目的
1.理解一位全加器的工作原理
2.掌握串行进位加法器的逻辑原理
3.进一步熟悉Quartus软件的使用,了解设计的全过程,
二、实验容
1.采用VHDL语言设计四位串行进位的加法器
2.采用画原理图的方法设计四位串行进位加法器
三、实验步骤
1、使用VHDL语言设计
1.打开File—>New Project Wizard输入文件名adder4保存在D 盘,打开File—>New—>VHDL File,从模版中选择库的说明,use 语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后保存、编译。

打开File—>New—>Other File—>Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。

从Assignments—>Settings—>Simulator Settings
—>Functional
然后Processing—>Generate Functional Simnlation Netlist —>确定。

选择Start Simulation保存最后的波形图,打开File—>close 关闭工程。

底层文件:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY fadder IS
PORT
(
a, b,cin : IN STD_LOGIC;
s, co : OUT STD_LOGIC
);
END fadder;
ARCHITECTURE arc1 OF fadder IS
BEGIN
s<=a xor b xor cin;
co<=((a xor b)and cin)or(a and b);
END arc1;
顶层文件:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY adder4 IS
PORT
(
c0: IN STD_LOGIC;
a,b : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
s : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
c4 : OUT STD_LOGIC
);
END adder4;
ARCHITECTURE arc2 OF adder4 IS
COMPONENT fadder
PORT
(
a, b,cin : IN STD_LOGIC;
s, co : OUT STD_LOGIC
);
END COMPONENT;
SIGNAL carry : STD_LOGIC_VECTOR(3 DOWNTO 1); BEGIN
u1 : fadder PORT MAP (a=>a(0), b
=>b(0),cin=>c0,s=>s(0),co=>carry (1));
u2 : fadder PORT MAP (a=>a(1),
b=>b(1),cin=>carry(1),s=>s(1),co=>carry (2));
u3 : fadder PORT MAP (a=>a(2),
b=>b(2),cin=>carry(2),s=>s(2),co=>carry (3));
u4 : fadder PORT MAP
(a=>a(3),b=>b(3),cin=>carry(3),s=>s(3),co=>c4);
2、使用原理图的方法设计
打开File—>New Project Wizard输入文件名adder4保存在D盘,打开File—>New—>VHDL File,从模版中选择库的说明,use语句的说明,实体的说明,结构体的说明,编写VHDL代码,然后选择File-->Create/Update-->Create Symbol Files for Current File,选择File-->New-->Other File-->Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。

从Assignments —>Settings—>Simulator Settings—>Functional
然后Processing—>Generate Functional Simnlation Netlist —>确定。

选择Start Simulation保存最后的波形图,打开File—>close 关闭工程。

文件:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY fadder IS
PORT
(
Cin,a, b : IN STD_LOGIC;
s, co : OUT STD_LOGIC
);
ARCHITECTURE arc1 OF fadder IS BEGIN
s<=a xor b xor cin;
co<=((a xor b)and cin)or(a and b); END arc1;
原理图:
四、实验现象
五、实验体会与收获
问题:Error (10500): VHDL syntax error at adder4.vhd(10) near text ")"; expecting an identifier, or "constant", or "file", or "signal", or "variable"
Error (10500): VHDL syntax error at adder4.vhd(19) near text
"COMPONENT"; expecting ";", or an identifier ("component" is a reserved keyword), or "entity"
Error (10396): VHDL syntax error at adder4.vhd(27): name used in construct must match previously specified name "adder4"
Error (10523): Ignored construct adder4 at adder4.vhd(3) due to previous errors
解决办法:
c4 : OUT STD_LOGIC;
);改为:
c4 : OUT STD_LOGIC);
OUT STD_LOGIC后面无;
收获:第二种方法中只建立熟悉理解一位全加器的工作原理,掌握串行进位加法器的逻辑原理。

相关文档
最新文档