文档库 最新最全的文档下载
当前位置:文档库 › 带使能和同步清0控制的增1减1七位二进制计数器

带使能和同步清0控制的增1减1七位二进制计数器

带使能和同步清0控制的增1减1七位二进制计数器
带使能和同步清0控制的增1减1七位二进制计数器

实验六计数器二

一、实验目的

1、以计数器为例,掌握时序电路设计方法。

2、熟练掌握ISE软件进行FPGA开发的过程以及实验箱的使用方法。

3、了解ISE设计报告中电路资源利用率情况分析。

4、掌握使用VHDL创建测试文件的方法。

二、设计要求

1、设计一个带使能和同步清0控制的增1减1七位二进制计数器;计数结果由两位数码管显示。

2、输入时钟信号接时钟电路的相应输出,复位等控制信号接拨码开关或按键,输出信号接七段数码管。

三、实验步骤

1、启动ISE集成开发环境,创建工程并输入设计源文件。

2、对设计进行时序仿真,分析设计的正确性。

3、锁定引脚,完成设计实现过程。并在实验箱上连线,利用iMPACT进行程序下载。

4、在实验箱上验证计数器的功能,观察并记录实验结果。

四、实验报告

预习要求:

1、阅读教材第二章2.3节,熟悉ISE软件设计模板使用方法。

2、写出计数器的VHDL源程序。

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity counter is

port

(clk,clk1,ce, reset, dir: IN STD_LOGIC;

a,b,c,d,e,f,g:out std_logic;

co: out std_logic_vector(1 downto 0));

end counter;

architecture Behavioral of counter is

signal count_int : STD_LOGIC_VECTOR(6 downto 0);

signal s:std_logic_vector(6 downto 0);

signal hex:std_logic_vector(3 downto 0);

begin

process (clk)

begin

if clk'event and clk='1' then

if reset = '1' then

count_int <= ( others=> '0');

else

if ce = '1' then

if dir = '1' then

count_int<=count_int + 1;

else

count_int<=count_int-1;

end if;

end if;

end if;

end if;

end process;

co<="01" when clk1='0' else "10";

bi1<=count_int(3 downto 0)when clk1='0' else '0'&count_int(6 downto 4);

process(hex)

begin

case hex is

when"0000"=>s<="1111110";

when"0001"=>s<="0110000";

when"0010"=>s<="1101101";

when"0011"=>s<="1111001";

when"0100"=>s<="0110011";

when"0101"=>s<="1011011";

when"0110"=>s<="1011111";

when"0111"=>s<="1110000";

when"1000"=>s<="1111111";

when"1001"=>s<="1111011";

when"1010"=>s<="1110111";

when"1011"=>s<="0011111";

when"1100"=>s<="1001110";

when"1101"=>s<="0111101";

when"1110"=>s<="1001111";

when"1111"=>s<="1000111";

when others=>s<="0000000";

end case;

end process;

g<=s(0);

f<=s(1);

e<=s(2);

d<=s(3);

c<=s(4);

b<=s(5);

a<=s(6);

end Behavioral;

3、画出测试基准波形文件以及计数器的输出。

4、写出实现测试基准波形输出的VHDL源代码。LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

ENTITY countertest_vhd IS

END countertest_vhd;

ARCHITECTURE behavior OF countertest_vhd IS

-- Component Declaration for the Unit Under Test (UUT) COMPONENT counter7

PORT(

clk : IN std_logic;

clk1 : IN std_logic;

ce : IN std_logic;

reset : IN std_logic;

dir : IN std_logic;

a : OUT std_logic;

b : OUT std_logic;

c : OUT std_logic;

d : OUT std_logic;

e : OUT std_logic;

f : OUT std_logic;

g : OUT std_logic;

co : OUT std_logic_vector(1 downto 0)

);

END COMPONENT;

--Inputs

SIGNAL clk : std_logic := '0';

SIGNAL clk1 : std_logic := '0';

SIGNAL ce : std_logic := '0';

SIGNAL reset : std_logic := '0';

SIGNAL dir : std_logic := '1';

--Outputs

SIGNAL a : std_logic;

SIGNAL b : std_logic;

SIGNAL c : std_logic;

SIGNAL d : std_logic;

SIGNAL e : std_logic;

SIGNAL f : std_logic;

SIGNAL g : std_logic;

SIGNAL co : std_logic_vector(1 downto 0);

BEGIN

-- Instantiate the Unit Under Test (UUT)

uut: counter7 PORT MAP(

clk => clk,

clk1 => clk1,

ce => ce,

reset => reset,

dir => dir,

a => a,

b => b,

c => c,

d => d,

e => e,

f => f,

g => g,

co => co

);

tb : PROCESS

BEGIN

-- Wait 100 ns for global reset to finish

wait for 100ns;

clk<='1' after 100ns,'0' after 200ns,'1' after 300ns,'0' after 400ns,'1' after 500ns,'0'

after 600ns,'1' after 700ns,'0' after 800ns,'1' after 900ns,'0' after 1000ns,'1' after

1100ns,'0' after 1200ns,'1' after 1300ns,'0' after 1400ns,'1' after 1500ns,'0' after

1600ns,'1' after 1700ns,'0' after 1800ns;

clk1<='1' after 100ns,'0' after 200ns,'1' after 300ns,'0' after 400ns,'1' after 500ns,'0' after 600ns,'1' after 700ns,'0' after 800ns,'1' after 900ns,'0' after

1000ns,'1' after 1100ns,'0' after 1200ns,'1' after 1300ns,'0' after 1400ns,'1'

after 1500ns,'0' after 1600ns,'1' after 1700ns,'0' after 1800ns;

