知方号

知方号

EDA技术 实验二 BCD码输出的60进制计数器的VHDL<74161实现60进制计数器>

一、实验目的

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

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

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

二、实验要求

(1)设计具有异步清零,同步使能的60进制计数器,并用VHDL语句进行例化

(2)设计七段译码器的VHDL代码,利用元件例化的方式实现计数译码器的设计

三、实验步骤

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

File->New Project Wizard

(2) 创建工程

File->New->Verilog HDL File

(3) 全程编译

60进制计数器

七段译码器

计数译码器

(4) 时序仿真

60进制计数器

由上图可知,当时钟使能端信号到来时,低四位会加1;

当低四位加到1001(数字9)时,高四位会加1;

符合计数器规律。

当高四位为0101(5)且低四位为1001(9)时,会产生一个进位信号,

且下一个时钟信号来之后,高四位低四位都会清零。

当RST为1时,低四位高四位全清零。

综合分析可知,这是一个60进制计数器。

10进制计数器

由上图可知,当时钟信号到来时,DOUT会加1;

当DOUT到1001(数字9)时,COUT进位会加1;

符合10进制计数器规律。

七段译码器

由仿真波形可知,数字0-9均可用八位二进制数表示出来,且结果是一一对应的;

当输入大于9时,输出为空,保持不变;

当时钟信号继续增加时,译码器会循环输出0-9的二进制数,可以看出来这是一个七段译码器。

计数译码器

由仿真波形可知,CLK为1,EN使能端为1时,输出加1,且表示为译码形式;

当RST0为高电平时,计数归零。

四、VHDL程序文本 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT60 IS --60进制计数器PORT ( CLK,RST,EN:IN STD_LOGIC; DHOUT:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); --高四位输出 DLOUT:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); --低四位输出 COUT:OUT STD_LOGIC);END ENTITY CNT60;ARCHITECTURE behave OF CNT60 ISBEGIN COUTEN0,DOUT=>IKUN);U2:SEG7 PORT MAP(INDATA=>IKUN,ODATA=>DOUT0);END ARCHITECTURE BHV ; 五、遇到的问题及解决办法 Q10版本之后的Quartus在New中不直接提供软件波形仿真,一般需要调用ModelSim软件进行操作:

        解决办法:按照图示依次点击Tools->Options->General->EDA Tool Options->ModelSim 把路径设置为ModelSim软件所在处。

VHDL文本正确,工程路径都没问题,波形输出失败,提示ModelSIM调用失败:

        解决办法:检查问题1是否已经解决,解决后关闭软件,以管理员身份启动软件,再次仿真。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。