cyclone4 FPGA EP4CE10F17C8N设计数字时钟quartus工程源码+WORD说明文档,
本设计采用FPGA,实现核心控制。利用独立按键当作输入,利用六位一体的共阳极数码管作为显示设备。具体要求如下:
1. 数字钟要求显示时间、日期、闹钟时间。本设计采用verilog,芯片为50MHZ的EP4CE10F17C8N,实现核心控制。
2. 显示时利用小数点将所显示内容分开。(例:19.12.55)
3. 外部输入的按键有,切换按键,调整按键,加按键,减按键。具体功能如下:
数字钟要求显示时间、日期、闹钟设定时间。利用切换按键进行年月日、时间、闹钟定时操作,三种状态均可用增减两个按键进行调整,对于选中的数码管调整位,通过闪烁表示已经选中,例如:首先切换至日期,选中表示“年”的数码管,那么选中的位进行0.5秒的闪烁表示选中,其次可通过增减按键进行数字的增减。另外在按键消抖后,每次按键按下,蜂鸣器响表示已经按下;设定的闹钟到时候,按下任何按键均停止蜂鸣器,若没有按键按下,蜂鸣器长响至1min时长后,自动停止。
module digital_clock (clk,rst_n,key_add,key_sub,key_adjust,key_switch,beep,
seven_tube_sel,seven_tube_seg);
input clk;
input rst_n;
input key_add;
input key_sub;
input key_switch;
input key_adjust;
output beep;
output [7:0] seven_tube_seg;
output [2:0] seven_tube_sel;
wire flag_add;
wire flag_sub;
wire flag_adjust;
wire flag_switch;
wire [23:0] show_data;
wire flag_alarm;
wire [5:0] dp_en;
key_processor key_processor_inst(
.clk (clk),
.rst_n (rst_n),
.key_add (key_add),
.key_sub (key_sub),
.key_adjust (key_adjust),
.key_switch (key_switch),
.flag_add (flag_add),
.flag_sub (flag_sub),
.flag_adjust (flag_adjust),
.flag_switch (flag_switch)
);
digital_clock_ctrl digital_clock_ctrl_inst(
.clk (clk),
.rst_n (rst_n),
.flag_add (flag_add),
.flag_sub (flag_sub),
.flag_adjust (flag_adjust),
.flag_switch (flag_switch),
.show_data (show_data),
.flag_alarm (flag_alarm)
);
seven_tube_drive seven_tube_drive_inst(
.clk (clk),
.rst_n (rst_n),
.show_data (show_data),
.dp_en (6'b010100),
.seven_tube_seg (seven_tube_seg),
.seven_tube_sel (seven_tube_sel)
);
beep_drive beep_drive_inst(
.clk (clk),
.rst_n (rst_n),
.flag_alarm (flag_alarm),
.flag_add (flag_add),
.flag_sub (flag_sub),
.flag_adjust (flag_adjust),
.flag_switch (flag_switch),
.beep (beep)
);
endmodule