四位串行进位加法器设计
- 格式:doc
- 大小:302.00 KB
- 文档页数:19
实验一四位串行进位加法器的设计一、实验目的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 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-->Vector Waveform File,查找引脚,从Edit中选择End Time 输入40、ns 保存。
四位加法器实验报告1.实验目的:掌握组合逻辑电路的基本分析与设计方法;理解半加器和全加器的工作原理并掌握利用全加器构成不同字长加法器的各种方法;学习元件例化的方式进行硬件电路设计;学会利用软件仿真实现对数字电路的逻辑功能进行验证和分析。
2.实验仪器:数字逻辑实验箱3.实验内容:A. 设计实现逐次进位加法器,进行软件仿真并在实验平台上测试。
B. 设计实现超前进位加法器,进行软件仿真并在实验平台上测试。
C.使用VHDL自带加法运算实现一个4位全加器。
4.实验代码:A. 逐次进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity FDFA is#定义串行加法器总体接口port(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 struct of FDFA iscomponent fadder is#基于一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end component fadder;signal c0,c1,c2:std_logic;beginU0:fadder port map(A(0),B(0),Ci,S(0),c0);U1:fadder port map(A(1),B(1),c0,S(1),c1);U2:fadder port map(A(2),B(2),c1,S(2),c2);U3:fadder port map(A(3),B(3),c2,S(3),Co);end architecture struct;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end entity;architecture func of fadder isbeginco<=(a and b) or (ci and ( a xor b));s<=a xor b xor ci;end architecture func;B. 超前进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LAC is#定义超前进位加法器总体接口port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end entity;architecture struct of LAC issignal wirep, wireg:std_logic_vector(3 downto 0);signal wirec:std_logic_vector(2 downto 0);component fadder is#基于一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end component fadder;component Ker is#Ker总理进位传递信号P与进位产生信号G,以及进位信号C port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));end component Ker;beginU0:fadder port map(Ai=>A(0),Bi=>B(0),c=>Ci,si=>S(0),pi=>wirep(0),gi=>wireg(0));U1:fadder port map(Ai=>A(1),Bi=>B(1),c=>wirec(0),si=>S(1),pi=>wirep(1),gi=>wireg(1));U2:fadder port map(Ai=>A(2),Bi=>B(2),c=>wirec(1),si=>S(2),pi=>wirep(2),gi=>wireg(2));U3:fadder port map(Ai=>A(3),Bi=>B(3),c=>wirec(2),si=>S(3),pi=>wirep(3),gi=>wireg(3));L:Ker port map(ci=>Ci,P(0)=>wirep(0),P(1)=>wirep(1),P(2)=>wirep(2),P(3)=>wirep(3),G(0)=>wireg(0),G(1)=>wireg(1),G(2)=>w ireg(2),G(3)=>wireg(3),C(0)=>wirec(0),C(1)=>wirec(1),C(2)=>wirec(2),C(3)=>Co);end architecture struct;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end entity;architecture func of fadder isbeginpi<=Ai xor Bi;gi<=Ai and Bi;si<=Ai xor Bi xor c;end architecture func;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Ker is#定义Ker port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));architecture func of Ker isbeginC(0)<=G(0) or ( P(0) and ci );C(1)<=G(1) or ( P(1) and G(0) ) or ( P(1) and P(0) and ci );C(2)<=G(2) or ( P(2) and G(1) ) or ( P(2) and P(1) and G(0) ) or ( P(2) and P(1) and P(0) and ci );C(3)<=G(3) or ( P(3) and G(2) ) or ( P(3) and P(2) and G(1) ) or ( P(3) and P(2) and P(1) and G(0) ) or ( P(3) and P(2) and P(1) and P(0) and ci );end architecture func;C. VHDL自带加法运算实现4位全加器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity VHDLAD is#定义VHDL自带加法运算实现4位全加器总体接口,如果加和比原来和少,则会进位port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end VHDLAD;architecture bhv of VHDLAD issignal D:std_logic_vector(3 downto 0);beginprocess(A,B,Ci,D)beginD <= A + B;if(Ci = '1') thenD <= D + 1;end if;if(D >= A) thenS <= D;Co <= '0';elseS <= D;Co <= '1';end if;end process;end bhv;5.软件仿真结果说明下面图片每幅有14条信号线,从上到下依次为A的低位到高位(共4条)、B的低位到高位(共4条)、输入的进位信号、和的低位到高位(共4条)、输出进位信号。
《EDA》课程设计题目:四位加法器设计学号: 200906024245姓名:梁晓群班级:机自094指导老师:韩晓燕2011年12月28日—2011年12月30日目录摘要----------------------------------3EDA简介---------------------------3概述----------------------------------4 1.1目的与要求-------------------4 1.2实验前预习-------------------41.3设计环境----------------------5四位全加器的设计过程----------52.1 半加器的设计-----------------62.2一位全加器的设计-----------92.3四位全加器的设计----------11收获与心得体会----------------13摘要本文主要介绍了关于EDA技术的基本概念及应用,EDA设计使用的软件Quartus7.2的基本操作及使用方法,以及半加器、1位全加器和四位全加器的设计及仿真过程。
EDA简介EDA的概念EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作.EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。
logisim1位全加器构成4位加法器的设计过程描述-回复设计一个4位加法器的过程主要包括以下步骤:设计1位全加器电路、标准化与调整、连接4位全加器、测试和验证。
1. 设计1位全加器电路首先,我们需要设计一个1位全加器电路。
全加器是将两个输入位和一个进位位相加得出和位和进位位的电路。
全加器电路输入位为A、B和Cin,输出位为S和Cout,其中S是和位,Cout是进位位。
1位全加器的真值表如下:A B Cin S Cout0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1根据真值表,我们可以得到以下逻辑方程:S = A xor B xor CinCout = (A and B) or (Cin and (A xor B))其中,xor表示异或运算。
2. 标准化与调整通过使用集成电路、逻辑门和触发器等电子器件,我们可以将1位全加器电路中的逻辑方程实现为电路图。
在实现过程中,需要注意实际电子器件的特性,如输入电平、输出电平和连接方式等。
可以使用逻辑仿真软件(如Logisim)或使用手工逻辑门设计。
3. 连接4位全加器根据4位加法器的特征,我们需要将四个1位全加器相连来实现4位加法。
具体连接方式如下:- 输入的A和B连接到每一个1位全加器的A位;- 进位位Cin连接到第一个1位全加器的Cin输入,并将之后的每个1位全加器的Cin连接到上一个1位全加器的Cout输出;- 第一个1位全加器的Cout输出连接到第二个1位全加器的Cin输入,以此类推,直到最后一个1位全加器的Cout输出。
4. 测试和验证使用逻辑仿真软件或实际搭建电路进行测试和验证。
输入四个4位二进制数并检查输出是否符合预期结果。
如果输出结果与预期一致,则说明电路设计正确,否则需要检查和修正电路中的错误。
总结:通过以上的步骤,我们可以设计一个4位加法器电路。
4位加减法并行运算电路(包括拓展8位)二○一二~二○一三学年第一学期电子信息工程系脉冲数字电路课程设计报告书班级:电子信息工程(DB)1004班课程名称:脉冲数字电路课程设计学时: 1 周学生姓名:学号:指导教师:廖宇峰二○一二年九月一、设计任务及主要技术指标和要求➢ 设计目的1. 掌握加/减法运算电路的设计和调试方法。
2. 学习数据存储单元的设计方法。
3. 熟悉集成电路的使用方法。
➢ 设计的内容及主要技术指标1. 设计4位并行加/减法运算电路。
2. 设计寄存器单元。
3. 设计全加器工作单元。
4. 设计互补器工作单元。
5. 扩展为8位并行加/减法运算电路(选作)。
➢ 设计的要求1. 根据任务,设计整机的逻辑电路,画出详细框图和总原理图。
2. 选用中小规模集成器件(如74LS 系列),实现所选定的电路。
提出器材清单。
3. 检查设计结果,进行必要的仿真模拟。
二、方案论证及整体电路逻辑框图➢ 方案的总体设计步骤一因为参与运算的两个二进制数是由同一条数据总线分时串行传入,而加法运算的时候需要两个数的并行输入。
所以需要两个寄存器分别通过片选信号,依次对两个二进制进行存储,分别在寄存器的D c B A Q Q Q Q 端口将两个4位二进制数变成并行输出; 步骤二 为了便于观察置入两个4位二进制数的数值大小,根据人们的习惯,在寄存器的输出端,利用两个七段译码器将二进制数转化为十进制数; 步骤三通过开关选择加/减运算方式;步骤四若选择加法运算方式,对所置入数送入加法运算电路进行运算;即:9)1001()0110()0011(222==+ 【十进制:963=+】又或:15)1111()0100()1011(222==+ 【十进制:15511=+】步骤五若选择减法运算方式,对所置入数送入减法运算电路进行运算;即:2)0010()0101()0111(222==- 【十进制:257=-】又或:10)1010()1101()0011(222=-=- 【十进制:10133-=-】步骤六为了便于观察最后的计算结果,以及对最后的计算结果的正确性能做出快速的判断,根据人们的习惯,同上,将计算出的结果输入七段译码器进行译码显示。
试验一 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求出。
串行加法器简介串行加法器是一种基本的数字加法电路,用于将两个二进制数进行相加。
它的原理是将两个二进制数的每一位进行逐位相加,并根据进位信息将结果传递到下一位的相加操作中,最终得到相加后的结果。
串行加法器的主要优点是在每一位的计算中,只需要一个全加器,因此可以通过级联多个全加器来实现多位加法。
同时,由于计算过程是逐位进行的,串行加法器可以处理非常大的数字。
原理串行加法器由一个或多个全加器组成。
全加器是一个组合逻辑电路,具有三个输入和两个输出。
输入包括两个二进制位的值以及上一位的进位信号,输出是当前位的和值和进位信号。
假设我们要相加的两个二进制数为A和B,并且它们的长度为n位。
首先,我们将A和B的最低位输入到第一个全加器中,并将进位信号设置为0。
全加器通过逻辑门电路计算出当前位的和值和进位信号,并将和值输出。
接下来,将A和B的下一位输入到第二个全加器中,并将上一个全加器的进位信号作为输入。
重复这个过程,直到最高位的全加器计算完成。
最终,我们将所有全加器的和值连结在一起,得到最终的相加结果。
示例现在我们来看一个4位串行加法器的示例。
假设我们要相加的两个二进制数为A=1011和B=0110。
它们的长度都是4位。
首先,我们将A和B的最低位输入到第一个全加器中,并将进位信号设置为0。
根据逻辑门电路的计算规则,我们可以得到第一位的和值S1和进位信号C1。
此时,S1=1和C1=0。
接下来,将A和B的下一位输入到第二个全加器中,并将C1作为进位信号输入。
根据逻辑门电路的计算规则,我们可以得到第二位的和值S2和进位信号C2。
此时,S2=0和C2=1。
重复这个过程,直到最高位的全加器计算完成。
最终,我们可以得到相加后的结果为S=10001。
应用串行加法器在计算机体系结构中被广泛应用。
它可以用于实现各种数字逻辑操作,例如整数相加、浮点数相加等。
串行加法器的设计是计算机体系结构中的基础知识,理解串行加法器的原理和工作方式对于理解计算机的运算过程非常重要。
四位加法器一、实验要求掌握组合逻辑电路的基本分析和设计方法;理解半加器和全加器的工作原理,用硬件描述语言实现半加器和全加器的门级设计,并使用自己设计的半加器组件构建全加器;学会利用软件仿真和远程实验系统实现对数字电路的逻辑功能进行验证和分析。
二、实验原理半加器(Half Adder)是不考虑来自低位的进位信号,其输入为 1 bit 的被加数和加数,输出为两位:本位的和以及向高一位的进位。
考虑低位进位的1位二进制加法器称为全加器(Full Adder),其输入为被加数加数以及低一位来的进位,输出为本位的和及向高一位的进位。
一位全加器可以由两个半加器及一个或门连接而成,半加器和全加器逻辑结构分别如图所示。
利用全加器级联可以构成多位二进制加法器,下图所示为四位二进制加法电路,低一位的进位输出作为高一位的进位输入。
这种结构称为逐次进位加法器(Ripple Adder)。
由于逐次进位加法器的进位信号是在各级间逐级传递的,所以高位的输出必须等低位的进位输入稳定后才有效,这就使得逐次进位加法器的延时比较大,速度比较慢。
为了提高加法器的运算速度,需要对加法器的结构进行改进。
引入进位传递信号和进位产生信号的概念,有{P n=A n⊕B n G n=A n B n利用这两个信号,可以把和信号与进位输出信号表示为{S n=P n⊕C n−1 C n=P n C n−1+G n根据上面给出的进位输出表达式,可得C0=G0+ P0C−1C1=G1+ P1C0=G1+ P1G0+P1P0C−1C2=G2+ P2C1=G2+ P2G1+P2P1G0+ P2P1P0C−1C3=G3+ P3C2=G3+ P3G2+P3P2G1+ P3P2P1G0+ P3P2P1P0C−1由于各级的进位传递信号和进位产生信号是同时生成的,所以各级的进位输出信号不再需要等待低一位的进位输入信号,从而大大减小了整个电路的延时,提高的加法器的运算速度。
四位二进制加法器课程分析研究报告[1]————————————————————————————————作者:————————————————————————————————日期:课题名称与技术要求课题名称:四位二进制加法器设计技术要求:1)四位二进制加数与被加数输入2)二位数码管显示摘要本设计通过八个开关将A3,A2,A1,A0和B3,B2,B1,B0信号作为加数和被加数输入四位串行进位加法器相加,将输出信号S3,S2,S1,S0和向高位的进位C3通过译码器Ⅰ译码,再将输出的Y3,Y2,Y1,Y0和X3,X2,X1,X0各自分别通过一个74LS247译码器,最后分别通过数码管BS204实现二位显示。
本设计中译码器Ⅰ由两部分组成,包括五位二进制译码器和八位二进制输出器。
信号S3,S2,S1,S0和向高位的进位C3输入五位二进制-脉冲产生器,将得到的n(五位二进制数码对应的十进制数)个脉冲信号输入八位二进制输出器,使电路的后续部分得以执行。
总体论证方案与选择设计思路:两个四位二进制数的输入可用八个开关实现,这两个二进制数经全加器求和后最多可以是五位二进制数。
本题又要求用两个数码管分别显示求和结果的十进制十位和各位,因此需要两个译码器Ⅱ分别译码十位和个位。
综上所述,需要设计一个译码器Ⅰ,能将求和得到的五位二进制数译成八位,其中四位表示这个五位二进制数对应十进制数的十位,另四位表示个位。
而译码器Ⅱ有现成的芯片可选用,此处可选74LS247,故设计重点就在译码器Ⅰ。
加法器选择全加器:能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数相加,求得和及进位的逻辑电路称为全加器。
或:不仅考虑两个一位二进制数相加,而且还考虑来自低位进位数相加的运算电路,称为全加器。
1)串行进位加法器构成:把n位全加器串联起来,低位全加器的进位输出连接到相邻的高位全加器的进位输入。
优点:电路比较简单。
最大缺点:进位信号是由低位向高位逐级传递的,运算速度慢。
集成电路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 求出。
下面具体计算N 管和P 管的尺寸。
N 管单位尺寸电阻为 ,总电阻为 ,)(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 +++P管单位尺寸电阻为,总电阻为。
总电容C=Cpn+Cc1+Cs=Cpn+Cc1Cc1=(Wn+Wp)LCox=10Cs-aWnCpnaWn图 5a为有源区宽度,因为最小孔为3A*3△,孔与等晶栅的间距为2△,孔与有源区边界的间距为1△(1△=1.5um ), 所以a=6△=9um 上升时间:tr= 下降时间:tf= Wp=kWn2.4 内部逻辑门设计N 管放大三倍()LRpC rpWn Wp LCox Wp=+()L RnC rn Wn Wp LCoxWn=+k r r W Wp nn pnp ===μμ∆∆==⎪⎭⎫⎝⎛23135.46p L W ∆∆==⎪⎭⎫⎝⎛214321nL W ∆∆==⎪⎭⎫⎝⎛242363n L W ∆∆==⎪⎭⎫⎝⎛23135.46pL W图62.5 缓冲级的设计(1)输入缓冲级图7 输入级缓冲器M1为输入级,M2为内部门,M3为缓冲器 三输入与非门尺寸:M3负载的栅面积:A T 1M1M2M3单,内N n L W L W ⎪⎭⎫⎝⎛=⎪⎭⎫ ⎝⎛3'单,内P '⎪⎭⎫⎝⎛=⎪⎭⎫ ⎝⎛L W L W pM2负载的栅面积:图8扇出系数N= N=加入一级缓冲后,管子逐级放大的尺寸为=2.597M3管子尺寸为=36△/2△=79△/2△()LW W S P N ''+=单单N k ⎪⎭⎫ ⎝⎛=⎪⎭⎫ ⎝⎛L W L W P ()LW W S P N 内内+=2N P 530k 230μμ==下级栅的面积前级等效反相器栅的面积[4*Wn Wp L][4*(3Wn Wp )]6.4889[Wn Wp L]Wn +Wp +==+(+)单单(内内)(单单)W Wn3n L L()=()W W p3p L L()=(内部反相器的尺寸为n2=21/3=14△/2△p2=46.5/3=31△/2△(2)输出缓冲级 缓冲级M1的计算:图9由 及N 的值可得2.6 输入保护电路的设计二极管的有效面积取500μm2W L ()W L ()M0 M1 M2()()2.2402=++=LW W L W W N M P N M P N N 1内⎪⎭⎫ ⎝⎛=⎪⎭⎫ ⎝⎛L W L W M 内⎪⎭⎫ ⎝⎛L W ∆∆=⎪⎭⎫⎝⎛2691n L W ∆∆=⎪⎭⎫⎝⎛21531P L W 方方数方1030300R R Si-Poly ===图10工程估算从输入到输出的所有各支路中,只有C3端加入了缓冲级因而增加了延时与功耗,因此估算考虑最坏的情况(1)模型简化四个三输入与非门中只有一个可被选通并工作,而另三个不工作,所以在C3端经三级反相器后,将不工作的三输入与非门等效为负载电容CL1,与非门的两个输入接高电平,只将C3端信号加在反相器上,因此计算X点之后的部分.X点以前的部分CS这一条之路,最后将结果乘以3倍就可以了.图 11图 12(2)功耗计算静态功耗.瞬态功耗,交变功耗,只考虑瞬态功耗 PT=CL 总fC(VOH -VOL)VDD C L 总出门三输入与非门LPN L C C C ∑+∑+∑=14路三输入与非门的栅作为前级负载,C OX 考虑最坏情况,故取(3)延迟估算定义每级反相器,充电时间常数为放电时间常数为:于是,充电时间放电时间)(21.6)(.1栅电容PF LC W W C OX P N MAX L =+∑=PFC t L MIN OX 15,.=∑PF C aW C aW C aW C aW C N jP P P jN N N jP P P jN N PN 7175.6)(=∑+∑=+∑=∑++++设工作频率MHzf C 30=mwV V V f C P DD OL OH C L T 95.20)(≈-=总)(TP DD P Lr V V k C -=τ)(TNDD N Lf V V k C -=τ)]1()1[(12u arth u t r r -+-=τu 为从低电平充到高电平的归一化电平,u ’为从高电平放电到低电平的归一化电平。
估算中取值一级反相器的延时为:电路模拟(1)指标要求:输出级 tr=tf(2)指标要求:tpHL<25 ns tpLH=25 ns tpLH <25 ns(3)指标要求:f work =30 MHz 两个译码器的功耗 P D,max =150 mW即单译码器P D,max =75 mW)]'1()1'[(12u arth u t f f -+-=τ1.01=u 9.02=u 1.0'1=u 9.0'2=u ]9.0)19.0)[(11(21)]1()1)[((21)(2112arth k k V V C u th a u t t t n p T DB L r f r PHL PLH pd +-+-=-+-+=+=ττ∑===61536.10i pdi pd nst t3 版图设计版图设计采用了3um,CMOS设计规则。
4 版图检查1.版图设计规划检查(DRC)2.电路网表匹配(LVS)检查。
管脚排列顺序,使其均匀分布四周考虑了散热原则,两个译码分到中轴线两侧布线紧凑,缩短布线长度,减少高晶硅最小面积大面积接电源。