- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
院(系):电子工程学院 课程名称:EDA技术与VHDL 日期:
班级
学号
实验室
专业
姓名
计算机号
实验名称
数字时钟
成绩评价
所用软件
Quartus Ⅱ7.0
教师签名
实
验
目
的
或
要
求
设计一个可以计时的数字时钟,其显示时间范
围是00:00:00~23:59:59,且该时钟具有暂停计时、
清零等功能。
实
验
步
骤
、
心
得
体
会
启动 Quartus Ⅱ建立一个空白工程并命名。
新建VHDL源程序文件,输入程序代码并保存,进行综合编译,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
选择目标器件rst、set接拨挡开关,时钟输入引脚接系统时钟(48M),显示码输出XQ0~XQ7接seg0~seg7,数码管选通信号DIG0~DIG5接实验箱上dig0~dig5,并对相应的引脚进行锁定,引脚对应关系查实验指导书附录。将未使用的管脚设置为三态输入(一定要设置,否则可能会损坏芯片)。
对该工程进行全程编译处理,若在编译过程中发现错误,则找出并更正错误,直至编译成功为止。
设计下载
使用下载线,连接计算机USB口和实验箱JTAG下载口(注意插口方向),打开实验箱电源。
启动下载界面,确认已选中下载线。
完成下载界面的设置,启动下载。
按动按键开关KET1来输入脉冲信号,波动拨挡开关SW2、SW1来控制输入信号,观察数码管的变化规律并记录实验结果,看是否与预期设计一致。
程序:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LED_0000_9999 IS
PORT (
clk : IN std_logic; --系统时钟50M
rst : IN std_logic; --系统REST键,KEY1
s : IN std_logic; --stop
led_out : OUT std_logic_vector(7 DOWNTO 0); --各段数据输出
led_bit : OUT std_logic_vector(5 DOWNTO 0)); --数码管的位选择口。一共8位
END LED_0000_9999 ;
ARCHITECTURE arch OF LED_0000_9999 IS
signal div_cnt : std_logic_vector(26 downto 0 );
signal data4 : std_logic_vector(3 downto 0);
signal dataout_xhdl1 : std_logic_vector(7 downto 0);
signal en_xhdl : std_logic_vector(5 downto 0);
signal cntfirst :std_logic_vector(3 downto 0);
signal cntsecond : std_logic_vector(3 downto 0);
signal cntthird : std_logic_vector(3 downto 0);
signal cntfour : std_logic_vector(3 downto 0);
signal cntfive : std_logic_vector(3 downto 0);
signal cntlast : std_logic_vector(3 downto 0);
signal first_over: std_logic;
signal second_over: std_logic;
signal third_over : std_Logic;
signal four_over : std_logic;
signal five_over : std_Logic;
signal last_over : std_logic;
begin
led_out=dataout_xhdl1;
led_bit=en_xhdl;
process(clk,rst)
begin
if(rst=0)then
div_cnt=001001100000000000000000000;
elsif(clkevent and clk=1)then
文档评论(0)