【EDA技术】实验三 十进制计数器的VHDL设计 您所在的位置:网站首页 generate语句构造16进制计数器 【EDA技术】实验三 十进制计数器的VHDL设计

【EDA技术】实验三 十进制计数器的VHDL设计

2023-12-24 11:17| 来源: 网络整理| 查看: 265

一、实验目的

(1) 熟悉EDA软件,并能熟练使用。

(2) 分析设计任务,根据任务要求完成设计内容。

(3) 利用软件对设计内容进行仿真调试,得到正确运行结果。

二、实验要求

设计任务给出十进制计数器的VHDL描述。要求:

(1) 利用有限状态机的方法。

(2) 具有同步使能。

(3) 设计七段译码器的VHDL代码。

(4) 利用元件例化的方式实现计数译码器的设计。

三、实验步骤

(1) 建立工作库文件夹和编辑设计文件

File->New Project Wizard

(2) 创建工程

File->New->Verilog HDL File

(3) 全程编译

有限状态机10进制计数器

七段译码器

元件例化

(4) 时序仿真

10进制计数器

由上图可知,当时钟使能端信号到来时,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 实验室设备网 版权所有