vhdl语言设计一个8421bcd码的24进制计数器

更新时间:2023-05-14 11:14:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题目:用

专业技能训练4

VHDL设计8421BCD码24进制计数器

班级: 电子科学与技术1201 姓名: 王启正 学号: 时间:

一、技能训练项目名称

运用VHDL语言进行编程设计一个8421BCD码24进制计数器

二、实训目的

1.熟练掌握Quartus II软件的使用。

2.熟练掌握在QuartusII平台上用原理图或者VHDL语言进行电路设计的方法。

3.学会用例化语句对EDA电路设计中顶层电路进行描述 三、实训要求

1.熟悉仿真开发软件Quartus II的使用;

2.根据功能要求,用原理图或文本输入方式完成设计; 3.用Quartus II做波形仿真调试; 4.下载至EDA试验仪调试设计。

四、基本原理(附源程序清单,原理图、RTL图) 1、通过VHDL语言编程方法程序清单:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY lin IS PORT(

CLK :IN STD_LOGIC; --时钟

EN :IN STD_LOGIC; --使能端 CR :IN STD_LOGIC; --清零端,低电平有效 LD :IN STD_LOGIC; --数据载入控制,低电平有效 D :IN STD_LOGIC_VECTOR(5 DOWNTO 0); --载入数据端 CO : OUT STD_LOGIC; --进位 Q :OUT STD_LOGIC_VECTOR(5 DOWNTO 0) --); END lin ;

ARCHITECTURE a OF lin IS SIGNAL QN :STD_LOGIC_VECTOR(5 DOWNTO 0);

BEGIN -- CO<='1' WHEN(QN=X"23" AND EN='1') ELSE'0'; PROCESS(CLK,CR) BEGIN

IF (CR='0')THEN QN<="000000"; ELSE

IF (CLK'EVENT AND CLK='1') THEN

IF (LD='0') THEN -- QN<=D;

ELSIF(EN='1') THEN

计时输出 进位控制数据加载

IF (QN(3 DOWNTO 0)=3 and QN(5 DOWNTO 4)=2) or QN(3 DOWNTO 0)=9 THEN

QN(3 DOWNTO 0)<="0000"; --个位数进位 IF QN(5 DOWNTO 4)=2 THEN

QN(5 DOWNTO 4)<="00"; --十位数进位 ELSE

QN(5 DOWNTO 4)<= QN(5 DOWNTO 4)+1; END IF; ELSE

QN(3 DOWNTO 0)<= QN(3 DOWNTO 0)+1; END IF ; END IF; END IF ; END IF; END PROCESS; Q<=QN; end a;

2、原理图:

3、RTL图:

五、仿真调试:

调试过程中,输出波形为24进制波形图。

六、体会

实验过程中通过采用VHDL语言编辑代码实现一个24进制计数器,观察输出波形,得到正确的输出结果,以及在实验过程中遇到问题自己的调试过程,使得我更加熟练的掌握了QuartusII软件的正确使用方法以及操作技巧,也练习了采用VHDL语言例化语句定义硬件的顶层结构,熟悉了EDA编程的相关简单技巧,有助于我们以后更加深入的学习EDA编程。

七、参考书目:

1、《CPLD/FPGA设计及应用》 罗朝霞、高书莉著 人民邮电出版社

2、《EDA技术及应用》 谭会生著 西安电子科技大学出版社

本文来源:https://www.bwwdw.com/article/046e.html

Top