【EDA技术】实验三 十进制计数器的VHDL设计 | 您所在的位置:网站首页 › generate语句构造16进制计数器 › 【EDA技术】实验三 十进制计数器的VHDL设计 |
一、实验目的
(1) 熟悉EDA软件,并能熟练使用。 (2) 分析设计任务,根据任务要求完成设计内容。 (3) 利用软件对设计内容进行仿真调试,得到正确运行结果。 二、实验要求设计任务给出十进制计数器的VHDL描述。要求: (1) 利用有限状态机的方法。 (2) 具有同步使能。 (3) 设计七段译码器的VHDL代码。 (4) 利用元件例化的方式实现计数译码器的设计。 三、实验步骤(1) 建立工作库文件夹和编辑设计文件 File->New Project Wizard (2) 创建工程 File->New->Verilog HDL File (3) 全程编译 ![]() ![]() ![]() (4) 时序仿真 ![]() 由上图可知,当时钟使能端信号到来时,DOUT会加1; 当DOUT加到1001(数字9)时,COUT进位会加1; 符合10进制计数器规律。 当RST为1时,低四位高四位全清零。 综合分析可知,这是一个10进制计数器。 ![]() 由仿真波形可知,数字0-9均可用八位二进制数表示出来,且结果是一一对应的; 当输入大于9时,输出为空,保持不变; 当时钟信号继续增加时,译码器会循环输出0-9的二进制数,可以看出来这是一个七段译码器。 由仿真波形可知,当时钟信号到来,使能端为高电平时,输出DOUT0加1,且表示为译码器形式,当加到9或者RST为低电平时,回到最初s0状态。 四、VHDL程序文本有限状态机10进制计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS PORT (CLK,RST,EN:IN STD_LOGIC; -- DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CNT10; ARCHITECTURE behav OF CNT10 IS --结构体 behav TYPE states IS(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9); --定义状态 SIGNAL ST,NST :states :=s0; --定义敏感信号并赋初值s0 BEGIN COM: PROCESS(ST) VARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0); --定义变量 BEGIN CASE ST IS WHEN s0 => Q :="0000"; NST Q :="0001"; NST Q :="0010"; NST Q :="0011"; NST Q :="0100"; NST Q :="0101"; NST Q :="0110"; NST Q :="0111"; NST Q :="1000"; NST Q :="1001"; NST Q :="0000"; NST |
CopyRight 2018-2019 实验室设备网 版权所有 |