FPGA設(shè)計實例1ppt課件_第1頁
FPGA設(shè)計實例1ppt課件_第2頁
FPGA設(shè)計實例1ppt課件_第3頁
FPGA設(shè)計實例1ppt課件_第4頁
FPGA設(shè)計實例1ppt課件_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、FPGA設(shè)計基礎(chǔ)設(shè)計實例 BCD碼到余3碼的轉(zhuǎn)換電路 BCD碼和余3碼之間有如下關(guān)系:BCD碼加3即為余3碼。余3碼是一個自補碼,即對于任意一個余3碼a,存在另外一個a, 使得a+a=9。電路設(shè)計要求: 假設(shè)碼流以串行流的形式進入轉(zhuǎn)換電路,并以串行流的方式進行發(fā)送,BCD碼的低位先進入本轉(zhuǎn)換電路,余-3碼的低位先發(fā)送 序列BCD余3碼000000011100010100200100101300110110401000111501011000601101001701111010810001011910011100BCD到余3碼 轉(zhuǎn)換表并串轉(zhuǎn)換電路 _使用有限狀態(tài)機/* SIN_POUT_SHIF

2、T*/moduleSIN_POUT_SHIFT ( RSTB, IN, CLK, Q );inputRSTB, CLK, IN;output 3:0 Q;reg3:0 Q;always( posedge CLK or negedge RSTB )Q = ( !RSTB )?0: Q,IN;endmodule常見的串并/并串轉(zhuǎn)換/*PIN_SOUT_SHIFT */modulePIN_SOUT_SHIFT ( LOAD, IN, CLK, Q );inputLOAD, CLK;input3:0 IN;output 3:0 Q;reg3:0 Q;always( posedge CLK or pos

3、edge LOAD )if( LOAD )Q = IN;elseQ = Q 1;endmodulen把4位的并行數(shù)據(jù)轉(zhuǎn)換為符合以下協(xié)議的串行數(shù)據(jù)流,數(shù)據(jù)流用scl和sda兩條線傳輸,sclk為輸入的時鐘信號,data3:0為輸入數(shù)據(jù),d_en為數(shù)據(jù)輸入的使能信號。設(shè)計要求:通信協(xié)議:scl為不斷輸出的時鐘信號,如果scl為高電平時,sda由高變低,串行數(shù)據(jù)流開始。如果scl為高電平時,sda由低變高,串行數(shù)據(jù)結(jié)束。sda信號的串行數(shù)據(jù)位必須在scl為低電平時變化,若變?yōu)楦邉t為1,否則為零。nmodule ptos ( d_en ,data ,scl ,sclk ,sda,rst );ninpu

4、t d_en , rst;nwire d_en ;ninput 3:0 data ;ninput sclk ;nwire sclk ;noutput scl ;noutput sda ;nwire sda ;nreg scl,link_sda,sdabuf;nreg3:0 databuf;nreg7:0 state;nassign sda=link_sda? sdabuf:1bz;nparameter ready = 8b00000001,nstart = 8b00000010,nbit1 = 8b00000100,nbit2 = 8b00001000,nbit3 = 8b00010000,n

5、bit4 = 8b00100000,nbit5 = 8b01000000,nstop = 8b10000000;nalways (posedge sclk or negedge rst)nbeginnif(!rst)nscl=1;nelsenscl=scl;nendnnalways ( posedge d_en)nbeginndatabuf=data;nend n/ FSMnalways (negedge sclk or negedge rst)nif(!rst)nbeginnlink_sda=0;nstate=ready;nsdabuf=1;nendnelse nbeginncase (st

6、ate)nready: if(d_en)nbeginnlink_sda=1;nstate=start;nendnelsenbeginnlink_sda=0;nstate=ready;nendnstart:if(scl&d_en)nbeginnsdabuf=0;nstate=bit1;nendnelsenstate=start;nbit1: if(!scl)nbeginnsdabuf=databuf3;nstate =bit2;nendn elsen state=bit1;nbit2: if (!scl)nbeginnsdabuf=databuf2;nstate=bit3;nendnel

7、se n state =bit2;nbit3: if(!scl)nbeginn sdabuf=databuf1;n state =bit4;nendnelsenstate =bit3;nbit4: if(!scl)nbeginn sdabuf=databuf0;n state=bit5;nendnelse nstate =bit4;nbit5: if(!scl)nbeginn sdabuf = 0;n state=stop;nendnelse nstate =bit5;nstop: if(scl)nbeginn sdabuf=1;n state=ready;n endnelsenstate =