reset<= '1' after 100ns,'0' after 300ns;

dir<='1';

ce<='1' after 500ns;

-- Place stimulus here

wait; -- will wait forever

END PROCESS;

END;

实验记录:

功能仿真:

时序仿真:

验证时可看到低位数码管每次加1,由0记到F后,高位数码管加1,直到数码管显示7F。

3、查看设计报告,记录此计数器所用的逻辑资源。

4、说明实验中遇到的问题及解决方法,写出实验总结。

刚开始编程时对两位的位选信号不知道怎样更好地实现,通过老师的讲解,我明白了可以用clk1的高低电平来控制选择”01”、”10”实现一个两路的选择器。在下载进行验证时,刚开始锁定的引脚不连续,不方便连线,后来重新锁定引脚后没有保存重新生成bit文件,导致我们的数码管不显示任何结果,经过询问老师后,重新下载生成bit文件后出现了结果。通过这次实验,我懂得了如何查找错误,例如对于我们遇到的情况,可以先将clk信号插到发光二级管,看是否有信号输入,如果没有,说明连线不对,没有信号送入,可以通过查看ucf文件,查看引脚锁定情况,看连线是否接错,等等。总之,我通过这次试验,解决实际问题的能力得到了增强,收获颇大。

四位二进制同步加法计数器(缺0011 0100 0101 0110)

成绩评定表

课程设计任务书

摘要 本次课设题目为四位二进制加法计数器(缺0011 0100 0101 0110)。 首先在QuartusII8.1中建立名为count16的工程,用四位二进制加法计数器的VHDL语言实现了四位二进制加法计数器的仿真波形图,同时进行相关操作,锁定了所需管脚,将其下载到实验箱。 然后,在Multisim软件中,通过选用四个时钟脉冲下降沿触发的JK触发器和同步电路,画出其时序图,卡诺图,建立相关方程,做出相关计算,完成四位二进制加法计数器(缺0011 0100 0101 0110)的驱动方程。在Multisim软件里画出了四位二进制加法计数器的逻辑电路图。经过运行,分析由红绿灯的亮灭顺序及状态,和逻辑分析仪里出现波形图。说明四位二进制加法计数器顺利完成。 关键词:计数器;VHDL语言;仿真;触发器。

目录 一、课程设计目的 (1) 二、设计框图 (1) 三、实现过程 (2) 1、QUARTUS II实现过程 (2) 1.1建立工程 (2) 1.2编译程序 (7) 1.3波形仿真 (10) 1.4 仿真结果分析 (14) 1.5引脚锁定与下载 (14) 2、MULTISIM实现过程 (16) 2.1求驱动方程 (16) 2.2画逻辑电路图 (19) 2.3逻辑分析仪的仿真 (20) 2.4结果分析 (21) 2.5自启动判断 (22) 四、总结 (23) 五、参考书目 (24)

一、课程设计目的 1 了解同步加法计数器工作原理和逻辑功能。 2 掌握计数器电路的分析、设计方法及应用。 3 学会正确使用JK 触发器。 二、设计框图 状态转换图是描述时序电路的一种方法,具有形象直观的特点,即其把所用触发器的状态转换关系及转换条件用几何图形表示出来,十分清新,便于查看。 在本课程设计中,四位二进制同步加法计数器用四个CP 下降沿触发的JK 触发器实现,其中有相应的跳变,即跳过了0011 0100 0101 0110四个状态,这在状态转换图中可以清晰地显示出来。具体结构示意框图和状态转换图如下: 1010 101111001101111011110 /1 /1000 101101110010000100000/0/0/0/0/0/0/0/0/0/????←????←????←????←????←↓↑???→????→????→????→????→? B:状态转换图

四位二进制全加全减器

数字逻辑设计及应用课程设计报告

组合逻辑设计 题目:使用74LS83构成4位二进制全加\全减器。 具体要求:1)列出真值表; 2)画出逻辑图; 3)用Verilog HDL 进行仿真; 1.设计思路及原理分析 全加器是除本位数字相加外,还考虑进位输入和进位输出的加法器,全减器同理,考虑借位输入和借位输出。本次主要应用74LS83来实现设计要求,74LS83是四位二进制先行进位加法器,可以直接接入输入获得全加器,所以设计重点在于四位全减器的设计。 对于串行进位加法器,可略加改进获得相应的减法器,基本原理如下式: 2'2'2'2'[]s s s s X Y X Y -=+- '2'2[]2n s s Y Y -=- 这里利用了补码的基本性质,具体实现时可以将减数逐位取反,然后最低位加1。又因为全加器时in C 为为进位输入,全减器时应变为借位输入,所以要减去in C ,且全加器的输出端out C 为进位输出,而全减法器应该输出借位输出,而进位输出与借位输出恰好是反向的关系,所以将0S 取反后即得到全减器的借位输出out B ,据此,可以在全加器的基础上设计全减器。

其中表中输出部分上行为全加输出,下行为全减输出。 2 逻辑电路图 3 电路实现和仿真 3.1 verilog HDL设计代码如下: module add(s,out,a,b,in,EN); output[0:3] s; output out; input[0:3] a,b; input in; input EN; reg out; reg[0:3] s,c; always@(*) if (EN==0) begin {out,s}=a+b+in; end else begin c=10000-b; {out,s}=a+c-in; out=~out; end endmodule 3.2 仿真波形图

同步二进制加法计数器

