基于VHDL萬年歷的設(shè)計說明_第1頁
基于VHDL萬年歷的設(shè)計說明_第2頁
基于VHDL萬年歷的設(shè)計說明_第3頁
基于VHDL萬年歷的設(shè)計說明_第4頁
基于VHDL萬年歷的設(shè)計說明_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、EDA技術(shù)實用教程基 于 VHDL 的 萬 年 歷 設(shè) 計(實驗報告)學(xué) 校: 大學(xué) 院 部: 電子信息學(xué)院 年 級: 2010級 專 業(yè): 通信工程 姓 名: 王國盛 2012年12月28日前言本設(shè)計為實現(xiàn)一個多功能的萬年歷,具有年、月、日、時、分、秒計時并顯示的功能,顧名思義,其滿量程計時為一萬年;具有校對功能,能夠?qū)Τ跏嫉臅r間進行人為的設(shè)定。本設(shè)計采用EDA技術(shù),以硬件描述語言VHDL為系統(tǒng)邏輯描述手段設(shè)計具有萬年歷功能的硬件電路,在QuartusII軟件設(shè)計環(huán)境下,采用自頂向下的設(shè)計思路,分別對各個基礎(chǔ)模塊進行創(chuàng)建,通過各個基礎(chǔ)模塊的組合和連接來構(gòu)建上層原理圖,完成基于VHDL萬年歷設(shè)

2、計。 系統(tǒng)目標(biāo)芯片采用EP1K30TC144-3,由時鐘模塊、控制模塊、計時模塊、數(shù)據(jù)譯碼模塊、顯示模塊組成。經(jīng)編譯和仿真所設(shè)計的程序,在可編程邏輯器件上下載驗證,將硬件編寫程序下載到試驗箱上,選擇模式3進行功能驗證。本系統(tǒng)能夠完成年、月、日和時、分、秒的分別顯示,由按鍵輸入進行萬年歷的校時功能。目錄1 實驗概述41.1 EDA技術(shù)41.2 QuartusII的使用41.3 模塊化設(shè)計41.4 分析、解決問題42 實驗容與要求52.1實驗容52.1實驗說明52.3實驗要求63 實驗原理73.1設(shè)計思想73.2設(shè)計原理圖83.3工作工程94 實驗結(jié)果104.1VHDL程序與仿真104.1.1秒和

3、分模塊104.1.2小時模塊114.1.3日(天)模塊124.1.4月份模塊154.1.5年模塊174.1.6校時模塊194.1.7顯示模式切換模塊214.2頂層設(shè)計與仿真234.3下載與驗證254.3.1電路結(jié)構(gòu)選擇254.3.2端口配置264.3.3實際電路驗證295 實驗小結(jié)30參考文獻(xiàn)311 、實驗概述1.1 EDA技術(shù)EDA(Electronic Design Automation),即電子設(shè)計自動化,是指利用計算機完成電子系統(tǒng)的設(shè)計。它的主要特征與核心是“自頂向下”的設(shè)計方法,這種設(shè)計方法首先從系統(tǒng)設(shè)計入手,在頂層進行功能方框圖的劃分和結(jié)構(gòu)設(shè)計。在方框圖一級進行仿真、糾錯,并用硬件

4、描述語言對高層次的系統(tǒng)行為進行描述,在系統(tǒng)一級進行驗證。然后用綜合優(yōu)化工具生成具體門電路的網(wǎng)表。由于設(shè)計的主要仿真和調(diào)試過程是在高層次上完成的,這不僅有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計上的錯誤,避免設(shè)計工作的浪費,而且也減少了邏輯功能仿真的工作量,提高了設(shè)計的一次成功率。1.2 QuartusII的使用 通過實驗,熟悉并掌握QuartusII軟件的使用,熟悉該軟件工具的環(huán)境。除了學(xué)習(xí)利用VHDL語言編寫程序?qū)崿F(xiàn)硬件電路以外,還要熟練的使用原理圖輸入的方法進行硬件設(shè)計,具體是對每個模塊形成一個功能元件,通過元件的連接來實現(xiàn)系統(tǒng)的功能,而不是通過VHDL語言的元件例化程序來完成,不僅提高了效率,而且思想原理也

