第7章LPM參數化宏模塊的應用_第1頁
第7章LPM參數化宏模塊的應用_第2頁
第7章LPM參數化宏模塊的應用_第3頁
第7章LPM參數化宏模塊的應用_第4頁
第7章LPM參數化宏模塊的應用_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第7章LPM參數化宏模塊應用例7-1

ADC0809采樣電路系統L利用LPM設計圖7-1

ADC0809采樣電路系統選擇創(chuàng)建一個新的宏先建項目點擊圖7-2

fifo的PLM定制1選擇修改存儲路徑及命名生存文件格式選擇運用元件系列圖7-3

fifo的PLM定制2設置數據深度設置數據位寬設置時鐘同步/異步讀/寫圖7-4

fifo的PLM定制3若選中某項,則在其“宏”(圖左邊)上就顯示該端口,有讀空/寫滿、同步/異步清零等選擇“宏”端口圖7-5

fifo的PLM定制4選擇“讀”同步模式選擇“儲存”區(qū)域圖7-6

fifo的PLM定制5選擇優(yōu)化方式(速度/面積)選擇某些功能端口是否有效選擇是否僅用所用芯片的存儲單元圖7-7

fifo的PLM定制6EDA仿真庫是否生成網絡表測定時間和資源估計圖7-8

fifo的PLM定制7生成的文件存儲路徑產生的文件類型,可選圖7-9

fifo的PLM定制8如果選中生成網絡表在“完成”向導時會出現圖示圖7-10

fifo的PLM定制9接下頁LPM_FIFO定制的VHDL文件接下頁接上頁接上頁

