一次輸出8bitn4m序列Simulink仿真Verilog實(shí)現(xiàn)_第1頁(yè)
一次輸出8bitn4m序列Simulink仿真Verilog實(shí)現(xiàn)_第2頁(yè)
一次輸出8bitn4m序列Simulink仿真Verilog實(shí)現(xiàn)_第3頁(yè)
一次輸出8bitn4m序列Simulink仿真Verilog實(shí)現(xiàn)_第4頁(yè)
一次輸出8bitn4m序列Simulink仿真Verilog實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1. 4階m序列生成器一開始希望通過(guò)使用8個(gè)PN序列生成器并行實(shí)現(xiàn),但是,每個(gè)生成器都不能得到后8個(gè)狀態(tài)的值。由于后面的8bit PN序列,通過(guò)一個(gè)clk不可能通過(guò)狀態(tài)轉(zhuǎn)換實(shí)現(xiàn),所以,只能通過(guò)計(jì)算得到利用Matlab計(jì)算得到后8位PN碼與初始狀態(tài)的關(guān)系,得到一個(gè)輸出生成矩陣,使用生成矩陣與初始狀態(tài)相乘,即可得到8位PN碼同時(shí),計(jì)算得到生成第8位PN碼時(shí)移位寄存器的狀態(tài),得到一個(gè)初始值生成矩陣,使用此矩陣與初始狀態(tài)相乘,即可得到生成第8位PN碼時(shí)移位寄存器的狀態(tài),從而為下一次迭代提供初始狀態(tài)。兩個(gè)矩陣在PN碼生成過(guò)程中保持不變,而初始狀態(tài)得到不斷更新,8位PN碼不斷輸出。clc; clear;n

2、 = 4; % 4 orderbit = zeros(9,n2);bit(1,:) = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1;initial = 1 0 0 0; for i = 2:9 % generate polynimial, 1 + x + x4, =x + x4, bit(i,:) = mod( bit(i-1,1:n)+bit(i-1,3*n+1:4*n), 2), bit(i-1,1:3*n);endgenmatrix = bit(2:9,3*n+1:4*n) % generate matrix remain the same for j = 1:1 m

3、seq = mod(genmatrix*initial', 2) % Update initial temp = initial; for k = 1:n initial(k) = mod( sum(bit(9,(k-1)*n+1:k*n)*temp'), 2); endend輸出生成矩陣為:genmatrix = 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0初始狀態(tài)值生成矩陣為:gm_init = 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0Verilog代碼:timescal

4、e 1ns / 1ps/ Company: / Engineer: / / Create Date: 15:24:21 05/01/2012 / Design Name: / Module Name: PNcode8bit /module PNcode8bit( clk, rst, init, PNout );/ PN code n = 4, f(x) = 1 + x + x4/ Output 8 bit per clkparameter order = 4;input clk;input rst;outputorder-1 : 0init;output 7 : 0PNout;/ Output

5、 use registerreg 7 : 0PNout = 0;regorder-1 : 0init = 0;/ Generate matrix of output, use memoryregorder-1 : 0gm_out7 : 0;/ Generate matrix of initial state, use memoryregorder-1 : 0gm_init3 : 0;integer i, j;/ Memory initialization here, generate by Matlabinitialbegin$readmemb("gm_out.txt",

6、gm_out, 7, 0);$readmemb("gm_init.txt", gm_init, 3, 0);end/always (posedge clk)if(rst = 1)beginPNout <= 8'b0;init <= 4'b1000;endelsebeginfor(i=0; i<8; i=i+1)PNouti <= (gm_outi3 & init3) (gm_outi2 & init2) (gm_outi1 & init1) (gm_outi0 & init0);for(j=0; j&l

7、t;4; j=j+1)initj <= (gm_initj0 & init0) (gm_initj1 & init1) (gm_initj2 & init2) (gm_initj3 & init3);endendmodule說(shuō)明:1. 使用readmemb實(shí)現(xiàn)存儲(chǔ)器數(shù)據(jù)的初始化,讀取二進(jìn)制內(nèi)容,因?yàn)閮蓚€(gè)生成矩陣會(huì)比較大$readmemb("gm_out.txt", gm_out, 7, 0);"gm_out.txt"為讀取的文件,gm_out為存放的存儲(chǔ)器名字,7, 0為起始地址和結(jié)束地址,最好注明地址范圍,不注明好

8、像不太確定2. 按位與、按位異或 實(shí)現(xiàn)二進(jìn)制矩陣乘法第一個(gè)for是輸出生成矩陣(8x4)與初始值(4x1)相乘,得到8bit PN碼的輸出第二個(gè)for是初始狀態(tài)值生成矩陣(4x4)與初始值(4x1)相乘,得到新的初始值gm_out.txt內(nèi)容:沒(méi)有空格00100100100010011011111101111110gm_init.txt內(nèi)容:沒(méi)有空格1101101001011110測(cè)試文件代碼:timescale 1ns / 1ps/ Company: / Engineer:/ Create Date: 16:27:38 05/01/2012/ Design Name: PNcode8bit/

9、 Module Name: E:/me/CAST/Project/FPGAcomm/PNcode8bit/PNcode8bit_tb.v/ Project Name: PNcode8bit/ /module PNcode8bit_tb;/ Inputsreg clk;reg rst;/ Outputswire 3:0 init;wire 7:0 PNout;/ Instantiate the Unit Under Test (UUT)PNcode8bit uut (.clk(clk), .rst(rst), .init(init), .PNout(PNout);initial begin/ Initialize Inputsclk = 0;rst = 1;/ Wait 100 ns for global reset to

溫馨提示

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

評(píng)論

0/150

提交評(píng)論