• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

電子時(shí)鐘設(shè)計(jì)VHDL代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-2401050954405V.doc

共1個(gè)文件

名稱:電子時(shí)鐘設(shè)計(jì)VHDL代碼Quartus仿真

軟件:Quartus

語言:VHDL

代碼功能:

一、

1.設(shè)計(jì)一個(gè)能顯示1/10秒、秒、分、時(shí)的24小時(shí)數(shù)字鐘。

2.熟練掌握各種計(jì)數(shù)器的使用。

3.能用計(jì)數(shù)器構(gòu)成十進(jìn)制、六十過制、二十四進(jìn)制等所需進(jìn)制的計(jì)數(shù)器。

4.能用低位的進(jìn)位輸出構(gòu)成高位的計(jì)數(shù)脈沖。

5.時(shí)鐘的秒和分之間的的“:”按照1Hz的頻率閃爍提示。

提示:

1.時(shí)鐘源使用頻率為0.1Hz的連續(xù)脈沖。

2.設(shè)置兩個(gè)按鈕,一個(gè)供“開始”及“停止”用,一個(gè)供系統(tǒng)“復(fù)位”用3、時(shí)鐘顯示使用數(shù)碼管顯示。

4.“時(shí)顯示”部分應(yīng)注意24點(diǎn)后顯示0點(diǎn)。

5.注意各部分的關(guān)系,由低位到高位逐級(jí)設(shè)計(jì)、調(diào)試。

二、評(píng)分得出期末實(shí)踐成績和報(bào)告成績兩部分。

1.提交的詳細(xì)的設(shè)計(jì)報(bào)告是唯一考核材料,硬件設(shè)計(jì)的描述代碼、操作等在報(bào)告中呈現(xiàn),報(bào)告內(nèi)容包括但不限于需求分析,技術(shù)調(diào)研、方案分析(EDA技術(shù)及主芯片選用依據(jù)優(yōu)勢(shì)分析、原理闡述等),設(shè)計(jì)思路,具體操作流程及結(jié)果驗(yàn)證分析,課程心得等內(nèi)容,報(bào)告本身的評(píng)分標(biāo)準(zhǔn)為報(bào)告的學(xué)術(shù)性(20分)、規(guī)范性(10分)、電路的功能正確性(40分)、內(nèi)容的詳實(shí)性(30分)。

2.操作的仿真結(jié)果及在實(shí)物上的驗(yàn)證必須要在報(bào)告中呈現(xiàn),要使報(bào)告能充分體現(xiàn)操作結(jié)果的正確性,所以需要以圖文并茂進(jìn)行說明。附錄為實(shí)踐操作評(píng)分標(biāo)準(zhǔn),在報(bào)告中以的設(shè)計(jì)(主要就是實(shí)現(xiàn)思路,提示:狀態(tài)機(jī))、操作流程說明及結(jié)果分析等要支撐評(píng)分要素。

3、根據(jù)前期實(shí)驗(yàn),自己設(shè)計(jì)驗(yàn)證需要的管腳等資源的分配進(jìn)行聯(lián)機(jī)驗(yàn)證。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計(jì)文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. Testbench

6. 仿真圖

整體仿真圖

分頻模塊

十進(jìn)制計(jì)數(shù)模塊

60進(jìn)制計(jì)數(shù)模塊

24進(jìn)制計(jì)數(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);--計(jì)數(shù)值0.1秒
??????cnt_ten_second??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計(jì)數(shù)值
??????cnt_one_second??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計(jì)數(shù)值
??????cnt_ten_minute??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計(jì)數(shù)值
??????cnt_one_minute??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計(jì)數(shù)值
??????cnt_ten_hour????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計(jì)數(shù)值
??????cnt_one_hour????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--計(jì)數(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ù)碼管位號(hào)
???
???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,掃描哪個(gè)管子的指示位
??????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;

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=495

  • 2-2401050954405V.doc
    下載

相關(guān)推薦