专业技能训练4
题目:用VHDL设计8421BCD码24进制计数器
班级: 电子科学与技术1201
姓名: 王启正
学号: 120803039
时间: 2015.5—2015.6
一、技能训练项目名称
运用VHDL语言进行编程设计一个8421BCD码24进制计数器
二、实训目的
1.熟练掌握Quartus II软件的使用。
2.熟练掌握在QuartusII平台上用原理图或者VHDL语言进行电路设计的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。
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技术及应用》 谭会生著 西安电子科技大学出版社