ActiveHDL進階解讀課件_第1頁
ActiveHDL進階解讀課件_第2頁
ActiveHDL進階解讀課件_第3頁
ActiveHDL進階解讀課件_第4頁
ActiveHDL進階解讀課件_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論