圖7-10fifo的仿真波形LPM_FIFO定制文件仿真測試7.2.3AD_FIFO系統實現【例8-25】

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYAD_FIFOISPORT(EOC,CLK,WR_EN,RD_EN,CLR:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(7DOWNTO0);FULL,ALE,START,OE,ADDA:OUTSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDAD_FIFO;ARCHITECTUREbehavOFAD_FIFOISSIGNALa1,b1,c1,d1:STD_LOGIC;COMPONENTADCINTPORT(CLK,EOC:INSTD_LOGIC;LOCK,ALE,START,OE,ADDA:OUTSTD_LOGIC);ENDCOMPONENT;

接下頁COMPONENTFIFO2PORT(data:INSTD_LOGIC_VECTOR(7DOWNTO0);wrreq,rdreq,clock,aclr:INSTD_LOGIC;q:OUTSTD_LOGIC_VECTOR(7DOWNTO0);full:OUTSTD_LOGIC);ENDCOMPONENT;BEGINb1<=CLKANDWR_EN;c1<=NOTWR_EN;a1<=RD_ENWHENWR_EN='0'ELSE–-21mux多路選擇器

d1;

U1:ADCINTPORTMAP(CLK=>b1,EOC=>EOC,LOCK=>d1,ALE=>ALE,START=>START,OE=>OE,ADDA=>ADDA);U2:FIFO2PORTMAP(data=>D,wrreq=>WR_EN,rdreq=>c1,clock=>a1,aclr=>CLR,full=>FULL,q=>Q);ENDbehav;接上頁實驗(1)實驗目的:學習在VHDL文本描述的電路中調用LPM模塊。(2)實驗原理:作為練習,根據圖8-53的電路原理,用LPM模塊設計加法計數器。(3)實驗內容:將圖8-53中的元件74374,用LPM_LATCH代替,用VHDL純文本方式表達圖8-53。給出其仿真波形,并在EDA實驗系統上驗證此項設計。(4)實驗思考題:修改以上設計,但仍然利用LPM模塊,即lpm_add_sub、busmux、lpm_latch及其它的模塊構成一個可預置初值的減法計數器。(5)實驗報告:給出以上的實驗內容,時序分析和實測結果,完成實驗報告。實驗8-1LPM模塊應用練習實驗(1)實驗目的:學習利用數控分頻器設計硬件電子琴實驗。(2)實驗原理:主系統由3個模塊組成,例8-29是頂層設計文件,其內部有兩個功能模塊(如圖8-14所示):TONE.VHD(例8-28)和SPEAKER.VHD(例8-27)。實驗8-2硬件電子琴電路設計圖8-14硬件電子琴電路結構實驗實驗8-2硬件電子琴電路設計模塊TONE是音階發(fā)生器,當8位發(fā)聲控制輸入INDEX中某一位為高電平時,則對應某一音階的數值將從端口TONE輸出,作為獲得該音階的分頻預置值;同時由CODE輸出對應該音階簡譜的顯示數碼,如‘5’,并由HIGH輸出指示音階高8度顯示。由例8-28可見,其語句結構只是類似與真值表的純組合電路描述,其中的音階分頻預置值,如Tone<=1290是根據產生該音階頻率所對應的分頻比獲得的。模塊SPEAKER中的主要電路是一個數控分頻器,它由一個初值可預置的加法計數器構成,詳細的設計和工作原理已在第8章實驗3中作了描述。當模塊SPEAKER由端口TONE獲得一個2進制數后,將以此值為計數器的預置數,對端口CLK12MHZ輸入的頻率進行分頻,之后由SPKOUT向揚聲器輸出發(fā)聲?!纠?-27】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSpeakerISPORT(clk1:INSTD_LOGIC;Tone1:ININTEGERRANGE0TO16#7FF#;SpkS:OUTSTD_LOGIC);END;ARCHITECTUREoneOFSpeakerISSIGNALPreCLK,FullSpkS:STD_LOGIC;BEGINDivideCLK:PROCESS(clk1)VARIABLECount4:INTEGERRANGE0TO15;BEGINPreCLK<='0';--將CLK進11分頻,PreCLK為CL11K6分頻

IFCount4>11THENPreCLK<='1';Count4:=0;ELSIFclk1'EVENTANDclk1='1'THENCount4:=Count4+1;ENDIF;ENDPROCESS;

接下頁GenSpkS:PROCESS(PreCLK,Tone1)VARIABLECount11:INTEGERRANGE0TO16#7FF#;BEGIN--11位可預置計數器

IFPreCLK'EVENTANDPreCLK='1'THENIFCount11=16#7FF#THENCount11:=Tone1;FullSpkS<='1';ELSECount11:=Count11+1;FullSpkS<='0';ENDIF;ENDIF;ENDPROCESS;DelaySpkS:PROCESS(FullSpkS)VARIABLECount2:STD_LOGIC;BEGINIFFullSpkS'EVENTANDFullSpkS='1'THENCount2:=NOTCount2;IFCount2='1'THENSpkS<='1';ELSESpkS<='0';ENDIF;ENDIF;ENDPROCESS;END;【例8-28】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYToneISPORT(Index:INSTD_LOGIC_VECTOR(7DOWNTO0);CODE:OUTINTEGERRANGE0TO15;HIGH:OUTSTD_LOGIC;Tone:OUTINTEGERRANGE0TO16#7FF#);END;ARCHITECTUREoneOFToneISBEGINSearch:PROCESS(Index)BEGINCASEIndexIS--譯碼電路,查表方式,控制音調的預置數

WHEN"00000001"=>Tone<=773;CODE<=1;HIGH<='0';WHEN"00000010"=>Tone<=912;CODE<=2;HIGH<='0';WHEN"00000100"=>Tone<=1036;CODE<=3;HIGH<='0';WHEN"00001000"=>Tone<=1116;CODE<=4;HIGH<='0';WHEN"00010000"=>Tone<=1197;CODE<=5;HIGH<='0';WHEN"00100000"=>Tone<=1290;CODE<=6;HIGH<='0';WHEN"01000000"=>Tone<=1372;CODE<=7;HIGH<='0';WHEN"10000000"=>Tone<=1410;CODE<=1;HIGH<='1';WHENOTHERS=>Tone<=2047;CODE<=0;HIGH<='0';ENDCASE;ENDPROCESS;END;【例8-29】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTOPIS--頂層設計

PORT(CLK12MHZ:INSTD_LOGIC;INDEX1:INSTD_LOGIC_VECTOR(7DOWNTO0);CODE1:OUTINTEGERRANGE0TO15;HIGH1,SPKOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFTOPISCOMPONENTTonePORT(Index:INSTD_LOGIC_VECTOR(7DOWNTO0);CODE:OUTINTEGERRANGE0TO15;HIGH:OUTSTD_LOGIC;Tone:OUTINTEGERRANGE0TO16#7FF#);--11位2進制數ENDCOMPONENT;COMPONENTSpeakerPORT(clk1:INSTD_LOGIC;Tone1:ININTEGERRANGE0TO16#7FF#;--11位2進制數

SpkS:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALTone2:INTEGERRANGE0TO16#7FF#;BEGIN--安裝u1,u2u1:TonePORTMAP(Index=>Index1,Tone=>Tone2,CODE=>CODE1,HIGH=>HIGH1);u2:SpeakerPORTMAP(clk1=>CLK12MHZ,Tone1=>Tone2,SpkS=>SPKOUT);END;實驗實驗8-2硬件電子琴電路設計(3)實驗內容1:編譯適配以上3個示例文件,給出仿真波形,最后進行下載和硬件測試實驗。建議使用實驗電路模式“3”(附圖1-5),用短路帽選擇“CLOCK9”的輸入頻率選擇12MHz,此信號作為系統輸入信號CLK12MHZ;鍵8至鍵1作為INDEX輸入信號控制各音階;選擇數碼管1顯示琴音簡譜碼,發(fā)光管D1顯示高8度。(4)實驗內容2:在原設計的基礎上,增加一個NOTETABS模塊(如圖8-15所示),用于產生節(jié)拍控制(INDEX數據存留時間)和音階選擇信號,即在NOTETABS模塊放置一個樂曲曲譜真值表,由一個計數器的計數值來控制此真值表的輸出,而由此計數器的計數時鐘信號作為樂曲節(jié)拍控制信號,從而可以設計出一個純硬件的樂曲自動演奏電路。試完成此項設計,并在EDA實驗系統上的FPGA目標器件中實現之。(5)思考題1:例8-27中的進程DelaySpkS對揚聲器發(fā)聲有什么影響?(6)思考題2:在電路上應該滿足哪些條件,才能用數字器件直接輸出的方波驅動揚聲器發(fā)聲?實驗實驗8-2硬件電子琴電路設計(7)實驗報告:用仿真波形和電路原理圖,詳細敘述硬件電子琴的工作原理及其3個VHDL文件中相關語句的功能,敘述硬件實驗情況,提出硬件樂曲演奏電路的設計和實驗方案。

圖8-15硬件樂曲演奏電路結構可以選擇模式9用鍵選擇演奏何首樂曲:第3首樂曲簡譜碼實驗(1)實驗目的:學習用VHDL設計波形發(fā)生器和掃頻信號發(fā)生器,掌握FPGA對D/A的接口和控制技術,學會LPM_ROM在波形發(fā)生器設計中的實用方法。實驗8-3波形發(fā)生與掃頻信號發(fā)生器電路設計(2)實驗原理:如圖8-16所示,完整的波形發(fā)生器由4部分組成:首先是FPGA中的波形發(fā)生器控制電路,它通過外來控制信號和高速時鐘信號,向波形數據ROM發(fā)出地址信號,輸出波形的頻率由發(fā)出的地址信號的速度決定;當以固定頻率掃描輸出地址時,模擬輸出波形是固定頻率,而當以周期性時變方式掃描輸出地址時,則模擬輸出波形為掃頻信號。實驗實驗8-3波形發(fā)生與掃頻信號發(fā)生器電路設計波形數據ROM中存有發(fā)生器的波形數據,如正弦波或三角波數據。當接受來自FPGA的地址信號后,將從數據線輸出相應的波形數據,地址變化得越快,則輸出數據的速度越快,從而使D/A輸出的模擬信號的變化速度越快。波形數據ROM可以由多種方式實現,如在FPGA外面外接普通ROM;由邏輯方式在FPGA中實現(如例8-30);或由FPGA中的EAB模塊擔當,如利用LPM_ROM實現。相比之下,第1種方式的容量最大,但速度最慢;,第2種方式容量最小,但速度最快;第3種方式則兼顧了兩方面的因素;D/A轉換器負責將ROM輸出的數據轉換成模擬信號,經濾波電路后輸出。輸出波形的頻率上限與D/A器件的轉換速度有重要關系,本例采用DAC0832器件。實驗實驗8-3波形發(fā)生與掃頻信號發(fā)生器電路設計DAC0832是8位D/A轉換器,轉換周期為1μs,其引腳信號以及與FPGA目標器件典型的接口方式如附圖1-15所示。其參考電壓與+5V工作電壓相接(實用電路應接精密基準電壓)。DAC0832的引腳功能簡述如下:ILE(PIN19):數據鎖存允許信號,高電平有效,系統板上已直接連在+5V上。WR1、WR2(PIN2、18):寫信號1、2,低電平有效。XFER(PIN17):數據傳送控制信號,低電平有效。VREF(PIN8):基準電壓,可正可負,-10V~+10V。RFB(PIN9):反饋電阻端。IOUT1/IOUT2(PIN11、12):電流輸出端。D/A轉換量是以電流形式輸出的,所以必須如實驗結構圖NO.5C所示連接方式將電流信號變?yōu)殡妷盒盘?。AGND/DGND(PIN3、10):模擬地與數字地。在高速情況下,此二GND地的連接線必須盡可能短,且系統的單點接地點須接在此連線的某一點上。實驗(3)實驗內容1:根據示例例8-30,及以上的設計原理,完成波形發(fā)生器和掃頻信號源的設計,仿真測試及實驗系統上的硬件測試。實驗8-3波形發(fā)生與掃頻信號發(fā)生器電路設計例8-30中的正弦波波型數據由64個點構成,此數據經DAC0832,并經濾波器后,可在示波器上觀察到光滑的正弦波(若接精密基準電壓,可得到更為清晰的正弦波形)。硬件實驗中注意DAC0832及濾波電路須接有+/-12V電壓。然后將實驗系統左下角選擇插針處用短路帽短路“D/A直通”,而“濾波1”,“濾波0”處通過短路或不接短路帽達到不同的濾波方式。將示波器的地與EDA實驗系統的地相接,信號端與“AOUT”

信號輸出端相接;建議CLK接clock0,由此50MHz頻率,此頻率掃描波形數據;CLK1接clock5,由此接“1024Hz”,此頻率決定掃頻速度;選電路模式1;KK接鍵8,當為高電平時,正弦波點頻輸出,11位輸入數據DATA由鍵3、鍵2和鍵1控制,信號源的輸出頻率由此3鍵輸入的12位二進制數決定,數值越大,輸出頻率越高;“FD0”時為最高頻率;鍵8低電平時,正弦波掃頻輸出,掃頻速度由clock5的頻率決定。輸向0832的8位數據由DD輸出。實驗(4)實驗內容2:在例8-30中插如一個LPM_ROM,將原例中的波形數據放在內部ROM中(利用本章第10節(jié)和第4章第3節(jié)介紹的方法,為例8-30定制波形數據ROM,并完成mif數據文件的編輯。必要時增加波形點數,以利低頻輸出時,仍保持良好波形。波形數據可由其它方式自動生成),然后重復以上的測試和硬件實驗。實驗8-3波形發(fā)生與掃頻信號發(fā)生器電路設計圖8-16波形發(fā)生器電路系統結構圖實驗(5)思考題:如果CLK的輸入頻率是50MHz,ROM中一個周期的正弦波數據是128個,要求輸出的正弦波頻率不低于150KHz,0832是否能適應此項工作?為什么?(6)實驗報告:作出本項實驗設計的完整電路圖,詳細說明其工作原理,敘述例8-30的工作原理,以及基于LPM_ROM的VHDL電路設計的詳細內容和測試、實驗內容。實驗8-3波形發(fā)生與掃頻信號發(fā)生器電路設計【例8-30】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDACISPORT(CLK,CLK1,KK:INSTD_LOGIC;DATA:INSTD_LOGIC_VECTOR(11DOWNTO0);DD:OUTINTEGERRANGE255DOWNTO0);END;ARCHITECTUREDACCOFDACISSIGNALQ:INTEGERRANGE63DOWNTO0;SIGNALD:INTEGERRANGE255DOWNTO0;SIGNALFSS:STD_LOGIC;SIGNALCOUNT12,DATA2,DATA1:STD_LOGIC_VECTOR(11DOWNTO0);BEGINPROCESS(FSS)BEGINIF(FSS'EVENTANDFSS='1')THENQ<=Q+1;ENDIF;ENDPROCESS;PROCESS(Q)

接下頁BEGINCASEQISWHEN00=>D<=255;WHEN01=>D<=254;WHEN02=>D<=252;WHEN03=>D<=249;WHEN04=>D<=245;WHEN05=>D<=239;WHEN06=>D<=233;WHEN07=>D<=225;WHEN08=>D<=217;WHEN09=>D<=207;WHEN10=>D<=197;WHEN11=>D<=186;WHEN12=>D<=174;WHEN13=>D<=162;WHEN14=>D<=150;WHEN15=>D<=137;WHEN16=>D<=124;WHEN17=>D<=112;WHEN18=>D<=99;WHEN19=>D<=87;WHEN20=>D<=75;WHEN21=>D<=64;WHEN22=>D<=53;WHEN23=>D<=43;WHEN24=>D<=34;WHEN25=>D<=26;WHEN26=>D<=19;WHEN27=>D<=13;WHEN28=>D<=8;WHEN29=>D<=4;WHEN30=>D<=1;WHEN31=>D<=0;WHEN32=>D<=0;WHEN33=>D<=1;WHEN34=>D<=4;WHEN35=>D<=8;WHEN36=>D<=13;WHEN37=>D<=19;WHEN38=>D<=26;WHEN39=>D<=34;WHEN40=>D<=43;WHEN41=>D<=53;WHEN42=>D<=64;WHEN43=>D<=75;WHEN44=>D<=87;WHEN45=>D<=99;WHEN46=>D<=112;WHEN47=>D<=124;WHEN48=>D<=137;WHEN49=>D<=150;WHEN50=>D<=162;WHEN51=>

溫馨提示

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

評論

0/150

提交評論