交織器解交織器設(shè)計(jì)_第1頁
交織器解交織器設(shè)計(jì)_第2頁
交織器解交織器設(shè)計(jì)_第3頁
交織器解交織器設(shè)計(jì)_第4頁
交織器解交織器設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、交織器/解交織器設(shè)計(jì)1卷積交織和解交織的原理交織過程可算作一個(gè)編碼過程,他把經(jīng)過糾錯(cuò)編碼的數(shù)據(jù)進(jìn)行一定的排列組合,提高原有糾錯(cuò)編碼的糾突發(fā)錯(cuò)誤的能力。數(shù)字通信中一般采取的同步交織有2種:塊交織也叫矩陣行列轉(zhuǎn)置法??梢员硎鰹橐粋€(gè)二維存儲(chǔ)器陣列(N X B )。交織過程是數(shù)據(jù)先按行寫入,再按列讀出;解交織過程則相反,是數(shù)據(jù)先按列寫入,再按行讀出。塊交織結(jié)構(gòu)簡單,但數(shù)據(jù)延時(shí)時(shí)間長而且所需的存儲(chǔ)器比較大。卷積交織交織器的輸入端的輸入符號數(shù)據(jù)按順序分別進(jìn)入B條支路延時(shí)器,每一路延時(shí)不同的符號 周期。第一路無延時(shí),第二路延時(shí)M個(gè)符號周期,第三路延時(shí)2M個(gè)符號周期,第B路延時(shí)(B -1 )M個(gè)符號周期。交織

2、器的輸出端按輸入端的工作節(jié)拍分別同步輸出對應(yīng)支路經(jīng)延時(shí)的 數(shù)據(jù)。卷積交織每條支路符號數(shù)據(jù)的延時(shí)節(jié)拍為di = ( i - 1)M B,i = 1,2,,B。解交織器 的延時(shí)數(shù)與交織器相反。在仔細(xì)對比塊交織和卷積交織兩種方法之后,考慮到縮短延時(shí)和減小器件體積,小組決定采 用卷積交織的方法來設(shè)計(jì)。然而實(shí)現(xiàn)卷積交織的延時(shí)方法有多種,一是采用移位寄存器法, 直接利用FIFO實(shí)現(xiàn)每條支路的延時(shí),這種方法實(shí)現(xiàn)簡單,但是當(dāng)B與M值較大時(shí),需 要消耗大量的寄存器(圖2所示);二是利用RAM來實(shí)現(xiàn)移位寄存器的功能,通過控制讀/ 寫地址來實(shí)現(xiàn)每條支路延遲。第一種方法,因?yàn)槠湓O(shè)計(jì)思路和做法都相對簡單,但是當(dāng)需要較大

3、的延時(shí)數(shù)時(shí),移位寄存器 變得很大,占用大量的編譯時(shí)間和芯片空間,實(shí)際中并不可取,最終采用了RAM來實(shí)現(xiàn)移 位,合理地設(shè)計(jì)讀寫地址按規(guī)律變化,即可實(shí)現(xiàn)所要的延時(shí)。下面將闡述設(shè)計(jì)細(xì)節(jié)D. 18. A 12 a 4567 8 S 2, FIFO移應(yīng)繇飜作iffi寫地址A讀地址寫地址A讀地址圖3. RAM模仿FIFO功能的操作過程設(shè)計(jì)要求,交織深度B=12,M=17,即有12條數(shù)據(jù)通路。采用RAM來實(shí)現(xiàn)輸入數(shù)據(jù)的時(shí)延, 按照一定的讀寫地址規(guī)律同時(shí)讀寫RAM中。交織器各通道的寫地址如圖4所示,讀地址 則在寫地址的數(shù)值上加1,通過計(jì)算可以知道,第0通道無延時(shí);第1通道延時(shí)17*1個(gè) 時(shí)鐘周期;第2通道延時(shí)

4、17*2個(gè)時(shí)鐘周期依此類推,第11通道延時(shí)17*11個(gè)時(shí)鐘 周期??偣菜璐鎯?chǔ)單元數(shù)為1+18+.+188=1134,相應(yīng)的要用到地址總線為11b。也就是 說要用到2k的RAM。輸入數(shù)據(jù)卷積交織與去交織器實(shí)現(xiàn)交織器的設(shè)計(jì):交織器由以上四個(gè)模塊構(gòu)成:AddrGen (交織器讀寫地址),RAM,WRcon (產(chǎn)生讀寫 控制信號),DataLock (數(shù)據(jù)鎖存),工作過程是clk 一個(gè)上升沿到來時(shí),AddrGen產(chǎn)生了讀 寫地址AddrW和AddrR,與此同時(shí)WRcon模塊WE=0,RE= 1,產(chǎn)生寫入控制信號,RAM 便在AddrW地址單元存儲(chǔ)發(fā)送過來的數(shù)據(jù)Dataln。接著clk下降沿到來,WR

