Quartus数字秒表verilog代码青创QC-FPGA开发板

名称:Quartus数字秒表verilog代码青创QC-FPGA开发板(文末获取)

软件:Quartus

语言:Verilog

代码功能:

数字秒表设计

1、支持复位、启动、暂停

2、具有量程切换功能,可以切换显示小时、分钟或者秒、毫秒

3、数码管显示时间,精确到10毫秒

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在青创QC-FPGA开发板验证,青创QC-FPGA开发板如下,其他开发板可以修改管脚适配:

青创QC-FPGA开发板.png

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. RTL图

6. 仿真图

顶层整体仿真图

分频模块

控制模块

显示模块

部分代码展示:

LIBRARY ieee;
USE ieee.std_logic_1164.all; 
--秒表设计
ENTITY miaobiao IS 
PORT
(
   sysclk_in :  IN  STD_LOGIC;--48MHZ
   S1 :  IN  STD_LOGIC;--复位
S2 :  IN  STD_LOGIC;--启动
S3 :  IN  STD_LOGIC;--停止
sw_in       : IN STD_LOGIC;--量程切换
LEDA :  OUT  STD_LOGIC_VECTOR(7 DOWNTO 0);--数码管段选
SEL :  OUT  STD_LOGIC_VECTOR(3 DOWNTO 0)--数码管位选
);
END miaobiao;
ARCHITECTURE RTL OF miaobiao IS 
--参数化的分频模块--可以支持不同的输入时钟
COMPONENT div IS
 generic (N:integer);
   PORT (
      clk_in    : IN STD_LOGIC;--输入
      S1      : IN STD_LOGIC;--复位
      clk_out  : OUT STD_LOGIC--输出时钟
   );
END COMPONENT;
--秒表控制模块
COMPONENT control
   PORT (
      clk_100Hz              : IN STD_LOGIC;--100Hz
      S2              : IN STD_LOGIC;--启动
      S3               : IN STD_LOGIC;--停止
      S1              : IN STD_LOGIC;--复位
Millisecond  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--10毫秒BCD码
second       : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--秒BCD码
minute       : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--分BCD码
hour       : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--时BCD码
   );
END COMPONENT;
--数码管显示模块
COMPONENT display
PORT(clk : IN STD_LOGIC;
 S1 : IN STD_LOGIC;
 sw_in       : IN STD_LOGIC;--量程切换
 hour : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
 Millisecond : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
 minute : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
 second : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
 LEDA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
 SEL : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
END COMPONENT;
SIGNALhour :  STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNALMillisecond :  STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNALminute :  STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNALsecond :  STD_LOGIC_VECTOR(7 DOWNTO 0);
SIGNALclk_100Hz :  STD_LOGIC;
SIGNALclk_in :  STD_LOGIC;
BEGIN 
--分频到1000Hz--参数化的分频模块--可以支持不同的输入时钟
U1K_div : div
generic map(48000)
PORT MAP(
 clk_in => sysclk_in,
 S1 => S1,
 clk_out => clk_in
 );
--分频到100Hz---参数化的分频模块--可以支持不同的输入时钟
U100_div : div
generic map(10)
PORT MAP(
 clk_in => clk_in,
 S1 => S1,
 clk_out => clk_100Hz
 );
 
--秒表计时模块
U_control : control
PORT MAP(
 clk_100Hz => clk_100Hz,
 S2 => S2,
 S3 => S3,
 S1 => S1,
 hour => hour,
 Millisecond => Millisecond,
 minute => minute,
 second => second
 );
--显示模块
U_display : display
PORT MAP(
     clk => clk_in,
 S1 => S1,
 sw_in=> sw_in,--量程切换
 hour => hour,
 Millisecond => Millisecond,
 minute => minute,
 second => second,
 LEDA => LEDA,
 SEL => SEL
 );
END RTL;
完整代码

 扫描文章末尾的公众号二维码

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值