5、更加的清晰。1.3 模塊化設(shè)計掌握年、月、日、時、分、秒以與控制部分的各功能模塊程序設(shè)計的原理,進而理解萬年歷的設(shè)計原理,學(xué)習(xí)并理解模塊化設(shè)計的方法與思想。用VHDL語言編寫各模塊程序,進一步了解和掌握各個程序語言,知道編程中的注意事項,提高編程的熟練程度。1.4 分析、解決問題通過本實驗設(shè)計,理論聯(lián)系實際,鞏固所學(xué)理論知識,并且提高自己通過所學(xué)理論分析、解決實際問題的能力。進一步加深對VHDL設(shè)計的了解與認(rèn)識,體會EDA的巨大作用,了解進行硬件系統(tǒng)設(shè)計的整個流程,對生活工作中的電氣設(shè)備有了更深一層次的了解,對電氣工程專業(yè)有了更多興趣。2、實驗容與要求2.1實驗容設(shè)計具有如下功能的萬年歷:1)

6、能進行正常的年、月、日和時、分、秒的日期和時間計時功能,按鍵KEY1用來進行模式切換,當(dāng)KEY1=1時,顯示年、月、日;當(dāng)KEY1=0時,顯示時、分、秒。2)能利用實驗系統(tǒng)上的按鍵實現(xiàn)年、月、日和時、分、秒的校對功能。3)用層次化設(shè)計方法設(shè)計該電路,編寫各個功能模塊的程序。4)仿真報時功能,通過觀察有關(guān)波形確認(rèn)電路設(shè)計是否正確。5)完成電路設(shè)計后,用實驗系統(tǒng)下載驗證設(shè)計的正確性。2.2實驗說明萬年歷的設(shè)計思路與多功能時鐘的設(shè)計思路相似。多功能時鐘的各功能模塊與相互之間的連接如下圖1所示 圖1多功能時鐘系統(tǒng)原理框圖年、月、日和時、分、秒的顯示格式如圖2所示。年、月、日同時顯示,時、分、秒同時顯示

7、,通過顯示模式切換來分別顯示。 年/時 月/分 日/秒圖2萬年歷顯示格式2.3實驗報告要求1)分析系統(tǒng)的工作原理。 2)畫出頂層原理圖,寫出頂層文件源程序。3)寫出各功能模塊的源程序。4)仿真各功能模塊,畫出仿真波形。5)書寫實驗報告應(yīng)結(jié)構(gòu)合理,層次分明。3、實驗原理3.1設(shè)計思想按照模塊化的設(shè)計思想,要實現(xiàn)萬年歷的基礎(chǔ)功能,必定要包含年、月、日和時、分、秒的功能模塊,其中秒和分可以用六十進制計數(shù)器來實現(xiàn),時用二十四進制計數(shù)器實現(xiàn),月用十二進制計數(shù)器來實現(xiàn),年的低兩位和高兩位都是一百進制計數(shù)器,比較特殊的是天的計數(shù)器,因為它有四種情況,大月三十一天,小月三十天,平年二月二十八天,閏年二月有二十

8、九天,所以年和月的模塊對天的計數(shù)都有影響,需要從年和月的輸出端引出控制信號來控制天的計數(shù)。同時每個計數(shù)器都有顯示輸出端和進位輸出端,同時低級別(如秒)的進位輸出要給較高級別(如分)的時鐘輸入端,以此類推,采用串行工作方式進行連接。從而完成了基礎(chǔ)的計時和顯示的功能。再按照由基礎(chǔ)功能到增強功能的設(shè)計思路,要實現(xiàn)校時功能,要在之前電路的基礎(chǔ)之上增加一個校時控制模塊,增加兩個按鍵來實現(xiàn)控制,按鍵1來選擇校對哪一個模塊,按鍵2選擇校對到何值檢測到按鍵2的一個上升沿,對應(yīng)的計數(shù)器加1。除此之外還需要有顯示模式的切換的功能,需要增加一個模式切換的控制模塊,通過增加一個按鍵3來實現(xiàn)控制,是顯示年月日還是時分秒

