日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > ZYNQ


1 項目背景

1.1 AD轉(zhuǎn)換


AD轉(zhuǎn)換就是模數(shù)轉(zhuǎn)換。顧名思義,就是把模擬信號轉(zhuǎn)換成數(shù)字信號。主要包括積分型、逐次逼近型、并行比較型/串并行型、Σ-Δ調(diào)制型、電容陣列逐次比較型及壓頻變換型。


A/D轉(zhuǎn)換器是用來通過一定的電路將模擬量轉(zhuǎn)變?yōu)閿?shù)字量。模擬量可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉(zhuǎn)換前,輸入到A/D轉(zhuǎn)換器的輸入信號必須經(jīng)各種傳感器把各種物理量轉(zhuǎn)換成電壓信號。


AD轉(zhuǎn)換的技術(shù)指標(biāo),一般有如下幾個:

  1. 分辨率(Resolution) 指數(shù)字量變化一個最小量時模擬信號的變化量,定義為滿刻度與2^n的比值。分辨率又稱精度,通常以數(shù)字信號的位數(shù)來表示。

  2. 轉(zhuǎn)換速率(Conversion Rate)是指完成一次從模擬轉(zhuǎn)換到數(shù)字的AD轉(zhuǎn)換所需的時間的倒數(shù)。積分型AD的轉(zhuǎn)換時間是毫秒級屬低速AD,逐次比較型AD是微秒級屬中速AD,全并行/串并行型AD可達到納秒級。采樣時間則是另外一個概念,是指兩次轉(zhuǎn)換的間隔。為了保證轉(zhuǎn)換的正確完成,采樣速率 (Sample Rate)必須小于或等于轉(zhuǎn)換速率。因此有人習(xí)慣上將轉(zhuǎn)換速率在數(shù)值上等同于采樣速率也是可以接受的。常用單位是ksps和Msps,表 示每秒采樣千/百萬次(kilo / Million Samples per Second)。

  3. 量化誤差 (Quantizing Error) 由于AD的有限分辨率而引起的誤差,即有限分辨率AD的階梯狀轉(zhuǎn)移特性曲線與無限分辨率AD(理想AD)的轉(zhuǎn)移特 性曲線(直線)之間的最大偏差。通常是1個或半個最小數(shù)字量的模擬變化量,表示為1LSB、1/2LSB。

  4. 偏移誤差(Offset Error) 輸入信號為零時輸出信號不為零的值,可外接電位器調(diào)至最小。

  5. 滿刻度誤差(Full Scale Error) 滿度輸出時對應(yīng)的輸入信號與理想輸入信號值之差。

  6. 線性度(Linearity) 實際轉(zhuǎn)換器的轉(zhuǎn)移函數(shù)與理想直線的最大偏移,不包括以上三種誤差。


其他指標(biāo)還有:絕對精度(Absolute Accuracy) ,相對精度(Relative Accuracy),微分非線性,單調(diào)性和無錯碼,總諧波失真(Total Harmonic Distotortion縮寫THD)和積分非線性。


1.2 教學(xué)板AD原理圖


明德?lián)P教學(xué)板上板載板載32Mhz 轉(zhuǎn)換速率、8bit高速AD芯片AD9280,滿足各種信號的采集,滿足用戶實現(xiàn)各種常見濾波算法的實現(xiàn)。實際位置如下所示:




上面是AD9280的原理圖。與FPGA相連的信號有:AD_D0~7、AD_OTR、AD_CLK。


1.3 AD9280的控制時序


AD9280的控制時序如下圖。




由時鐘圖可以看出,每個時鐘就可以做AD轉(zhuǎn)換一次,但會延遲3個時鐘才輸出。例如時序圖中第一個時鐘采集到S1,并對S1進行模數(shù)轉(zhuǎn)換,經(jīng)過3個時鐘后,輸出DATA1,這個DATA1就是S1所應(yīng)對的數(shù)字值。


