实验十进制计数器设计与仿真.doc
文本预览下载声明
电子科技大学 电子工程 学院
标 准 实 验 报 告
(实验)课程名称 数字系统EDA技术
十进制计数器设计与仿真
姓名:陈昌东
学号:2012029030012
实验一 十进制计数器设计与仿真
一、预习内容
1. 结合教材中的介绍熟悉QuartusⅡ、ModelSim软件的使用及设计流程;
2. 十进制计数器设计原理。
二、实验目的
1. 掌握VHDL设计方法;
2. 熟悉QuartusⅡ、ModelSim软件的使用及设计流程;
3. 掌握十进制计数器的设计。
三、实验器材
PC机一台、配套EDA开发工具QuartusⅡ、ModelSim
四、实验要求
1、用VHDL设计一个十进制计数器;
2、用VHDL设计十进制计数器的测试平台;
3、用Quartus II完成十进制计数器的综合实现;
4、用ModelSim完成十进制计数器的时序仿真。
五、实验原理与内容
1、原理:
计数器是数字系统中的基本逻辑器件。计数器分为同步计数器和异步计数器。
同步计数器指在时钟脉冲(计数脉冲)的控制下,构成计数器的各触发器状态同时发生变化的计数器,即计数器内部各触发器的时钟信号是统一的时钟信号。同步计数器具有工作稳定可靠、工作频率高的优点,但消耗硬件资源较多。
异步计数器又称为行波计数器,它的低位计数器的输出作为高位计数器的时钟信号。异步计数器采用行波计数,使计数延迟增加,计数器工作频率较低,但具有消耗资源较少的优点。
计数器的清零信号分为同步清零和异步清零。同步清零由时钟的边沿信号控制产生清零操作,异步清零操作与时钟信号无关。
十进制计数器的计数范围为0~9循环变化,输入信号包括:时钟信号、复位信号;输出信号包括:4位宽的计数结果、进位位。
六、VHDL源程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
-------------------------------------------------------------
entity count is
port(clk:in std_logic;
en:in std_logic;
reset:in std_logic;
cnt :out std_logic_vector(3 downto 0));
end count;
------------------------------------------------------
architecture bev of count is
signal one : std_logic_vector(3 downto 0);
---------------------------------------------------------
begin
process(clk, reset, en)
begin
if(reset = 1)then
one=0000;
elsif en = 1 then
if clkevent and clk = 1 then
if(one=1001)then
one=0000;
else
one=one+1;
end if;
end if;
end if;
end process;
cnt=one;
end;
编译综合:
七、Test bench 程序:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY count_vhd_tst IS
END count_vhd_tst;
ARCHITECTURE count_arch OF count_vhd_tst IS
constant clk_cycle:time:=50 ns;
-- constants
-- signals
SIGNAL clk : STD_LOGIC;
SIGNAL cnt : STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL en : STD_LOGIC:=1;
SIGNAL reset : STD_LOGIC:=0;
COMPONENT count
PORT (
clk : IN STD_LOGIC;
cnt :
显示全部