当前位置:文档之家› 八位二进制除法器

八位二进制除法器

八位二进制除法器

八位二进制除法器

四位二进制除法器说明书

目录 一、设计目的 (1) 二、设计要求 (1) 三、设计内容 (1) 3.1、除法的实现 (1) 3.2、设计框图 (1) 3.3、功能说明 (1) 3.4、VHDL程序源代码 (2) 3.5、VHDL程序说明 (3) 四、原理图和印刷板图 (4) PCB板图 (4) Protel 原理图 (5) 五、设计结论 (6) 六、设计心得体会 (6) 七、主要参考文献 (7)

一、设计目的 1.掌握电子电路的一般设计方法和设计流程; 2.学习使用PROTEL软件绘制电路原理图及印刷板图。 二、设计要求 设计一个四位二进制除法器,具体要求如下: 1. 用键盘输入两个四位二进制数,并用数码管显示输入数。 2.按除法键即显示相除结果。 3. 除数为零时,数码管黑屏,不显示任何内容。 三、设计内容 1、设计过程 要想实现四位二进制除法器,必须首先实现除法的功能。 除法实现的方案可以用VHDL语言实现。 整个四位二进制除法器包括:输入电路,判断电路,除法电路,译码电路和显示电路。这些电路可以分别进行设计。 2、设计框图 3.各个模块的功能说明 ●整个四位二进制除法器的实现可以分为以下5个部分: ●输入电路:输入两个4位2进制数A和B。它是通过连着高电平的8个开关

来实现的。

●判断电路:判断B是否为0。它是通过1个5输入同或门实现的。如果 B为0,输出端输出高电平,使能端除法器不工作,显示器黑屏。 ●除法电路:由VHDL语言实现的。它实现两个4位2进制数相除,并输出商y 和余数r. ●译码电路:由VHDL语言实现的。它实现两个4位2进制数相除,并输出商y 和余数r. ●显示电路:将译码器译成的数用数码管显示出来。 4.VHDL程序源代码 除法源代码 1.Library ieee; 2.Use ieee.std_logic_1164.all; 3.Entity divider is 4.Generic (n: integer :=3); 5.Port( a, b : in integer range 0 to 15; 6.y:out std_logic_vector ( 3 downto 0); 7.rest:out integer range 0 to 15; 8.err:out std_logic); 9.End divider ; 10.Architecture rtl of divider is 11.Begin 12.Process (a,b) 13.Variable temp1:integer range 0 to 15; 14.Variable temp2:integer range 0 to 15; 15.Begin 16.temp1:=a; 17.temp2:=b; 18.if(b=0)then err <=’1’; 19.Else err<=’0’;

四位原码乘法器

1.课程设计的内容和要求 内容:设计四位原码乘法器电路。 要求:1.有关资料,设计乘法器电路; 2.画出乘法器逻辑图; 3.在实验箱上完成乘法器电路的组装,调试,核对记录,测试有关数据, 通过老师当场验收; 4.完成课程设计报告。 1.课程设计原理 运用存储器的存储功能实现数字的存储。令电路的初始状态为000,000,000000。以二进制的形式输入数字,计算方式是以十进制数字乘法。输入的数字为三位数字,输出的是六位数字。先存储输入的乘数和乘积,然后再将乘积的导线端连到输出段,此时之前输入的乘积就可以在输出端显示。 此时序电路的真值表为:

1.课程设计思路 本次课程设计的题目为四位原码乘法器,利用真值表输入乘数时,需要存放数字,于是我查阅了一些资料,用存储器可以实现这一电路,所以本实验中用到的是INTEL 2114芯片。 具体实现过程如下图: a a b b F 32F 1 1.课程设计所需的器材 1.2114是一个容量为1K4位的静态RAM芯片,常用于寄存器。 其具体的引脚图为: 此芯片的电路图为: 2.数字电路实验箱 3.导线若干 1.课程设计实现 本次课程设计的题目是四位原码乘法器电路。 此部分只用到了2块INTEL2114芯片,具体连接如下: 1、先将这些芯片按在电路板上(注意不要插反,否者容易烧毁芯片)。 2、将两片芯片的A6和GND端,A7,A8,A9接地。 3、Vcc端接电压5V,cs接存储端,WE端接控制端。 4、两块芯片的A5,A4,A3组成一个乘数,A0,A1,A2组成另一个乘数。其中一块芯

