基于verilog的fsk調(diào)制與解調(diào)(嘔心瀝血-極度精簡)_第1頁
基于verilog的fsk調(diào)制與解調(diào)(嘔心瀝血-極度精簡)_第2頁
基于verilog的fsk調(diào)制與解調(diào)(嘔心瀝血-極度精簡)_第3頁
基于verilog的fsk調(diào)制與解調(diào)(嘔心瀝血-極度精簡)_第4頁
基于verilog的fsk調(diào)制與解調(diào)(嘔心瀝血-極度精簡)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上先上程序(verilog語言編寫)timescale 1ns/1ns / 測試程序module test;reg clk1,rst1,clk2,rst2;reg din1;wire dout1,ddout1;modulator my1(.clk(clk1),.rst(rst1),.din(din1),.dout(dout1);demodulator my2(.clk(clk2),.rst(rst2),.ddin(dout1),.ddout(ddout1);initial begin clk1=0; forever #25 clk1=clk1; endinitialbe

2、gin clk2=0; forever #10 clk2=clk2;end initial begin rst1=1; #15 rst1=0; #50 rst1=1; end initial begin rst2=1; #5 rst2=0; #25 rst2=1; end initial begin #25 din1=1; #400 din1=1; #400 din1=0; #400 din1=1; #400 din1=0; #400 din1=1; #400 din1=0; #400 din1=1; #400 din1=1; #400 din1=0; #400 din1=1; #400 di

3、n1=1; #400 din1=1; #400 din1=0; #400 din1=1; #400 din1=0; #400 din1=0; #400 din1=1; #400 din1=0; #400 din1=0; #400 din1=0; #400 din1=1; #400 din1=1; #400 din1=0; #400 din1=0; #400 din1=1; #400 din1=0; #400 din1=0; #400 din1=0; #400 din1=0; #400 din1=1; #1000 $stop; end endmodulemodule demodulator(cl

4、k,rst,ddin,ddout); /解調(diào)input clk,rst;input ddin;output ddout;reg ddout;reg 3:0cnt3;reg temp;reg 3:0cnt4;reg clk1;always (posedge clk or negedge rst)beginif(!rst) cnt3=4b0000;else if(!ddin) cnt3=cnt3+1; else cnt3=4b0000; endalways (posedge clk or negedge rst)beginif(!rst) temp6) temp=1; else temp=0;en

5、dalways (posedge clk or negedge rst)begin if(!rst) begin cnt4=0; clk1=0; end else if (cnt4=4b1001) begin clk1=clk1; cnt4=0; end else cnt4=cnt4+1;end always (posedge clk1 or negedge rst)beginif(!rst) ddout=0;else ddout=temp;end endmodule module modulator(clk,rst,din,dout); / 調(diào)制input clk,rst;input din

6、;output dout;reg 1:0 cnt1;reg cnt2;reg f1;reg f2;always (posedge clk or negedge rst)begin if (!rst) begin cnt1=2b00; f1=0; end else if(cnt1=2b11) begin cnt1=2b00; f1=f1; end else cnt1=cnt1+1;endalways (posedge clk or negedge rst)begin if (!rst) begin cnt2=0; f2=0; end else if(cnt2=1) begin cnt2=2b00

7、; f2=f2; end else cnt2=cnt2+1;endassign dout=(din=1)?f1:f2;endmodule 硬件設(shè)計方案(1) 調(diào)制模塊設(shè)計頻移鍵控即FSK(FrequencyShift Keying)數(shù)字信號對載波頻率調(diào)制,主要通過數(shù)字基帶信號控制載波信號的頻率來來傳遞數(shù)字信息。在二進(jìn)制情況下,“1”對應(yīng)于載波頻率,“0”對應(yīng)載波頻率,但是它們的振幅和初始相位不變化。FSK信號產(chǎn)生的兩種方法:直接調(diào)頻法和頻率鍵控法。FSK的調(diào)制方框圖(2) 解調(diào)模塊設(shè)計數(shù)字頻率鍵控(FSK)信號常用的解調(diào)方法有很多種如:同步(相干)解調(diào)法、FSK濾波非相干解調(diào)法。軟件設(shè)計方案

8、由于在Verilog語言中各個模塊電路同時工作采用并行執(zhí)行的,時序邏輯由時鐘驅(qū)動,因此在程序中一定要注意時序的設(shè)計及時鐘的設(shè)計,在各個不同的時鐘驅(qū)動下電路響應(yīng)的方式。在設(shè)計之初應(yīng)該特別注意Verilog語言的類型。 FSK調(diào)制部分:系統(tǒng)是利用2個獨(dú)立的分頻器來改變輸出載波頻率,以數(shù)字鍵控法來實現(xiàn)FSK捌制。數(shù)字鍵控法也稱為頻率選擇法,他有2個獨(dú)立的振蕩器,數(shù)字基帶信號控制轉(zhuǎn)換開關(guān),選擇不同頻率的高頻振蕩信號實現(xiàn)FSK調(diào)制。鍵控法產(chǎn)生的FSK信號頻率穩(wěn)定度可以做到很高并且沒有過渡頻率,他的轉(zhuǎn)換速度快,波形好,頻率鍵控法在轉(zhuǎn)換開天發(fā)生轉(zhuǎn)換的瞬剛,2個高頻振蕩的輸出電壓通常不相等,于是已調(diào)信號在基帶信息變換時電壓會發(fā)生跳變,這種現(xiàn)象稱為相位不連續(xù),這是頻率鍵控特有的情況。FSK解調(diào)部分:通過對clk上升沿和cin上升沿的計數(shù),cnt 為clk計數(shù)器,而count為cin的計數(shù)器,當(dāng) cnt=11時,查看cou

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論