9、。3.2實驗原理圖萬年歷時分秒部分的原理圖如下圖所示,年月日部分與之同理,通過控制可以進行切換。譯碼驅(qū)動譯碼驅(qū)動譯碼驅(qū)動譯碼驅(qū)動譯碼驅(qū)動譯碼驅(qū)動時十位計數(shù)時個位計數(shù)分十位計數(shù)分個位計數(shù)秒十位計數(shù)秒個位計數(shù)校時控制電路校分控制電路分頻器電路分頻器電路晶體振蕩器電路1HZ圖3萬年歷實驗原理圖圖4萬年歷實驗結(jié)構(gòu)框圖圖5萬年歷實驗結(jié)構(gòu)局部圖原理圖說明: 如圖4、5所示,K1鍵是選擇萬年歷工作的模式,K2鍵提供上升沿(時鐘功能)來使各計數(shù)模塊加一,從而實現(xiàn)校時的功能。LED燈起指示作用。 模式0:正常計時顯示 -K1不按,LED1到LED5都不亮 模式1:調(diào)整分增加 -K1按下一次,LED1亮其余四個不

10、亮 模式2:調(diào)整時增加 - K1按下兩次,LED2亮其余四個不亮 模式3:調(diào)整日增加 - K1按下三次,LED3亮其余四個不亮 模式4:調(diào)整月增加 - K1按下四次,LED4亮其余四個不亮 模式5:調(diào)整年增加 - K1按下五次,LED5亮其余四個不亮 CLK是外部1Hz輸入時鐘,作為秒的時鐘輸入,驅(qū)動整個萬年歷工作運行。 K3鍵是顯示模式的選擇,顯示時分秒時,LEDSHUCHUMOSHI指示燈亮,顯示年月日時,LEDSHUCHUMOSHI指示燈滅。3.3工作過程 當(dāng)1Hz時鐘信號從CLK輸入端輸入時,K1,K2,K3都沒有按下時,系統(tǒng)從零(閏年)開始處于正常的計時模式,顯示時分秒部分,LEDS

11、HUCHUMOSHI指示燈亮。低位計滿歸零并且向高位進1,如果月份是二月,則天計滿29就向月進1。如果按下按鍵3,LEDSHUCHUMOSHI指示燈不亮,顯示年月日部分。如果此時按一下按鍵1,那么萬年歷停止計時,工作于模式1,再通過按鍵2對分進行校時,通過同樣的方法可以對時、日、月、年進行校時。當(dāng)校時完畢,需要萬年歷重新計時工作時,通過按下鍵1使LED1到LED5都不亮?xí)r,系統(tǒng)工作與正常計時模式。4、實驗結(jié)果4.1VHDL程序與仿真4.1.1秒與分模塊秒與分模塊為六十進制的計數(shù)器源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_

12、LOGIC_UNSIGNED.ALL;ENTITY CNT60 ISPORT(CLK:IN STD_LOGIC;Q1,Q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT60;ARCHITECTURE ONE OF CNT60 ISSIGNAL Q11,Q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENQ11<=Q11+1;IF Q11=9 THEN Q11<=(OTH

13、ERS=>'0');Q22<=Q22+1;END IF;IF Q22=5 AND Q11=9 THEN Q22<="0000"Q11<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;END PROCESS;Q1<=Q11;Q2<=Q22;END;仿真結(jié)果:圖6 60進制計數(shù)器仿真圖如上圖所示當(dāng)Q1、Q2計滿60時,Q1、Q2都?xì)w零同時有一個進位輸出脈沖,完成了六十進制計數(shù)器的功能,設(shè)計正確。4.1.2小時模塊時模塊為24

14、進制計數(shù)器。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT24 ISPORT(CLK:IN STD_LOGIC; Q1,Q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT24;ARCHITECTURE ONE OF CNT24 ISSIGNAL Q11,Q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLK'EVENT

15、 AND CLK='1' THENQ11<=Q11+1;IF Q11=9 THEN Q11<=(OTHERS=>'0');Q22<=Q22+1;END IF;IF Q22=2 AND Q11=3 THEN Q22<="0000"Q11<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;END PROCESS;Q1<=Q11;Q2<=Q22;END;仿真結(jié)果:圖7 24進制計數(shù)器仿真圖如上圖所示當(dāng)

16、Q1、Q2計滿24時,Q1、Q2都?xì)w零同時有一個進位輸出脈沖,完成了六十進制計數(shù)器的功能,設(shè)計正確。4.1.3日(天)模塊日模塊有四種情況,大月為31進制計數(shù)器,小月為30進制計數(shù)器,平年二月為28進制計數(shù)器,閏年二月為29進制計數(shù)器,需要有一個二位判斷輸入信號來進行進制數(shù)的選擇。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DAY ISPORT( PANDUAN :IN STD_LOGIC_VECTOR(1 DOWNTO 0);-兩位判斷輸入信號 CLK :IN STD_

17、LOGIC; CQ1 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0); CQ2 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0); COUT :OUT STD_LOGIC);END;ARCHITECTURE ONE OF DAY ISSIGNAL CQ3,CQ4:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL PAN:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(CLK,PANDUAN)BEGINIF CLK'EVENT AND CLK='1' THEN -上升沿CQ