片的I/O1,I/O2,I/O3,I/O4和另一块芯片的I/O1,I/O2组成要求的乘积。乘数与乘积的显示方式均为二进制,但是计算方法是以十进制数的乘法法则计算。 1.调试步骤及方法 在连接实验器件之前,要先检查如下实验器件: 1、检查芯片引脚是否有损坏。 2、检查电路板是否好用。 连接实验器件时要注意: 2严格按照电路图一步一步连接,以避免连接错误。 3导线要先连接电源测试是否导电。 连接好电路进行数据测试,输入001,010,000010,存储;001,101,000101,存储;001,111,000111,存储。将连在输入端的四个输出连接到输出端,并输入001,010,但是结果并不是000010,而是000100;再输入001,101,也没有得到000101的结果,而是000110的结果。检查线路,发现输出的线路错位,纠正后重新输入乘数,结果均得到计算结果。调试成功。 1.实验结果 连接好整个电路。A5A4A3和A2A1A0为输入端,即乘数,F5F4F3F2F1F0为输出端,即乘积。如下表: 8. 课程设计结果 输入000,000,000000,存储;

二位二进制计数器(DOC)

课程设计任务书 学生姓名杜佳专业班级计算机zy1202班 指导教师袁晓玲学院名称计算机科学与技术学院 一、题目:二位二进制计数器。外部输入X=1时,计数器加1计数,外部输入X=0时,计数器保持不变。 原始条件:使用D触发器( 74 LS 74 )、“与”门( 74 LS 08 )、“或”门( 74 LS 32 )、非门( 74 LS 04 ),设计二位二进制计数器。 二、要求完成设计的主要任务如下: 1.能够运用数字逻辑的理论和方法,把时序逻辑电路设计和组合逻辑电路设计相结合,设计一个有实际应用的数字逻辑电路。 2.使用同步时序逻辑电路的设计方法,设计二位二进制计数器。写出设计中的三个过程。画出课程设计图。 3.根据74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路引脚号,在设计好的二位二进制计数器电路图中标上引脚号。 4.在试验设备上,使用74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路连接、调试和测试二位二进制计数器电路。 5.设计报告书包括:设计内容与设计要求、设计原理和过程、调试分析、心得体会、参考文献。 三、课程设计进度安排 序号设计内容时间 1 查阅资料,熟悉实验平台和相关芯片的使用方法,完成理 18周 论设计过程,画出电路图;标上引脚。 2 电路修改、接线、排错、实现;分析归纳设计过程,撰写 19周 计算机硬件综合设计报告 合计2周 指导教师签名:年月日 系主任(责任教师)签名:年月日

一、实验目的: 1、深入了解和掌握同步时序逻辑电路的设计过程; 2、了解74LS74、74LS08、74LS32、74LS86及74LS04芯片的功能; 3、能够根据电路图连接好实物图,并实现其功能。学会设计过程中的检验与完 善。 二、题目理解和功能描述: 用数字逻辑实验板和若干集成芯片实现如下功能: 利用逻辑电平区域中八盏灯的任三盏作为实验的输入和输出,其中以1盏灯(如 K1)作为输入x,用以改变输入的0、1特性,对应两位二进制数的四个状态,二 位二进制计数器逻辑结构如图一所示。 计数器输出y2 y1 二位二进制加1计数 输入x 时钟输入 图1 两位二进制数逻辑结构 当输入x为1时对应的输出序列: 00 01 10 11 此时实验板上输出灯的亮暗变化如下: 亮亮亮暗暗亮暗暗

四位二进制加法器课程设计

课题名称与技术要求 课题名称: 四位二进制加法器设计 技术要求: 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位全加器串联起来,低位全加器的进位输出连接到相邻的高位全加器的进位输入。 优点:电路比较简单。 最大缺点:进位信号是由低位向高位逐级传递的,运算速度慢。 2)超前进位加法器 为了提高运算速度,必须设法减小或消除由于进位信号逐级传递所消耗的时间,于是制成了超前进位加法器。 优点:与串行进位加法器相比,(特别是位数比较大的时候)超前进位加法器的延迟时间大大缩短了。 缺点:电路比较复杂。 综上所述,由于此处位数为4(比较小),出于简单起见,这里选择串行进位加法器。 译码器Ⅱ选择 译码是编码的逆过程,将输入的每个二进制代码赋予的含意“翻译”过来,给出相应的输出信号。译码器是使用比较广泛的器材之一,主要分为:变量译码器和码制译码器,其中二进制译码器、二-十进制译码器和显示译码器三种最典型,使用十分广泛。显示译码器又分为七段译码器和八段

四位二进制除法器