同步二进制加法计数器 F0302011 5030209303 刘冉 计数器是用来累计时钟脉冲(CP脉冲)个数的时序逻辑部件。它是数字系统中用途最广泛的基本部件之一,几乎在各种数字系统中都有计数器。它不仅可以计数,还可以对CP 脉冲分频,以及构成时间分配器或时序发生器,对数字系统进行定时、程序控制操作。此外,还能用它执行数字运算。 1、计数器的特点: 在数字电路中,把记忆输入CP脉冲个数的操作叫做计数,能实现计数状态的电子电路称为计数器。特点为(1)该电路一般为Moore型电路,输入端只有CP信号。 (2)从电路组成看,其主要组成单元是时钟触发器。 2、计数器分类 1) 按CP脉冲输入方式,计数器分为同步计数器和异步计数器两种。 同步计数器:计数脉冲引到所有触发器的时钟脉冲输入端,使应翻转的触发器在外接的CP脉冲作用下同时翻转。 异步计数器:计数脉冲并不引到所有触发器的时钟脉冲输入端,有的触发器的时钟脉冲输入端是其它触发器的输出,因此,触发器不是同时动作。 2) 按计数增减趋势,计数器分为加法计数器、减法计数器和可逆计数器三种。 加法计数器:计数器在CP脉冲作用下进行累加计数(每来一个CP脉冲,计数器加1)。 3) 按数制分为二进制计数器和非二进制计数器两类。 二进制计数器:按二进制规律计数。最常用的有四位二进制计数器,计数范围从0000到1111。 异步加法的缺点是运算速度慢,但是其电路比较简单,因此对运算速度要求不高的设备中,仍不失为一种可取的全加器。同步加法优点是速度快,虽然只比异步加法快千分之一甚至几千分之一秒,但对于计数器来讲,却是十分重要的。所以在这个高科技现代社会中,同步二进制计数器应用十分广泛。 下图为三位二进制加法计数器的电路图。 图1 三位二进制计数器 图示电路为对时钟信号计数的三位二进制加法计数器或称为八进制加法计数器。 该电路的经典分析过程: 1.根据电路写出输出方程、驱动方程和状态方程 2. 求出状态图 3.检查电路能否自启动 4.文字叙述逻辑功能 解:

组合逻辑课程设计4位二进制全加器全减器原创

组合逻辑电路课程设计—— 4位二进制全加器/全减器 作者: 学号: 课程设计题目要求: 1)使用74LS283构成4位二进制全加/全减器。 2)阐述设计思路。 3)列出真值表。 4)画出设计的逻辑图。 5)用VHDL对所画电路进行仿真。 目录 摘要 (2) 1总电路设计 (3) 1.1硬件电路的设计 (3) 1.2全加器(full-adder ) (3) 1.2.1四位二级制加法器 (5) 1.2.1.1串行进位加法器 (5) 1.2.1.2超前进位加法器 (6) 1.2.1.3超前位链结构加法器 (6) 1.3全减器(full-substracter ) (7)

1.4总电路设计 (8) 2设计思路 (9) 2.1全加器 (9) 2.2全减器 (9) 3真值表 (10) 4逻辑图与仿真 (12) 5软件程序的设计 (16) 6结果分析与总结 (19) 摘要 加法器是数字系统中产生数的和的装置。加数和被加数为输入,和数与进位为输出的装置为半加器。若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。例如:为了节省资源,减法器和硬件乘法器都可以用加法器来构成。但宽位加法器的设计是很耗资源的,因此在实际的设计和相关饿得设计与开发中需要注意资源的利用率和进位速度两方面的问题,多位加法器的构成主要有两种:并行进位和串行进位。并行进位加法器设有并行进位产生逻辑,运行速度比串行进位快;串行进位是将全加器采取并行级联或菊花链式级联构成多位加法器。加法器也是常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。此外还可以用来表示各种数值,如:BCD、加三码,主要的加法器是以二进制作运算。 本文将采用4位二进制并行加法器作为折中选择,所选加法器为74LS283,74LS283是4位二进制先行进位的加法器,它只用了几级逻辑来形成和及进位输出,故由其构成4位二进制全加器;而四位全减器可以用加法器简单的改造而来,最后本文采用 VHDL对四位全加器/全减器进行仿真。 关键字 74LS283全加器、四位二进制、迭代电路、并行进位、串行进位、VHDL

三位二进制加法计数器(无效态:000,001)设计一个基于74138的组合电路 设计一个140进制加法计数器

目录 1 课程设计的目的与作用 (1) 2 设计任务 (1) 3 设计原理 (2) 3.1三位二进制加法计数器 (2) 3.2全加器 (2) 3.3用集成芯片设计一个140进制的加法器 (2) 4实验步骤 (3) 4.1加法计数器 (3) 4.2全加器 (6) 4.3用集成芯片设计一个140进制的加法器 (7) 5仿真结果分析 (8) 6设计总结 (9) 7参考文献 (9)

1课程设计的目的与作用 (1)了解同步计数器及序列信号发生器工作原理; (2)掌握计数器电路的分析,设计方法及应用; (3)掌握序列信号发生器的分析,设计方法及应用 2 设计任务 2.1加法计数器 (1)设计一个循环型3位2进制加法计数器,其中无效状态为(000,001),组合电路选用与门和与非门等。 (2)根据自己的设计接线。 (3)检查无误后,测试其功能。 2.2全加器 (1)设计一个全加器,选用一片74LS138芯片设计电路。 (2)根据自己的设计接线。 (3)检查无误后,测试其功能。 2.3 140进制的加法器 (1)设计一个140进制加法器并显示计数,选用两片74L163芯片设计电路。 (2)根据自己的设计接线。 (3)检查无误后,测试其功能。

