文档详情

实验十进制计数器设计与仿真.doc

发布:2017-03-28约3.91千字共8页下载文档
文本预览下载声明
电子科技大学 电子工程 学院 标 准 实 验 报 告 (实验)课程名称 数字系统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 :
显示全部
相似文档