• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

2FSK调制解调verilog代码quartus

05/05 11:19
1320
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1-23092421240YZ.doc

共1个文件

名称:Quartus的2FSK调制解调verilog(代码在文末付费下载)

软件:Quartus

语言:Verilog

要求:使用verilog实现2FSK的调制和解调,并进行仿真

演示视频:

部分代码展示

//2FSK设计
module?FSK_2(clock,?reset,?code_in,decode_key,?code_out,LED_BIT,LED_SEG);
???input??????clock;//输入时钟
???input??????reset;//复位--k1
???input??????code_in;//输入调制信号--k2
input??????decode_key;//输入解调控制--k3,按下按键后启动解调
???output?????code_out;//输出解调信号
output?[7:0]?LED_BIT;//数码管位选
output?[7:0]?LED_SEG;//数码管段选
???
???wire?[7:0]?Modulate_fsk2;//2FSK信号
wire?[7:0]?decode_fsk2;//2FSK信号
wire??code_in;//输入调制信号
wire??decode_code;//输出解调信号
wire?[3:0]?state;//当前状态值
assign?code_out=decode_code;
???
???//2FSK调制模块设计
???Modulate?U_Modulate(
.clock(clock),?//输入时钟
.reset(~reset),//复位?
.code_in(code_in),?//输入调制信号
.fsk2(Modulate_fsk2)//输出FSK信号
);
???
???//2FSK解调模块设计
???decode?U_decode(
.clock(clock),?//输入时钟
.reset(~reset),?//复位
.code_out(decode_code),?//输出解调信号
.fsk2(decode_fsk2)//输入FSK信号
);
//状态机控制,按下decode_key按键后启动解调
state_machine?i_state_machine(
.?clock(clock),
.?reset(~reset),//复位--k1
.?decode_key(decode_key),//输入解调控制--k3
.?Modulate_fsk2(Modulate_fsk2),//输入2FSK信号
.?decode_fsk2(decode_fsk2),//输出2FSK信号
.?state_out(state)//状态值
);???
//数码管显示模块
display?i_display(
.?clock(clock),//50M时钟
.?code_in(code_in),//输入调制信号
.?code_out(decode_code),//输出解调信号
.?state(state),//当前状态值
.?LED_BIT(LED_BIT),//数码管位选
.?LED_SEG(LED_SEG)//数码管段选
);

设计文档(文档点击可下载):

1. 2FSK(Frequency Shift Keying)为二进制数字频率调制(二进制频移键控),用载波的频率来传送数字信息,即用所传送的数字信息控制载波的频率。2FSK信号便是符号“0”对应于载频 f1,而符号“1”对应于载频 f2(与 f1 不同的另一载频)的已调波形,而且 f1 与 f2 之间的改变是瞬间的。传“0”信号时,发送频率为 f1 的载波; 传“1”信号时,发送频率为 f2的载波。

2. 工程文件

3. 程序文件

4. 程序编译

5. RTL图

6. testbench

7. 仿真图

按下按键后启动解调,可以看到解调出的code_out与输入code_in一致

调制模块

状态控制模块

按下按键后启动解调

解调模块

数码管显示模块

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=170

  • 1-23092421240YZ.doc
    下载

相关推荐