18、3<=CQ3+1;IF CQ3=9 THEN CQ3<=(OTHERS=>'0');CQ4<=CQ4+1;END IF;PAN<=PANDUAN;CASE PAN ISWHEN "00"=>IF CQ3="0001" AND CQ4="0011" -判斷信號為00時為31進 THEN CQ3<="0001"CQ4<="0000"COUT<='1' -制計數(shù)器ELSE COUT<='0'EN

19、D IF; WHEN "01"=>IF CQ3="0000" AND CQ4="0011" -判斷信號為01時為30進THEN CQ3<="0001"CQ4<="0000"COUT<='1' -制計數(shù)器ELSE COUT<='0'END IF; WHEN "10"=>IF CQ3="1000" AND CQ4="0010" -判斷信號為10時為28進THEN CQ3&l

20、t;="0001"CQ4<="0000"COUT<='1' -制計數(shù)器ELSE COUT<='0'END IF; WHEN "11"=>IF CQ3="1001" AND CQ4="0010"-判斷信號為11時為29進THEN CQ3<="0001"CQ4<="0000"COUT<='1' -制計數(shù)器ELSE COUT<='0'END IF; W

21、HEN OTHERS=>NULL;END CASE;END IF;CQ1<=CQ3; CQ2<=CQ4;END PROCESS;END;仿真結(jié)果:圖8 判斷信號為00時天模塊仿真圖圖9 判斷信號為01時天模塊仿真圖圖10 判斷信號為10時天模塊仿真圖圖11 判斷信號為11時天模塊仿真圖如圖8、9、10、11所示,仿真結(jié)果與設(shè)計要求一致,日模塊的設(shè)計正確4.1.4月模塊月模塊為12進制計數(shù)器,同時其需要為天提供判斷信號輸出,其與天的判斷輸入信號相一致。由于二月的判斷信號輸出要受到平年和閏年的影響,平年時判斷信號是10,閏年時判斷信號為11,所以它要有接收來之年模塊的判斷平年閏年

22、的輸出信號(run=0時表平年,run=1時表閏年)。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MONTH ISport(clk :IN STD_LOGIC; run :IN STD_LOGIC; cout :OUT STD_LOGIC; pan :OUT STD_LOGIC_VECTOR(1 DOWNTO 0); cq1,cq2 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ;ARCHITECTURE behav OF MONTH IS

23、signal cq3,cq4: STD_LOGIC_VECTOR (3 DOWNTO 0);signal cq5: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINPROCESS(clk)BEGINIF clk'EVENT and clk='1' THEN cq3<=cq3+1;IF cq3=9 THEN cq4<=cq4+1;cq3<="0000" END IF;IF cq3=2 and cq4=1 THEN cq3<="0001"cq4<="0000"co

24、ut<='1'ELSE cout<='0'END IF;END IF; -十二進制計數(shù)器cq5<=cq4&cq3; -邏輯位相連接CASE cq5 ISWHEN "00000001"=>pan<="00" -一月WHEN "00000010"=>if run='1' then pan<="11"else pan<="10"end if; -二月WHEN "00000011"

25、=>pan<="00" -三月WHEN "00000100"=>pan<="01" -四月WHEN "00000101"=>pan<="00" -五月WHEN "00000110"=>pan<="01" -六月WHEN "00000111"=>pan<="00" -七月WHEN "00001000"=>pan<="0

26、0" -八月WHEN "00001001"=>pan<="01" -七月WHEN "00001010"=>pan<="00" -十月WHEN "00001011"=>pan<="01" -十一月WHEN "00001100"=>pan<="00" -十二月WHEN others=>NULL;END CASE; cq1<=cq3; cq2<=cq4;END PRO

27、CESS;END;仿真結(jié)果:圖12 平年(run=0)時月模塊仿真圖圖13 閏年(run=1)時月模塊仿真圖如圖12、13所示月模塊為12進制計數(shù)器,并且1、3、5、7、8、10、12月(大月)判斷信號為00,4、6、9平年(run=0)2月的判斷輸出信號為、11月(小月)判斷信號為01,平年(run=0)2月的判斷輸出信號為10,閏年(run=1)2月的判斷輸出信號為11,與天模塊的判斷輸入信號相一致,符合設(shè)計要求,模塊的設(shè)計正確。4.1.5年模塊年的高兩位和低兩位都為一百進制計數(shù)器,功能基本一樣,不同的是低兩位模塊有閏年判斷輸出信號,要傳送給月份模塊,計滿四次就產(chǎn)生一個閏年輸出信號,因為閏

28、年數(shù)值是4的整倍數(shù)。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YEAR ISPORT(CLK:IN STD_LOGIC;Y1,Y2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);RUN,COUT:OUT STD_LOGIC);END YEAR;ARCHITECTURE ONE OF YEAR ISSIGNAL Q1,Q2,Q3:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLK'