3 设计原理 3.1加法计数器 1.计数器是用来统计输入脉冲个数电路,是组成数字电路和计算机电路的基本时序逻辑部件。计数器按长度可分为:二进制,十进制和任意进制计数器。计数器不仅有加法计数器,也有减法计数器。如果一个计数器既能完成累加技术功能,也能完成递减功能,则称其为可逆计数器。在同步计数器中,个触发器共用同一个时钟信号。 2.时序电路的分析过程:根据给定的时序电路,写出各触发器的驱动方程,输出方程,根据驱动方程带入触发器特征方程,得到每个触发器的次态方程;再根据给定初态,一次迭代得到特征转换表,分析特征转换表画出状态图。 3.CP是输入计数脉冲,所谓计数,就是记CP脉冲个数,每来一个CP脉冲,计数器就加一个1,随着输入计数脉冲个数的增加,计数器中的数值也增大,当计数器记满时再来CP脉冲,计数器归零的同时给高位进位,即要给高位进位信号。 3.2全加器 1.74LS138有三个输入端:A0,A1,A2 和八个输出端Q0-Q7. 3个使能输入端口分是STB,STC,STA,只有当STB=STC=0,STA=1时,译码器才能正常工作,否则译码器处于禁止状态,所有输出端为高电平。 2. 以处理低位进位,并输出本位加法进位。多个全加器进行级联可以得到多位全加器 3.3用集成芯片设计一个140进制的加法器 选取两片74LS163芯片设计140进制加法计数器。74LS163具有以下功能: A 异步清零功能 当0 CR时,其他输入信号都不起作用,由时钟触发器的逻 = = CR时,计数器清零。在0 R复位计数器也即使异步清辑特性知道,其异步输入端信号是优先的,0 = CR正是通过D 零的。

一位全减器

实验一 1位二进制全减器设计 一、实验目的 1.熟悉Quartes II集成开发软件的使用; 2.初步熟悉PH-1V型实验装置的使用; 3 . 学习用原理图输入法和文本输入法进行简单的数字电路设计,掌握系统仿真,学会分析硬件测试结果。 二、实验内容与要求 1.采用原理图输入法和文本输入法分别实现,分层设计,底层由半减器(也用原理图输入法)和逻辑门组成; 2.建立波形文件,并进行系统仿真,用软件验证设计结果; 3. 在仿真正确的情况下,对1位二进制半加/减器分别下载到实验箱中做硬件测试 三、实验原理及设计思路 根据一位二进制全减器的工作原理,可得其真值表为(如下:cin表示低位向本位借位。cout 表示本位向高位借位)

由EDA教程中全加器的顶层设计描述及半加器调用可类比到全减器的设计,可由先对半减器进行描述,然后进行两次调用。半减器的工作时的逻辑表达式为:so=a XOR b ;co=(NOT a)AND b 四、实验程序(程序来源:EDA技术实验教程) 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; LIBRARY IEEE; ——半减器描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_suber IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC);

一位全加全减器的实现

课程实验报告课程名称:数字电路与逻辑设计 专业班级:计实1001班 学号:U201014488 姓名:王宸敏 指导教师:唐九飞 周次:第九周 同组人员:熊凯 报告日期:2012年4月18日

计算机科学与技术学院 【内容A 】 一、 实验名称 一位全加/全减器的实现 二、 实验目的 1. 掌握组合逻辑电路的功能测试 2. 验证半加器和全加器的逻辑功能 3. 学会二进制数的运算规律 三、 实验所用仪器和组件 1. 二输入四“与非”门1片,型号为74LS00 2. 三输入三“与非”门1片,型号为74LS10 3. 二输入四“异或”门1片,型号为74LS86 四、 实验设计方案及逻辑图 首先根据真值表得到了其卡诺图如下所示: 根据输入与输出写出全加/减法器的函数表达式,如下: 实现全加法器的表达式: in in in in O in BC AC AB BC AC AB C C B A S M ??=++=⊕⊕==时,0; 实现全减法器的表达式: in in in in O in BC C A B A BC C A B A C C B A S M ??=++=⊕⊕==时,1 .

由表达式可知:S采用异或的逻辑门而Co则采用与非的逻辑门得到,因此画出逻辑图如下: 五、实验记录 六、描述实验现象,并运用所学的知识进行分析、处理及讨论 1.在m=0时,在输入端输入三个电平时,输出实现了全加器的功能,即把三个输入当作 被加数、加数和低位的进位,同时两个输出分别表示了和与低位的进位。 2.在m=1时,在输入端输入三个电平时,输出实现了全减器的功能,即把三个输入当作 被减数、减数和低位的借位,同时两个输出分别表示了差与高位的借位。 因为电路的设计是根据真值表的结果得到的,通过真值表画出卡诺图从而的到输出关于输入的表达式,因此他所实现的功能正是我们所需要的全加器与全减器的功能,只不过是通过逻辑门进行了处理,得到的是正确的值。

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

成绩评定表 学生姓名郝晓鹏班级学号1103060129 专业通信工程课程设计题目四位二进制加法 计数器 评语 组长签字: 成绩 日期20 年月日

课程设计任务书 学院信息科学与工程学院专业通信工程 学生姓名郝晓鹏班级学号1103060129 课程设计题目四位二进制加法计数(缺0010 0011 1101 1110) 实践教学要求与任务: 1、了解数字系统设计方法。 2、熟悉VHDL语言及其仿真环境、下载方法。 3、熟悉Multisim仿真环境。 4、设计实现四位二进制加计数(缺0010 0011 1101 1110) 工作计划与进度安排: 第一周:熟悉Multisim及QuartusII环境,练习数字系统设计方法。包括采用触发器设计和超高速硬件描述语言设计,体会自上而下、自下而上设计 方法的优缺点 第二周:1.在QuartusII环境中仿真实现四位二进制加计数(缺0100 0101 1001 1010 )。 2.在Multisim环境中仿真实现四位二进制加计数,缺(0100 0101 1001 1010),并通过虚拟仪器验证其正确性。 指导教师: 201 年月日专业负责人: 201 年月日 学院教学副院长: 201 年月日

