名称:基于FPGA的简单数字钟设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
简单数字钟设计
1、设计24进制计数器,可以通过按键调整计数值。
2、设计60进制计数器,可以通过按键调整计数值。
3、设计显示模块。
4、将上述模块组成时、分、秒数字钟,可以调时,并显示在数码管。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
框图
3. 程序编译
4. RTL图
5. 仿真图
整体仿真图
60进制模块仿真图
24进制模块仿真图
显示模块仿真
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --小时模块--24进制 ENTITY?wy_counter_24?IS ???PORT?( ??????clk??????:?IN?STD_LOGIC; ??????set_key??:?IN?STD_LOGIC;--校时 ??????cnt_ten??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--计数值十位 ??????cnt_one??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--计数值个位 ???); END?wy_counter_24; ARCHITECTURE?behave?OF?wy_counter_24?IS ???SIGNAL?clk_cnt??????:??STD_LOGIC:='0'; ???SIGNAL?cnt_ten_buf?:?STD_LOGIC_VECTOR(3?DOWNTO?0)?:=?"0000";--计数值十位 ???SIGNAL?cnt_one_buf?:?STD_LOGIC_VECTOR(3?DOWNTO?0)?:=?"0000";--计数值个位 BEGIN ???--输出 ???cnt_ten?<=?cnt_ten_buf; ???cnt_one?<=?cnt_one_buf; clk_cnt<=clk?OR?set_key;--校时和时钟或运算,即校时也可以控制时间 ??? ???PROCESS?(clk_cnt) begin IF?(clk_cnt'EVENT?AND?clk_cnt?=?'1')?THEN--正常计时 ?????????IF?(cnt_ten_buf?=?"0010"?AND?cnt_one_buf?=?"0011")?THEN--23时后变为00 ????????????cnt_ten_buf?<=?"0000"; ????????????cnt_one_buf?<=?"0000"; ?????????ELSIF?(cnt_ten_buf?=?"0000"?AND?cnt_one_buf?=?"1001")?THEN--09变为10 ????????????cnt_ten_buf?<=?"0001"; ????????????cnt_one_buf?<=?"0000"; ?????????ELSIF?(cnt_ten_buf?=?"0001"?AND?cnt_one_buf?=?"1001")?THEN--19变为20 ????????????cnt_ten_buf?<=?"0010"; ????????????cnt_one_buf?<=?"0000"; ?????????ELSE--个位累加 ????????????cnt_ten_buf?<=?cnt_ten_buf; ????????????cnt_one_buf?<=?cnt_one_buf?+?"0001"; ?????????END?IF; ??????END?IF; ???END?PROCESS; ??? ??? END?behave;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=776
阅读全文
210