8、stop;ndefault: nbeginn link_sda=0;n sdabuf=1;n state=ready;nendnn endcasen endnendmodule偽隨機序列產(chǎn)生器設(shè)計 偽隨機序列的應(yīng)用非常廣泛,可以用作誤碼率測量,通信系統(tǒng)性能的測量,信號的加密,數(shù)據(jù)序列的擾碼,擴展頻譜等許多方面。 一般來說,偽隨機序列的電路為一個反饋移位寄存器,它可分為線性反饋移位寄存器簡稱LFSR計數(shù)器和非線性反饋移位寄存器,由線性反饋移位寄存器產(chǎn)生出的周期最長的二進制數(shù)字序列稱為最大長度線性反饋移位寄存器序列,通常簡稱為M序列。 M序列產(chǎn)生器n由于M序列有很好的信息相關(guān)性和偽隨機性能,電路實

9、現(xiàn)比較簡單,所以在信號的加密,數(shù)據(jù)序列的擾碼,擴頻等方面有著廣泛的應(yīng)用。n一個2n1的M序列,可以用n級的移位寄存器產(chǎn)生。實現(xiàn)方式主要有兩類,一類是“多對一方式,另一類是“一對多的方式 。 n“多對一方式,如圖a,其中Cn,Cn1,Cn2, C0 ,為反饋系數(shù),這些系數(shù)的取值為“1或“0”,“1表示該反饋支路連通,“0表示該反饋支路斷開。特征多項式的表達式為n n x)CnXnCn1Xn1C2X2C1X1C0n“一對多的方式,如圖b,其中Dn,Dn1,Dn2, D0 ,為反饋系數(shù),這些系數(shù)的取值為“1或“0”,“1表示該反饋支路連通,“0表示該反饋支路斷開。特征多項式的表達式為n n Gx)D

10、0XnD1Xn1Dn2X2Dn1X1Dn n在設(shè)計m序列產(chǎn)生器時,移位寄存器的反饋線的數(shù)目可由“常用m序列產(chǎn)生器的特征多項式表 ”查表得到。n例:9位M序列生成器 n 1、串行輸出的9位M序列生成器采用“多對一方式)n 特征多項式:x)X9X41 n/設(shè)計nmodule lfsr9 (clock, reset, lfsr_out);ninputclock, reset;noutputlfsr_out;nreg8 : 0 lfsr_count;nassignlfsr_out = lfsr_count 8;nalways ( posedge clock or posedge reset )nif

11、( reset )nlfsr_count = 0;/反饋為同或情況nelsenbeginnlfsr_count 8: 1 = lfsr_count 7 : 0;nlfsr_count0 = lfsr_count 8 lfsr_count 3;nendnendmodule 2、八位并行輸出的9位M序列 在8位的并行輸出中,每一個時鐘周期需要產(chǎn)生8個比特,設(shè)9位M序列產(chǎn)生器某個時刻的狀態(tài)是lfsr_a8 : 0,并行輸出的8位數(shù)據(jù)是lfsr_a8 : 1,產(chǎn)生下一個狀態(tài)的移位寄存器輸入為lfsr_b8 : 0 。 根據(jù)特征多項式:x)X9X41可以推出下列關(guān)系。lfsr _b7lfsr_a8 lf

12、sr_a3lfsr _b6lfsr_a7 lfsr_a2lfsr _b5lfsr_a6 lfsr_a1lfsr _b4lfsr_a5 lfsr_a0lfsr _b3lfsr_a4 lfsr_b8lfsr_a4 lfsr_a8 lfsr_a3lfsr _b3lfsr_a3 lfsr_b7lfsr_a3 lfsr_a7 lfsr_a2lfsr _b2lfsr_a2 lfsr_b6lfsr_a2 lfsr_a6 lfsr_a1lfsr _b1lfsr_a1 lfsr_b5lfsr_a1 lfsr_a5 lfsr_a0lfsr _b8lfsr_a0fsr_out = lfsr_a 8 : 1modul