29、EVENT AND CLK='1' THENQ1<=Q1+1;IF Q1=9 THEN Q1<=(OTHERS=>'0');Q2<=Q2+1;END IF;IF Q2=9 AND Q1=9 THEN Q2<="0000"Q1<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;END PROCESS;PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' T

30、HENQ3<=Q3+1;IF Q3=3 THEN Q3<=(OTHERS=>'0');RUN<='1'ELSE RUN <='0'END IF;END IF;Y1<=Q1;Y2<=Q2;END PROCESS;END;仿真結(jié)果:圖14 低兩位年模塊仿真圖如圖14所示,低兩位年模塊為100進制計數(shù)器當(dāng)T2、T1表示的數(shù)為4的整數(shù)倍時,判斷閏年輸出信號就為高電平,與月模塊的判斷閏年輸入信號相一致。符合設(shè)計的要求,設(shè)計正確。4.1.6校時模塊 如原理圖的說明部分所述,校時模塊進行工作模式的選擇,輸入端設(shè)有控制按

31、鍵K1,K2。K1進行模式的選擇,K2的功能如同手動時鐘脈沖,進行調(diào)時設(shè)置。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIAODUI ISPORT( K1,K2 :IN STD_LOGIC; MI,FI,SI,TI,YI:IN STD_LOGIC; FO,SO,TL,YO,NO :OUT STD_LOGIC; L1,L2,L3,L4,L5 :OUT STD_LOGIC);END;ARCHITECTURE BEHAV OF JIAODUI ISSIGNAL A: STD_

32、LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(K1,K2)BEGINIF K1'EVENT AND K1='1' THEN A<=A+1;IF A=5 THEN A<="0000" END IF;END IF;CASE A ISWHEN "0000"=>FO<=MI;SO<=FI;TL<=SI;YO<=TI;NO<=YI; - 模式0正常與時 L1<='0'L2<='0'L3<='0'L

33、4<='0'L5<='0'WHEN "0001"=>FO<=K2;SO<='0'TL<='0'YO<='0'NO<='0' -選通分模塊,調(diào)分 L1<='1'L2<='0'L3<='0'L4<='0'L5<='0'WHEN "0010"=>FO<='0'SO<=K2;TL

34、<='0'YO<='0'NO<='0' -選通時模塊,調(diào)時 L1<='0'L2<='1'L3<='0'L4<='0'L5<='0'WHEN "0011"=>FO<='0'SO<='0'TL<=K2;YO<='0'NO<='0' - 選通日模塊,調(diào)日 L1<='0'L2<=&#

35、39;0'L3<='1'L4<='0'L5<='0'WHEN "0100"=>FO<='0'SO<='0'TL<='0'YO<=K2;NO<='0' - 選通月模塊,調(diào)月 L1<='0'L2<='0'L3<='0'L4<='1'L5<='0'WHEN "0101"=>F