摘要 本文采用在MAXPLUSⅡ环境中用VHDL语言实现四位二进制加法计数(缺0010 0011 1101 1110),在仿真器上显示结果波形,并下载到目标芯片上,在实验箱上观察输出结果。在Multisim环境中仿真实现四位二进制加法计数器(缺0010 0011 1101 1110),并通过虚拟仪器验证其正确性。 关键词:MAXPLUSⅡ环境;VHDL语言;四位二进制加计数;Multisim环境

EDA实验报告实验一:一位二进制全减器的设计

实验一、一位二进制全减器的设计 一、实验目的: (1)掌握Quartus II 的VHDL 文本设计的全过程; (2)熟练和掌握EDA设计流程;熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。 (3)学习PH-1V型实验装置上发光二极管和按键的使用方法。 二、实验内容与要求: (1)用文本方法实现半减器,再利用半减器完成全减器的设计,熟悉层次设计概念; (2)给出此项设计的仿真波形; (3)选择实验电路NO.1验证, 用发光管指示显示结果。 三、设计原理: (1)半减器真值表: xx yy Diff1 S_out1 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 (表中Diff1表示本位向高位的借位,S_out1表示本位) (2)全减器真值表: x y Sub_in diffr Sub_out 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 (表中Sub_in表示低位向本位的借位,diffr表示本位向高位的借位,Sub_out表示本位) 四、实验程序: (1)对半减器进行描述:

(2)对全减器进行原理图编辑: 五、实验步骤: 1.建立工作库文件夹和编辑设计文件 (1)在D盘下建立一个文件夹保存工程文件; (2)打开QuartusII,建立新的VHDL文件,再打开的页面下输入程序。 2.编译过程 (1)输入完程序之后逐个编译 (2)逐个编译无错之后进行全程编译 3.系统仿真 (1)建立新的波形激励文件 (2)在波形编辑器窗口添加节点 (3)通过Edit->End Time 来设定仿真结束时间 (4)点击save保存 (5)通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。 4.引脚锁定 (1)通过Assignment->Assignment Editor->Pin查找到所有的引脚 (2)选择各个输入输出信号来锁定到不同引脚,进行全编译。 5.编程下载

用quartusⅡ设计一个四位二进制全减器

EDA技术与VHDL作业 作业名称用quartusⅡ设计一个四位二进制全减器 学生姓名邹运 班级电技122 学号2012301030230 任课教师吴君鹏 完成时间2014.3.22

用VHDL语言编写如下: library ieee; use ieee.std_logic_1164.all; entity quanjian is port(a,b,c:in std_logic; sout,jout:out std_logic); end; architecture one of quanjian is signal abc:std_logic_vector(2 downto 0); begin abc<=a&b&c; process(abc) begin case abc is when"000"=> sout<='0';jout<='0'; when"001"=> sout<='1';jout<='1'; when"010"=> sout<='1';jout<='1'; when"011"=> sout<='0';jout<='1'; when"100"=> sout<='1';jout<='0'; when"101"=> sout<='0';jout<='0'; when"110"=> sout<='0';jout<='0'; when"111"=> sout<='1';jout<='1'; when others=>null; end case; end process; end one; library ieee; use ieee.std_logic_1164.all; entity quanjian4 is port(a11,a12,a13,a14,b11,b12,b13,b14:in std_logic; s1,s2,s3,s4,j4:out std_logic); end; architecture two of quanjian4 is signal d,e,f:std_logic; component quanjian port(a,b,c:in std_logic; sout,jout:out std_logic); end component; begin u1:quanjian port map(a=>a14,b=>b14,c=>'0',jout=>d,sout=>s4); u2:quanjian port map(a=>a13,b=>b13,c=>d,jout=>e,sout=>s3); u3:quanjian port map(a=>a12,b=>b12,c=>e,jout=>f,sout=>s2); u4:quanjian port map(a=>a11,b=>b11,c=>f,jout=>j4,sout=>s1); end two;

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

赣南师院物理与电子信息学院数字电路课程设计报告书 姓名:胡丹 班级:电气教育技术10级 学号:100805004 时间:2012年 4月8日

3位二进制同步减法计数器 1、设计任务与要求 设计一个3位二进制同步减法计数器(无效状态为001 100) 2、方案设计与论证 2.1 基本原理 计数器是用来统计脉冲个数的电路,是组成数字电路和计算机电路的基本时序部件,计数器按进制分可分为:二进制,十进制和N 进制。计数器不仅有加法计数器,也有减法计数器。一个计数器如果既能完成加法计数,又能完成减法计数,则其称为可逆计数器。 同步计数器:当输入计数脉冲到来时,要更新状态的触发器都是同时翻转的计数器,叫做同步计数器。设计同步计数器按照下面的思路进行分析。 图(1) 2.2 设计过程 2.2.1 状态图 000 111 110 101 011 010 图(2) 2.2.2 卡诺图 00 01 11 10 111 xxx 010 000 xxx 011 110 101 图(3) 0 1 Q 1n Q 0n Q 2n 时序逻辑问题 状态赋值 状态转换图 最简逻辑表达式 逻辑图 检查能否自启动 选定触发器类型

00 01 11 10 1 x 0 0 x 1 1 图(4) 00 01 11 10 1 x 1 1 x 1 1 图(5) 00 01 11 10 1 x 0 0 x 1 1 图(6) 2.2.3 状态方程与驱动方程 状态方程: 12 n Q +=1n Q 2 n Q +1n Q 2 n Q 11 n Q +=1 n Q +0 n Q 1 n Q Q 1n Q 0n Q 2n 0 1 Q 1n+1的卡诺图 Q 1n Q 0n Q 2 n 0 1 Q 1n Q 0n Q 2n 0 1

