2FSK调制解调器Verilog代码Quartus仿真

名称:2FSK调制解调器Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

2FSK调制解调器

1、设计实现2FSK调制功能,2FSK调制波形通过DA芯片输出,在示波器观察波形

2、将DA芯片输出的模拟信号再接回板子上的AD芯片的输入端

3、AD芯片将模拟信号数字化后,再对2FSK波形进行解调,能正确解调出原信号

1.工程文件

2.程序代码

3.程序运行

4.程序仿真

2FSK调制仿真

图中最后两行分别为调制信号和2FSK调制以后的波形

2FSK解调仿真

图中最后两行分别为输入的2FSK调制波形和解调以后的波形,可以看到解调信号相对2FSK调制波形有延迟

下图中从上到下依次为调制信号,2FSK调制波形,解调信号,可以看到解调信号相对原始调制信号有延迟

附:管脚约束

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时钟-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后数据
reg clk25;
assign DAC_CLK = clk50;
assign ADC_CLK = clk25;
assign DAC_PD = 0;
assign ADC_PD = 0; 
reg [8:0] Cont; //定义一个计数器,用于 SIN 的地址
Cont 持续计数
always@(posedge clk50 )
begin
 clk25 <= ~clk25;
end
always @(posedge clk50)
begin
 ADC_DAT_REG <= ADC_DAT;
end
FSK_modulation FSK2_modulation(
. clk(clk50),//50M时钟-P11
. modulation_signal(modulation_signal),//调制信号
. data(DAC_DAT)//输出调制波形路
);
FSK_demodulation FSK2_demodulation(
. clk(clk50),//50M时钟-P11
. demodulation_signal(demodulation_signal),//解调信号
//. data(DAC_DAT)//仿真时用该句,屏蔽下面那句
. data(ADC_DAT_REG)//输入调制波形仿真时用DAC_DAT将数据还回到解调模块,下载板子验证时使用ADC_DAT_REG
);
源代码

 扫描文章末尾的公众号二维码

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值