由參數(shù)時序可以看出,時鐘最大是32MHz。


由上面時序可以看出,控制AD9280非常簡單,只要給出不超過32MHz的時鐘,然后對其采集就行了。


2 設(shè)計目標(biāo)


本次案例將使用到AD9709和AD9280。其連接示意如下圖所示。



本案例是FPGA先產(chǎn)生正弦信號,這個正弦信號輸出給DA通道A,經(jīng)過環(huán)回后,給回AD9280的輸入端,F(xiàn)PGA再采集AD9280的數(shù)據(jù),最后使用signaltap采集數(shù)字信號。




正弦信號的產(chǎn)生方式,與“FIR濾波器的設(shè)計”案例一致。正弦信號的頻率受開發(fā)板上的3個撥碼開關(guān)控制,用3位信號key表示,一共可以產(chǎn)生8種頻率。

正弦信號的頻率 約等于:100KHz * (key+1)。


例如,當(dāng)key等于0時,產(chǎn)生約100KHz的正弦信號;

當(dāng)key等于1時,產(chǎn)生約200KHz的正弦波;

當(dāng)key等于7時,產(chǎn)生約800KHz的正弦波。

FPGA產(chǎn)生25MHz的時鐘給AD9280,也就是采樣率為25M。用這個時鐘作為SIGNALTAP的采樣時鐘,觀察AD9280過來的數(shù)據(jù)波形。

上板效果圖如下圖所示。(用signaltap抓取波形)



3 設(shè)計實現(xiàn)


3.1 頂層信號


新建目錄:D:\mdy_book\ad_prj。在該目錄中,新建一個名為ad_prj.v的文件,并用GVIM打開,開始編寫代碼。


我們要實現(xiàn)的功能,概括起來就是FPGA產(chǎn)生控制AD9709,讓其中的通道A產(chǎn)生正弦波所對應(yīng)的電壓,同時采集AD9280的數(shù)據(jù)并觀察。為了控制AD9709的通道A,就需要控制AD9709的MODE、SLEEP、CLK1、WRT1、DB7~0P1管腳。為了采集AD9280,那么就需要控制AD9280的CLK、D0~D7管腳。根據(jù)設(shè)計目標(biāo)的要求,整個工程需要以下信號:


  1. 使用clk連接到晶振,表示50M時鐘的輸入。

  2. 使用rst_n連接到按鍵,表示復(fù)位信號。

  3. 使用3位信號key,表示三位撥碼開關(guān)。

  4. 使用dac_mode信號連接到AD9709的MODE管腳,用來控制其工作模式。

  5. 使用dac_sleep信號連接到AD9709的SLEEP管腳,用來控制其睡眠模式。

  6. 使用dac_clka信號連接到AD9709的CLK1管腳,用來控制通道A的時鐘。

  7. 使用dac_wra信號連接到AD9709的WRT1管腳,用來控制通道A的寫使能。

  8. 使用8位信號dac_da連接到AD9709的DB7~0P1管腳,用來控制通道A的寫數(shù)據(jù)。

  9. 使用ad_clk信號連接到AD9280的CLK管腳,用來作來采樣時鐘。

  10. 使用8位ad_in信號連接到AD9280的D7~0管腳,用來采集數(shù)據(jù)。


綜上所述,我們這個工程需要10個信號,時鐘clk,復(fù)位rst_n,dac_mode、dac_sleep、dac_clka、dac_wra、dac_da、ad_clk和ad_in,其中dac_da 、ad_in是8位信號,key是3位信號,其他都是1位信號。


將module的名稱定義為ad_prj,代碼如下:

其中clk、rst_n是1位的輸入信號,dac_da是8位的輸出信號,dac_mode,dac_clka,dac_wra,dac_sleep是1位輸出信號,ad_clk是1位輸出信號,ad_in是8位輸入信號,key是3位輸入信號。


3.2 信號設(shè)計


