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

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

06/06 08:15
788
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2312201533323V.doc

共1个文件

名称: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;

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

  • 2-2312201533323V.doc
    下载

相关推荐