课程设计---4位二进制全加器全减器

组合逻辑电路课程设计之—— 4位二进制全加器/全减器 课程设计题目要求: 使用74LS283构成4位二进制全加\全减器。 具体要求:1)列出真值表; 2)画出逻辑图; 3)用Verilog HDL进行仿真。

摘要 加法器是数字系统中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面问题。多为加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运行速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行加法器的资源占用差距也会越来越大。 本文将采用4位二进制并行加法器作为折中选择,所选加法器为74LS283,74LS283是4位二进制先行进位加法器,它只用了几级逻辑来形成和及进位输出,由其构成4位二进制全加器;而四位的全减器可以用加法器简单的改造而来。采用Verilog HDL对四位的全加器-全减器进行仿真。 关键字 74LS283,全加器,并行进位,串行进位,全减器,Verilog HDL仿真 总电路设计 一、硬件电路的设计 该4位二进制全加器以74LS283(图1)为核心,采用先行进位方式,极大地提高了电路运行速度,下面是对4位全加器电路设计的具体分析。 图1

1)全加器 全加器是针对多于一位的操作数相加,必须提供位与位之间的进位而设计的一种加法器,具有广泛而重要的应用。其除有加数位X和Y,还有来自低位的进位输入CIN,和输出S(全加和)与COUT(送给高位的进位),满足下面等式: CIN Y CIN X Y X COUT CIN Y X CIN Y X N CI Y X N CI Y X CIN Y X S ? + ? + ? = ? ? + ?' ?' +' ? ?' +' ?' ? = ⊕ ⊕ = 其中,如果输入有奇数个1,则S为1;如果输入有2个或2个以上的1,则 COUT为1。实现全加器等式的电路如图3所示,逻辑符号见下 图2 图3

四位二进制加法计数器

学院信息学院专业通信工程姓名陈洁学号02 设计题目数字系统课程设计 内容四位二进制加法计数器 技术参数和要求0000→0001→0010→0011→0110→0111→1000→1001→1010→1011→1100→→1101→1110→1111→0000 缺0100→0101 设计任务 1.按要求设计VHDL程序, 2.在Xinlinx Ise环境中运行程序并输出仿真波形。 工作进度和安排第18周: 1.学习Xinlinx Ise软件知识,熟悉软件相关操作; 2.学习multsim软件知识,熟悉其在画逻辑电路时的应用; 3.查阅相关资料,学习时序逻辑电路设计知识。 第20周: 1.按要求编写程序代码,; 2.运行并输出仿真波形; 3.程序下载到电路板测试; 4.利用multsim软件,设计时序电路; 5.运行并验证结果; 6.撰写报告。 指导教师(签字): 年月日学院院长(签字): 年月日

目录 一.数字系统简介 (3) 二.设计目的和要求 (3) 三.设计内容 (3) 四.VHDL程序设计 (3) 五.波形仿真 (11) 六. 逻辑电路设计 (12) 六.设计体会 (13) 七.参考文献 (13)

一.数字系统简介 在数字逻辑设计领域,迫切需要一种共同的工业标准来统一对数字逻辑电路及系统的描述,这样就能把系统的设计分解为逻辑设计(前端),电路实现(后端)和验证桑相互独立而又相关的部分。由于逻辑设计的相对独立性就可以把专家们设计的各种数字逻辑电路和组件建成宏单元或软件核,即ip库共设计者引用,设计者可以利用它们的模型设计电路并验证其他电路。VHDL这种工业标准的产生顺应了历史潮流。 二.设计目的和要求 1、通过《数字系统课程设计》的课程实验使电子类专业的学生能深入了解集成中规 模芯片的使用方法。 2、培养学生的实际动手能力,并使之初步具有分析,解决工程实际问题的能力。三.设计内容 四位二进制加计数,时序图如下: 0000→0001→0010→0011→0110→0111→1000→1001→1010→1011→1100→→1101→1110→1111 →0000 缺0100→0101 。由JK触发器组成4位异步二进制加法计数器。 四.VHDL程序设计 四位二进制加计数,缺0100,0101(sw向上是0(on);灯亮为0) LIBRARY IEEE; USE entity count10 is PORT (cp,r:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); end count10; ARCHITECTURE Behavioral OF count10 IS SIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN PROCESS (cp,r) BEGIN if r='0' then count<="0000"; elsiF cp'EVENT AND cp='1' THEN if count="0011" THEN count <="0110"; ELSE count <= count +1; END IF; end if; END PROCESS; q<= count; end Behavioral;

实验一:一位二进制全减器设计

