文档介绍:EDA—VHDL的四位全加器EDALVHDL的四位全加器设计1设计分析全加器是能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号的加法电路。其真值表如表1所示:表1全加器真值表输入输出abcinscout00000010101001011001001100110**********根据真值表可得出下列表达式:根据以上表达式,可以用数据流方式设计出1位全加器。要设计的是4位全加器,这里采用串行进位来设计。先设计4个1位的全加器,然后将低位的进位输出与高位的进位输入相连,将要进行加法运算的两个4位数的每一位分别作为每一个1位全加器的输入,进行加法运算,所有的1位全加器的输出组成一个4位数,即输入的两个4位数之和,最高位的全加器产生的进位输出即两个4位数求和的进位输出。4位全加器的原理图如图1所示:()()cinbaabcinbabaababcincinbabcinacinabcoutÅ+=++=+++=()()()()cinbacinbacinbacinabbacinbabaabcincinbacinbacinbasÅÅ=Å+Å=+++=+++=图14位全加器原理图根据图1所示,可以采用结构化描述方式设计4位全加器。2程序设计设计的程序如下:LIBRARYIEEE;;;;ENTITYadder1IS--1位全加器设计PORT(a,b,cin:INSTD_LOGIC;s,cout:OUTSTD_LOGIC);ENDadder1;ARCHITECTUREdataflowOFadder1IS--用数据流方式设计1位全加器SIGNALtmp:STD_LOGIC;--用tmp表示abBEGINtmp=aXORbAFTER10ns;s=tmpXORcinAFTER10ns;cout=(aANDb)OR(tmpANDcin)AFTER20ns;ENDdataflow;LIBRARYIEEE;;;;a(0)b(0)s(0)cina(1)b(1)s(1)a(2)b(2)s(2)a(3)b(3)s(3)coutcoutcoutcoutcincincin0ENTITYadder4IS--4位全加器设计PORT(a,b:INSTD_LOGIC_VECTOR(3DOWNTO0);cin:INSTD_LOGIC;s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);cout:OUTSTD_LOGIC);ENDadder4;ARCHITECTUREstructuralOFadder4I