四位二进制除法器设计 李道通58 1、设计方法 采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。1)判断除数是否零:如果除数为零,返回等待;2)除数不为零时,C左移一位,将被除数A的最高位赋值给C的最低位,A左移一位,将最低位赋值为零;3)判断C和除数B的大小,若C>=B,这C=C-B,且A的最低位赋值为1。4)如此循环四次,得到的A即为商,得到的C为余数。该算法的好处在于被除数和商公用一个寄存器A,节省资源。 2、算法流程图 图中:被除数和除数分别放在A、B中,商余数分别放在A和C,N为计数器

3、VHDL程序代码: LIBRARY IEEE; USE ldt_chufaqi IS PORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY ldt_chufaqi; ARCHITECTURE BEHAV OF ldt_chufaqi IS BEGIN S1:PROCESS(A,B) VARIABLE N:INTEGER; VARIABLE TEMP_A,TEMP_B,TEMP_C:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN TEMP_A:=A; TEMP_B:=B; TEMP_C:="0000"; N:=0; IF(B>"0000")THEN WHILE(N<4) LOOP TEMP_C:=TEMP_C(2 DOWNTO 0)& TEMP_A(3); TEMP_A:=TEMP_A(2 DOWNTO 0)&'0'; IF TEMP_C>=TEMP_B THEN TEMP_C:=TEMP_C-TEMP_B; TEMP_A(0):='1'; END IF; N:=N+1; END LOOP; ELSE TEMP_A:="ZZZZ"; TEMP_C:="ZZZZ"; END IF; D<=TEMP_A(3 DOWNTO 0);C<=TEMP_C(3 DOWNTO 0); END PROCESS; END ARCHITECTURE BEHAV; 4、仿真结果: 图中:A、B、C、D分别是被除数、除数、余数和商,因本人对软件和语言的运用理解不足,无法做到A的同时输入和输出,故将A的结果赋值给D,但基本思路运算方法已经得到实现。 除数为零时,商和余数都为高阻态;

4位乘法器

一、概述 利用四位二进制寄存器、全加器以及D触发器等元器件,实现四位二进制乘法器的控制部分和乘法的实现部分。成法是加法的简便运算乘法运算只能通过加法运算以及移位运算来实现。在控制端用四个触发器产生四个控制信号来控制实现的加法移位功能,实现端在控制端信号作用下依次执行置零、加法、移位和循环操作。 二、方案说明 设计一个4位二进制乘法器,可以存储其乘积。 电路原理框图如图1所示。乘法器可以利用家发起和寄存器实现。 图1 乘法器原理框图 寄存器B存放被乘数,寄存器Q存放乘数,两个乘积长度可能是原来的2倍,故计算完成后将累加和高位放入寄存器A,而Q放寄存器的低位,P 记录乘数的位数,每形成一个部分P加1,当P=4时,乘法结束,两数之积放在AQ寄存器中。 控制端产生四个控制信号分别为T0、T1、T2、T3。在初态T0时,被乘数和乘数已分别存于寄存器B和Q中,等待启动信号S的到来,当S=1时控制器进入状态T1,在此状态下A、E、P清零,准备乘法操作。 从状态T2开始,控制器进入累计部分积的循环操作过程。首先检验乘数的最低有效位Q1。如Q1=1,A和B相加结果存于A和E之中;如果Q1=0,不做加法运算。无论Q1为何值,都要将计数器P加1。在状态T3,合成寄存器EAQ右移一位得到累计的部分积,时检测P之值,如果P不等于4,状态返回T2,继续累计部分积的过程。如果P=4,停止循环,系统返回初始状态T0。 三、电路设计 1、控制器设计

根据图2所示的ASM图表,可以设计二进制乘法器的控制器。 图2 二进制乘法器ASM图表四个D触发器的驱动方程为: D0=T0S’+T3Z=((T0S’)’·(T3Z)’)’ D1=T0S=((T0S)’)’ D2=T1+T3Z’=(T1’·(T3Z’)’)’ D3=T2

8位二进制乘法器

8位二进制乘EDA实验 法器 学号:02115024 [2013.12.15] 班级:021151 姓名:王浩楠 指导老师:徐少莹

