名稱:2FSK調(diào)制解調(diào)器Verilog代碼Quartus仿真
軟件:Quartus
語言:Verilog
代碼功能:
2FSK調(diào)制解調(diào)器:
1、設(shè)計(jì)實(shí)現(xiàn)2FSK調(diào)制功能,2FSK調(diào)制波形通過DA芯片輸出,在示波器觀察波形。
2、將DA芯片輸出的模擬信號再接回板子上的AD芯片的輸入端。
3、AD芯片將模擬信號數(shù)字化后,再對2FSK波形進(jìn)行解調(diào),能正確解調(diào)出原信號。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計(jì)文檔:
1.工程文件
2.程序代碼
3.程序運(yùn)行
4.程序仿真
2FSK調(diào)制仿真
圖中最后兩行分別為調(diào)制信號和2FSK調(diào)制以后的波形
2FSK解調(diào)仿真
圖中最后兩行分別為輸入的2FSK調(diào)制波形和解調(diào)以后的波形,可以看到解調(diào)信號相對2FSK調(diào)制波形有延遲
下圖中從上到下依次為調(diào)制信號,2FSK調(diào)制波形,解調(diào)信號,可以看到解調(diào)信號相對原始調(diào)制信號有延遲
附:管腳約束
set_location_assignment PIN_11 -to clk50
set_location_assignment PIN_B8 -to rst_n
set_location_assignment PIN_W6 -to DAC_CLK
set_location_assignment PIN_V5 -to DAC_PD
set_location_assignment PIN_AA2 -to ADC_CLK
set_location_assignment PIN_AB2 -to ADC_PD
set_location_assignment PIN_W7 -to DAC_DAT[0]
set_location_assignment PIN_V7 -to DAC_DAT[1]
set_location_assignment PIN_W8 -to DAC_DAT[2]
set_location_assignment PIN_V8 -to DAC_DAT[3]
set_location_assignment PIN_W9 -to DAC_DAT[4]
set_location_assignment PIN_V9 -to DAC_DAT[5]
set_location_assignment PIN_W10 -to DAC_DAT[6]
set_location_assignment PIN_V10 -to DAC_DAT[7]
set_location_assignment PIN_Y3 -to ADC_DAT[0]
set_location_assignment PIN_AB3 -to ADC_DAT[1]
set_location_assignment PIN_Y4 -to ADC_DAT[2]
set_location_assignment PIN_AA5 -to ADC_DAT[3]
set_location_assignment PIN_Y5 -to ADC_DAT[4]
set_location_assignment PIN_AA6 -to ADC_DAT[5]
set_location_assignment PIN_Y6 -to ADC_DAT[6]
set_location_assignment PIN_AA7 -to ADC_DAT[7]
部分代碼展示:
`timescale?1ns?/?1ps? //////////////////////////////////////////////////////////////////////////////////? //?Module?Name:?FSK //////////////////////////////////////////////////////////////////////////////////? module?FSK(? ?clk50,?//50M時(shí)鐘-P11 ?rst_n,?//Key0?按下低電平-B8 ? ?DAC_CLK, ?DAC_DAT, ?DAC_PD, ? ?ADC_CLK, ?ADC_DAT, ?ADC_PD ?);? input?clk50; input?rst_n; //======================================================= //?DAC? //======================================================= output?DAC_CLK; output?[7:0]?DAC_DAT; output?DAC_PD; //======================================================= //?ADC? //======================================================= output?ADC_CLK; input?[7:0]?ADC_DAT; output?ADC_PD; wire?modulation_signal; wire?demodulation_signal; reg?[7:0]?ADC_DAT_REG;//AD后數(shù)據(jù) reg?clk25; assign?DAC_CLK?=?clk50; assign?ADC_CLK?=?clk25; assign?DAC_PD?=?0; assign?ADC_PD?=?0;? reg?[8:0]?Cont;?//定義一個(gè)計(jì)數(shù)器,用于?SIN?的地址 ////Cont?持續(xù)計(jì)數(shù) always@(posedge?clk50?) begin ?clk25?<=?~clk25; end always?@(posedge?clk50) begin ?ADC_DAT_REG?<=?ADC_DAT; end FSK_modulation?FSK2_modulation( .?clk(clk50),//50M時(shí)鐘-P11 .?modulation_signal(modulation_signal),//調(diào)制信號 .?data(DAC_DAT)//輸出調(diào)制波形路 ); FSK_demodulation?FSK2_demodulation( .?clk(clk50),//50M時(shí)鐘-P11 .?demodulation_signal(demodulation_signal),//解調(diào)信號 //.?data(DAC_DAT)//仿真時(shí)用該句,屏蔽下面那句 .?data(ADC_DAT_REG)//輸入調(diào)制波形仿真時(shí)用DAC_DAT將數(shù)據(jù)還回到解調(diào)模塊,下載板子驗(yàn)證時(shí)使用ADC_DAT_REG );
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=555