当前位置:文档之家› 8位二进制加减计数器

8位二进制加减计数器

8位二进制加减计数器
8位二进制加减计数器

题目三:设计一个8位二进制加/减计数器,并仿真验证其功能。(2班1组)

(要求:输入一个8位的矢量数值,在使能开关的控制下,可以实现自加或自减的循环计数)

1、设计思路:根据设计题目可知我们所设计的是一个计数器,可知它必须有一个时钟信号,还需要有一个使能端en和一个置数端m。当en为1并且m为1时,把m送给输出端,如果m=0,则开始计数;如果en=0时则保持不变。同时还要有一个加减使能端k,功能为当k=1时实行加法计数,k=0时实行减法计数。

2、VHDL程序

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity cnt_8 is

port (

clk: in STD_LOGIC; --时钟输入端口

k:in STD_LOGIC; --加减控制输入端口

clr:in STD_LOGIC; --清零端口

en:in STD_LOGIC; --使能控制端口

m:in STD_LOGIC; --置数控制端口

n:in STD_LOGIC_VECTOR (7 downto 0); --置数输入

q: out STD_LOGIC_VECTOR (7 downto 0) --数值输出

);

end cnt_8;

architecture cnt_8_arch of cnt_8 is

signal qq:std_logic_vector(7 downto 0);

begin

process(clk,clr,k,n)

begin

if m='1' then qq<=n; --检测是否允许置数

elsif clr='1' then --检测是否清零

qq<="00000000";

elsif clk'event and clk='1' then --检测时钟上升沿

if en='1' then --允许计数

if k='1' then --加法计数

qq<=qq+'1';

else

qq<=qq-'1'; --减法计数

end if;

end if;

end if ;

end process;

process(qq)

begin

q<=qq; --将计数值向端口输出

end process;

end cnt_8_arch;

3、仿真波形(图片)

4、程序分析:

在程序设计中,当置数控制端口fr为高电平时,允许为该计数器置初值,把置数端口yz的值附给计数器,即高电平时有效。如果clr='1',则将对计数器清零,即复位;当fr为低电平时,如果clr为"0',则看是否有时钟上升沿,此时如果有时钟信号,又测得en='1',同时k='1',则允许加法计数;如果有时钟信号,又测得en='1',同时测得k='0',则减法计数。如果测得en='0',则跳出if语句,使qq保持原值,并将所计数的数值向输出端口输出。

三位二进制减法计数器与74193芯片仿真63进制减法计数器

目录 1 课程设计的目的与作用 (1) 1.1课程设计目的 (1) 2 所用multisim软件环境介绍 (1) 2.1 Multisim软件环境介绍 (1) 2.2 Multisim软件界面介绍 (2) 3设计任务 (3) 3.1设计的总体框图 (3) 3.1.1三位二进制减法计数器的总体框图 (3) 3.1.2 串行序列信号检测器的总体框图 (4) 3.1.3 74193芯片仿真63进制减法计数器原理 (4) 3.2设计过程 (4) 3.2.1 三位二进制同步减法计数器 (4) 3.2.2串行序列信号检测器 (6) 3.2.3 74193芯片仿真63进制减法计数器 (7) 4实验仪器 (7) 4.1三位二进制减法器 (7) 4.2串行序列检测器 (7) 4.3 74193芯片仿真63进制减法器计数 (7) 5仿真结果分析 (8) 5.1三位二进制同步减法计数器的电路原理图及结果 (8) 5.2串行序列信号检测器电路原理图及结果 (11) 5.3 74193芯片仿真63进制减法计数器的电路原理图及结果 (13) 6设计总结和体会 (14) 7参考文献 (15)

1 课程设计的目的与作用 1.1课程设计目的 1.通过Multisim的仿真设计,掌握Multisim软件的基本使用方法; 2.学会在multisim环境下建立电路模型,能进行正确的仿真; 3.通过Multisim的仿真,熟练掌握三位二进制同步加法计数器和串行序列检测器电 路,10000串行序列检测器电路设计; 4.学会分析仿真结果的正确性,与理论计算值进行比较; 5.通过课程设计,加强动手,动脑的能力。 2 所用multisim软件环境介绍 2.1 Multisim软件环境介绍 Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础 的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了 电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的 仿真分析能力。 Multisim 10 启动画面图 工程师们可以使用Multisim交互式地搭建电路原理图,并对电路进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。 NI Multisim软件结合了直观的捕捉和功能强大的仿真,能够快速、轻松、高效地对电路进行设计和验证。凭借NI Multisim,您可以立即创建具有完整组件库的电路图,并利用工业标准SPICE模拟器模仿电路行为。借助专业的高级SPICE分析和虚拟仪器,您能在设计流程中提早对电路设计进行的迅速验证,从而缩短建模循环。与NI LabVIEW和SignalExpress软件的集成,完善了具有强大技术的设计流程,从而能够比较具有模拟数据的实现建模测量。 突出优点