一.设计要求 8位二进制乘法采用移位相加的方法。即用乘数的各位数码,从低位开始依次与被乘数相乘,每相乘一次得到的积称为部分积,将第一次(由乘数最低位与被乘数相乘)得到的部分积右移一位并与第二次得到的部分积相加,将加得的和右移一位再与第三次得到的部分积相加,再将相加的结果右移一位与第四次得到的部分积相加,直到所有的部分积都被加过一次。 例如:11010101和10010011相乘,计算过程如下: 二.设计方法 按照这种算法,可以得到下图所示之框图和简单流程图。按照这种算法,可以得到下图所示之框图和简单流程图。图中Y寄存器存放被乘数M,B寄存器存放乘数N,A累加器存放部分积。A和Y中的数据在加法器中相加后送入A 中,而A和B相级联又构成了一个16bit的移位寄存器,当它工作于移位模式时,可以实现数据的右移。由于乘数的每一位不是0就是1 ,对应的部分积不是0就是被乘数本身,所以实际作部分积相加这一步时,只要根据乘数的对应位判断:如该位为1 ,则将累加器中的数据加上被乘数再移位;如该位为0时,就不加被乘数而直接移位。运算时首先将累加器A清零,并将被乘数M和乘数N分别存入寄存器Y和B,然后依据寄存器B中最右一位B0(数据N0)确定第一个部分积。将此部分积送入A累加器以后,将A连同寄存器B右移一位,部分积的最低位被移进寄存器B的最左位,乘数的最低位N0被移出寄存器B,而乘数的次低位N1被移至寄存器B的B0位。第二次仍然依据B0位的数据(N1)来确定第二个部分积,将部分积与累加器中的数据相加后右移一位,N1又被移出寄存器,数据N2被移到B0位置。。。。。这样,经过8次部分积相加位的操作,完成1次乘法运算,乘数N恰好被移出寄存器B,寄存器B中保存的就是运算积的低8位数据。移位相加的次数应用一个计数器来控制,每移位一次,计数器计一个数。当计数器计得8个数时,发出一个信号,使电路停止操作,并输出运算结果。

8位串行二进制全加器

只用一位二进制全加器为基本元件和一些辅助的时序电路,设计一个8位串行二进制全加器。 Vhdl代码如下: 顶层文件如下: library ieee; use ieee.std_logic_1164.all; entity f8_adder is port(a,b:in std_logic_vector(7 downto 0); c0:in std_logic; s:out std_logic_vector(7 downto 0); c1:out std_logic); end f8_adder; architecture bhv of f8_adder is signal cout:std_logic_vector(7 downto 1); component f_adder is port(ain,bin,cin:in std_logic; cout,sum:out std_logic); end component; begin u1: f_adder port map(ain=>a(0),bin=>b(0),cin=>c0,sum=>s(0),cout=>cout(1)); u2: f_adder port map(ain=>a(1),bin=>b(1),cin=>cout(1),sum=>s(1),cout=>cout(2)); u3: f_adder port map(ain=>a(2),bin=>b(2),cin=>cout(2),sum=>s(2),cout=>cout(3)); u4: f_adder port map(ain=>a(3),bin=>b(3),cin=>cout(3),sum=>s(3),cout=>cout(4)); u5: f_adder port map(ain=>a(4),bin=>b(4),cin=>cout(4),sum=>s(4),cout=>cout(5)); u6: f_adder port map(ain=>a(5),bin=>b(5),cin=>cout(5),sum=>s(5),cout=>cout(6)); u7: f_adder port map(ain=>a(6),bin=>b(6),cin=>cout(6),sum=>s(6),cout=>cout(7)); u8: f_adder port map(ain=>a(7),bin=>b(7),cin=>cout(7),sum=>s(7),cout=>c1); end bhv; 全加器描述: library ieee; use ieee.std_logic_1164.all; entity f_adder is port(ain,bin,cin:in std_logic; cout,sum:out std_logic); end f_adder; architecture fd1 of f_adder is

四位二进制除法器

四位二进制除法器设计 李道通1411082758 1、设计方法 采用移位相减法设计二进制除法器:被除数和除数都是二进制数,采用将除数移位的方法。1)判断除数是否零:如果除数为零,返回等待;2)除数不为零时,C左移一位,将被除数A的最高位赋值给C的最低位,A左移一位,将最低位赋值为零;3)判断C和除数B的大小,若C>=B,这C=C-B,且A的最低位赋值为1。4)如此循环四次,得到的A即为商,得到的C为余数。该算法的好处在于被除数和商公用一个寄存器A,节省资源。 2、算法流程图 图中:被除数和除数分别放在A、B中,商余数分别放在A和C,N为计数器

