名称:电子表设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
电子表设计
要求
1) 其显示时间范围是00:00 :00~23:59:59。
2) 时钟具有清零功能。
3) 时钟具有暂停计时。
4) 时钟具有调节时间功能。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 要求
1) 其显示时间范围是00:00 :00~23:59:59。
2) 时钟具有清零功能。
3) 时钟具有暂停计时。
4) 时钟具有调节时间功能。
设计流程图:
2. 工程文件
3. 程序文件
代码
4. 程序编译
5. RTL图
6. 仿真图
整体仿真图
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; reset????:?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,reset) begin IF(reset='1')THEN ???????cnt_ten_buf?<=?"0000"; ???????cnt_one_buf?<=?"0000"; ELSIF?(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;
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1250
阅读全文