




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
電子設(shè)計自動化技術(shù)授課教師:王憶文電子設(shè)計自動化技術(shù)
Active-HDL進階Active-HDLFPGAExpress/ISEISEActive-HDLDesignEntryToolsHDLEditor(HDE)BlockDiagramEditor(BDE)StateDiagramEditor(FSM)
TrainingIntroduction一個簡單頻率計的設(shè)計(帶BCD計數(shù)器、LED數(shù)碼管顯示編碼)頻率計的基本原理:將輸入信號頻率與基準(zhǔn)時鐘頻率進行比較頻率計的測量使能:即測量狀態(tài)下START信號為‘1’該設(shè)計采用3三種描述模式:HDL編輯器 (HDE)框圖編輯器 (BDE)狀態(tài)圖編輯器(FSM)簡單頻率計框圖頻率計主要模塊Thefollowingblocksareusedinthedesign:Top_frqm --頂層設(shè)計(BDE)HEX2LED --LED數(shù)碼管顯示編碼模塊(HDE)CNT_BCD --4位十進制BCD計數(shù)器模塊(BDE)
(包含AND2和CNT_4b倆子模塊)CONTROL --頻率計控制模塊(FSM)創(chuàng)建Project(NewDesign)IntheTypethedesignnamefield,enterFRQ_METER設(shè)計環(huán)境調(diào)整在DesignBrowser
點鼠標(biāo)右鍵選擇NewFolder
選項可以創(chuàng)建自己的文件夾新文件夾省卻名為“Folder1”、“Folder2”等,
可以自行改名
比如,我們可以創(chuàng)建名為FUNCTIONAL的文件夾,以便歸檔我們接下來的設(shè)計Top_frqm
--頂層設(shè)計(BDE)HEX2LED
--LED數(shù)碼管顯示編碼模塊
(HDE)CNT_BCD --4位十進制BCD計數(shù)器(BDE)
(包含AND2和CNT_4b倆子模塊)CONTROL --頻率計控制模塊(FSM)設(shè)計內(nèi)容1.2
創(chuàng)建HEX2LED顯示模塊HEX2LEDarchitecture:
用LanguageAssistant功能調(diào)取LanguageAssistant窗口:Tools|LanguageAssistant
選擇Synthesistemplates/HEX2LED
Converter,用Use
選項將代碼放入architecture的begin
與
end之間.
Note:Thecodeisinsertedwherethecursorislocatedinyourfile.Checkthisbeforeyouinvoketheusecommand.1.3
創(chuàng)建HEX2LED顯示模塊
SavetheHEX2LED.VHDfile(Ctrl+S)
鼠標(biāo)選中HEX2LED.VHD拖進FUNCTIONAL文件夾
打開在FUNCTIONAL文件夾中的HEX2LED.VHD,
編譯(
F11)Top_frqm
--頂層設(shè)計(BDE)HEX2LED
--LED數(shù)碼管顯示編碼模塊(HDE)CNT_BCD --4位十進制BCD計數(shù)器(BDE)
包含兩個底層子模塊CNT_4b(HDE)AND2 (HDE)CONTROL --頻率計控制模塊(FSM)設(shè)計內(nèi)容2.CNT_BCD計數(shù)器模塊描述CNT_BCD是一個同步BCD計數(shù)器。CLK
–系統(tǒng)時鐘GATE
–
計數(shù)器使能端RESET–非同步RESETBCD_A,BCD_B,BCD_C,BCD_D2.1CNT_4b子模塊描述(HDE)architectureCNT_4BofCNT_4BissignalQint:STD_LOGIC_VECTOR(3downto0);begin process(CLK,RESET) begin ifRESET='1'then
Qint<=(others=>'0');
elsifCLK='1'andCLK'eventthen ifENABLE='1'then ifQint=9then
Qint<=(others=>'0'); elseQint<=Qint+1; endif; endif; endif; endprocess; Q<=Qint; FULL<='1'when(Qint=9)else'0';endCNT_4B;2.2
創(chuàng)建與門AND2子元件(HDE)利用NewSourceFileWizard
創(chuàng)建與門AND2
元件(VHDLfile)。它有兩輸入
A0、A1和一輸出Y在AND2.VHD輸入一行代碼(betweenbeginandendAND2inthearchitecturebody):
Y<=A0andA1;Savethefile,closeit,dragittotheFunctionalfolder,thencompileit.2.3-1創(chuàng)建CNT_BCD模塊(BDE)File|New|BlockDiagram選擇BlockDiagramWizardNext>
在NewSourceFileWizard-Language窗口選擇VHDLNext>NewSourceFileWizard–Name窗口輸入CNT_BCDNext>
BDE
的操作步驟:BDEEDIF(ElectronicDataInterchangeFormat)創(chuàng)建CNT_BCD模塊(續(xù))
(BDE)Addthein
directionports(STD_LOGIC):CLKGATERESETAddtheout
directionports:(STD_LOGIC_VECTOR):BCD_A[3:0]BCD_B[3:0]BCD_C[3:0]BCD_D[3:0]
2.3-2創(chuàng)建CNT_BCD模塊(添加元件)進入添加元件狀態(tài),用鼠標(biāo)左鍵點中cnt_4bsymbol從工具箱中拖入框圖區(qū)域四次;此后框圖區(qū)域如下所示:將and2symbol從Symbol工具箱中拖入框圖區(qū)域三次。NOTE:進入添加元件狀態(tài)的方法是,在框圖編輯器工具條點擊ShowSymbolToolbox
按鈕
,即可添加上面的元件。2.3-3創(chuàng)建CNT_BCD模塊用同樣的方法添加3個and2symbol,然后即可關(guān)閉右側(cè)
theSymbolToolbox對應(yīng)子窗口,接下來就是
畫元件間的互連線了。2.3-4創(chuàng)建CNT_BCD模塊Wire按鈕()畫一位互連線(and2與cnt_4b間互連線),Bus按鈕()畫總線bus(計數(shù)器輸出端口)2.3-5創(chuàng)建CNT_BCD模塊用GlobalWirebutton()在CLK
和RESET輸入端口右邊化兩個黃圈。分別雙擊黃圈輸入名字CLK和RESETglobalwire定義完成后如下圖所示:Active-HDLDesignEntryToolsHDLEditor(HDE)BlockDiagramEditor(BDE)StateDiagramEditor(FSM)簡單頻率計框圖HEX2LED
-LED七段碼顯示轉(zhuǎn)換模(HDE)CNT_BCD-4位十進制BCD計數(shù)器模(BDE)
(包含AND2和CNT_4b倆子模塊)Top_frqm-頂層設(shè)計(BDE)CONTROL-頻率計控制模塊(FSM)設(shè)計內(nèi)容Top_frqm --頂層設(shè)計(帶虛擬元件)
(BDE)HEX2LED
--LED數(shù)碼管顯示編碼模塊(HDE)CNT_BCD --4位十進制BCD計數(shù)器(BDE)
(包含AND2和CNT_4b倆子模塊)CONTROL
--頻率計控制模塊(FSM)設(shè)計內(nèi)容3.1創(chuàng)建頂層框圖Top_frqmFile|New|BlockDiagram選擇BlockDiagramWizardNext>
在NewSourceFileWizard-Language窗口選擇VHDLNext>在NewSourceFileWizard–Name窗口輸入Top_frqmNext>
在這一部分我們將實現(xiàn)頻率計的頂層框圖設(shè)計,我們還將采用top-down的設(shè)計方法創(chuàng)建FSM模塊(Control)。
3.2
創(chuàng)建頂層框圖Top_frqm
DefinethefollowingportsoftheTop_frqmblockdiagram:
InputPorts:
-F_INPUT
-F_PATTERN
-RESET
-START
OutputPorts:
-LED_A[6:0]
-LED_B[6:0]
-LED_C[6:0]
-LED_D[6:0]ClickFinishBlockDiagramEditor(BDE)screenwithanemptydiagramwillappear.3.3創(chuàng)建頂層框圖Top_frqm(虛擬元件)點擊Fubbutton(),在F_PATTERN,RESETandSTART輸入端口右邊創(chuàng)建一個Fub符號,如下圖所示:3.4創(chuàng)建頂層框圖Top_frqm點擊Wirebutton()化三條水平連線,連接F_PATTERN,RESETandSTART端口到U1fub;三個輸入pin在Fub中自動創(chuàng)建。按Esc
鍵回到選擇模式。雙擊“Fub1”label,更改fubname為CONTROL右擊fubbody,
選擇Edit進入
Fub編輯狀態(tài)3.5創(chuàng)建頂層框圖Top_frqm拖動AddNewPin窗口中的Outpin到Fub右邊界,創(chuàng)建Pin1;重復(fù)操作創(chuàng)建Pin2。雙擊Pin1更名為
GATE雙擊Pin2更名為
END_RESET點擊Fub
外面,回答Yes保存。3.6創(chuàng)建頂層框圖Top_frqm完成后的Fub如右圖所示
(完成頂層設(shè)計后,待后續(xù)再完善該Fub設(shè)計)
接下來完善Top_frqm框圖設(shè)計:
-oneCNT_BCDmodule
-fourHEX2LEDmodule
(用ShowSymbolToolboxbutton將對應(yīng)元件拖入框圖編輯框)3.7創(chuàng)建頂層框圖Top_frqmThediagramwithallsixsymbolsplacedshouldlooklikethis:3.8創(chuàng)建頂層框圖Top_frqmThecompletedTop_frqmblockdiagramshouldlooklikethis:Pleasesavethediagram,closeit,dragittotheFunctionalfolderintheDesignBrowserandreopenitHEX2LED
-LED七段碼顯示轉(zhuǎn)換模(HDE)CNT_BCD-4位十進制BCD計數(shù)器模(BDE)
(包含AND2和CNT_4b倆子模塊)Top_frqm-頂層設(shè)計(BDE)CONTROL-頻率計控制模塊(FSM)設(shè)計內(nèi)容Top_frqm --頂層設(shè)計(BDE)HEX2LED
--LED數(shù)碼管顯示編碼模塊(HDE)CNT_BCD --4位十進制BCD計數(shù)器(BDE)
(包含AND2和CNT_4b倆子模塊)CONTROL --頻率計控制模塊(FSM)設(shè)計內(nèi)容狀態(tài)轉(zhuǎn)移圖FSM(Finite
StateMachine)分類FSM根據(jù)輸入輸出關(guān)系可分為兩類:摩爾(Moore)型狀態(tài)機輸出由狀態(tài)決定,與輸入無直接關(guān)系米利(Mealy)型狀態(tài)機輸出由狀態(tài)和輸入共同決定摩爾(Moore)型狀態(tài)機摩爾(Moore)型狀態(tài)機的輸出僅僅與當(dāng)前狀態(tài)相關(guān)。狀態(tài)寄存器狀態(tài)邏輯輸出邏輯輸出當(dāng)前狀態(tài)次態(tài)輸入復(fù)位信號時鐘信號摩爾(Moore)型狀態(tài)圖1110000S3/0S0/0S1/1S2/01米利(Mealy)型狀態(tài)機米利(Mealy)型狀態(tài)機的輸出不僅與當(dāng)前狀態(tài)相關(guān),而且也與輸入信號相關(guān)。狀態(tài)寄存器狀態(tài)邏輯輸出邏輯輸出當(dāng)前狀態(tài)次態(tài)輸入復(fù)位信號時鐘信號米利(Mealy)型狀態(tài)圖1/11/11/00/10/00/00/0S3S0S1S21/1狀態(tài)機設(shè)計狀態(tài)機的設(shè)計方法總是先定義一個復(fù)位狀態(tài),明確定義狀態(tài)機的初始狀態(tài),并使其可以從不定態(tài)中恢復(fù),其次,在每個狀態(tài)下對每個輸出信號賦予一個值。至少存在一個時鐘信號,實現(xiàn)狀態(tài)翻轉(zhuǎn)。也可以存在復(fù)位信號,用于同步系統(tǒng)等的運行。4.1創(chuàng)建狀態(tài)圖CONTROL在頂層框圖中右擊CONTROL
fub,選擇Push4.1創(chuàng)建狀態(tài)圖CONTROL選擇StateDiagramClickOK4.2
創(chuàng)建狀態(tài)圖CONTROL右擊F_PATTERN端口的符號,選擇
Properties端口屬性選擇ClockClickOK該FSMEditor是為異步狀態(tài)機行為描述而設(shè)計的,所以我們必須將CONTROLdiagram的一個輸入設(shè)置為machineclock.用Properties選項為END_RESETandGATE輸出端口定義為Registered.4.3
創(chuàng)建狀態(tài)圖CONTROL在狀態(tài)機編輯框中右擊,選擇
Properties;在對應(yīng)的窗口General中為Clock選擇F_PATTERN信號用FSM|State選項,或Statebutton()在編輯框中畫三個狀態(tài),如圖:4.4
創(chuàng)建狀態(tài)圖CONTROL請更改狀態(tài)名分別為IDLE,OPEN_GATEandEND_CYCLE,如右圖:狀態(tài)圓圈可以隨意拉大右擊狀態(tài),選擇Properties
可以更改狀態(tài)名(General—State
Propertieswindow)?;騽t雙擊原狀態(tài)名直接更改。4.5
創(chuàng)建狀態(tài)圖CONTROL請畫出右圖所示的狀態(tài)轉(zhuǎn)換連接線:狀態(tài)轉(zhuǎn)換連接線可以點中拖動,隨意改變形狀。畫狀態(tài)連接線請從菜單中選擇FSM|Transition,或選擇Transitionbutton(),從開始狀態(tài)畫線連接目標(biāo)狀態(tài)。4.6
創(chuàng)建狀態(tài)圖CONTROL請畫出reset符號,如右圖:設(shè)置reset信號的參數(shù):右擊FSM編輯框,選擇Properties調(diào)出MachineProperties窗口定義FSM的復(fù)位狀態(tài):從菜單中選擇FSM|RESET,或者點擊Resetbutton(),然后即可畫出reset符號。Right-clickhere4.7
創(chuàng)建狀態(tài)圖CONTROL在MachineProperties
窗口中點擊Resettab,然后選擇:
-Name:RESET
-Type:Asynchronous
-ActiveLevel:High
點擊Advanced可以設(shè)置更加復(fù)雜的RESET條件ClickOK4.8
創(chuàng)建狀態(tài)圖CONTROL請加如下的條件:
START=‘0’
:IDLE狀態(tài)的自身循環(huán)轉(zhuǎn)換線、END_CYCLE狀態(tài)到IDLE狀態(tài)的轉(zhuǎn)換線;
START=‘1’
:END_CYCLE狀態(tài)自身循環(huán)轉(zhuǎn)換線、
IDLE狀態(tài)到OPEN_GATE狀態(tài)的轉(zhuǎn)換線狀態(tài)轉(zhuǎn)換條件的添加可以通過菜單選擇FSM|Condition
或者選擇Conditionbutton(),然后點擊轉(zhuǎn)換線,輸入表達(dá)式4.9
創(chuàng)建狀態(tài)圖CONTROL請?zhí)砑尤缦碌臓顟B(tài)動作:
GATE<=‘0’;
END_RESET<=‘1’;
totheIDLEstate
GATE<=‘1’;
END_RESET<=‘0’;
totheOPEN_GATEstate
GATE<=‘0’;
END_RESET<=‘0’;
totheEND_CYCLEstateFSM的狀態(tài)動作可從菜單中選擇FSM|Action|Entry,接著點中相應(yīng)狀態(tài),輸入動作表達(dá)式。(或)4.10
創(chuàng)建狀態(tài)圖CONTROLSave狀態(tài)圖(Ctrl+S),關(guān)閉,然后拖入Functional。編譯CONTROL.ASF(F11)。編譯頂層框圖(Top_frqm.bde)。選擇Top_frqm(Top_frqm)
的E/A設(shè)置為頂層(SetasTop-Level)。Yourdesignisreadyforfinaltesting.小結(jié)HDLEditor (HDE)
語言助手,獲取HDL代碼模板BlockDiagramEditor (BDE)自動生成HDL源代碼StateDiagramEditor (FSM)自動生成HDL源代碼FunctionalSimulationA>手動加測試激勵進行仿真B>編寫宏文件(*.do)進行仿真C>編寫測試平臺進行仿真A>手動加測試激勵進行仿真
SettheAND2entity-architecturepairastop-levelunitforsimulation:—clickthe"+"signnexttoitandrightclickontheE/Apairtobringupthemenu—selectSetasTopLeveloptionNewWaveformRightClickSimulatorsRunB>編寫宏文件(*.do)進行仿真Theforcecommandusedfromtheconsoleorinmacrofilesletsyoucreateanywaveformusingthefollowingsyntax:
wheremoreth
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人投資版證券交易委托合同
- 2025年度室內(nèi)外裝飾裝修合同違約賠償標(biāo)準(zhǔn)與環(huán)保檢測協(xié)議
- 2025年度夜間搬運工勞動合同保障方案
- 2025年度個體工商戶現(xiàn)代農(nóng)業(yè)租賃服務(wù)協(xié)議
- 2025年度倉儲物流行業(yè)勞動合同工傷賠償及倉儲安全協(xié)議
- 2025年度農(nóng)業(yè)生態(tài)環(huán)境評估與合作協(xié)議
- 2025年度XX互聯(lián)網(wǎng)企業(yè)股東退股及網(wǎng)絡(luò)安全協(xié)議
- 咖啡廳裝修簡易合同模板
- 2025年度人體模特攝影作品授權(quán)使用協(xié)議
- 2025年江蘇省安全員《A證》考試題庫
- 中央2025年全國婦聯(lián)所屬在京事業(yè)單位招聘93人筆試歷年參考題庫附帶答案詳解
- 《環(huán)境污染對生態(tài)系統(tǒng)的影響》課件
- 機器狗:技術(shù)成熟性能優(yōu)越場景剛需放量在即2025
- 《教育強國建設(shè)規(guī)劃綱要(2024-2035年)》解讀-知識培訓(xùn)
- 《加油站安全管理培訓(xùn)課件》
- 《生態(tài)安全》課件
- 2025年春新人教版一年級下冊數(shù)學(xué)全冊教學(xué)課件
- 1.北京的春節(jié) 練習(xí)題(含答案)
- 抗震支架安裝工程施工方案范文
- GB/T 45071-2024自然保護地分類分級
- 普通高中生物學(xué)課程標(biāo)準(zhǔn)-(2024修訂版)
評論
0/150
提交評論