3、VHDL程序代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.NUMERIC_STD.ALL; ENTITY ldt_chufaqi IS PORT(A,B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY ldt_chufaqi; ARCHITECTURE BEHA V OF ldt_chufaqi IS BEGIN S1:PROCESS(A,B) V ARIABLE N:INTEGER; V ARIABLE TEMP_A,TEMP_B,TEMP_C:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN TEMP_A:=A; TEMP_B:=B; TEMP_C:="0000"; N:=0; IF(B>"0000")THEN WHILE(N<4) LOOP TEMP_C:=TEMP_C(2 DOWNTO 0)& TEMP_A(3); TEMP_A:=TEMP_A(2 DOWNTO 0)&'0'; IF TEMP_C>=TEMP_B THEN TEMP_C:=TEMP_C-TEMP_B; TEMP_A(0):='1'; END IF; N:=N+1; END LOOP; ELSE TEMP_A:="ZZZZ"; TEMP_C:="ZZZZ"; END IF; D<=TEMP_A(3 DOWNTO 0);C<=TEMP_C(3 DOWNTO 0); END PROCESS; END ARCHITECTURE BEHA V; 4、仿真结果: 图中:A、B、C、D分别是被除数、除数、余数和商,因本人对软件和语言的运用理解不足,无法做到A的同时输入和输出,故将A的结果赋值给D,但基本思路运算方法已经得到实现。

8位二进制加法计算器

一:本实验设计的是一个8为二进制加法计算器,其功能就是对两个八位的二进制数执行加法运算,并可以异步清零。 二:电路可划分为三部分:半加器、全加器和复位电路。 1、半加器: 真值表 a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 电路图 2全加器:由半加器和或门组成 电路图 3复位电路: 复位电路通过en控制,当en为‘1’时,执行加法运算,输出正确的值,当en为‘0’时,输输出及结果为全0. 三:实验波形仿真和VHDL 1、仿真图:

2、VHDL代码 1)半加器h_adder: library ieee; use ieee.std_logic_1164.all; entity h_adder is port (a,b :in std_logic; co,so :out std_logic); end entity h_adder; architecture fh1 of h_adder is begin so <= not(a xor (not b));co <= a and b ; end architecture fh1; 2)或门or2a: library ieee; use ieee.std_logic_1164.all; entity or2a is port (a,b :in std_logic; c: out std_logic); end entity or2a; architecture one of or2a is begin c <= a or b ; end architecture one; 3)全加器f_adder: library ieee;

八位二进制加法器课程设计

长安大学电子技术课程设计 课题名称______________ 班级______________ 姓名______________ 指导教师 日期______________

前言 8位二进制加法器,它的功能主要是实现两个8位二进制数的相加,其结果的范围应该在00000000到111111110之间,即000到510之间。加法器在实际应用中占据着十分重大的地位,从我们呱呱坠地起,到小学,到初中,到高中,到大学,到工作,等等。我们能离开加法吗,不能!加法可以说是一切运算的基础,因此8位二进制加法器的设计是很有必要的。 那么我们如何设计一个8位二进制加法器呢?在实际应用中,我们通常输入的是十进制数,一个八位二进制数所对应的最大的十进制数是255,于是输入两个范围在000到255之间的数,首先通过二-十进制编码器将输入的三位十进制数的个位、十位、百位分别转换为8421BCD码,得到两个十二位字码,再通过加法器将它们相加,逢10进1,得到一个新的十二位字码,再用7447数字显示译码器将这个十二位字码还原到原来的三位十进制数。最后输出的就是一个三位十进制数,其范围在000到510之间。通过上述方法我们实现了八位二进制数的相加,从而达到了题目的要求。 为实现上述目的,我们需要查阅相关资料。通过查阅,理解以及加以运用,我们认识到了收集资料的不易性,但同时也得到了不少收获,可以说是有苦有甜。同时,虽然我们基本设计出了这个八位二进制加法器,但是不必可避免地会产生一些问题,比如说在连线上可能有更简便的途径,在元件的选用上可能还有其它更简便的方法,在控制上可能还不够精简,等等。我们希望在以后的实践中能找出更好的方法,也希望能吸取这次设计中的不足,逐渐改善。另外,在电子设计的过程中,与同组同学之间的合作配和是十分重要的。我在此次设计中也充分认识到这一点的重要性,我相信这次的电子设计能够为我们将来的工作奠定一定的基础。

4位无符号二进制除法器

