freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

隨機序列在fpga上的應(yīng)用畢業(yè)論文-資料下載頁

2025-06-22 19:54本頁面
  

【正文】 路來產(chǎn)生所要求的m 序列。本文將用FPGA 來產(chǎn)生以 為本原多項式的m 序列。本方法采用Verilog 進行編程實現(xiàn),程序中設(shè)置輸入:clk, ena;輸出端口reset,ranseq_out。編譯成功后進行相應(yīng)的功能仿真,仿真結(jié)果如下:當reset為低電平時,移位寄存器復(fù)位為1010,則ranseq_out 為0;當ena=1,reset=1 時, 產(chǎn)生m 序列ranseq_out={1,1,0,0,1,0,0,0,1,1,1,1,0,1,0,1,1,0,0,1,0,0,0……},可以看到當滿足本原多項式 時,產(chǎn)生的m 序列的周期為15,實驗結(jié)果正確。通信中進行基帶信號傳輸?shù)娜秉c是其頻譜會因數(shù)據(jù)出現(xiàn)連“1”和連“0”而包含大的低頻成分,不適應(yīng)信道的傳輸特性。解決辦法之一是采用擾碼技術(shù),使信號受到隨機化處理,變?yōu)閭坞S機序列,又稱為“數(shù)據(jù)隨機化”和“能量擴散”處理?,F(xiàn)在常用的擾碼技術(shù)之一是利用偽隨機序列來實現(xiàn),并且這種技術(shù)也是數(shù)字信號高保密性傳輸?shù)闹匾侄?。擾碼雖然擾亂了數(shù)字信息的原有形式,但是這種擾亂是認為的,有規(guī)律的,因為也是可以解除的。一般將信源產(chǎn)生的二進制數(shù)字信息和一個周期很長的偽隨即序列模2 相加,就可將原信息變成不可理解的另一序列。這種信號在信道中傳輸自然具有高度保密性。在接收端將接收信號再加上(模2 和)同樣的偽隨機序列,就恢復(fù)為原來發(fā)送的信息。實現(xiàn)加擾和解擾,需要產(chǎn)生偽隨機二進制序列(m 序列)再與輸入數(shù)據(jù)逐個比特作運算。m 序列與數(shù)據(jù)碼流進行模2 加運算后,數(shù)據(jù)流中的“1”和“0”的連續(xù)游程都很短,且出現(xiàn)的概率基本相同。擾碼雖然“擾亂”了原有數(shù)據(jù)的本來規(guī)律,但因為是人為的“擾亂”,在接收端很容易去加擾,恢復(fù)成原數(shù)據(jù)流。擾碼和解擾所用的m 序列是相同的。設(shè)信源發(fā)出的序列為A:11001001,用于擾碼的m 序列為10110100。A 與m 序列模2 加運算得到的序列為B。假設(shè)在信道實現(xiàn)無錯傳輸,序列B 到達接收端再與m 序列進行模2 加運算,即可恢復(fù)原信息A。m 序列是目前應(yīng)用廣泛的一種偽隨機序列, 廣泛應(yīng)用于通信領(lǐng)域的多個方面。本文詳細地介紹了m 序列及其產(chǎn)生方法, 并分析了其在擾碼和解碼中的應(yīng)用,以仿真的方式證明了其正確性及其應(yīng)用價值。 5 隨機序列在FPGA上實現(xiàn) FPGA基礎(chǔ)實驗——按鍵消抖控制LED 亮滅 讓實驗板上的4個開關(guān)控制4個LED的亮滅。通過這個實驗,熟悉并掌握采用計數(shù)與判斷的方式來實現(xiàn)分頻的VerilogHDL的編程方法以及QuartusII軟件的使用方法和開發(fā)流程, 實現(xiàn)按鍵控制LED 亮滅及按鍵消抖方法。 硬件實驗環(huán)境為學校實驗室Altera cyclone ii EP2C35F72C6N DE2開發(fā)板。 當獨立按鍵key1 按下后,相應(yīng)的LED 被點亮;再次按下后,LED 做翻轉(zhuǎn)輸出,即LED 熄滅,從而實現(xiàn)按鍵控制LED 亮滅。本實驗對按鍵進行了消抖處理作為機械開關(guān)的按鍵,操作時,機械觸點的彈性及電壓突跳等原因,在觸點閉合或開啟的瞬間會出現(xiàn)電壓抖動,實際應(yīng)用中如果不進行處理將會造成誤觸發(fā)。按鍵去抖動的關(guān)鍵在于提取穩(wěn)定的低電平狀態(tài),濾除前沿、后沿抖動毛刺。按鍵消抖處理一般有硬件和軟件兩種方法。軟件消抖是檢測到有觸發(fā)后,延時一段時間后再檢測觸發(fā)狀態(tài),如果與之前檢測到的狀態(tài)相同,則認為有按鍵按下;如果沒有則認為是誤觸發(fā)。硬件就是加去抖電路。module led (clk,rst_n,key,led)。input clk。input rst_n。input [3:0]key。output [3:0]led。reg [3:0]led。reg [3:0]key_r1。reg [3:0]key_r2。reg [3:0]key_r3。always@(posedge clk or negedge rst_n)begin if(!rst_n) key_r1=0。 else key_r1=key。endalways@(posedge clk or negedge rst_n)begin if(!rst_n) key_r2=0。 else key_r2=key_r1。endalways@(posedge clk or negedge rst_n)begin if(!rst_n) key_r3=0。 else key_r3=key_r2。endwire led0_en = key_r2[0] amp。 ~key_r3[0]。wire led1_en = key_r2[1] amp。 ~key_r3[1]。wire led2_en = key_r2[2] amp。 ~key_r3[2]。wire led3_en = key_r2[3] amp。 ~key_r3[3]。always@(posedge clk or negedge rst_n)begin if(!rst_n) led=0。 else if (led0_en) led[0]=~led。 else if (led1_en) led[1]=~led[1]。 else if (led2_en) led[2]=~led[2]。 else if (led3_en) led[3]=~led[3]。 end endmodule FPGA開發(fā)本上的4個按鍵分別控制4個LED燈,當按下按鍵是對應(yīng)的LED燈點亮,再次按下按鍵對應(yīng)的led熄滅。 FPGA產(chǎn)生基于LFSR的偽隨機數(shù)實驗通過一定的算法對事先選定的隨機種子(seed)做一定的運算可以得到一組人工生成的周期序列,在這組序列中以相同的概率選取其中一個數(shù)字,該數(shù)字稱作偽隨機數(shù),由于所選數(shù)字并不具有完全的隨機性,但是從實用的角度而言,其隨機程度已足夠了。這里的“偽”的含義是,由于該隨機數(shù)是按照一定算法模擬產(chǎn)生的,其結(jié)果是確定的,是可見的,因此并不是真正的隨機數(shù)。偽隨機數(shù)的選擇是從隨機種子開始的,所以為了保證每次得到的偽隨機數(shù)都足夠地“隨機”,隨機種子的選擇就顯得非常重要,如果隨機種子一樣,那么同一個隨機數(shù)發(fā)生器產(chǎn)生的隨機數(shù)也會一樣。產(chǎn)生偽隨機數(shù)的方法最常見的是利用一種線性反饋移位寄存器(LFSR),它是由n個D觸發(fā)器和若干個異或門組成的,: LFSR產(chǎn)生隨機數(shù)原理圖其中,gn為反饋系數(shù),取值只能為0或1,取為0時表明不存在該反饋之路,取為1時表明存在該反饋之路;n個D觸發(fā)器最多可以提供狀態(tài)(不包括全0的狀態(tài)),為了保證這些狀態(tài)沒有重復(fù),gn的選擇必須滿足一定的條件。下面以n=3,g0=1,g1=1,g2=0,g3=1為例,說明LFSR的特性,具有該參數(shù)的LFSR結(jié)構(gòu)如下圖: 3個D觸發(fā)器LFSR產(chǎn)生隨機數(shù)原理圖假設(shè)在開始時,D2D1D0=111(seed),那么,當時鐘到來時,有:D2=D1_OUT=1;D1=D0_OUT^D2_OUT=0;D0=D2_OUT=1;即D2D1D0=101;同理,又一個時鐘到來時,可得D2D1D0=001. ………………畫出狀態(tài)轉(zhuǎn)移圖如下: 狀態(tài)轉(zhuǎn)移圖,正好有1=7個狀態(tài),不包括全0;如果您理解了上圖,至少可以得到三條結(jié)論:1)初始狀態(tài)是由SEED提供的;2)當反饋系數(shù)不同時,得到的狀態(tài)轉(zhuǎn)移圖也不同;必須保證gn===1,否則哪來的反饋?3)D觸發(fā)器的個數(shù)越多,產(chǎn)生的狀態(tài)就越多,也就越“隨機”;基于以上原理,下面用verilog產(chǎn)生一個n=8,反饋系數(shù)為g0g1g2g3g4g5g6g7g8=101110001的偽隨機數(shù)發(fā)生器,它共有2^8=255個狀態(tài),該LFSR的結(jié)構(gòu)如下: 8個D觸發(fā)器LFSR產(chǎn)生隨機數(shù)原理圖D0=D1_OU。 D2=D1_OUT;D3=D2_OUT。D7=D6_OUT。 D0=D7_OUTD4=D3_OUT^D7_OUT;D5=D4_OUT^D7_OUT;D6=D5_OUT^D7_OUT;D0=D7_OUT;verilog源代碼如下:/************************* 功能介紹: 按一下開關(guān),則根據(jù)給定的4位輸入seed,開始產(chǎn)生隨機數(shù),每秒鐘產(chǎn)生一個隨機數(shù),然后把隨機數(shù)的結(jié)果以二進制形式顯示在LED上。 端口列表: key: 開始按鍵,按一下則開始產(chǎn)生隨機數(shù),燈開始閃; clk: 工作時鐘; rst_: 復(fù)位信號,低電平有效; seed: 輸入的隨機數(shù)種子,可以任意分配,可以連接外部開關(guān),賦值; led: 輸出的led燈。*************************/module led(key,clk,rst_,seed,led)。parameter CNT_20US = 1000。parameter CNT_20US_W = 10。parameter CNT_1S = 50000000。parameter CNT_1S_W = 26。input key。input clk。input rst_。input [7:0] seed。output [7:0] led。reg [7:0] led。wire key_en。wire [CNT_20US_W1:0] key_t。wire led_start。wire led_load。wire [CNT_1S_W1:0] t_1s。wire led_en。wire [7:0] led_out。reg key_r1,key_r2,key_r3。reg [CNT_20US_W1:0] key_t_r。reg t_dly_r。reg [CNT_1S_W1:0] t_1s_r。reg led_load_r。reg [7:0] led_r。//檢測到按鍵的變化沿assign key_en = key_r2==0。//當按鍵被按下時,開始計時,如果計時超過20us,表明按鍵被按下,而不是抖動assign t_dly = (key_t == CNT_20US)? 1 :0。 assign key_t = key_en ? (t_dly_r ? key_t_r : key_t_r+1) : 0。assign led_start = t_dly amp。 ~t_dly_r。 //一旦按鍵被按下,則這個信號一直為一,表示開始產(chǎn)生隨機數(shù)。assign led_load = led_start | led_load_r。//開始計時,產(chǎn)生隨機數(shù),每1秒led變化一次assign t_1s = led_load ? t_1s_r+1 : 0。assign led_en = t_1s == CNT_1S。assign led_out = led_start ? seed : (led_en ? led_r : led)。//按鍵是異步信號,所以首先對按鍵信號打兩拍,消除亞穩(wěn)態(tài)。always@(posedge clk or negedge rst_)begin if(!rst_)begin key_r1 = 0。 key_r2 = 0。 key_r3 = 0。 end else begin key_r1 = key。 key_r2 = key_r1。 key_r3 = key_r2。 endendalways@(posedge clk or negedge rst_)begin if(!rst_)begin key_t_r = 0。 t_dly_r = 0。 led_load_r = 0。 end else begin t_dly_r = t_dly。 key_t_r = key_t。 led_load_r = led_load。 endendalways@(posedge clk or negedge rst_)begin if(!rst_)begin t_1s_r = 0。 end else begin t_1s_r = t_1s。 endendalways@(posedge clk or negedge rst_)begin if(!rst_)begin led_r = 0。 led = 0。 end else begin led_r[0] = led_out[7]。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1