36、O<='0'SO<='0'TL<='0'YO<='0'NO<=K2; -選通年模塊,調(diào)年 L1<='0'L2<='0'L3<='0'L4<='0'L5<='1'WHEN OTHERS=>NULL;END CASE;END PROCESS;END;仿真結(jié)果:圖15 校時模塊仿真圖圖16 校時模塊仿真圖如圖15、16,按鍵K1,K2能夠完成萬年歷工作模式的選擇與調(diào)時校對的功能,滿足系統(tǒng)的設(shè)計

37、要求,設(shè)計正確。4.1.7顯示模式切換模塊顯示模式切換模塊完成顯示年月日和顯示時分秒的相互切換,設(shè)置一個按鍵K3對其進行控制,通過檢測按鍵的上升沿,對顯示模式進行輪流切換。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROL ISPORT(SL,SH,FL,FH,HL,HH,DL,DH,ML,MH,YL,YH,Y1L,Y1H:INSTD_LOGIC_VECTOR(3 DOWNTO 0);K1:IN STD_LOGIC;led:OUT STD_LOGIC;Q1,Q2,

38、Q3,Q4,Q5,Q6,Q7,Q8:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END CONTROL;ARCHITECTURE ONE OF CONTROL ISSIGNAL W:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(K1)BEGIN IF K1'EVENT AND K1='1' THEN W<=W+1;IF W=2 THEN W<="00"-二進制計數(shù)控制信號END IF; END IF;CASE W ISWHEN"00"=>Q8<=Y

39、1H;Q7<=Y1L;Q6<=YH;Q5<=YL;Q4<=MH;Q3<=ML;Q2<=DH;Q1<=DL;led<='0' -00時顯示年月日,指示燈不亮WHEN"01"=>Q8<="0000"Q7<="0000"Q6<=HH;Q5<=HL;Q4<=FH;Q3<=FL;Q2<=SH;Q1<=SL;led<='1' -01時顯示時分秒,指示燈亮 WHEN OTHERS=>NULL;END CA

40、SE;END PROCESS;END;仿真結(jié)果:如圖16所示,當(dāng)按鍵K1沒有按下時Q1到Q6顯示的是年月日部分,此時的指示燈LED為零(不亮),當(dāng)按鍵K1按下一次,檢測到一次上升沿,Q1到Q6顯示的是時分秒部分,此時的指示燈LED為1(亮),當(dāng)K1鍵再次按下時,上升沿一到,顯示年月日,這樣通過按鍵K1可以實現(xiàn)顯示模式的切換。設(shè)計符合系統(tǒng)的要求,設(shè)計正確。圖17 顯示模塊仿真圖4.2頂層設(shè)計與仿真頂層設(shè)計采樣原理圖輸入方法,用以上的各模塊的VHDL源程序分別生成元器件,在此基礎(chǔ)上用“導(dǎo)線”對元器件進行連接,搭建原理圖,完成系統(tǒng)的頂層設(shè)計,而不是利用元件例化程序去設(shè)計。對于較為復(fù)雜的系統(tǒng)而言,采用

41、原理圖輸入的設(shè)計方法思路更加清晰,設(shè)計更加直觀。頂層原理圖的設(shè)計框架如圖4所示,有年、月、日、時、分、秒計時模塊,調(diào)時校對模塊,顯示模式切換模塊,并且由以上討論知萬年歷一共有六種工作模式。仿真結(jié)果:如圖18所示,此時萬年歷工作于模式0,屬于正常的計時狀態(tài),當(dāng)?shù)臀挥嫕M時向高位進1,通過鍵K3,可以對顯示模式進行切換,從顯示時分秒轉(zhuǎn)換到顯示年月日,正確的實現(xiàn)了系統(tǒng)的計時功能。圖18 萬年歷仿真圖圖19 萬年歷仿真圖圖20 萬年歷仿真圖如圖19、20所示,通過按鍵K1可以進行工作模式的選擇,按鍵K2進行數(shù)值的校對設(shè)定,按鍵K3進行顯示模式的切換,與設(shè)計的要求相符合。綜上所述,整個系統(tǒng)設(shè)計正確,萬年歷