4????·?o???′???3?·¨?÷.txtè??ú???aμ?2?ê??ù??μ?????£???ê??ù3ˉμ?·′?ò?£2??aó?×?μoμ??è?óè¥oaá?±?è?μ???óè£?·??òóà??ê?±§?1?£LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY chufaqi IS PORT( wfu1,wfu2 : IN STD_LOGIC_VECTOR( 3 downto 0); shang,yushu : OUT STD_LOGIC_VECTOR( 3 downto 0) ); END chufaqi; ARCHITECTURE a OF chufaqi IS SIGNAL remain0,remain1,remain2,remain3 : STD_LOGIC_VECTOR( 6 downto 0); SIGNAL diver0,diver1,diver2,diver3 : STD_LOGIC_VECTOR( 6 downto 0); BEGIN PROCESS (wfu1,wfu2) BEGIN remain3 <= "000" & wfu1; diver3 <= wfu2 & "000"; if remain3 >= diver3 then shang(3) <= '1'; remain2 <= diver3; else shang(3) <= '0'; remain2 <= remain3; END IF; diver2 <= "0" & wfu2 & "00"; if remain2 >= diver2 then shang(2) <= '1'; remain1 <= remain2 - diver2; else shang(2) <= '0'; remain1 <= remain2; END IF; diver1 <= "00" & wfu2 & "0"; if remain1 >= diver1 then shang(1) <= '1'; remain0 <= remain1 - diver1; else shang(1) <= '0';

设计一个四位二进制计数器

1、要求:设计一个四位二进制计数器,将计数结果由数码管显示,显示结果为十进制数。数码管选通为低电平有效,段码为高电平有效。 分析:VHDL 描述包含五部分:计数器、将四位二进制数拆分成十进制数的个位和十位、二选一的数据选择器、七段译码、数码管选通控制信号 线定义为信号 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter3 is Port ( clk:in STD_LOGIC; clk1 : in STD_LOGIC; clr : in STD_LOGIC; en : in STD_LOGIC; co : out STD_LOGIC; scanout:out std_logic_vector(1 downto 0); ledout:out std_logic_vector(6 downto 0)); end counter3; architecture Behavioral of counter3 is signal cnt:std_logic_vector(3 downto 0); signal cnt1:std_logic_vector(3 downto 0); signal cnt2:std_logic_vector(3 downto 0); signal hex:std_logic_vector(3 downto 0); signal scan:std_logic_vector(1 downto 0); en clr

EDA课程设计八位二进制全加器

EDA课程设计八位二进制全加器

EDA设计说明书 课程名称: EDA技术实用教程 设计题目:八位二进制全加器 院系:电子信息与电气工程学院学生姓名: 学号: 专业班级: 指导教师:李响 年 6 月 1

1. 设计目的 熟悉利用QuartusⅡ的原理图输入法设计简单的组合电路,掌握层次化设计的方法,并经过一个八位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。 2. 设计原理 2.1 一位全加器的原理 一位全加器能够用两个半加器及一个或门连接而成,因此需要首先完成半加器的设计。在本设计中,将采用原理图输入法来完成设计。 一位全加器的设计步骤: ①为本项工程设计建立文件夹; ②输入设计项目和存盘; ③将设计项目设计成可调用的元件; ④设计全加器顶层文件; ⑤将设计项日设置成工程和时序仿真。 2.2 八位全加器的原理 一个八位全加器能够由八个一位全加器构成,加法器之间的进位能够用串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。

3. 设计方案与仿真 3.1 一位全加器的设计与仿真 全加器的实现是以半加器的实现为基础的,因此,要设计全加器应首先设计一个一位的半加器。半加器的实现方案为: ①为此项工程建立文件夹; ②在基本元件库中,选中需要的元件,将元件(包含元件 and2、not 、xnor 和输入输出引脚input、output)调入原理图编辑窗口中; ③将己设计好的原理图文件存盘; ④将所设计的半加器设置成可调用的元件。 用原理图输入法所设计的半加器原理图如图3-1所示,利用QuartusⅡ软件平台,根据图3-1所示电路,可生成一个半加器元件符号,如图3-2所示。在半加器的基础上,为了建立全加器的顶层文件,必须再打开一个原理图编辑窗口,方法同上。其中,所选择的元件包含半加器、或门和输入输出引脚,由此可得到如图3-3所示的全加器原理图;进而可生成个全加器元件符号,如图3-4所示。 图3-1 半加器原理图图3-2 半加器元件符号

32位除法器的设计

subdesign divt ( a[31..0],b[31..0],inclk,trig:input; c[31..0],oe : output; ) variable ma[32..0],mb[32..0]:dff; mmc[32..0]:dff; mc[2..0],md[5..0] :dff; begin mmc[].clk=inclk; ma[].clk=inclk; mb[].clk=inclk; md[].clk=inclk; mc[].clk=inclk; case mc[] is when 0=> mb[]=(0,b[]);ma[]=(0,a[]); if trig==gnd then st[]=1; else st[]=0; end if; md[]=md[]; when 1 => ma[]=ma[];md[]=md[]+1; if mb[31]==gnd then FOR i IN 31 TO 1 GENERATE mb[i] =mb[i-1] ; END GENERATE;

