EDA技术实验报告题目实验一、8位加法器的设计学生姓名学号10100140所在学院物理与电信工程学院专业班级物理101班1一、实验原理基本原理:调用库(USEIEEE.STD_LOGIC_ARITH.ALL)直接进行算术运算,以实现加法器功能,从而不用去编写全加器,即程序尽量简单化。并用函数CONV_INTEGER(D)把输入的8位二进制数转换成整形数,再相加以十进制数在数码管上显示出来。加法信号由(ST)控制,ST接一个正脉冲信号,当来一个下降沿时,就读进第一个8位二进制数,再来一个下降沿时就执行加法功能,前后两个8位二进制数相加。进程process(p)就是把三位十进制数的百位、十位、各位分别取出来,再转换成4位逻辑位矢量。一个简单加法器,能够实现加法运算并显示结果,在按键控制下,由开关变量以二进制(不超过8位)的形式送入加数和被加数,但必须以十进制的形式显示,按下加法按键后,以十进制方式显示结果。根据要求首先加法器中必须有二进制(8位)转换成十进制电路,其次加法器中需要用开关变量来控制加数和被加数的输入,再次输入的二进制加数和被加数必须经过转换成十进制后显示,最后加法完成结果以十进制显示。其二进制(8位)全为1时转换成十进制表示为255,先设三位分别表示十进制数的百位、十位和个位。将二进制数分别减去100的二进制数,循环直至二进制数小于100,百位循环一次加一,根据同样的道理得出十位和个位。加数和被加数的输入和显示,利用高低电平控制显示器,当电平为高电平时显示加数和被加数的和,利用选择器来分别选择输出显示,当低电平时分别显示输入的二进制加数和被加数。加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。多位加法器的构成有两种方式:并行进位和串行进位。并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。并行进位加法器通常比串行级联加法器占用更多的资源。随着位数的增加,相同位数的并行加法器与串行加法器的资源占用2差距也越来越大。因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。程序总体设计框图如图2.1所示:图2.1程序总体设计框图动态扫描显示电路输入8位二进制加法器数字显示电路3二、单元电路设计一个简单8位加法器,能够实现加法运算并显示结果,在按键控制下,由开关变量以二进制(不超过8位)的形式送入加数和被加数,但必须以十进制的形式显示,按下加法按键(ST)后,以十进制方式显示结果。调用库(USEIEEE.STD_LOGIC_ARITH.ALL)直接进行算术运算,以实现加法器功能,从而不用去编写全加器,即程序尽量简单化。并用函数CONV_INTEGER(D)把输入的8位二进制数转换成整形数,再相加以十进制数在数码管上显示出来。加法信号由(ST)控制,ST接一个正脉冲信号,当来一个下降沿时,就读进第一个8位二进制数,再来一个下降沿时就执行加法功能,前后两个8位二进制数相加。进程process(p)就是把三位十进制数的百位、十位、各位分别取出来,再转换成4位逻辑位矢量。8位二进制加法器电路如图3.1所示:STD[7..0]BAI[3..0]SHI[3..0]GE[3..0]adder_8inst图3.1八位二进制加法器电路图8位二进制加法器程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;4USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYadder_8ISPORT(ST:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(7DOWNTO0);BAI:OUTSTD_LOGIC_VECTOR(3DOWNTO0);SHI:OUTSTD_LOGIC_VECTOR(3DOWNTO0);GE:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDadder_8;ARCHITECTUREBHVOFadder_8ISSIGNALA,B,C,P,Q:INTEGERRANGE0TO999;BEGINPROCESS(ST)BEGINQ=CONV_INTEGER(D);IFST'EVENTANDST='1'THENP=Q+P;ELSEP=P;ENDIF;ENDPROCESS;PROCESS(P)BEGINA=P/100;B=(PMOD100)/10;C=PMOD10;BAI=CONV_STD_LOGIC_VECTOR(A,4);5SHI=CONV_STD_LOGIC_VECTOR(B,4);GE=CONV_STD_LOGIC_VECTOR(C,4);ENDPROCESS;ENDBHV;程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSCAN_LEDISPORT(CLK:INSTD_LOGIC;d0,d1,d2,d3,d4,d5,d6,d7:inSTD_LOGIC_VECTOR(3DOWNTO0);SG:OUTSTD_LOGIC_VECTOR(6DOWNTO0);BT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));END;ARCHITECTUREoneOFSCAN_LEDISSIGNALCNT8:STD_LOGIC_VECTOR(2DOWNTO0);SIGNALA:STD_LOGIC_VECTOR(3DOWNTO0);BEGINP1:PROCESS(CNT8)BEGINCASECNT8ISWHEN000=BT=00000001;A=d0;WHEN001=BT=00000010;A=d1;WHEN010=BT=00000100;A=d2;WHEN011=BT=00001000;A=d3;WHEN100=BT=00010000;A=d4;WHEN101=BT=00100000;A=d5;WHEN110=BT=01000000;A=d6;6WHEN111=BT=10000000;A=d7;WHENOTHERS=NULL;ENDCASE;ENDPROCESSP1;P2:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENCNT8=CNT8+1;ENDIF;ENDPROCESSP2;P3:PROCESS(A)BEGINCASEAISWHEN0000=SG=0111111;WHEN0001=SG=0000110;WHEN0010=SG=1011011;WHEN0011=SG=1001111;WHEN0100=SG=1100110;WHEN0101=SG=1101101;WHEN0110=SG=1111101;WHEN0111=SG=0000111;WHEN1000=SG=1111111;WHEN1001=SG=1101111;WHEN1010=SG=1110111;WHEN1011=SG=1111100;WHEN1100=SG=0111001;WHEN1101=SG=1011110;WHEN1110=SG=1111001;WHEN1111=SG=1110001;WHENOTHERS=NULL;ENDCASE;ENDPROCESSP3;END;三、波形仿真结果分析8位二进制加法器功能仿真结果如图4.1所示:7图4.18位二进制功能仿真结果【D】是输入端,由8个开关控制,【ST】是输入端,接正脉冲信号,【BAI】、【SHI】、【GE】都是输出端,分别是以个3位十进制数的百位、十位和各位。加法信号由(ST)控制,ST接一个正脉冲信号,当来一个下降沿时,就读进第一个8位二进制数,再来一个下降沿时就执行加法功能,前后两个8位二进制数相加。相加结果由3位十进制数通过数码管显示出来。四、安装调试步骤安装与调试过程是设计元件由虚拟变成事实最为重要的一步,安装就代表着元件的测试操作,也是检验仿真是否真正有效的最重要的步骤.所以在整个设计中安装调试便是最后一步也是前面所有步骤中的一个验收。安装调试的成败直接验证实验的正确性。但是在安装调试中我们也需要注意首先得确保仿真测试正确无误,然后引脚锁定并编译,接着将实验板连接好,接好电源就可以下载了。下载完成后就可以调试,根据设计的要求来分别验证试验的结果,比如我们做加法器时,调试过程便是验证加法器的实现,先利用高电平来控8制程序的有效,先输入一个八位二进制数,显示段是否显示其对应的十进制数,拨加法控制器,再在输入端输入被加数(八位二进制数),同样看被加数是否在显示段出现其十进制数,按下等号控制器,显示段便显示结果。结果为要求显示的结果即实现加法功能。当安装调试过程正确完成后,即设计的最后一步完成。整个设计也即完成。断掉电源拆线,整理实验台。五、故障分析与改进故障是实验中不可避免遇到的问题,当程序出错或者是操作不当时都可能导致不能出现其想要的结果,所以当故障出现时我们要认真仔细的分析,故障的出自和解决。我们在做加法器时也曾碰到过相当多的障碍,首先是设计程序上的故障,尤其在语言上的不仔细,或是语言的不标准性直接导致程序不能正确的仿真,这中故障时最平常的也是相对比较简单的。其次,设计程序时思维的故障,比如说二进制数转换成十进制数的程序设计,其方法有多种,其中一种是用二进制数提出首位加一乘以二,这种方法相对计算量来说比较简单,但是程序写得不太理想,所以我们选择了比较法,先拿二进制数减去一百(二进制),循环直至此二进制数小于一百,循环一次变加一,由此得到百位,根据同样的道理可以得到十进制的十位和个位。又如消抖电路,如果使用机械式键盘,由于存在机械触动的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时候也不会马上在闭合时断开按键的时间均伴随有一连串的抖动,于是加个消抖可以防止抖动对电路所带来的某些不良影响。再次,下载调试中出现的故障,引脚的接线不当或是线的接触不良都影响着得出正确的实验结果,我们在下载中曾遇到线路的接触不良,8位输入端中有个端口时有时无,这便是典型的接触不良,跟换一根线路或是牢固下接口便达到目的。