4FPGA实验报告8位乘法器—徐艺萍

实验四8位乘法器实验 一、实验原理 8位乘法器,输入为两个8位信号,输出结果为16位。 module mult8(out, a, b); //8位乘法器源代码 parameter size=8; input[size-1:0] a,b; //两个操作数 output[2*size-1:0] out; //结果 assign out=a*b; //乘法运算符 endmodule 本实验采用Chipscope-Pro生成VIO/ICON核,并插入到8位乘法器设计中,在线进行观测和调试。 二、实验目的 1. 熟悉ISE9.1 开发环境,掌握工程的生成方法; 2. 熟悉SEED-XDTK XUPV2Pro 实验环境; 3. 了解Verilog HDL语言在FPGA 中的使用; 4. 通过掌握8位乘法器的Verilog HDL设计,了解数字电路的设计。 三、实验内容 1. 用Verilog HDL语言设计8位乘法器,进行功能仿真验证。 2. 使用chipscope-Pro 生成VIO/ICON 核,在线观测调试。 四、实验准备 1. 将USB 下载电缆与计算机及XUPV2Pro 板的J8 连接好; 2. 将RS232 串口线一端与计算机连接好,另一端与板卡的J11 相连接; 3. 启动计算机,当计算机启动后,将XUPV2Pro 板的电源开关SW11 打开到ON 上。观察XUPV2Pro 板上的+2.5V,+3.3V,+1.5V 的电源指示灯是否均亮。若有不亮的,请断开电源,检查电源。

五、实验步骤 ⑴创建工程及设计输入 ①在E:\project\目录下,新建名为mult8的新工程; 器件族类型(Device Family)选择“Virtex2P”, 器件型号(Device)选“XC2VP30 ff896 -7”, 综合工具(Synthesis Tool)选“XST (VHDL/Verilog)”, 仿真器(Simulator)选“ISE Simulator” ②设计输入并保存。 ⑵功能仿真 ①在sources窗口sources for中选择Behavioral Simulation。 ②由Test Bench WaveForm 添加激励源,如图1所示。仿真结果如图2所示。 图1 波形激励编辑窗口 图2 仿真结果 从图中可以验证由Verilog HDL语言设计的8位乘法器的工作是正确的,不论是输入a的值变化还是输入b的值变化,输出值随之变化,为a与b的乘积。 ⑶生成核并添加核 本次试验内容为8位乘法器,不需要使用ILA核。因此下面使用核生成法生成一个ICON核,一个VIO核就可以了。 ①首先对生成的工程进行综合。 ②生成核 ③添加核

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

课题名称与技术要求 课题名称: 四位二进制加法器设计 技术要求: 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(比较小),出于简单起见,这里选择串行进位加法器。 译码器Ⅱ选择 译码是编码的逆过程,将输入的每个二进制代码赋予的含意“翻译”过来,给出相应的输出信号。译码器是使用比较广泛的器材之一,主要分为:变量译码器和码制译码器,其中二进制译码器、二-十进制译码器和显示译码器三种最典型,使用十分广泛。显示译码器又分为七段译码器和八段

移位相加8位乘法器的设计

EDA技术课程大作业 设计题目:移位相加8位乘法器的设计 院系:电子信息与电气工程学院 学生姓名: 学号:200902070017 专业班级:09电子信息工程专升本 2010年12月3日

移位相加8位乘法器的设计 1.设计背景和设计方案 1.1设计背景 EDA技术(即Electronic Design Automation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Ddscription Langurage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。它在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC 测试和封装、FPGA(Gield Peogrammable Gate Array)/CPLD(Complex Programmable Logic Device)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD),计算机辅助制造(CAM),计算机辅助测试(CAT),计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。本文介绍设计一个两个5位数相乘的乘法器。用发光二极管显示输入数值,用7段显示器显示十进制结果。乘数和被乘数分两次输入。在输入乘数和被乘数时,要求显示十进制输入数据。输入显示和计算结果显示,采用分时显示方式进行,可参见计算器的显示功能 1.2设计方案 此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八位加法器,所以关键是设计好八位加法器。 方案一:八位直接宽位加法器,它的速度较快,但十分耗费硬件资源,对于工业化设计是不合理的。 方案二:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合各方面的考虑,决定采用方案二。 该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。其乘法原理是乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。从

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

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个数时,发出一个信号,使电路停止操作,并输出运算结果。