mc[]=1; else mb[]=mb[]; mc[]=2; end if; when 2=> mb[]=mb[]; md[]=md[]; if ma[]>=mb[] then ma[]=ma[]-mb[]; mc[]=4;mmc[]=mmc[]+1; else mc[]=3;mmc[]=mmc[]; ma[]=ma[]; end if; when 3=> mc[]=4; FOR n IN 32 TO 1 GENERATE ma[n] =ma[n-1] ; mmc[n]=mmc[n-1]; END GENERATE; mb[]=mb[]; md[]=md[]-1; when 4=> ma[]=ma[];mmc[]=mmc[]; mb[]=mb[]; if md[]==1 then mc[]=5;md[]=md[]; else mc[]=2;md[]=md[];

EDA8位二进制并行加法器

实验二:8位加法器的设计 1.实验目的 (1)学习Quartus Ⅱ/ISE Suite/ispLEVER软件的基本使用方法。 (2)学习GW48-CK或其他EDA实验开发系统的基本使用方法。 (3)了解VHDL程序的基本结构。 2.实验内容 设计并调试好一个由两个4位二进制加法器级联而成的8位二进制并行加法器,并用GW48-CK或其他EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。3.实验要求 (1)画出系统的原理图,说明系统中各主要组成部分的功能。 (2)编写各个VHDL源程序。 (3)根据系统的功能,选好测试用例,画出测试输入信号波形或编号测试程序。 (4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。 (5)记录系统仿真、逻辑综合及硬件验证结果。 (6)记录实验过程中出现的问题及解决办法。 4.实验条件 (1)开发条件:Quartus Ⅱ 8.0。 (2)实验设备:GW48-CK实验开发系统。 (3)拟用芯片:EPM7128S-PL84。 5.实验设计 1)系统原理图 为了简化设计并便于显示,本加法器电路ADDER8B的设计分为两个层次,其中底层电路包括两个二进制加法器模块ADDER4B,再由这两个模块按照图2.1所示的原理图构成顶层电路ADDER8B。 ADDER4B 图2.1 ADDER4B电路原理图

A8[7..0] 图 2.1 ADDER8B电路原理图 2)VHDL程序 加法器ADDER8B的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。ADDER4B的VHDL源程序: --ADDER4B.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER4B IS PORT(C4:IN STD_LOGIC; A4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); S4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CO4: OUT STD_LOGIC); END ENTITY ADDER4B; ARCHITECTURE ART OF ADDER4B IS SIGNAL S5:STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL A5,B5:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN A5<='0'&A4; B5<='0'&B4; S5<=A5+B5+C4; S4<=S5(3 DOWNTO 0); CO4<=S5(4); END ARCHITECTURE ART; ADDER8B的VHDL源程序: --ADDER8B.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER8B IS

八位二进制加法器论文

前言 本次课程设计介绍了一种基于数字电子技术的八位二进制加法器,实现了如下功能: 1、八位二进制加数与被加数输入 2、三位数码管显示 3、三位十进制加数与被加数的输入 该电路系统主要分为八位二进制加法器和三位十进制加法器两个系统:八位二进制加法器系统由二进制输入电路、二进制加法运算电路、二进制码到十进制8421BCD码的转换电路和三位数码管显示输出4个模块组成; 三位十进制加法器系统由十进制的输入电路、三位十进制8421BCD码加法运算电路、四位数码管显示输出3个模块组成。 设计过程: 首先由本小组三名同学:夏程鉴,邢晓理,王维在互联网以及图书馆查阅了相关资料与文献,并参考了清华大学出版社06年版《数字电子技术基础》等参考教材,进行了资料整理以及设计构思。随后三名组员分工设计,由邢晓理同学设计输入系统电路,王维同学设计加法系统电路,夏程鉴同学设计二进制_十进制BCD码转换系统电路和输出系统。最后将电路模块整合为一个整体电路系统,并应用Multisim软件进行了设计电路图的绘制和仿真检验。

目录 前言 (1) 摘要 (3) 关键词 (3) 设计要求 (3) 一、设计方案简介 1、方案一 (4) 2、方案二 (5) 3、方案三 (6) 二、单元电路设计与分析 1、八位二进制加数与被加数输入(邢晓理) (7) 2、八位二进制数的加法运算(王维) (8) 3、二进制数转换为十进制8421BCD码(夏程鉴) (9) 4、八位二进制加法器总体电路图 (13) 5、十进制加数与被加数输入(邢晓理) (14) 6、三位BCD码加法器(王维) (15) 7、三位十进制加法器总体电路图 (16) 元件明细表 (17) 结束语 (18) 参考文献 (19) 鸣谢 (19) 评语 (20)