5、con模塊 WE=1 ,REO產(chǎn)生讀取控制信號,RAM便讀取AddrR地址單元內(nèi)的數(shù)據(jù),DataLock 模塊進(jìn)行數(shù)據(jù)鎖存。接著clk又是上升沿到來,如此循環(huán)。交織器模塊的代碼:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity InterLeaver isport(clk:in std_logic;Dataln:in std_logic_vector(7 downto 0);DataOut:out std_logic_vector(7 downto 0);end entity;arch

6、itecture stru of InterLeaver iscomponent AddrGen isport(clk:in std_logic;AddrR:out integer range 0 to 2047;AddrW:out integer range 0 to 2047);end component;component RAM isport(AddrR:in integer range 0 to 2047;AddrW:in integer range 0 to 2047;Dataln:in std_logic_vector(7 downto 0); DataOut:out std_l

7、ogic_vector(7 downto 0); CS,RE,WE:in std_logic);end component;component WRcon isport(clk:in std_logic;WE,R E:out std_logic);end component;component DataLock isport(Data:in std_logic_vector(7 downto 0); DataLock:out std_logic_vector(7 downto 0); RE:in std_logic);end component;signal adr,adw:integer r

8、ange 0 to 2047;signal we,re:std_logic;signal d:std_logic_vector(7 downto 0);beginu0:AddrGen port map(clk,adr,adw); u1:WRcon port map(clk,we,re);u2:RAM port map(adr,adw,DataIn,d,0,re,we); u3:DataLock port map(d,DataOut,re);end stru;交織器讀寫地址模塊:RAM讀寫地址產(chǎn)生的一種辦法就是將讀寫地址映射到ROM里,另一種辦法就是通過電 路計(jì)算得到讀寫地址。這里采用后一方法設(shè)

9、計(jì)交織器/解交織器讀寫地址產(chǎn)生模塊,但其中 應(yīng)用了 ROM存儲(chǔ)讀寫地址的思想。KOidit0衛(wèi)丄血1=aW 1MXK 40175luMOI&1I14訊&21I mKlOiiO沖WJ ILB|圖氧交織器讀寫捷址Count 1|dircclpilh |-couml AL coun t 12 小cicreai讀寫地址產(chǎn)生的邏輯框圖交織器讀寫地址VHDL代碼:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity AddrGen is port(clk:in std_logic;AddrR:out

10、integer range 0 to 2047; AddrW:out integer range 0 to 2047 );end AddrGen;architecture behav of AddrGen issignal count:integer range 0 to 11:=0; beginC:process(clk)variable c:integer range 0 to 11:=0; beginif(rising_edge(clk) then c:=(c+1)mod 12;end if;count AddrW=a0;AddrRb1:=(b1+1)mod 18;if(b1=0) th

11、enAddrW=c1;AddrR=a1;elseAddrR=a1+b1;AddrWb2:=(b2+1)mod 35;if(b2=0) thenAddrW=c2;AddrR=a2;elseAddrR=a2+b2;AddrWb3:=(b3+1)mod 52;if(b3=0) thenAddrW=c3;AddrR=a3;elseAddrR=a3+b3;AddrWb4:=(b4+1)mod 69;if(b4=0) thenAddrW=c4;AddrR=a4;elseAddrR=a4+b4;AddrWb5:=(b5+1)mod 86;if(b5=0) thenAddrW=c5;AddrR=a5;else

12、AddrR=a5+b5;AddrW b6:=(b6+1)mod 103; if(b6=0) then AddrW=c6;AddrR=a6;elseAddrR=a6+b6;AddrW b7:=(b7+1)mod 120; if(b7=0) then AddrW=c7;AddrR=a7;elseAddrR=a7+b7;AddrW b8:=(b8+1)mod 137; if(b8=0) then AddrW=c8;AddrR=a8;elseAddrR=a8+b8;AddrW b9:=(b9+1)mod 154; if(b9=0) then AddrW=c9;AddrR=a9;elseAddrR=a9

13、+b9;AddrW b10:=(b10+1)mod 171; if(b10=0) thenAddrW=c10;AddrR=a10;elseAddrR=a10+b10;AddrW b11:=(b11+1)mod 188;if(b11=0) thenAddrW=c11; AddrR=a11;elseAddrR=a11+b11;AddrW=a11+b11-1;end if;end case;end if;end process;end behav;產(chǎn)生讀寫控制信號模塊:有了讀寫地址,還需要有讀寫控制信號。在一個(gè)時(shí)鐘周期內(nèi),令clk= 1時(shí),將待發(fā)送數(shù) 據(jù)寫入RAM地址為AddrW的單元,clk= O

14、時(shí),讀取RAM地址為AddrR的單元里的 數(shù)據(jù)并發(fā)送。VHDL 代碼: library ieee;use ieee.std_logic_1164.all;entity WRCon isport(clk:in std_logic;WE,RE:out std_logic);end entity;architecture behav of WRcon isbegin process(clk)begin if(clkevent and clk=1)thenWE=O;RE=1;elseWE=1;RE00000000);beginif(CS=0) thenif(RE=0) then DataOut=mem

15、(AddrR); elsif(WE=0) then mem(AddrW):=DataIn; end if;end if;end process;end behav;數(shù)據(jù)鎖存模塊:由于數(shù)據(jù)讀取控制信號RE只占半個(gè)時(shí)鐘周期,故需要將輸出數(shù)據(jù)進(jìn)行鎖存,保證輸出信號 穩(wěn)定。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity DataLock isport(Data:in std_logic_vector(7 downto 0);DataLock:out std_logic_vector(7 do

16、wnto 0);RE:in std_logic);end DataLock;architecture behav of DataLock isbeginprocess(Data,RE)beginif(RE=0) then DataLock=Data;end if;end process;end behav;解交織器解交織器也又四個(gè)模塊組成:DeAddrGen,WRcon,RAM,DataLock。DeAddrGen模塊根據(jù)圖5 產(chǎn)生讀寫地址。接著便要驗(yàn)證從解交織器得到的數(shù)據(jù)是否與發(fā)送數(shù)據(jù) DataIn 相同。經(jīng)過分 析發(fā)現(xiàn),交織器輸出的第一個(gè)數(shù)據(jù)是無效數(shù)據(jù)(RAM還沒有輸出,是DataLock

17、初始輸出信 號),故解交織器應(yīng)該比交織器延遲一個(gè)時(shí)鐘。解交織器模塊代碼:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity DeInterLeaver isport(clk:in std_logic;DataIn:in std_logic_vector(7 downto 0);DataOut:out std_logic_vector(7 downto 0);end entity;architecture stru of DeInterLeaver iscomponent DeAddrGe

18、n isport(clk:in std_logic;AddrR:out integer range 0 to 2047;AddrW:out integer range 0 to 2047);end component;component RAM isport(AddrR:in integer range 0 to 2047;AddrW:in integer range 0 to 2047;DataIn:in std_logic_vector(7 downto 0);DataOut:out std_logic_vector(7 downto 0);CS,RE,WE:in std_logic);e

19、nd component;component WRcon isport(clk:in std_logic;WE,RE:out std_logic);end component;component DataLock isport(Data:in std_logic_vector(7 downto 0);DataLock:out std_logic_vector(7 downto 0);RE:in std_logic);end component;signal adr,adw:integer range 0 to 2047;signal we,re:std_logic;signal d:std_l

20、ogic_vector(7 downto 0);beginu0:DeAddrGen port map(clk,adr,adw); u1:WRcon port map(clk,we,re);u2:RAM port map(adr,adw,DataIn,d,0,re,we); u3:DataLock port map(d,DataOut,re);end stru;解交織器讀寫地址 VHDL 代碼:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity DeAddrGen isport(clk:i

21、n std_logic;AddrR:out integer range 0 to 2047;AddrW:out integer range 0 to 2047 );end DeAddrGen;architecture behav of DeAddrGen is signal count:integer range 0 to 11:=0;beginC:process(clk)variable c:integer range 0 to 11:=0; beginif(rising_edge(clk) then c:=(c+1)mod 12;end if;count b0:=(b0+1)mod 188

22、;if(b0=0) thenAddrW=c0;AddrR=a0;elseAddrR=a0+b0;AddrW b1:=(b1+1)mod 171;if(b1=0) thenAddrW=c1;AddrR=a1;elseAddrR=a1+b1;AddrW b2:=(b2+1)mod 154; if(b2=0) then AddrW=c2;AddrR=a2;else AddrR=a2+b2; AddrW b3:=(b3+1)mod 137; if(b3=0) then AddrW=c3;AddrR=a3;elseAddrR=a3+b3; AddrW b4:=(b4+1)mod 120; if(b4=0) then AddrW=c4;AddrR=a4;elseAddrR=a4+b4; AddrW b5:=(b5+1)mod 103; if(b5=0) then AddrW=c5;AddrR=a5;else AddrR=a5+b5; AddrW b6:=(b6+1)mod 86; if(b6=0) then AddrW=c6; AddrR=a6;elseAddrR=a6+b6;AddrW b7:=(b7+1)mod 69;if(b7=0) thenAddrW=c7;AddrR=a7;elseAddrR=a7+b7;AddrW b8:=(b8+1)mod 52;if(b8=0) t

溫馨提示

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

評論

0/150

提交評論