三位二进制同步减法计数器

1 三位二进制同步减法计数器的设计(000、010) 1.1 课程设计的目的 1、学会利用触发器和逻辑门电路,实现六进制同步减法计数器的设计 2、学会掌握并能使用常用芯片74LS112、74LS08芯片的功能 3、学会使用实验箱、使用软件画图 4、了解计数器的工作原理 1.2 设计的总体框图 1.3 设计过程 1逻辑抽象分析 CP为输入的减法计数脉冲,每当输入一个CP脉冲,计数器就减一个1,当不够减时就向高位借位,即输出借位信号。当向高位借来1时应当为8,减一后为7。状态图中,状态为000输入一个CP脉冲,不够减,向高位借1当8,减1后剩7,计数器的状态应由000转为111,同时向高位输出借位信号,总体框图中C为借位信号。 2状态图 状态000、010为无效状态,据分析状态图为: /0 /0 /0 /0 /0 001011100101110111 /1

3 选择触发器,求时钟方程、输出方程和状态方程 ● 选择触发器 由于状态数M=6,触发器的个数n 满足122n n M -≤≤,故n 的取值为3。选用3个 下降沿触发的JK 触发器。 ● 求时钟方程 因为是同步,故012CP CP CP CP === ● 求输出方程 1.3.1 输出C 的卡诺图 根据输出C 的卡诺图可得输出方程为 C=Q 2n Q 1n ● 求状态方程 计数器的次态的卡诺图为

1.3.2 次态210n n n Q Q Q 的卡诺图 各个触发器的次态卡诺图如下: 1.3.3 2n Q 次态卡诺图 1.3.4 1n Q 的次态卡诺图

1.3.5 0n Q 的次态卡诺图 根据次态卡诺图可得次态方程为: Q 2n+1=Q 1n Q 0n +Q 2n Q 1n Q 1n+1= Q 1n Q 0n + Q 2n Q 1n + Q 2n Q 1n Q 0n Q 0n+1 =Q 2n +Q 0n 4 求驱动方程 Q 2n+1 =Q 1n Q 2n + Q 0n Q 1n Q 2n Q 1n+1=Q 0n Q 2n Q 1n +Q 0n Q 2n Q 1n Q 0n+1=Q 2n Q 0n +Q 2n Q 0n 驱动方程是: J 0 = Q 2n K 0 =Q 2n J 1 =Q 0n Q 2n K 1= Q 0n Q 2 J 2 = Q 1n K 2=Q 0n Q 1n 5 检查是否能自启动 将无效状态100、101分别代入输出方程、状态方程进行计算,结果如下:

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;

八位乘法器VHDL及功能模块说明

EDA课程设计报告 实验名称:八位乘法器

目录 一.引言 1.1 EDA技术的概念?? 1.2 EDA技术的特点?? 1.3 EDA设计流程?? 1.4 VHDL介绍?? 二.八位乘法器的设计要求与设计思路??2.1 设计目的?? 2.2 设计要求?? 三.八位乘法器的综合设计?? 3.1 八位乘法器功能?? 3.2 八位乘法器设计方案?? 3.3 八位乘法器实体设计?? 3.4 八位乘法器VHDL设计?? 3. 5八位乘法器仿真图形?? 心得体会?? 参考文献??

一、引言 1.1 EDA技术的概念 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 1.2 EDA技术的特点 利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。 1.3 EDA设计流程 典型的EDA设计流程如下: 1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。 2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3、综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。 4、行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。 5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配臵、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

四位二进制减法计数器

成绩评定表

课程设计任务书

摘要 Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Multisim是Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。Multisim为用户提供了丰富的元器件,并以开放的形式管理元器件,使得用户能够自己添加所需要的元器件。 本次数电课程设计使用Quartus II仿真环境以及VHDL下载和Multisim 仿真环境来编译实现四位二进制同步减法计数器。在Multisim中选用四个JK 触发器来实现四位二进制减法计数器。运用卡诺图求解时序方程。逻辑电路图中,四个小红灯即为显示器,从右到左显示时序图中的十二种状态,其中,灯亮表示“1”,灭表示“0”,从而达到计数目的。 关键字:VHDL硬件描述语言、四位二进制减计数器、QUARTUSⅡ、Multisim、