二进制除法原理

二进制除法原理 其实二进制除法和我们平时用竖式计算的10进制除法的原理是一样的,但是有一点要注意,就是计算机计算的结果是有限的,比如说一个16Bit数除以一个8Bit数,结果不能超过8Bit,否则按溢出处理。所以在计算前先要判断结果会不会溢出,方法是用被除数的高8位和除数相减,如果大于等于0则认为是溢出:商大于等于0x100,任何一个8Bit数与0x100乘积的高8位只可能小于除数,例如一个16进制数0x12,乘以0x100的结果为0x1200,也就是说只有小于0x1200的除数除以0x12的商才不会超过8Bit。例如: 0x1200/0x12(结果为0x100) --> (0x12 - 0x12) = 0,溢出 0x11FF/0x12(结果为0xFF) -->(0x11 - 0x12) < 0, 不会溢出 计算方法:(0x0E8E/0x12) 0000 1110 1000 1110 / 0001 0010 0001 1101 0001 1100假设商为0,商和被除数左移一位 0001 0010 ___________________ 0000 1011 够减,上次假设的商为1,再假设本次商为0和被除数同时左移一位 0001 0110 0011 1010 0001 0010 ___________________ 0000 0100 够减,上次假设的商为1,再假设本次商为0和被除数同时左移一位0000 1000 0111 0110 0001 0010 ___________________ ---- ---- 不够减,上次假设的商OK,再假设本次商为0和被除数同时左移一位0001 0000 1110 1100 0001 0010 ___________________ ---- ---- 不够减,上次假设的商OK,再假设本次商为0和被除数同时左移一位0010 0001 1101 1000 0001 0010 ___________________ 0000 1111 够减,上次假设的商为1,再假设本次商为0和被除数同时左移一位 0001 1111 1011 0010 0001 0010 ___________________ 0000 1101 够减,上次假设的商为1,再假设本次商为0和被除数同时左移一位 0001 1011 0110 0110 0001 0010 ___________________ 0000 1001 够减,上次假设的商为1,再假设本次商为0和被除数同时左移一位0001 0010 1100 1110 0001 0010 ___________________ 0000 0000 够减,上次假设的商为1,即1100 1111,移位8次,结束

8位全加器

目录 一、设计目的和要求 (1) 1.课程设计目的 (1) 2.课程设计的基本要求 (1) 3.课程设计类型 (1) 二、仪器和设备 (1) 三、设计过程 (1) 1.设计内容和要求 (1) 2.设计方法和开发步骤 (2) 3.设计思路 (2) 4.设计难点 (4) 四、设计结果与分析 (4) 1.思路问题以及测试结果失败分析 (4) 2.程序简要说明 (5) 五、心得体会 (9) 六、参考文献 (9)

一、设计目的和要求 1.课程设计目的 设计一个带进位的八位二进制加法计数器:要求在MAX+plusⅡ10.2软件的工作平台上用VHDL语言层次设计出一个带进位的八位二进制加法器,并通过编译及时序仿真检查设计结果。 2.课程设计的基本要求 全加器与带进位输入8位加法器设计要求我们通过8位全加器的设计掌握层次化设计的方法,充分理解全加器的设计过程,掌握一位全加器的程序,熟悉MAX+plusⅡ10.2软件的文本和原理图输入方法设计简单组合电路。 课程设计过程中要求能实现同步和异步的八位二进制全加器的设计。 3.课程设计类型 EDA课程设计 二、仪器和设备 PC机、MAX+plusⅡ10.2软件 三、设计过程 1.设计内容和要求 方法一: 1.原理图输入完成半加器和1位全加器的设计,并封装入库 2.层次化设计,建立顶层文件,由8个1位全加器串联构成8位全加器 3.每一层次均需进行编译、综合、适配及仿真 方法二: 1. 原理图输入完成一个四位全加器的设计 2.层次化设计,建立顶层文件,由2个4位全加器串联构成8位全加器 3.每一层次均需进行编译、综合、适配及仿真

2.设计方法和开发步骤 加法器是数字系统中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 实验表明,4 位二进制并行加法器和串行级联加法器占用几乎相同的资源。这样,多位数加法器由4 位二进制并行加法器级联构成是较好的折中选择。 因此这次课程设计中的8 位加法器可采用两个4位二进制并行加法器级联而成。此外我们还讨论了由八个一位全加器串联构成的八位二进制全加器。设计中前者设计为同步加法器,后者设计为异步加法器。 3.设计思路 方法一:异步八位全加器 设计流程图如下: 图 1异步八位流程图

相关主题
文本预览
相关文档 最新文档