二○一二~二○一三学年第一学期电子信息工程系脉冲数字电路课程设计报告书班级:电子信息工程(DB)1004班课程名称:脉冲数字电路课程设计学时:1周学生姓名:学号:指导教师:廖宇峰二○一二年九月一、设计任务及主要技术指标和要求设计目的1.掌握加/减法运算电路的设计和调试方法。2.学习数据存储单元的设计方法。3.熟悉集成电路的使用方法。设计的内容及主要技术指标1.设计4位并行加/减法运算电路。2.设计寄存器单元。3.设计全加器工作单元。4.设计互补器工作单元。5.扩展为8位并行加/减法运算电路(选作)。设计的要求1.根据任务,设计整机的逻辑电路,画出详细框图和总原理图。2.选用中小规模集成器件(如74LS系列),实现所选定的电路。提出器材清单。3.检查设计结果,进行必要的仿真模拟。二、方案论证及整体电路逻辑框图方案的总体设计步骤一因为参与运算的两个二进制数是由同一条数据总线分时串行传入,而加法运算的时候需要两个数的并行输入。所以需要两个寄存器分别通过片选信号,依次对两个二进制进行存储,分别在寄存器的DcBAQQQQ端口将两个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】步骤六为了便于观察最后的计算结果,以及对最后的计算结果的正确性能做出快速的判断,根据人们的习惯,同上,将计算出的结果输入七段译码器进行译码显示。方案的讨论【细节一】用片选信号LoadA/LoadB控制寄存器的时候,片选信号可以由数字开关实现,也可以由时序脉冲实现,考虑到实际器件中的运用,选择数字开关作为片选信号。【细节二】寄存器应设置有初始化置零(CLEAR端口)功能,能对运算进行置零处理,增强对加/减寄存器的控制。【细节三】通过资料【】可以知道,减法可以转化成加法,进行运算,即1)(的反码BBABA,所以减法器可以在加法器的基础上完成。将减数通过互补器进行运算,求出补码,即可以在加法器的基础上进行减法的运算。【细节四】利用数字开关来选择+/-的运算方式。【细节五】作十以内的加法运算的时候,结果可能是0~18,然而译码器只能显示0~9的范围,所以需要增加一篇译码器,显示计算结果的十位,同时对计算的结果需要做一定的处理,使其各位能正常显示。【细节六】作减法运算的时候,会出现减数A小于被减数B的情况,这个时候结果为负数,所以需要增设一位显示符号的译码器,对负号进行显示。另外个位显示的译码器只需要显示计算结果的绝对值,需要对计算结果进行取反处理。【细节七】作为结果显示的7段式数码管有两种接法,根据选择的数码管的种类,决定数码管的连接方式,所以连接电路前,首先要判断数码管是共阴极还是共阳极。整体电路逻辑框图三、单元电路设计寄存器【寄存器的设计思路】同一根总线上的两个四位二进制数要依次存储到2个不同的寄存器中,并行输出。首先得建立一个片选信号LoadA/LoadB;片选信号利用数字开关实现,将传输线的数据分别通过数字开关LoadA串行输入的两个二进制数寄存器并行输出的数2并行输出的数1开关选择运算方式(+/-)全加器对数1和数2进行加法运算全加器:对处理后的数据进行加法运算互补器:求数2的反码、补码减法器加法器译码显示计算结果数码管显示十进制结果数码管显示十进制结果和LoadB接入到两个寄存器的右移端口SRD,数据传输之间开关先全部保持关闭状态;当输入A的数据时,打开A寄存器的数字开关LoadA,4位二进制数即可存储在寄存器A中,并在寄存器的输出端口3Q2Q1Q0Q变成并行输出;当数据A传送完毕后,关掉开关LoadA,打开寄存器B的开关LoadB,则第二个4位二进制数存储在寄存器中,同理在寄存器B的输出端口3Q2Q1Q0Q变成并行输出。【寄存器利用74LS194实现】图174LS194的外引脚排列图表174LS194的功能表功能输入输出CPCR1S0SSRDSLD0D1D2D3D0Q1Q2Q3Q清除×0××××××××0000送数↑111××abcdabcd左移↑101SRD×××××SRD0Q1Q2Q右移↑110×SLD××××1Q2Q3QSLD保持↑100××××××nQ0nQ1nQ2nQ3保持↓1××××××××nQ0nQ1nQ2nQ3图2寄存器单元的设计加法器【加法器的设计思路】首先,我最先想到的是课本中的全加器的知识,即:两个异或门、两个与门和一个或门组成全加器,可实现一位二进制加逻辑运算。由此联想,可以在一位二进制加逻辑器的基础上,实现4位二进制全加器。也就是四个全加器通过串行进位的方式,将低位的进位输出信号接到高位的进位输入端,四个全加器依次串行连接,并将最低位的进位输入端接逻辑“0”,就组成了一个可实现四位二进制数并行相加的逻辑电路。可是这样的电路需要多个门电路,且电路复杂,有没有直接集成的电路可以实现多位数的加法呢,集成的加法运算电路不仅可以化简电路的接线、计算,而且在实际电路的制作中更可以减少成本,节约资源。通过查阅资料【】,得到可以利用超前进位产生器74LS283实现四位二进制数并行相加。但是加法的结果处理却存在一个问题,在进行了A、B两个数的加法以后,由于译码显示器只能显示0~9,当BA9时不能显示,所以需要用到两个译码器,其中一个表示计算结果的十位,另一个表示计算结果的各位;我的想法是,若BA9,超前进位加法器74LS283的进位信号为1,接入到第二个译码器中,使计算结果的十位直接显示为1;VCC5VU274LS194DA3B4C5D6SL7QA15QB14QC13QD12SR2~CLR1S09S110CLK11GND8VCC16LoadAKey=ALoadBKey=B信号输入端口0.5sec1secU174LS194DA3B4C5D6SL7QA15QB14QC13QD12SR2~CLR1S09S110CLK11GND8VCC16I11kHz1AVCC5V初始化置零Key=B表示个位的译码器,可以将计算结果减去10(同于以上的减法器的思想,就是加上二进制数值0110),此时译码器显示的结果等于原本的计算结果的个位。最终使得两片译码器的显示结果即为计算结果。所以针对加法的计算结果大于9的情况,对计算结果加上(0110)2,即可得修改后的真值表如下:表274LS283输出结果的修改真值表输出对应十进制数数值转换的关系译码器十位显示数字译码器个位显示数字4C3S2S1S0S1C0000000直接对应×00000101×10001002×20001103×30010004×40010105×50011006×60011107×70100008×80100109×901010110需要转化100101111111011001121201101113130111011414011111151510000016161000101717100100181810011019无关项××10100020××10101021××10110022××10111023××11000024××11001025××11010126××11011127××11100128××11101129××11110130××11111131××1323012301230123012301230123SSSSSSSSSSSSSSSSSSSSSSSSSSSSY(式3)4CY(式4)由式3、式4可得443424434244342Y=C+SS+SS=C+SS+SSCSSSS即:实现功能转化需要两个与门、一个三输入与非门、一个非门既可以实现。【加法运算电路利用74LS283实现】图374LS283的外引脚排列图图4加法运算器单元的设计U174LS283NSUM_410SUM_313SUM_14SUM_21C49B411A412B315A314B22A23B16A15C07U274LS283NSUM_410SUM_313SUM_14SUM_21C49B411A412B315A314B22A23B16A15C07U3A74LS86DU4A74LS04DU5A74LS08DU6A74LS08DU7A7427N判断A+B?9,若大于9,即加上110互补器【设计互补器的目的】由资料【】知,减法运算的原理是将减法运算变成加法运算进行的。而74LS283既能实现加法运算,又可实现减法运算,从而可以简化数字系统结构。若n位二进制原码为N原,则与它相对应的2的补码为N补=2n-N原(式1)补码与反码的关系式为N补=N反+1(式2)当电路的功能为计算两个数A、B相减时,利用式1和式2可得A–B=A+B补-2n=A+B反+1-2n所以只要求得减数的反码,即可利用加法器对两个数进行减法运算。【互补器的设计思路】首先我想到的是将B逐位求反,然后再与1相加,可是这要用到4个非门,一个全加器,和一个置1的开关;但是这里又有一个麻烦,我们首先必须判断这个数字B前的符号问题,即判断到底是进行何种运算。联想到我们之前有一个加减选择的开关,那么可以置1的开关可以和这个加减选择的开关进行化简,从而直接对B进行转化。因为1BB,0BB,所以可以设置一个开关,低电平的时候表示是选择加法运算,高电平选择减法运算,然后这个开关与B输出的每一位数字一次进行异或运算;即当我们选择加法运算的时候,是低电平(也就是0),即数字B与0进行异或运算,所得到的结果仍然是B;当我们选择减法运算的时候,开关是高电平(也就是1),数字B与1进行异或运算,所得的结果则是B这样所得到的结果再送入到74LS283中,选择加法时,74LS283的输出结果是BA;选择减法的时候,将进位输入端接逻辑1(直接接在加/减选择开关上,此时的开关即为1)以实现加1,由此求得B的补码。加法器相加的结果为1AB。【互补运算单元利用异或门74LS86实现】图574LS86的内部图设计结果如下:图6互补运算器单元的设计减法器U174LS283NSUM_410SUM_313SUM_14SUM_21C49B411A412B315A314B22A23B16A15C07U2A74LS86NU2B74LS86NU2C74LS86NU2D74LS86NVCC5V数据B74LS194NA3B4C5D6SL7QA15QB14QC13QD12SR2~CLR1S09S110CLK1174LS86=1=1=1=1图7.1减法运算器单元的设计:AB时图7.2减法运算器单元的设计:A<B时U174LS283NSUM_410SUM_313SUM_14SUM_21C49B411A412B315A314B22A23B16A15C07U2A74LS86NU2B74LS86NU2C74LS86NU2D74LS86NVCC5V数据A74LS194DA3B4C5D6SL7QA15QB14QC13QD12SR2~CLR1S09S110CLK11数据B74LS194DA3B4C5D6SL7QA15QB14QC13QD12SR2~CLR1S09S110CLK11当AB时,两数相减的结果直接是A+B的反码+1U174LS283NSUM_410SUM_313SUM_14SUM_21C49B411A412B315A314B22A23B16A15C07U2A74LS86NU2B74LS86NU2C74LS86NU2D74LS86NU3A74LS04NU3B74LS04NU4A