13、e lfsr9p (clock, reset, lfsr_out);inputclock, reset;output 8 : 1 lfsr_out;reg8 : 0 lfsr_a;wire 8 : 0 lfsr_b;assign lfsr_out = lfsr_a 8 : 1;assign lfsr_b7 : 4 = lfsr_a8 : 5 lfsr_a3 : 0;assign lfsr_b3 : 0 = lfsr_a4 : 1 lfsr_a8 : 5 lfsr_a3 : 0assign lfsr_b8 = lfsr_a 0;always ( posedge clock or posedge

14、reset )if ( reset )lfsr_a = 9h1ff;/反饋為異或情況elselfsr_a8 : 0 = lfsr_b8 : 0;endmodule漢明距離計算電路設(shè)計 主要內(nèi)容:n 漢明距離的概念n 漢明距離計算電路的實現(xiàn)方法 漢明距離定義:兩個長為N的二元序列S和U之間對應(yīng)位不相同的位數(shù),用d(S,U)來表示。 在擴頻通信和數(shù)字突發(fā)通信(如TDMA)系統(tǒng)中,接收機進行的數(shù)字相關(guān)檢測或獨特碼(UW)檢測,實際上就是計算本地一組確定序列與接收到的未知序列之間漢明距離的過程。將漢明距離與事先確定的門限相比較,就可以得到檢測結(jié)果。圖1 檢測器結(jié)構(gòu)框圖 設(shè)檢測的序列長度為N,本地碼為確

15、定的二元序列U U = (U1,U2,UN) Ui 0,1 接收機將接收到的數(shù)據(jù)連續(xù)不斷地送入N位串行移位寄存器中,任一瞬間移位寄存器的內(nèi)容為: S = (S1,S2,SN) Si 0,1 S與U的對應(yīng)位進行模二加,當S與U的對應(yīng)位相同時結(jié)果為“0”,不同時結(jié)果為“1”,最后得到 D = (D1,D2,DN)其中 序列D中“1的數(shù)目就是S與U之間的漢明距離,可表示為 序列D是序列S與U的比較結(jié)果,要得到漢明距離的數(shù)值,必須從序列D中計算出“1的個數(shù)。1、 求和網(wǎng)絡(luò)法圖2 求和網(wǎng)絡(luò)法原理圖二、漢明距離計算電路實現(xiàn)方法原理:將序列D中的各項逐個加在一起,最終累加結(jié)果便是漢明距離。分析: 在一般情況

16、下,為了保證計算結(jié)果的可靠性,需要將序列D用N位寄存器鎖存。 在求和網(wǎng)絡(luò)中,信號每經(jīng)過一次加法運算,就引入一定的延遲。要求信號總延時要小于輸入信號碼元周期。2 、計數(shù)法原理:首先將序列D并行送入一個“并入串出的N位移位寄存器中,然后用一個高速時鐘將數(shù)據(jù)送出,同時利用計數(shù)器來統(tǒng)計“1的數(shù)目,最后用清零脈沖將計數(shù)器清零,為下一周期的計數(shù)做好準備。圖3 計數(shù)法原理圖分析:假設(shè)接收機接收數(shù)據(jù)速率為R0 由此可以確定計數(shù)時鐘的最低速率為 R = NR0周期為結(jié)論: 計數(shù)法的實現(xiàn)電路比較簡單,但是當數(shù)據(jù)速率R0較高或N值較大時,計數(shù)時鐘的速率R會很大,導致電路難以實現(xiàn)。 適合于低速數(shù)據(jù),碼序列不宜很長,而

17、且需要有高速率的時鐘和高速器件。3、 查找表法圖4 查找表法原理圖原理:將存儲器做成一個查找表,把序列D作為地址信號,從表中查找出其對應(yīng)的漢明距離。分析:序列D的長度為N,存儲單元的數(shù)據(jù)寬度為P,那么 P = INT(log2N) + 1 從而要求存儲器的容量M為 M = 2N P 隨著序列長度N的增加,存儲器容量成幾何級數(shù)增長,當N30時,存儲量將超過5Gb。4 、組合應(yīng)用 在具體應(yīng)用中,如果將幾種方法組合使用,計算電路會更加合理、高效。計數(shù)求和網(wǎng)絡(luò)法圖5 計數(shù)求和網(wǎng)絡(luò)法原理圖可編程單脈沖發(fā)生器功能要求:可編程單脈沖發(fā)生器是一種脈沖寬度可變得信號發(fā)生器。在輸入按鍵的控制下,產(chǎn)生單脈沖,脈沖的寬度由8位的輸

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論