欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于fpga實現(xiàn)的解卷積交織器及解卷積交織方法

文檔序號:7510479閱讀:315來源:國知局

專利名稱::一種基于fpga實現(xiàn)的解卷積交織器及解卷積交織方法
技術領域
:本發(fā)明涉及解巻積交織技術,尤其是一種基于FPGA實現(xiàn)的解巻積交織器及解巻積交織方法。
背景技術
:在通信系統(tǒng)中,信道編碼的一般作用是糾正信道中出現(xiàn)的隨機錯誤。而信道糾錯編碼在實際應用中往往要結合數(shù)據交織技術,這是因為多數(shù)信道差錯是突發(fā)性的,即發(fā)生錯誤時,往往具有很強的相關性,甚至是連續(xù)一片數(shù)據都出了錯;同時由于錯誤集中,可能超出了糾錯碼的糾錯能力,所以在發(fā)送端加上數(shù)據交織器,在接收端加上解交織器,使信道的突發(fā)差錯得以分散,以利于糾錯。于此,信道之中加上交織器與解交織器,系統(tǒng)的糾錯性能可以得到幾個數(shù)量級的提高。解交織器通常有兩種實現(xiàn)形式,一種為解塊交織器(BlockDe-interleaver),另一種為解巻積交織器(ConvolutionalDe-interleaver)。如圖l所示,為一種解巻積交織器的結構示意圖。解巻積交織器一般由I個分支構成,分別為0到I-1。其中,每個分支的延遲單元數(shù)為(I-1)*M、(1-2)*M.......2M、M、0;每個分支延遲單元數(shù)差M個,所以每個分支的延遲數(shù)并不一致,結果造成輸入數(shù)據的延遲并不相同(圖1中,以M-17-N/1,N-204-誤碼保護幀長度,1-12==解交織深度為例)。同時,請參見圖2所示,為解巻積交織器的一種實現(xiàn)方式,其關鍵是使用FIFO(FirstInFirstOut,先進先出)移位寄存器實現(xiàn)數(shù)據讀寫;解交織器的每個分支實際上是一個FIFO移位寄存器,具有深度不等的字節(jié)空間。輸入數(shù)據由控制開關控制循環(huán)送入到每一個分支。輸出也有開關控制選擇一個分支的數(shù)據。其中,圖中B代表字節(jié)。前迷實現(xiàn)方式雖然具有設計方便簡單的優(yōu)點,但是具有如下缺陷1、在FPGA(FieldProgrammableGateArray,現(xiàn)場可編程門陣列)邏輯器件中實現(xiàn)時,由于FPGA只支持二的次冪深度的存儲記憶塊(寄存器),如果用FIFO來實現(xiàn)每個分支存儲單元,那么各個分支需要的FIFO存儲空間依次為256、256、256、256、128、128、128、128、64、64、32和0字節(jié),共占用1696字節(jié)的存儲空間,因此,實際使用到的存儲空間是1122字節(jié),存儲空間的使用效率為1122/1696=66°/。,故存儲空間的使用效率較低。2、前述的設計由于分支開關切換的次數(shù)頻繁,故消耗功率較大。如圖3所示,為基于一個雙端口RAM實現(xiàn)解巻積交織器的結構示意圖。本方案是將不同的分支大小的存儲單元合成為一個大的、統(tǒng)一的BlockRAM。只需一個寫地址發(fā)生器和讀地址發(fā)生器來控制讀寫操作同時進行。通過寫地址信號將輸入端的數(shù)據存入RAM,通過讀地址信號將數(shù)據從RAM中取出送往解交織器的輸出端。由圖l可以計算得出解交織器的實現(xiàn)所需的FIFO移位寄存器的容量共為1122字節(jié);而采用圖3所示的一個雙端口RAM實現(xiàn)時,所需地址線寬度應該為11。同時,由于FPGA只支持二的次冪深度的存儲記憶塊(寄存器),所以,雖然交織器只需1122*81)&,但是必需要用二的次冪的存儲空間來實現(xiàn),所以用一個雙端口RAM時需要1l位地址線,存儲空間2048*81>^。該方案的缺點是既增加了寄存器占用FPGA的面積;同時,造成許多存儲單元閑置,存儲空間的使用效率為1122/2048-55%,具有存儲空間的使用效率較低的缺點。
發(fā)明內容本發(fā)明的目的在于提出一種基于FPGA實現(xiàn)的解巻積交織器及解巻積交織方法,以減少在FPGA中所使用存儲空間的面積、增加存儲空間的使用效率、提高解巻積交織器的工作速度。為解決上述問題,本發(fā)明公開一種基于FPGA實現(xiàn)的解巻積交織器,包括兩個存儲深度為二的次冪的雙端口RAM,每個雙端口RAM分別用于多個連續(xù)分支的移位寄存器;兩個讀寫地址發(fā)生器,每個讀寫地址發(fā)生器分別與一個雙端口RAM連接;控制器,分別與所述雙端口RAM以及所述讀寫地址發(fā)生器連接,輸出一個選擇控制信號,選擇控制其中一個讀寫地址發(fā)生器產生讀地址和寫地址輸出;且該控制器輸出一個選擇信號,選擇對應于所述讀、寫地址所屬的雙端口RAM,將輸入的數(shù)據寫入該雙端口RAM中的所述寫地址對應的存儲空間,或從該雙端口RAM中的所述讀地址對應的存儲空間讀取數(shù)據并輸出。較優(yōu)的,所述讀寫地址發(fā)生器包括寫地址發(fā)生模塊和讀地址發(fā)生模塊;所述寫地址發(fā)生模塊根據輸入數(shù)據需要寫入的分支基地址,加上偏移地址,輸出寫入數(shù)據的目標地址;所述讀地址發(fā)生模塊根據讀出數(shù)據所在的分支基地址,加上偏移地址,輸出讀出數(shù)據的目標地址。較優(yōu)的,所述控制器包括控制不同分支之間進行切換的狀態(tài)機,當狀態(tài)機控制從一個分支切換至另一個分支時,所述控制器控制選擇相應的雙端口RAM進行數(shù)據讀或寫的操作。較優(yōu)的,所述兩個雙端口RAM的其中一個為存儲容量是1024*8字節(jié)的雙端口RAM,另一個為存儲容量是256*8字節(jié)的雙端口RAM。較優(yōu)的,所述雙端口RAM中,每個分支占有的存儲空間,比實際存儲空間多一個字節(jié)。相應的,本發(fā)明公開一種基于FPGA實現(xiàn)的解巻積交織方法,包括步驟a、將解巻積交織器的不同分支的輸入數(shù)椐分別存儲到兩個雙端口RAM中;b、控制器控制讀寫地址發(fā)生器產生讀數(shù)據或寫數(shù)據的目標分支在對應雙端口RAM中的存儲空間的地址;c、控制器控制將數(shù)據寫入目標地址,或從目標地址讀出數(shù)據。較優(yōu)的,所述步驟b包括如下步驟bl、控制器產生控制信號,選擇其中一個讀寫地址發(fā)生器;b2、讀寫地址發(fā)生器根據讀數(shù)據或寫數(shù)據的目標分支的基地址,加上偏移地址,輸出讀數(shù)據或寫數(shù)據的目標地址。較優(yōu)的,所述偏移地址采用循環(huán)計數(shù)器進行循環(huán)計數(shù),當控制器控制的對象從一個分支切換至另一個分支時,該分支對應的循環(huán)計數(shù)器加1。較優(yōu)的,所述兩個雙端口RAM的其中一個為存儲容量是1024*8字節(jié)的雙端口RAM,另一個為存儲容量是256*8字節(jié)的雙端口RAM。較優(yōu)的,所述雙端口RAM中,每個分支占有的存儲空間,比實際存儲空間多一個字節(jié)。與現(xiàn)有技術相比,本發(fā)明具有以下有益效果1、本發(fā)明采用多個不同容量的雙端口RAM,不但減少寄存器的面積,還提高存儲空間的使用效率(例如,采用2個不同容量的雙端口RAM實現(xiàn)的解巻積交織器,其存儲空間的使用效率達到88.4%);2、本發(fā)明提出解巻積交織器中的讀寫地址發(fā)生方法,極大地提高了解巻積交織器的工作速度。本發(fā)明的解巻積交織器尤其適合應用于DVB等通信系統(tǒng),具有較高的應用價值。圖l是現(xiàn)有的一種解巻積交織器的原理示意圖。圖2是現(xiàn)有釆用FIFO實現(xiàn)解巻積交織器的一種結構示意圖。圖3是現(xiàn)有基于一個雙端口RAM實現(xiàn)解巻積交織器的結構示意圖。圖4是本發(fā)明基于FPGA實現(xiàn)的解巻積交織器的一個具體實施例的結構示意圖。圖5是本發(fā)明的解巻積交織器中,讀寫地址發(fā)生器產生各個分支讀寫地址的實現(xiàn)原理示意圖。具體實施方式請參考圖4所示,為本發(fā)明基于FPGA實現(xiàn)的解巻積交織器的一個具體實施例的結構示意圖。本實施例為模擬實現(xiàn)圖l所示的解巻積交織器。本實施例的解巻積交織器包括兩個讀寫地址發(fā)生器11和12、分別為1024*8與256*8的雙端口RAM21和22、以及控制器30。由于FPGA只支持二的次冪深度的存儲記憶塊(寄存器),雖然交織器只需1122*8bits,但是必需要用二的次冪的寄存器去實現(xiàn)。因此,本實施例的解巻積交織器中1024+8bits的雙端口RAM21為模擬圖l所示的分支0至6的移位j存器;256,8bits的雙端口RAM22為模擬圖l所示的分支7至ll的移位寄存器。而輸出端(Out)的部分則有一個開關作交換的動作,在兩個雙端口RAM21和22之間切換分支0到6不需要開關交換,只有在分支7的時候開關才會交換一次,換句話說,如采用FIFO的技術方式,就必須進行開關交換ll次,所以本發(fā)明相比現(xiàn)有技術而言,具有省電的優(yōu)點。并從上述分配存儲空間可知,兩個RAM的總存儲空間為1280*8bits,而實際利用到的空間為1133*8bits,存儲空間的使用效率達到88.4%。同時,對比圖l所示結構,對于解巻積交織器,從0到11分支的存儲大小分別為187*8、170*8、153*8、136*8、119*8、102*8、85*8、68*8、51*8、34*8、17*8、0比特(Bit)。而如圖4所示的本實施例的解巻積交織器,可把圖1中的分支0至11的存儲空間分配到兩個雙端口RAM21和22。并且,根據分支0至6的大小,把102W8雙端口RAM21劃成不同的存儲空間第0個分支的起止地址為0-187、第l個分支的起止地址為188-358、以此類推,第2、3、4、5、6分支的起止地址分別為359-512、513-649、650-769、770-872和873-958。同樣,根據分支7到11的大小,把25648雙端口RAM22劃成不同的存儲空間第7個分支的起止地址為0-68、第8個分支的起止地址為69-120、第9個分支的起止地址為121-155、第10個分支的起止地址為156-173、第ll個分支的起止地址為174-174。需要說明的是,至于每個存儲空間多占用一個地址,目的是為了滿足讀數(shù)據和寫數(shù)據控制的要求,方便控制讀寫數(shù)據,提高讀寫速度。另外,所述控制器30在具體實現(xiàn)中,可由一個狀態(tài)4幾控制,從狀態(tài)0到狀態(tài)ll的切換,每個狀態(tài)代表一個分支,即控制在分支l至ll之間的切換。在每個時鐘周期且輸入數(shù)據有效時,從一個狀態(tài)切換到下一個狀態(tài),默認初始狀態(tài)為idle。所述控制器30具有2個輸出端,其中一個輸出信號用于控制兩個讀寫地址發(fā)生器11和12的工作,另一個輸出信號則是選擇信號,用于選擇兩個雙端口RAM21和22中的其中之一。當處于狀態(tài)0到狀態(tài)6時,所述控制器30則輸出控制信號,控制使所述讀寫地址發(fā)生器ll工作,同時輸出選擇信號,選擇102^8雙端口RAM21作為數(shù)據讀寫模塊;當處于狀態(tài)7到狀態(tài)11時,所述控制器30則使讀寫地址發(fā)生器12工作,同時選擇256*8雙端口RAM22作為數(shù)據讀寫模塊。其中,讀寫地址發(fā)生器11和12中均包括寫地址發(fā)生模塊和讀地址發(fā)生模塊,圖中未示;且寫地址發(fā)生和讀地址發(fā)生原理是一致的。下面介紹寫地址產生原理。寫地址由分支基地址和偏移地址構成,即寫地址=分支基地址+偏移地址。分支基地址即是前面劃分存儲空間中提到的各分支的開始地址;偏移地址可由不同計數(shù)范圍的循環(huán)計數(shù)器來產生。旲似的,讀地址由分支基地址和偏移地址構成,即讀地址=分支基地址+偏移地址。請結合下表l所示,為解巻積交織器各分支的起止地址、地址所屬的雙端口RAM、基地址及計數(shù)器范圍。表l<table>tableseeoriginaldocumentpage8</column></row><table>通過所述控制器30的狀態(tài)機所處的狀態(tài)來決定地址發(fā)生器輸出哪個分支的地址(分支基地址+偏移地址),同時使所在分支的偏移地址循環(huán)計數(shù)器加1。例如,當?shù)?次切換到狀態(tài)1時,分支基地址為188,寫偏移地址循環(huán)計數(shù)器的值為0,故輸出的寫地址為188,同時寫偏移地址循環(huán)計數(shù)器的值自動加1;當?shù)?次切換到狀態(tài)1時,輸出的寫地址為188+1,同時寫偏移地址循環(huán)計數(shù)器的值自動加1得2;以此類推。在產生寫地址的同時,讀地址也是分支基地址和讀偏移地址構成,所不同是,讀偏移地址循環(huán)計數(shù)器的起始值為1。例如,當?shù)?次切換到狀態(tài)1時,分支基地址為188,讀偏移地址循環(huán)計數(shù)器的值為1,故輸出的寫地址為189,同時讀偏移地址循環(huán)計數(shù)器的值自動加1得到2。也就是說,同時產生的寫地址和讀地址的區(qū)別是讀偏移地址循環(huán)計數(shù)器的值總是比寫偏移地址循環(huán)計數(shù)器的值多1。例如,同一時刻分支2寫偏移地址計數(shù)器的值為10,則讀偏移地址計數(shù)器的值為11;需要注意的是分支2的計數(shù)范圍0-170,若分支2寫偏移地址計數(shù)器的值為170,則讀偏移地址計數(shù)器的值為0。這也是前述提到的每個存儲區(qū)間的大小比實際多一個的根本原因。采用上述產生地址的方法后,讀寫地址的控制就比較簡單,可以極大提高解巻積交織器的工作速度。同時,請參見圖5所示,為本發(fā)明的解巻積交織器中,所述讀寫地址發(fā)生器11如何產生各個分支讀寫地址的實現(xiàn)原理示意圖。承上所述,當所述控制器30的狀態(tài)機處于狀態(tài)0到狀態(tài)6時,則讀寫地址發(fā)生器ll工作。讀寫地址發(fā)生器ll根據不同時刻所處的狀態(tài),啟動相應的讀、寫偏移地址循環(huán)計數(shù)器以及產生相應的分支基地址,并把讀寫計數(shù)器的值和分支基地址相加,即得到該時刻的讀寫地址。當?shù)?次切換到狀態(tài)0時,分支基地址為0,寫偏移地址循環(huán)計數(shù)器的值為0,讀偏移地址循環(huán)計數(shù)器的值為1,則此刻產生的寫地址為0+0=0、讀地址為0+1=1;輸入的有效數(shù)據才艮據產生的寫地址存儲到1024*8的雙端口RAM21相應的空間,同時由產生的讀地址從1024*8的雙端口RAM21中相應空間讀出數(shù)據,并使讀寫偏移地址計^t器分別加1。當?shù)?次切換到狀態(tài)1時,分支基地址為188,寫偏移地址循環(huán)計數(shù)器的值為0,讀偏移地址循環(huán)計數(shù)器的值為1,則此刻產生的寫地址為188+0=188,讀地址為188+1=189;輸入的有效數(shù)據根據產生的寫地址存儲到1024*8的雙端口RAM21相應的空間,同時由產生的讀地址從1024*8的雙端口RAM21中相應空間讀出數(shù)據,并使讀寫偏移地址計數(shù)器分別加1。依次類推,當?shù)?次切換到狀態(tài)2~6時,對應的分支基地址如前述表1所示,寫偏移地址循環(huán)計數(shù)器的值均為0,讀偏移地址循環(huán)計數(shù)器的值均為1,由此產生相應的讀寫地址。當?shù)趎次切換到狀態(tài)O時,分支基地址為O,寫偏移地址循環(huán)計數(shù)器的值為n-l,讀偏移地址循環(huán)計數(shù)器的值為n,則此刻產生的寫地址為n-l,讀地址為n;輸入的有效數(shù)據根據產生的寫地址存儲到1024*8的雙端口RAM21相應的空間,同時由產生的讀地址從雙端口RAM21相應的空間讀出數(shù)據,并使讀寫偏移地址計數(shù)器分別加1。當?shù)趎次切換到狀態(tài)1時,分支基地址為188,寫偏移地址循環(huán)計數(shù)器的值為n-l,讀偏移地址循環(huán)計數(shù)器的值為n,則此刻產生的寫地址為188+n-l=187+n,讀地址為188+n;輸入的有效數(shù)據根據產生的寫地址存儲到雙端口RAM21相應的空間,同時由產生的讀地址從雙端口RAM21相應的空間讀出數(shù)據,并使讀寫偏移地址計數(shù)器分別加1。依次類推。需要注意的是不同分支的讀、寫偏移地址循環(huán)計數(shù)器的計數(shù)范圍有所不同(具體數(shù)值范圍見表l)。循環(huán)計數(shù)器的工作原理是假設其計數(shù)范圍為n,每次使能循環(huán)計數(shù)器,則計數(shù)值加1;當計數(shù)值達到n時,計數(shù)器下一次的值將回到0再開始逐次加1。當所述控制器30的狀態(tài)機處于狀態(tài)7到狀態(tài)11時,則發(fā)出控制信號,使讀寫地址發(fā)生器22工作,同時選擇256*8的雙端口RAM22作數(shù)據讀寫塊。其中,讀寫地址發(fā)生器22的實現(xiàn)類似于讀寫地址發(fā)生器21,不再重復描述。綜上,本發(fā)明采用兩個不同容量的雙端口RAM,不但減少寄存器的面積,還提高存儲空間的使用效率(采用2個不同容量的雙端口RAM實現(xiàn)的解巻積交織器,其存儲空間的使用效率達到88.4°/0);同時,本發(fā)明提出解巻積交織器中的讀寫地址發(fā)生方法,極大地提高了解巻積交織器的工作速度。本發(fā)明的解巻積交織器尤其適合應用于DVB等通信系統(tǒng),具有較高的應用價值。權利要求1.一種基于FPGA實現(xiàn)的解卷積交織器,其特征在于,包括兩個存儲深度為二的次冪的雙端口RAM,每個雙端口RAM分別用于多個連續(xù)分支的移位寄存器;兩個讀寫地址發(fā)生器,每個讀寫地址發(fā)生器分別與一個雙端口RAM連接;控制器,分別與所述雙端口RAM以及所述讀寫地址發(fā)生器連接,輸出一個選擇控制信號,選擇控制其中一個讀寫地址發(fā)生器產生讀地址和寫地址輸出;且該控制器輸出一個選擇信號,選擇對應于所述讀、寫地址所屬的雙端口RAM,將輸入的數(shù)據寫入該雙端口RAM中的所述寫地址對應的存儲空間,或從該雙端口RAM中的所述讀地址對應的存儲空間讀取數(shù)據并輸出。2、根據權利要求1所述的基于FPGA實現(xiàn)的解巻積交織器,其特征在于,所述讀寫地址發(fā)生器包括寫地址發(fā)生模塊和讀地址發(fā)生模塊;所述寫地址發(fā)生模塊根據輸入數(shù)據需要寫入的分支基地址,加上偏移地址,輸出寫入數(shù)據的目標地址;所述讀地址發(fā)生;f莫塊根據讀出數(shù)據所在的分支基地址,加上偏移地址,輸出讀出數(shù)據的目標地址。3、根據權利要求1所述的基于FPGA實現(xiàn)的解巻積交織器,其特征在于,所述控制器包括控制不同分支之間進行切換的狀態(tài)機,當狀態(tài)機控制從一個分支切換至另一個分支時,所述控制器控制選擇相應的雙端口RAM進行數(shù)據讀或寫的操作。4、根據權利要求1所述的基于FPGA實現(xiàn)的解巻積交織器,其特征在于,所述兩個雙端口RAM的其中一個為存儲容量是1024*8字節(jié)的雙端口RAM,另一個為存儲容量是256*8字節(jié)的雙端口RAM。5、根據權利要求1至4任意一項所述的基于FPGA實現(xiàn)的解巻積交織器,其特征在于,所述雙端口RAM中,每個分支占有的存儲空間,比實際存儲空間多一個字節(jié)。6、一種基于FPGA實現(xiàn)的解巻積交織方法,其特征在于,包括步驟a、將解巻積交織器的不同分支的輸入數(shù)據分別存儲到兩個雙端口RAM中;b、控制器控制讀寫地址發(fā)生器產生讀數(shù)據或寫數(shù)據的目標分支在對應雙端口RAM中的存儲空間的地址;c、控制器控制將數(shù)據寫入目標地址,或從目標地址讀出數(shù)據。7、根據權利要求6所述的基于FPGA實現(xiàn)的解巻積交織方法,其特征在于,所述步驟b包括如下步驟bl、控制器產生控制信號,選擇其中一個讀寫地址發(fā)生器;b2、讀寫地址發(fā)生器根據控制信號選擇讀、寫數(shù)據的目標分支的基地址,加上偏移地址,輸出讀數(shù)據或寫數(shù)據的目標地址。8、根據權利要求7所述的基于FPGA實現(xiàn)的解巻積交織方法,其特征在于,所述偏移地址采用循環(huán)計數(shù)器進行循環(huán)計數(shù),當控制器控制的對象從一個分支切換至另一個分支時,該分支對應的循環(huán)計數(shù)器加1。9、根據權利要求6所述的基于FPGA實現(xiàn)的解巻積交織方法,其特征在于,所述兩個雙端口RAM的其中一個為存儲容量是1024*8字節(jié)的雙端口RAM,另一個為存儲容量是256*8字節(jié)的雙端口RAM。10、根據權利要求6至9任意一項所述的基于FPGA實現(xiàn)的解巻積交織方法,其特征在于,所述雙端口RAM中,每個分支占有的存儲空間,比實際存儲空間多一個字節(jié)。全文摘要本發(fā)明公開一種基于FPGA實現(xiàn)的解卷積交織器及解卷積交織方法,該解卷積交織器包括兩個存儲深度為二的次冪的雙端口RAM,每個雙端口RAM分別用于多個連續(xù)分支的移位寄存器;兩個讀寫地址發(fā)生器,每個讀寫地址發(fā)生器分別與一個雙端口RAM連接;控制器,分別與所述雙端口RAM以及所述讀寫地址發(fā)生器連接,輸出一個選擇控制信號,選擇控制其中一個讀寫地址發(fā)生器產生讀地址和寫地址輸出;且該控制器輸出一個選擇信號,選擇對應于所述讀、寫地址所屬的雙端口RAM,將輸入的數(shù)據寫入該雙端口RAM中的所述寫地址對應的存儲空間,或從該雙端口RAM中的所述讀地址對應的存儲空間讀取數(shù)據并輸出。本發(fā)明的解卷積交織器具有存儲空間的使用效率高,工作速度快的優(yōu)點。文檔編號H03M13/27GK101257313SQ20071007400公開日2008年9月3日申請日期2007年4月10日優(yōu)先權日2007年4月10日發(fā)明者郭樹印申請人:深圳市同洲電子股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
图片| 中山市| 古田县| 利川市| 博客| 竹山县| 积石山| 芦山县| 大理市| 东莞市| 甘肃省| 金乡县| 桃园县| 田东县| 阿合奇县| 榆树市| 浦东新区| 大冶市| 蛟河市| 淮南市| 万州区| 长丰县| 庆安县| 海门市| 十堰市| 广东省| 阳曲县| 阿拉善左旗| 永靖县| 堆龙德庆县| 阿瓦提县| 揭东县| 即墨市| 屯留县| 怀集县| 江门市| 潼南县| 徐闻县| 广州市| 古蔺县| 冕宁县|