名稱:電子時鐘設計VHDL代碼Quartus仿真
軟件:Quartus
語言:VHDL
代碼功能:
一、
1.設計一個能顯示1/10秒、秒、分、時的24小時數(shù)字鐘。
2.熟練掌握各種計數(shù)器的使用。
3.能用計數(shù)器構(gòu)成十進制、六十過制、二十四進制等所需進制的計數(shù)器。
4.能用低位的進位輸出構(gòu)成高位的計數(shù)脈沖。
5.時鐘的秒和分之間的的“:”按照1Hz的頻率閃爍提示。
提示:
1.時鐘源使用頻率為0.1Hz的連續(xù)脈沖。
2.設置兩個按鈕,一個供“開始”及“停止”用,一個供系統(tǒng)“復位”用3、時鐘顯示使用數(shù)碼管顯示。
4.“時顯示”部分應注意24點后顯示0點。
5.注意各部分的關(guān)系,由低位到高位逐級設計、調(diào)試。
二、評分得出期末實踐成績和報告成績兩部分。
1.提交的詳細的設計報告是唯一考核材料,硬件設計的描述代碼、操作等在報告中呈現(xiàn),報告內(nèi)容包括但不限于需求分析,技術(shù)調(diào)研、方案分析(EDA技術(shù)及主芯片選用依據(jù)優(yōu)勢分析、原理闡述等),設計思路,具體操作流程及結(jié)果驗證分析,課程心得等內(nèi)容,報告本身的評分標準為報告的學術(shù)性(20分)、規(guī)范性(10分)、電路的功能正確性(40分)、內(nèi)容的詳實性(30分)。
2.操作的仿真結(jié)果及在實物上的驗證必須要在報告中呈現(xiàn),要使報告能充分體現(xiàn)操作結(jié)果的正確性,所以需要以圖文并茂進行說明。附錄為實踐操作評分標準,在報告中以的設計(主要就是實現(xiàn)思路,提示:狀態(tài)機)、操作流程說明及結(jié)果分析等要支撐評分要素。
3、根據(jù)前期實驗,自己設計驗證需要的管腳等資源的分配進行聯(lián)機驗證。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. Testbench
6. 仿真圖
整體仿真圖
分頻模塊
十進制計數(shù)模塊
60進制計數(shù)模塊
24進制計數(shù)模塊
數(shù)碼管顯示模塊
部分代碼展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --數(shù)碼管顯示模塊 ENTITY?display?IS ???PORT?( ??????clk_500KHz??????:?IN?STD_LOGIC; ??????cnt_second01????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計數(shù)值0.1秒 ??????cnt_ten_second??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計數(shù)值 ??????cnt_one_second??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計數(shù)值 ??????cnt_ten_minute??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計數(shù)值 ??????cnt_one_minute??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計數(shù)值 ??????cnt_ten_hour????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計數(shù)值 ??????cnt_one_hour????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計數(shù)值 ?????? ??????ABC?????????????:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);--數(shù)碼管位選 ??????segment?????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--數(shù)碼管段選 ???); END?display; ARCHITECTURE?trans?OF?display?IS ??? ???SIGNAL?seg_select?:?STD_LOGIC_VECTOR(2?DOWNTO?0)?:=?"000";--數(shù)碼管位號 ??? ???SIGNAL?number?????:?STD_LOGIC_VECTOR(3?DOWNTO?0)?:=?"0000"; BEGIN ???PROCESS?(clk_500KHz) ???BEGIN ??????IF?(clk_500KHz'EVENT?AND?clk_500KHz?=?'1')?THEN ?????????seg_select?<=?seg_select?+?"001";--加1,0~7,掃描哪個管子的指示位 ??????END?IF; ???END?PROCESS; ??? ???--位選切換 ???PROCESS?(clk_500KHz) ???BEGIN ??????IF?(clk_500KHz'EVENT?AND?clk_500KHz?=?'1')?THEN ?????????CASE?seg_select?IS ????????????WHEN?"110"?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?cnt_ten_hour; ????????????WHEN?"101"?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?cnt_one_hour; ????????????WHEN?"100"?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?cnt_ten_minute; ????????????WHEN?"011"?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?cnt_one_minute; ????????????WHEN?"010"?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?cnt_ten_second; ????????????WHEN?"001"?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?cnt_one_second; ????????????WHEN?"000"?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?cnt_second01; ????????????WHEN?OTHERS?=> ???????????????ABC?<=?seg_select; ???????????????number?<=?"0000"; ?????????END?CASE; ??????END?IF; ???END?PROCESS; ??? ???----------------------------------------------------段選輸出-- ???PROCESS?(clk_500KHz) ???BEGIN ??????IF?(clk_500KHz'EVENT?AND?clk_500KHz?=?'1')?THEN ?????????CASE?number?IS--數(shù)字顯示碼 ????????????WHEN?"0000"?=> ???????????????segment?<=?"11000000"; ????????????WHEN?"0001"?=> ???????????????segment?<=?"11111001"; ????????????WHEN?"0010"?=> ???????????????segment?<=?"10100100"; ????????????WHEN?"0011"?=> ???????????????segment?<=?"10110000"; ????????????WHEN?"0100"?=> ???????????????segment?<=?"10011001"; ????????????WHEN?"0101"?=> ???????????????segment?<=?"10010010"; ????????????WHEN?"0110"?=> ???????????????segment?<=?"10000010"; ????????????WHEN?"0111"?=> ???????????????segment?<=?"11111000"; ????????????WHEN?"1000"?=> ???????????????segment?<=?"10000000"; ????????????WHEN?"1001"?=> ???????????????segment?<=?"10010000"; ????????????WHEN?OTHERS?=> ?????????END?CASE; ??????END?IF; ???END?PROCESS; ??? ??? END?trans;
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=495