勇敢芯伴你玩轉(zhuǎn)nios第5章qsys自定義組件設(shè)計(jì)_第1頁
勇敢芯伴你玩轉(zhuǎn)nios第5章qsys自定義組件設(shè)計(jì)_第2頁
勇敢芯伴你玩轉(zhuǎn)nios第5章qsys自定義組件設(shè)計(jì)_第3頁
勇敢芯伴你玩轉(zhuǎn)nios第5章qsys自定義組件設(shè)計(jì)_第4頁
勇敢芯伴你玩轉(zhuǎn)nios第5章qsys自定義組件設(shè)計(jì)_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

AlteraFPGA的芯入門指5Qsys AlteraFPGA的芯入門指 第5章Qsys自定義組件設(shè) ADC組 DAC組 RTC組 所謂自定義組件,用的解釋就如圖5.1所示。NIOSII處理器是一個Master,這個們已經(jīng)學(xué)習(xí)過的GPIO、UART、SystemID等等。ComponentLogic是用戶自定義的邏輯,可FPGAIO口Qsys組件連接(NIOSII處理器)的接口,NIOSII系統(tǒng)中常用的總線接口是Avalon-MM或Avalon-ST。Avalon接口組件邏系統(tǒng)互聯(lián)邏其他組件邏系統(tǒng)互聯(lián)邏其他邏接口信系統(tǒng)互聯(lián)邏系統(tǒng)互聯(lián)邏Avalon接口digital_tube_controllerAvalon-MMNIOSII4位數(shù)NIOSII處理器發(fā)送到數(shù)據(jù)寄存器的32位數(shù)據(jù)顯示到數(shù)碼管上。6.2所示,在實(shí)例工程所在路徑“…/cy4qsys/source_code/digital_tube_controller”下,3個*.v代碼是數(shù)碼管組件的Verilog工程源碼。6.2digital_tube_controller組件源碼存放路徑這3個源碼的層次關(guān)系如圖6.3所示。digital_tube_controller6.2所示。接口定義中的方向均為相對于FPGA的信號方向。配置寄存器說明如圖6.5所示,NIOSII處理器可以通過Avalon-MM總線該組件的數(shù)據(jù)寄存器和控制001例如,我們希望將十進(jìn)制數(shù)據(jù)5498顯示到數(shù)碼管上,那么要依次往控制寄存器寫那么只要依次往控制寄存器寫0x0007、往數(shù)據(jù)寄存器寫0x307。組件創(chuàng)建與配置…6.6LibraryNameQsysdigita_tube_contoller否用戶加載組件時可配置,由于我們的ADDR_SIZE是固定值,不允許用戶配置,所以在Editable一列不做勾選即可。 Conduit_endQsysQsys系統(tǒng)和外部接口的信號,通常是連接到FPGA引腳上的信號,它的SignalType固定為export。avalon_slave_06.11所示,尤其注意TimingAvalon-MM讀寫的時序參數(shù),相應(yīng)配置在ReadWaveformsWriteWaveforms中會示意出來。Component→DigitalTubeController”組件。6.16Library面板中,選擇“Library→UserComponent→DigitalTubegeCte組件互聯(lián)與引出器需要能夠到這個數(shù)碼管組件,須把NIOSII的數(shù)據(jù)總線(data_master)連接到數(shù)碼管組件(avalon_slave_0)上,即圖示的紅色方框內(nèi)的最右邊一個實(shí)心點(diǎn)。QsysFPGA的引腳上,如圖6.20所示,雙擊數(shù)碼管外設(shè)external_connection一行的“Double-clickto”處。6.21external_connection一行出現(xiàn)了接口符號,說明ADCadc_controller組件通過Avalon-MM總線從機(jī)接口實(shí)現(xiàn)NIOSII處理器與ADCTLC549之間的數(shù)據(jù)傳輸。該組件產(chǎn)生TLC549數(shù)據(jù)所需的接口時序,定時ADC的采樣數(shù)據(jù)到Avalon-MM總線可的數(shù)據(jù)寄存器中,供NIOSII處理器。6.21所示,在實(shí)例工程所在路徑“…/cy4qsys/source_code/adc_controller”下,3個*.v代碼是ADC組件的Verilog工程源碼。6.21adc_controller組件源碼存放路徑這3個源碼的層次關(guān)系如圖6.22所示。AD接AD接AD接配置寄存器說明如圖6.24所示,NIOSII處理器可以通過Avalon-MM總線該組件的數(shù)據(jù)寄存器和控制寄存器,實(shí)現(xiàn)TLC549AD采樣值的。0adc_controller組件內(nèi)部定時產(chǎn)生AD時序,的AD值。因此,NIOSII處理器若想獲得的AD采樣值,只需該組件的數(shù)據(jù)寄存器即可。組件創(chuàng)建與配置…在首先彈出的ComponentType頁面中,如圖6.25所示進(jìn)行配置。6.26Files頁面中,首先點(diǎn)擊“+3個工程源碼模塊都添加進(jìn)來;接著點(diǎn)擊“yzeSynthesisFiles”對這3個模塊進(jìn)行綜合編譯;最后在“Top-levelModule”后面選擇“adc_controller6.27ParametersparameterADDR_SIZE是固定值,不允許用戶配置,所以在Editable一列不做勾選即可。 Conduit_endQsysQsys系統(tǒng)和外部接口的信號,通常是連接到FPGA引腳上的信號,它的SignalType固定為export。avalon_slave_06.29所示,尤其注意TimingAvalon-MM讀寫的時序參數(shù),相應(yīng)配置在ReadWaveformsWriteWaveforms中會示意出來。6.29adc_controller組件avalon_slave_06.30adc_controller組件conduit_end6.31adc_controller組件clock_sink6.32adc_controller組件reset_sinkComponent→ADCController”組件。組件添加與配置CntrollerDCContolle組件互聯(lián)與引出CLOCK組件的相應(yīng)信號上(圖示紅色方框內(nèi)的左邊兩個實(shí)心點(diǎn)NIOSII處理器組件(avalon_slave_0)上,即圖示的紅色方框內(nèi)的最右邊一個實(shí)心點(diǎn)。DACdac_controller組件通過Avalon-MM總線從機(jī)接口實(shí)現(xiàn)NIOSII處理器與DACDAC5571之間的數(shù)據(jù)傳輸。該組件產(chǎn)生DAC5571讀寫的IIC總線接口所需的時序,在Avalon-MM總線可的數(shù)據(jù)寄存器值發(fā)生變化時,執(zhí)行DAC5571DA轉(zhuǎn)換數(shù)據(jù)的6.38所示,在實(shí)例工程所在路徑“…/cy4qsys/source_code/dac_controller”下,3個*.v代碼是DAC組件的Verilog工程源碼。36.39dacDAC5571IIC總線時鐘信號DAC5571IIC總線數(shù)據(jù)信號配置寄存器說明如圖6.41所示,NIOSII處理器可以通過Avalon-MM總線該組件的數(shù)據(jù)寄存器,實(shí)現(xiàn)DA轉(zhuǎn)換。0dac_controller組件內(nèi)部實(shí)時判斷當(dāng)前已經(jīng)寫入DAC的數(shù)據(jù)與NIOSII處理器寫入到組件創(chuàng)建與配置…在首先彈出的ComponentType頁面中,如圖6.42所示進(jìn)行配置。6.43Files頁面中,首先點(diǎn)擊“+3個工程源碼模塊都添加進(jìn)來;接著點(diǎn)擊“yzeSynthesisFiles”對這3個模塊進(jìn)行綜合編譯;最后在“Top-levelModule”后面選擇“dac_controller6.44ParametersparameterADDR_SIZE是固定值,不允許用戶配置,所以在Editable一列不做勾選即可。 Conduit_endQsysQsys系統(tǒng)和外部接口的信號,通常是連接到FPGA引腳上的信號,它的SignalType固定為export。avalon_slave_06.46所示,尤其注意TimingAvalon-MM讀寫的時序參數(shù),相應(yīng)配置在ReadWaveformsWriteWaveforms中會示意出來。6.49dac_controller組件reset_sinkComponent→DigitalTubeController”組件。組件添加與配置CotrollerC_Cotole組件互聯(lián)與引出CLOCK組件的相應(yīng)信號上(圖示紅色方框內(nèi)的左邊兩個實(shí)心點(diǎn)NIOSII處理器組件(avalon_slave_0)上,即圖示的紅色方框內(nèi)的最右邊一個實(shí)心點(diǎn)。超聲波測距組ultrasound_controller組件通過Avalon-MM總線從機(jī)接口實(shí)現(xiàn)NIOSII處理器對超聲波?;夭煞答伱}沖,并且對反饋脈沖進(jìn)行中值濾波和距離值換算,最終獲得以mm為單位的距如圖6.55所示,在實(shí)例工程所在路徑“…/cy4qsys/source_code/ultrasound_controller”6.55ultrasound_controller組件源碼存放路徑這7個源碼的層次關(guān)系如圖6.56所示。ultrasound_controller6.11所示。接口定義中的方向均為相對于FPGA的信號方向。配置寄存器說明如圖6.58所示,NIOSII處理器可以通過Avalon-MM總線該組件的數(shù)據(jù)寄存器,讀00ultrasound_controller組件內(nèi)部定時發(fā)出脈沖用于觸發(fā)超聲波測距模塊工作,超聲波測到數(shù)據(jù)寄存器中。NIOSII處理器通過數(shù)據(jù)寄存器值獲得實(shí)時的測距信息。…在首先彈出的ComponentType頁面中,如圖6.59所示進(jìn)行配置。NameQsys6.60Files頁面中,首先點(diǎn)擊“+3個工程源碼模塊都添加進(jìn)來(包括mult文件夾下的mul.qip文件接著點(diǎn)擊“yzeSynthesisFiles”對ultasoun_cotroller6.61ParametersparameterADDR_SIZE是固定值,不允許用戶配置,所以在Editable一列不做勾選即可。 Conduit_endQsysQsys系統(tǒng)和外部接口的信號,通常是連接到FPGA引腳上的信號,它的SignalType固定為export。avalon_slave_06.63所示,尤其注意TimingAvalon-MM讀寫的時序參數(shù),相應(yīng)配置在ReadWaveformsWriteWaveforms中會示意出來。Component→UltrasoundController”組件。組件添加與配置6.68Library面板中,選擇“Library→UserComponent→Ultrasoundtctr組件互聯(lián)與引出6.71Connections一列中,需要將超聲波測距組件的時鐘、復(fù)位信號分別CLOCK組件的相應(yīng)信號上(圖示紅色方框內(nèi)的左邊兩個實(shí)心點(diǎn)NIOSIIQsysFPGA的引腳上,雙擊超聲波測距外設(shè)external_connection一行的“Double-clickto”處即可。RTCrtc_controller組件通過Avalon-MM總線從機(jī)接口實(shí)現(xiàn)NIOSII處理器對RTCPCF8563T的時間和日期數(shù)據(jù)讀寫操作。該組件定時的RTC數(shù)據(jù)到Avalon-MM的數(shù)據(jù)更新到RTC中。6.72rtc_controller組件源碼存放路徑這5個源碼的層次關(guān)系如圖6.73所示。RTC接PCF8563TIIC總線時鐘信號RTC接PCF8563TIIC總線數(shù)據(jù)信號配置寄存器說明時數(shù)據(jù)寄存器分?jǐn)?shù)據(jù)寄存器秒數(shù)據(jù)寄存器如圖6.75所示,NIOSII處理器可以通過Avalon-MM總線該組件的數(shù)據(jù)寄存器,實(shí)現(xiàn)RTC時數(shù)據(jù)寄存器分?jǐn)?shù)據(jù)寄存器秒數(shù)據(jù)寄存器0123秒數(shù)據(jù)rtc_controller組件內(nèi)部定時RTC的秒、分、時數(shù)據(jù),NIOSII處理器任意時刻讀取到的數(shù)據(jù)寄存器值均為值。若NIOSII處理器希望更新當(dāng)前RTC的秒、分、時信RTC數(shù)據(jù)的更新。組件創(chuàng)建與配置…在首先彈出的ComponentType頁面中,如圖6.76所示進(jìn)行配置。6.77Files頁面中,首先點(diǎn)擊“+5個工程源碼模塊都添加進(jìn)來;接著點(diǎn)擊“yzeSynthesisFiles”對這3個模塊進(jìn)行綜合編譯;最后rtc_controller6.78ParametersparameterADDR_SIZE是固定值,不允許用戶配置,所以在Editable一列不做勾選即可。 Conduit_endQsysQsys系統(tǒng)和外部接口的信號,通常是連接到FPGA引腳上的信號,它的SignalType固定為export。avalon_slave_06.80所示,尤其注意TimingAvalon-MM讀寫的時序參數(shù),相應(yīng)配置在ReadWaveformsWriteWaveforms中會示意出來。6.80rtc_controller組件Avalon_slave_06.81rtc_controller組件conduit_end6.83rtc_controller組件reset_sinkComponent→RTCController”組件。組件添加與配置CotrolerRC_otoller組件互聯(lián)與引出CLOCK組件的相應(yīng)信號上(圖示紅色方框內(nèi)的左邊兩個實(shí)心點(diǎn)NIOSII處理器需要能夠到這個RTC組件,須把NIOSII的數(shù)據(jù)總線(data_master)連接到RTC組件(avalon_slave_0)上,即圖示的紅色方框內(nèi)的最右邊一個實(shí)心點(diǎn)。矩陣按鍵組件button_controller組件通過Avalon-MM總線從機(jī)接口實(shí)現(xiàn)NIOSII4*4矩陣按鍵值。該組件定時產(chǎn)生矩陣按鍵掃描所需的各種電平變換,到按鍵掃描值到Avalon-MM總線可的數(shù)據(jù)寄存器中,并且產(chǎn)生可配置開關(guān)狀態(tài)的中斷信號給NIOSII處理器,NIOSII處理器可通過中斷狀態(tài)實(shí)時按鍵值。4個*.v代碼是矩陣按鍵組件的Verilog6.89button_controller組件源碼存放路徑這4個源碼的層次關(guān)系如圖6.90所示。高電平有效,用于指示NIOSII配置寄存器說明如圖6.92所示,NIOSII處理器可以通過Avalon-MM總線設(shè)置中斷寄存器開啟,001用于設(shè)定有按鍵觸發(fā)時是否產(chǎn)生中斷信號到器設(shè)定中斷開啟,則該組件在捕獲到鍵值時產(chǎn)生中

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論