南昌大学实验报告 学生姓名:刘志强学号: 6100409222 专业班级:电子091班 实验类型:验证□综合□设计■创新□实验日期:实验成绩: 实验一一位二进制全减器设计 一、实验目的 (1)掌握QuartusII的VHDL原理图设计和文本设计全过程; (2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。 二、实验内容与要求 (1)设计一个二进制全减器,用分层设计方法,顶层为全减器,底层为半减器和逻辑门组成; (2)进行波形仿真,并分析仿真波形图; (3)下载测试全减法器是否正确。 三、设计思路/原理图 一位全减器可以由两个半减器和一个或门连接而成,根据半减器真值表对半减器进行描述,再对或门的VHDL描述,而后根据原理图对全减器的VHDL描述。 图1 全减器f_suber电路图 四、实验程序(程序来源:教科书本) library ieee; --半减器描述 use ieee.std_logic_1164.all; entity h_suber is --定义半减器h_suber实体 port(a,b:in std_logic; do,vo:out std_logic); end entity h_suber; architecture fs1 of h_suber is signal abc:std_logic_vector (1 downto 0); begin abc <= a&b ; process (abc) begin case abc is

when "00" => do<='0';vo<='0'; when "01" => do<='1';vo<='1'; when "10" => do<='1';vo<='0'; when "11" => do<='0';vo<='0'; when others => null; end case; end process; end architecture fs1; library ieee; --一位二进制全减器顶层设计描述 use ieee.std_logic_1164.all; entity f_suber is --定义全减器f_suber实体 port (ain,bin,cin:in std_logic; v,sub:out std_logic); end entity f_suber; architecture fs of f_suber is component h_suber ---调用半减器声明语句 port (a,b:in std_logic; do,vo:out std_logic); end component; component or2a --调用或逻辑门声明语句 port (m,n:in std_logic; h:out std_logic); end component; signal e,f,g:std_logic; ---定义3个信号作为内部的连接线 begin u1:h_suber port map(a=>ain,b=>bin,do=>e,vo=>f); ---例化语句 u2:h_suber port map(a=>e,b=>cin,do=>sub,vo=>g); u3:or2a port map(m=>g,n=>f,h=>v); end architecture fs; 五、实验步骤 1. 利用Quartus II 7.2建立工程 在file中打开【】→【】→在【】中选 择存放的目录→【】f_suber要与顶层文件中entity f_suber相同→点击next→点击next→选择芯片→next完成; 再在file下面点【】→【】→点击ok→编写程序→编译 并保存在f_suber文件中(改动程序后,再保存,再编译)→管脚【】→ 【】→而后对芯片设置,即打开device→点【】→点 【】与【】→选如【】与【】→选芯片→确定ok ; 重新编译→点下载,后选【】硬件有“JTAG【】”和“ASP 【】手动添加以扩展名为.pof的文件【】”两个接口其一(要看硬

一位全减器实验报告

南昌大学实验报告 学生姓名:蔡斌学号:6100208099 专业班级:电子083班 实验类型:□验证□综合□设计□创新实验日期:2010.10.14 实验成绩: 实验一一位二进制全减器的设计 一、实验目的 (1)掌握Quartus II 的VHDL 文本设计的全过程; 熟练和掌握EDA设计流程;熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果。 二、实验内容与要求 用文本方法实现半减器,再利用半减器完成全减器的设计,熟悉层次设计概念; 给出此项设计的仿真波形; 用发光管指示显示结果。 三、设计原理 (表中Diff表示本位向高位的借位,S_out表示本位) (表中Sub_in表示低位向本位的借位,diffr表示本位输出,Sub_out表示本位向高位借位) 四、实验程序 (1)对半减器进行描述:(独立编写) library ieee;

use ieee.std_logic_1164.all; entity h_suber is port(x,y:in std_logic; diff,s_out:out std_logic); end entity h_suber; architecture one of h_suber is begin diff<=x xor y; s_out<=(not x)and y; end architecture one; (2)对全减器进行原理图编辑: 五、实验步骤 1.建立工作库文件夹和编辑设计文件 (1)打开QuartusII,按提示在D盘下建立一个工程文件夹; (2)建立新的VHDL文件,再打开的页面下输入半减器描述语言。 2.编译过程 (1)输入完程序之后选择“保存”,然后processing—analyze current files进行语法检查和分析。 (2)逐个编译无错之后进行全程编译processing—start—compilation。 3.系统仿真 (1)建立新的波形文件 (2)在波形编辑器窗口添加节点 (3)通过Edit->End Time 来设定仿真结束时间 (4)点击save保存 (5)通过Tools下的Simulator Tools项进行仿真,然后观察输出波形。 4.引脚锁定 (1)通过Assignment->Assignment Editor->Pin查找到所有的引脚 (2)选择各个输入输出信号来锁定到不同引脚,进行全程编译。 5.编程下载 (1)选择Tools->Programmer菜单,点击Hardware Setup窗口完成硬件设置 (2)点击Start开始编程下载 六、仿真波形分析

四位二进制计数器

四位二进制计数器设计 班级:电子S102 姓名刘利勇学号:103511 一:实验目标 掌握用VHDL语言设计异步复位、同步使能的四位二进制加法计数器的编程方法, RST是异步清零信号,高电平有效;CLK是时钟信号;ENA是同步使能信号,高电平使能。OUTY是4位数据输出端。COUT是进位端。在复位信号为低电平,使能信号为高电平并且有时钟输入的时候,计数器自加,直到溢出,自动复位。 二:实验仪器 PC机一台,实验箱一套 三:实验步骤 1、新建一个工程目录,在该工程目录下新建一个文本输入文件。 2、在新建的文件中输入以下实验程序,并把该文件以CNT4B.VHD为文件名保存在该新建的工程文件夹下。

3、把该文本文件设置成当前文件。 4、运行编译器,检测该文本文件的错误,直到编译通过。 5、新建波形文件,在该文件中输入信号节点,设置仿真时间,运行仿真器,观测仿真波形。

6、软件仿真正确无误后,选择目标器件。 7、引脚锁定。其中时钟信号选择1引脚,使能引脚和复位引脚分别接一位拨动开关。溢出端接一个发光二极管,数据输出端接一个数码管。数据的高位接数码管的高位,数据的低位接数码管的低位。 9、重新编译。

10、编程下载,硬件调试。观测硬件结果,复位波动开关置为低电平,使能波动开关置为高电平,则数码管依次循环显示0到F,显示到F时,LED灯亮,说明发生溢出进位。当复位端有效时,计数器复位。使能端为低电平时,计数器不计数。 四、实验注意事项 1、注意输入程序后保存,以VHD为后缀名保存,不要使用默认保存格式,否则编译不通过。 2、引脚锁定时,要把输出端的高位和数码管的高位缩地,低位和低位锁定。这样才能按从0到F的顺序自加1显示。否则会数码管译码错误,会出现数字跳变。

同步计数器和异步计数器比较

一、选择题 1.同步计数器和异步计数器比较,同步计数器的显著优点是A。 A.工作速度高 B.触发器利用率高 C.电路简单 D.不受时钟C P控制。 2.把一个五进制计数器与一个四进制计数器串联可得到D进制计数器。 A.4 B.5 C.9 D.20 3.下列逻辑电路中为时序逻辑电路的是C。 A.变量译码器 B.加法器 C.数码寄存器 D.数据选择器 4.N个触发器可以构成最大计数长度(进制数)为D的计数器。 A.N B.2N C.N2 D.2N 5.N个触发器可以构成能寄存B位二进制数码的寄存器。 A.N-1 B.N C.N+1 D.2N 6.五个D触发器构成环形计数器,其计数长度为A。 A.5 B.10 C.25 D.32 7.同步时序电路和异步时序电路比较,其差异在于后者B。 A.没有触发器 B.没有统一的时钟脉冲控制 C.没有稳定状态 D.输出只与内部状态有关 8.一位8421B C D码计数器至少需要B个触发器。 A.3 B.4 C.5 D.10 9.欲设计0,1,2,3,4,5,6,7这几个数的计数器,如果设计合理,采用同 步二进制计数器,最少应使用B级触发器。 A.2 B.3 C.4 D.8 10.8位移位寄存器,串行输入时经个脉冲后,8位数码全部移入寄存器中。 A.1 B.2 C.4 D.8 11.用二进制异步计数器从0做加法,计到十进制数178,则最少需要个触发器。 A.2 B.6 C.7 D.8 E.10 12.某电视机水平-垂直扫描发生器需要一个分频器将31500H Z的脉冲转换为60H Z 的脉冲,欲构成此分频器至少需要个触发器。 A.10 B.60 C.525 D.31500 13.某移位寄存器的时钟脉冲频率为100K H Z,欲将存放在该寄存器中的数左移8位,完成该操作需要时间。

4位同步二进制加法计数器

4位同步二进制加法计数器 一、实验目的 1、熟悉在EDA平台上进行数字电路集成设计的整个流程。 2、掌握Max+PlusⅡ软件环境下简单的图形、VHDL文本等输入设计方法。 3、熟悉VHDL设计实体的基本结构、语言要素、设计流程等。 4、掌握利用Max+PlusⅡ的波形仿真工具验证设计的过程。 5、学习使用JTAG接口下载逻辑电路到可编程芯片,并能调试到芯片正常工作为止。 二、实验设备 1.软件 操作系统:Windows 2000 EDA软件:MAX+plus II 10.2 2.硬件 EDA实验箱:革新EDAPRO/240H 三、实验原理 1.设计分析 4位同步二进制加法计数器的工作原理是指当时钟信号clk的上升沿到来时,且复位信号clr低电平有效时,就把计数器的状态清0。 在clr复位信号无效(即此时高电平有效)的前提下,当clk的上升沿到来时,如果计数器原态是15,计数器回到0态,否则计数器的状态将加1. 2.VHDL源程序 library ieee; use ieee.std_logic_1164.all; entity cnt4e is port(clk,clr:in std_logic; cout:out std_logic; q:buffer integer range 0 to 15); end cnt4e; architecture one of cnt4e is begin process(clk,clr) begin if clk'event and clk='1'then if clr='1'then if q=15 then q<=0; cout<='0'; elsif q=14 then q<=q+1; cout<='1'; else q<=q+1; end if; else q<=0;

4位二进制计数器实验

计算机组成原理 实验报告 院系: 专业: 班级: 学号: 姓名: 指导老师: 2014年11月20日

实验一 4位二进制计数器实验 一、实验环境 1. Windows 2000 或 Windows XP 2. QuartusII9.1 sp2、DE2-115计算机组成原理教学实验系统一台,排线若干。 二、实验目的 1、熟悉VHDL 语言的编写。 2、验证计数器的计数功能。 三、实验要求 本实验要求设计一个4位二进制计数器。要求在时钟脉冲的作用下,完成计数功能,能在输出端看到0-9,A-F 的数据显示。(其次要求下载到实验版实现显示) 四、实验原理 计数器是一种用来实现计数功能的时序部件,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS 触发器、T 触发器、D 触发器及JK 触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。 计数器按计数进制不同,可分为二进制计数器、十进制计数器、其他进制计数器和可变进制计数器,若按计数单元中各触发器所接收计数脉冲和翻转顺序或计数功能来划分,则有异步计数器和同步计数器两大类,以及加法计数器、减法计数器、加/减计数器等,如按预置和清除方式来分,则有并行预置、直接预置、异步清除和同步清除等差别,按权码来分,则有“8421”码,“5421”码、余“3”码等计数器,按集成度来分,有单、双位计数器等等,其最基本的分类如下: 计数器的种类??????? ?????????????????????进制计数器十进制计数器二进制计数器进制可逆计数器减法计数器 加法计数器功能异步计数器同步计数器结构N 、、、321 下面对同步二进制加法计数器做一些介绍。 同步计数器中,所有触发器的CP 端是相连的,CP 的每一个触发沿都会使所有的触发器状态更新。因此不能使用T′触发器。应控制触发器的输入端,即将

相关文档
相关文档 最新文档