由于正弦信號的產(chǎn)生要求,與“FIR濾波器設(shè)計”相同,所以不再詳細描述原因?,F(xiàn)在把相關(guān)代碼整理如下。

還有最后一個信號要設(shè)計:ad_clk。由設(shè)計目標(biāo)可知,要求是25MHz的時鐘。為了產(chǎn)生時鐘,我們就要用到PLL。


3.3 生成PLL IP核


  1. 打開IP核管理工具

打開quartus軟件,然后選擇Tools ->IPcatalog,在右側(cè)彈出如下界面

在搜索框中,填下ALTPLL,就會出現(xiàn)如下界面。

ALTPLL就是我們需要使用的PLL IP核。雙擊ALTPLL,在彈出的對話框中起個文件名,如vga_pll,記得選擇verilog。然后點OK就可以開始設(shè)置參數(shù)了。


2. 設(shè)置IP參數(shù)


上圖中,主要是設(shè)置輸入的時鐘頻率,明德?lián)P開發(fā)板輸入時鐘是固定的50MHz,因此可填寫50,注意旁邊的單位是選擇MHz。其他默認,按next。



上圖的option inputs中,全部取消勾選,不需要產(chǎn)生復(fù)位信號。上圖中的lock output,全部取消勾選,不需要產(chǎn)生locked指示信號。然后選Next。



不用做任何更改,直接Next。



不用做任何更改,直接Next。



增加輸入時鐘,由于我們只有一個輸入時鐘,所以只用inclk0即可,無需增加。直接Next。



不用做任何更改,直接Next。



設(shè)置c0的輸出頻率。我們選擇Enter output clock frequest中,直接填入25,單位選擇MHz,就是表示要產(chǎn)生25MHz的時鐘。然后點擊Finish,彈出如下窗口。



取消my_pll_bb.v的勾選,然后選擇Finish。QUARTUS就會產(chǎn)生PLL IP的代碼了。

稍等片刻,到工程目錄 D:\mdy_book\ad_prj,可以看到生成一個my_pll.v文件,用GVIM打開后,可以看到PLL模塊的模塊輸入輸出接口。其中inclk0是50MHz輸入時鐘,c0是25MHz的輸出時鐘。頂層模塊直接例化就可以使用了。

至此,主體程序已經(jīng)完成。接下來是將module補充完整。


3.4 信號定義


接下來定義信號類型。

在“FIR濾波器案例”中已經(jīng)說明了部分信號的說明,現(xiàn)補充如下。


4 綜合與上板


4.1 添加文件到工程


  1. 前面已經(jīng)介紹了新建工程?,F(xiàn)在打開quartus,在Project菜單中選擇Add/Remove File to Project,彈出文件窗口。

點擊右上角的

,在彈出來的窗口中,雙擊選擇D:\mdy_book\ad_prj目錄下的ad_prj.v文件。然后記得要點Add,才算正式加到工程。

點OK關(guān)閉本窗口。


4.2 綜合

1.點擊右上角藍色三角鍵進行編譯

之后等待編譯成功


4.3 配置管腳


在菜單欄中,選中Assignments,然后選擇Pin Planner,就會彈出配置管腳的窗口。

在配置窗口中的location一列,可以填寫每個管腳所對應(yīng)的FPGA管腳號。

按上面配置好每個信號的管腳,其最終效果如下圖。

關(guān)閉Pin Planner,軟件自動會保存管腳配置信息。


4.4 再次綜合


在菜單欄中,選中Processing,然后選擇Start Compilation,再次對整個工程進行編譯和綜合。

出現(xiàn)上面的界面,就說明編譯綜合成功。


4.5 連接開發(fā)板



連接示意如上圖所示。將電源接上開發(fā)板;USB BLASTER一端連接到JTAG插口,另一端連到PC的USB接口;將開發(fā)板上的P7接口和P11與示波器的兩個通道相連。最后再將電源打開。


4.6 設(shè)置SIGNALTAP

用SIGNALTAP觀察


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