• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

简单秒表设计仿真VHDL跑表

05/20 10:39
757
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-231019234515332.doc

共1个文件

名称:简单秒表设计仿真VHDL跑表(代码在文末付费下载)

软件:Quartus

语言:VHDL

代码功能:

数字秒表功能描述

本次练习只需要一个数码管(假设该数码管已被选中),实现数码管显示功能,具体要求如下(设数码管为共阳)

1)实现秒表计时功能。

2)复位时,数码管显示

3)数码管依次从0变到9显示。

2信号列表 clk:50MHz的工作时钟,输入

系统复位信号,输入,低电平有效

segment:8位,输出,数码管显示信号,共8位。由低到高,分别表示数码管的a,b,c,d,e,f,g,h。当该比特为0时,表示点亮相应位置;为1时熄灭。

本代码包含2个工程,2工程代码一样,但是一个使用modelsim仿真,一个使用quartus自带的wvf仿真。

演示视频:

FPGA代码资源下载网:hdlcode.com

部分代码展示

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
ENTITY?miaobiao?IS
???PORT?(
??????clk??:?IN?STD_LOGIC;--50MHz
??????rst_n:?IN?STD_LOGIC;--复位
??????segment:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--数码管显示信号
???);
END?miaobiao;
ARCHITECTURE?RTL?OF?miaobiao?IS
???SIGNAL?clk_out?:?STD_LOGIC;--1Hz时钟
???SIGNAL?count???:?integer;????
???SIGNAL?cnt0_9?:integer;--秒
BEGIN
--时钟分频--计数
???PROCESS?(clk,rst_n)
???BEGIN
???IF(rst_n='0')THEN--复位
??count<=0;
???ELSIF(clk'EVENT?AND?clk?=?'1')?THEN
??--IF(count=50000000)THEN--50MHz分频到1Hz需要计数50000000
??IF(count=500)THEN--仿真时将计数器改为500
count<=0;
??else
count<=count+1;--计数
??END?IF;
???END?IF;
???END?PROCESS;
--时钟分频--输出秒脉冲信号clk_out
???PROCESS?(clk,rst_n)
???BEGIN
???IF(rst_n='0')THEN--复位
??clk_out<='0';
???ELSIF(clk'EVENT?AND?clk?=?'1')?THEN
??--IF(count=50000000)THEN--50MHz分频到1Hz需要计数50000000
??IF(count=500)THEN--仿真时将计数器改为500
clk_out<='1';--输出1Hz秒计时信号
??else
clk_out<='0';
??END?IF;
???END?IF;
???END?PROCESS;
???
???--秒计数
???PROCESS?(clk_out,rst_n)
???BEGIN
???IF(rst_n='0')THEN--复位
??cnt0_9<=0;
???ELSIF(clk_out'EVENT?AND?clk_out?=?'1')?THEN--使用秒脉冲信号计数
??IF(cnt0_9<9)THEN--最大到9
cnt0_9<=cnt0_9+1;--加
??else
cnt0_9<=0;--清零
??END?IF;

设计文档:

设计文档.doc ----modeslim仿真

1. 工程文件

2. 程序文件

3. 程序编译

4. Testbench

5. modelism仿真图

6. quartus wvf仿真图

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=201

  • 1-231019234515332.doc
    下载

相关推荐