实验一四位串行进位加法器的设计实验报告
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位全加器实验

试验一 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位全加器,进行功能仿真验证。
4位加法器实验报告

硬件描述语言实验题目:四位全加器学院数学与计算机学院学科门类xxxxxxxxxx专业xxxxxxxxxx学号姓名x指导教师xxxx20xx年x 月xx日1、实验目的:练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言行为描述的编写方法。
2、实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
3、实验要求:设计一个四位加法器,其引脚及其功能如下表。
4、实验步骤:(1)用RTL描述方式描述4位加法器①RTL描述方式是一种明确规定寄存器描述的方法,它要求在描述时要么采用寄存器硬件的一一对应的直接描述,要么采用寄存器之间的功能描述。
RTL描述方式可以进行逻辑综合,这是其他描述方式所不具备的特点。
②编辑代码这种描述方法详细描述了加法器的计算过程,即写出了每一位的计算和进位方法。
模块内部(构造体说明部分)需要定义三个连接线,定义语句为:signal c0,c1,c2 : std_logic代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(a,b:in std_logic_vector(3 downto 0);ci:in std_logic;s:out std_logic_vector(3 downto 0);co:out std_logic);end entity;architecture rtl of adder4 issignal c0,c1,c2:std_logic;s(0) <= a (0) xor b(0) xor ci;c0<= (a(0) and b(0)) or (a(0) and ci) or (b(0) and ci);s(1) <= a (1) xor b(1) xor c0;c1<= (a(1) and b(1)) or (a(1) and c0) or (b(1) and c0);s(2) <= a (2) xor b(2) xor c1;c2<= (a(2) and b(2)) or (a(2) and c1) or (b(2) and c1);s(3) <= a (3) xor b(3) xor c2;co<= (a(3) and b(3)) or (a(3) and c2) or (b(3) and c2);end architecture rtl;③仿真结果(2)用行为描述方式描述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求出。
设计一个 4 位超前进位加法器(数字逻辑课设)

c[2]=(p[2]&p[1]&p[0]&ci)|(p[2]&p[1]&g[0])|(p[2]&g[1])|g[2],
c[3]=(p[3]&p[2]&p[1]&p[0]&ci)|(p[3]&p[2]&p[1]&g[0])|(p[3]&p[2]&g[1])|(p[3]&g[2])|g[3];
代码如下: add.v
`timescale 1ns/1ps
module add(input [3:0]a,input [3:0]b,input ci,output [3:0]s,output co); //定义所需变量
wire [3:0] p, g; //进位传递函数p,进位产生函数g
wire [3:0] c; //进位函数
设计要求:在这个设计中,你需要使用 Verilog 代码设计一个 4 位的超前进位加法器。这个 4 位超前进位加法器可以完成对两个 4 位二进制数的相加。完成设计后,你还需要设计测试程序(test bench)来验证你的设计。你的测试程序需要考虑到所有可能的输入情况。
设计思路:
因为各进位的产生依赖于低位的进位,所以运算速度较慢。为了提高速度,必须设法使较低位的进位信号越过中间各级直接决定较高位的进位输出,设计Ai和Bi分别表示第i位的被加数和加 数,Ci-1为来自第i-1位全加器的进位,令Pi=Ai^Bi,Gi=Ai&Bi函数表达式为:
Co=PoCo+Go
C1=P1Co+G1
C2=p2C1+G2
四位串行进位加法器设计

集成电路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 ax0m 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(2p 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 求出。
eda四位全加器实验报告

eda四位全加器实验报告EDA实验报告(四位全加器的实现)实验一四位全加器的实现一、实验目的1、掌握Quartus9.0图形编辑输入法2、掌握Quartus环境下文件的编译、仿真及下载方法3、了解VHDL语言的设计流程4、掌握quartus环境下VHDL的使用方法二、实验内容1、用图形/原理图法实现4位全加器。
2、用VHDL语言实现4位全加器,必须使用元件例化。
3、仿真并通过。
3、下载到实验板,并验收三、实验步骤1、图形编辑发设计4位加法器(1)新建图形文件,设计一位全加器,逻辑电路图如下图(图1-1)所示。
图1-1(2)将设计好的一位全加器进行例化,操作为file?Create/Update?Create symbol files for currentfile,完成此操作后会在元器件符号表里找到刚刚做好的一位全加器。
(3)再新建一个图形文件,用四个已经做好的一位全加器级联成一个四位全加器,其逻辑原理图如图1-2所示。
编辑好后保存文件,在文件列表里找到该文件,右键?Set as Top-level Entity,将其设置为顶层文件,点击编译按钮就行编译。
1图1-2(4)新建波形文件,赋予每个输入端口某种输入信号,保存波形文件,进行功能仿真,观察输出端波形与输入信号关系是否正确。
若不正确,查找问题所在并解决问题;若正确,则进行管脚分配,分配完毕后再编译一次使分配生效,连接DE2开发板到电脑,将文件下载到开发板进行验证。
2、用VHDL语言设计4位加法器(1)新建一个VHDL源文件,文件名为adder1.vhd,使用VHDL 实现一位全加器,其VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adde1r ISPORT(A,B,Ci:IN STD_LOGIC;S,Co:OUT STD_LOGIC);END adder1;ARCHITECTURE qadder OF adder1 ISBEGINPROCESS(A,B,Ci)VARIABLE n1,n2,n3:STD_LOGIC;BEGINn1:=A AND B;n2:=A XOR B;2n3:=Ci AND n2;Co=n3 OR n1;S=n2 XOR Ci;END PROCESS;END qadder;(2)再新建一个VHDL源文件,命名为adder4.vhd,在这里将adder一位全加器例化并使用它,做成四位全加器,代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(A,B:in std_logic_vector(3 downto 0); S:out std_logic_vector(3 downto 0);Co:out std_logic;Ci:in std_logic);end adder4;architecture adder_4 of adder4 iscomponent adderport(A:in std_logic;B:in std_logic;Ci:in std_logic;Co:out std_logic;S:out std_logic);end component;signal c1,c2,c3:std_logic;beginu1:adder port map(A(0),B(0),Ci,c1,S(0)); u2:adder port map(A(1),B(1),c1,c2,S(1)); u3:adder port map(A(2),B(2),c2,c3,S(2)); u4:adder port map(A(3),B(3),c3,Co,S(3)); end adder_4;(3)保存文件后将adder4设置为顶层文件并编译,编译通过后按照与图形编辑发一样的仿真、管脚分配方式进行操作,最后下载到开发板验证四、实验现象两种方式实现的四位加法器下载到DE2开发板后都可正常工作,其中使用SW0作为低位的进位,SW4~1作为数据B,SW8~5作为数据A,LDG3~0作为输出的结果,LEDG4作为输出的进位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 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 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); 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-->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 fadder IS
PORT
(
Cin,a, b : 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;
原理图:
四、实验现象
五、实验体会与收获
问题:Error (10500): VHDL syntax error at (10) near text ")"; expecting an identifier, or "constant", or "file", or "signal", or "variable"
Error (10500): VHDL syntax error at (19) near text "COMPONENT"; expecting ";", or an identifier ("component" is a reserved keyword), or "entity"
Error (10396): VHDL syntax error at (27): name used in construct must match previously specified name "adder4"
Error (10523): Ignored construct adder4 at (3) due to previous errors
解决办法:
c4 : OUT STD_LOGIC;
);改为:
c4 : OUT STD_LOGIC);
OUT STD_LOGIC后面无;
收获:第二种方法中只建立熟悉理解一位全加器的工作原理,掌握串行进位加法器的逻辑原理。