目录 一.课程设计目的 (1) 二.课设题目实现框图 (1) 三.实现过程 (1) (一)VHDL的编译和仿真 (1) 1.建立工程 (1) 2.VHDL源程序 (4) 3.编译及仿真过程................................................................... (6) 4.引脚锁定及下载 (9) 5.仿真结果分析................................................................... (11) (二)电路设计................................................................... . (11) 1求驱动方程................................................................... .. (12) 2.基于Multisim的设计电路图 (15) 3.逻辑分析仪显示的波形 (15) 4.仿结果分析 (16) 四.设计体会 (16) 五.参考文献................................................................... . (17)

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

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

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

含有异步清零和计数使能的16位二进制加减可控计数器

1.含有异步清零和计数使能的16位二进制加减可控计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt16 IS PORT(EN,RST,UPD,CLK : IN STD_LOGIC; OUT1: OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END cnt16; ARCHITECTURE bhv OF cnt16 IS SIGNAL QQ:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN PROCESS(EN,RST,UPD) BEGIN IF RST='1' THEN QQ<=(OTHERS=>'0'); --有复位信号清零 ELSIF EN='1' THEN --EN位高电平开始计数IF CLK'EVENT AND CLK='1' THEN IF UPD='1' THEN --当UDP为1加计数 QQ<=QQ+1; ELSE --当UDP不为1减计数 IF QQ > "0" THEN --当减到0时 QQ<=QQ-1; --给QQ全1 ELSE QQ<=(OTHERS=>'1'); END IF; END IF; END IF; END IF; END PROCESS; OUT1<=QQ; END bhv; 图1-1 16位二进制加减可控计数器的RTL图 图1-2 16位二进制加减可控计数器的波形仿真图

2.1 计数器和译码器合起来的程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT4_YM IS PORT(CLK,RST,ENA:IN STD_LOGIC; COUT:OUT STD_LOGIC; LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END CNT4_YM; ARCHITECTURE BEHV OF CNT4_YM IS SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,RST,ENA) BEGIN IF RST='1' THEN CQI<=(OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF ENA='1' THEN IF CQI<9 THEN CQI<=CQI+1; ELSE CQI<=(OTHERS=>'0'); END IF; END IF; END IF; IF CQI=9 THEN COUT<='1'; ELSE COUT<='0'; END IF; END PROCESS; PROCESS(CQI) BEGIN CASE CQI IS WHEN"0000"=>LED7S<="0111111"; WHEN"0001"=>LED7S<="0000110"; WHEN"0010"=>LED7S<="1011011"; WHEN"0011"=>LED7S<="1001111"; WHEN"0100"=>LED7S<="1100110"; WHEN"0101"=>LED7S<="1101101"; WHEN"0110"=>LED7S<="1111101"; WHEN"0111"=>LED7S<="0000111"; WHEN"1000"=>LED7S<="1111111"; WHEN"1001"=>LED7S<="1101111"; WHEN"1010"=>LED7S<="1110111"; WHEN"1011"=>LED7S<="1111100"; WHEN"1100"=>LED7S<="0111001"; WHEN"1101"=>LED7S<="1011110"; WHEN"1110"=>LED7S<="1111001"; WHEN"1111"=>LED7S<="1110001"; WHEN OTHERS=>NULL; END CASE; END PROCESS; END BEHV; 2.2 计数器和译码器分开的程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY JSYM IS PORT(CLK,RST,ENA:IN STD_LOGIC; COUT:OUT STD_LOGIC; OUTY:OUTSTD_LOGIC_VECTOR(3 DOWNTO 0)); END JSYM; ARCHITECTURE BEHV OF JSYM IS BEGIN PROCESS(CLK,RST,ENA) V ARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST='1' THEN CQI:=(OTHERS=>'0'); ELSIF CLK'EVENT AND CLK='1' THEN IF ENA='1' THEN IF CQI<9 THEN CQI:=CQI+1; ELSE CQI:=(OTHERS=>'0'); END IF; END IF; END IF; IF CQI=9 THEN COUT<='1'; ELSE COUT<='0'; END IF; OUTY<=CQI; END PROCESS; END BEHV; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DECL7S IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END DECL7S; ARCHITECTURE BEHV OF DECL7S IS BEGIN PROCESS(A) BEGIN CASE A IS WHEN"0000"=>LED7S<="0111111"; WHEN"0001"=>LED7S<="0000110"; WHEN"0010"=>LED7S<="1011011"; WHEN"0011"=>LED7S<="1001111"; WHEN"0100"=>LED7S<="1100110"; WHEN"0100"=>LED7S<="1101101"; WHEN"0101"=>LED7S<="1111101"; WHEN"0110"=>LED7S<="0000111"; WHEN"0111"=>LED7S<="1111111"; WHEN"1000"=>LED7S<="1101111"; WHEN"1010"=>LED7S<="1110111"; WHEN"1011"=>LED7S<="1111100"; WHEN"1100"=>LED7S<="0111001"; WHEN"1101"=>LED7S<="1011110"; WHEN"1110"=>LED7S<="1111001"; WHEN"1111"=>LED7S<="1110001"; WHEN OTHERS=>NULL; END CASE; END PROCESS; END;

移位硬件八位乘法器

移位硬件八位乘法器 作者:孤灯 摘要:纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容 易的用ASIC大型集成芯片来完成,性价比高,可操作性强。 关键词:加法器,寄存器,一位乘法器,锁存器。 Abstract The pure combinatory logic constitution multiplier although the working speed quite is quick,But too takes the hardware resources,Realizes the wide position multiplier with difficulty.Meets the ROM multiplication table based on the PLD component outside the multiplier then is unable to constitute the monolithic system,Also is impractica Here introduced constitutes by eight accumulators by the succession logic way design eight multipliers,Has the certain practical value, Moreover constitutes the experimental system after FPGA,May be very easy to complete with the ASIC large-scale integration chip,The natural price is higher than,Feasibility. 一.设计思路 纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与 上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。 二.方案设计与论证 此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八 加法器,所以关键是设计好八位加法器。 方案一:八位直接宽位加法器,它的速度较快,但十分耗费硬件资源,对于工业化设计是不合理的。 方案二:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合 各方面的考虑,决定采用方案二。 三.工作原理

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 半加器元件符号

三位二进制同步减法计数器(无效状态:000、111)电压串联负反馈放大电路

课程设计任务书

目录 1. 数字电子设计部分 (1) 1.1 课程设计的目的与作用 (1) 1.2设计任务: (1) 1.2.1同步计数器 (1) 1.2.2串行序列信号检测器 (1) 1.3设计原理: (2) 1.3.1同步计数器 (2) 1.3.2串行序列信号检测器 (2) 1.4实验步骤: (3) 1.4.1同步计数器: (3) 1.4.2串行序列检测器 (6) 1.5设计总结和体会 (9) 1.6参考文献 (10) 2.模拟电子设计部分 (11) 2.1课程A设计的目的与作用 (11) 2.1.1课程设计 (11) 2.2 设计任务、及所用multisim软件环境介绍 (11) 2.2.1 设计任务:负反馈放大电路的基本框图 (11) 2.2.2 Multisim软件环境的介绍 (12) 2.3电路模型的建立 (15) 2.4理论分析及计算 (15) 2.4.1电路反馈类型的判断 (15) 2.4.2对电压串联负反馈电路的理论分析 (16) 2.5仿真结果分析 (19) 2.6设计总结和体会 (23) 2.7 参考文献 (24)

1. 数字电子设计部分 1.1课程设计的目的与作用 1.了解同步计数器及序列信号发生器工作原理; 2.掌握计数器电路的分析,设计方法及应用; 3.掌握序列信号发生器的分析,设计方法及应用; 4.学会正确使用JK触发器。 1.2设计任务: 1.2.1同步计数器 1. 使用设计一个循环型3位2进制同步减法计数器,其中无效状态为(000,111),组合 电路选用与门和与非门等。 2. 根据同步计数器原理设计减法器的电路图。 3. 根据电路原理图使用Multisim进行仿真。 4. 将电路图进行实际接线操作。 5. 检查无误后,测试其功能。 1.2.2串行序列信号检测器 1.使用设计一个序列信号检测器,其中序列为(1110),组合电路选用与门和与非门等。 2.根据序列发生检测器原理设计检测器的原理图。 3.根据电路原理图使用Multisim进行仿真。 4.将电路图进行实际接线操作。 5.检查无误后,测试其功能。

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

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