实验三 十进制计数器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三十进制计数器的设计
一、实验目的
1、掌握流程控制语句(IF语句和CASE语句)的使用。;
2、掌握计数器进制的设置原理。
3、熟练掌握矢量类型数据与进程语句的使用。
4、掌握IF语句的嵌套使用方法,
二、实验内容
1、完成多功能十进制加法计数器的VHDL设计。
2、正确设置仿真激励信号,全面检测设计逻辑。
3、综合下载,进行硬件电路测试。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity cnt100 is
port(clk,rst,en,load: in std_logic;
data:in std_logic_vector(3 downto 0);
dout:out std_logic_vector(3 downto 0);
cout:out std_logic);
end cnt100;
architecture behav of cnt100 is
begin
process(clk,rst,en,load)
variable Q :std_logic_vector(3 downto 0);
begin
if rst='0' then Q:=(others=>'0';
elsif clk'event and clk='1' then
if en='1' then
if(load='0') then Q:=data;else
if Q<9 then Q:=Q+1;
end if;
end if;
end if;
end if;
if Q="1001" then cout<='1';
else cout<='0'; end if;
dout<=Q;
end process;
end behav;
Clk:10ns En:30ns RST:200ns
三、实验说明
时钟信号clk,复位信号RST,时钟使能信号EN,其中任一信号发生变化,启动进程process语句,具有以下功能:清零、使能、向高位进位。
四、实验步骤
1.对文件进行建立,是txt
2.添加相关程序,保存文件位vhd
3.设置工程为底层
4.对程序进行编译
5.没有错后对波形图进行新建
6.设置输入得出输出波形
五、实验小结:
本次实验是十进制加法计数器的设计,此次实验根据课本中的相关内容,很快完成,但在实验程序进行编译时,一直出现“vhd语法错误,意外的文件丢失”这样的问题,由于没有任何错误的头绪,于是对文件重新建立,以及多方验证,认为是相关端口的小写造成的,经此次实验,完成过程需要注意些许细节,以及对程序的理解。