42、能夠正確的實現(xiàn)功能。4.下載驗證4.3.1電路結(jié)構(gòu)選擇 程序、原理圖仿真正確后,下一步通過把頂層原理圖輸入的設(shè)計程序下載到試驗箱中的實際芯片中,完成硬件電路的設(shè)計搭建并驗證其功能。輸入的頂層原理圖如圖4所示。目標(biāo)芯片選擇EP1K30TC144-3,實驗箱中的電路結(jié)構(gòu)選擇模式NO.3,如圖21所示,其本身附帶了顯示譯碼的功能,無需在程序、原理圖中設(shè)計七段顯示譯碼的模塊就可以在數(shù)碼管中進行顯示,同時配置有8個按鍵輸入端。圖21 實驗電路結(jié)構(gòu)圖No.34.3.2端口配置將頂層原理圖中輸入輸出端引腳與試驗箱中的輸入輸出引腳進行匹配,才可以進行下載驗證。表1 GW48CK/GK/EK/PK2 系統(tǒng)萬能接

43、插口與結(jié)構(gòu)圖信號/與芯片引腳對照表結(jié)構(gòu)圖上的信號名GW48-CCP,GWAK100AEP1K100QC208GW48-SOC+/ GW48-DSPEP20K200/300EQC240GWAK30/50EP1K30/50TQC144GWAC3EP1C3TC144引腳號引腳名稱引腳號引腳名稱引腳號引腳名稱引腳號引腳名稱PIO07I/O224I/O08I/O01I/O0PIO18I/O225I/O19I/O12I/O1PIO29I/O226I/O210I/O23I/O2PIO311I/O231I/O312I/O34I/O3PIO412I/O230I/O413I/O45I/O4PIO513I/O232

44、I/O517I/O56I/O5PIO614I/O233I/O618I/O67I/O6PIO715I/O234I/O719I/O710I/O7PIO817I/O235I/O820I/O811DPCLK1PIO918I/O236I/O921I/O932VREF2B1PIO1024I/O237I/O1022I/O1033I/O10PIO1125I/O238I/O1123I/O1134I/O11PIO1226I/O239I/O1226I/O1235I/O12PIO1327I/O2I/O1327I/O1336I/O13PIO1428I/O3I/O1428I/O1437I/O14PIO1529I/O4I/

45、O1529I/O1538I/O15PIO1630I/O7I/O1630I/O1639I/O16PIO1731I/O8I/O1731I/O1740I/O17PIO1836I/O9I/O1832I/O1841I/O18PIO1937I/O10I/O1933I/O1942I/O19PIO2038I/O11I/O2036I/O2047I/O20PIO2139I/O13I/O2137I/O2148I/O21PIO2240I/O16I/O2238I/O2249I/O22PIO2341I/O17I/O2339I/O2350I/O23PIO2444I/O18I/O2441I/O2451I/O24PIO2545

46、I/O20I/O2542I/O2552I/O25PIO26113I/O131I/O2665I/O2667I/O26PIO27114I/O133I/O2767I/O2768I/O27PIO28115I/O134I/O2868I/O2869I/O28PIO29116I/O135I/O2969I/O2970I/O29PIO30119I/O136I/O3070I/O3071I/O30PIO31120I/O138I/O3172I/O3172I/O31PIO32121I/O143I/O3273I/O3273I/O32PIO33122I/O156I/O3378I/O3374I/O33PIO34125I/O1

47、57I/O3479I/O3475I/O34PIO35126I/O160I/O3580I/O3576I/O35PIO36127I/O161I/O3681I/O3677I/O36PIO37128I/O163I/O3782I/O3778I/O37PIO38131I/O164I/O3883I/O3883I/O38PIO39132I/O166I/O3986I/O3984I/O39PIO40133I/O169I/O4087I/O4085I/O40PIO41134I/O170I/O4188I/O4196I/O41PIO42135I/O171I/O4289I/O4297I/O42PIO43136I/O172I

48、/O4390I/O4398I/O43PIO44139I/O173I/O4491I/O4499I/O44PIO45140I/O174I/O4592I/O45103I/O45PIO46141I/O178I/O4695I/O46105I/O46PIO47142I/O180I/O4796I/O47106I/O47PIO48143I/O182I/O4897I/O48107I/O48PIO49144I/O183I/O4998I/O49108I/O49PIO60202PIO60223PIO60137PIO60131PIO60PIO61203PIO61222PIO61138PIO61132PIO61PIO62204PIO62221PIO62140PIO62133PIO62PIO63205PIO63220PIO63141PIO63134PIO63PIO64206PI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論