2ASK在FPGA中的实现(3)

2019-02-16 00:26

if(cnt == 3'b110&&k >= 3'b010) begin

// 只要k计数器超过3,就判y为1

demodata <= 1'b1; out_rdy<=1; end

k <= 3'b000; // 清空k计数器

else if(cnt == 3'b110&&k < 3'b010) begin

设置信号周期为八个时钟周期,所以时钟计数周期为8,时钟计数器为判别模块提供判别时刻,通过判别模块对k计数器的值得判别实现了解调。

demodata <= 1'b0; end end

out_rdy<=1; end

endmodule

3.2功能仿真

3.2.1 调制部分代码的功能仿真

图3-1 调制部分功能仿真

如图3-1所示,sig_S为01信号,modata为调制后的信号,观察波形,很容易可以验证仿真结果正确

11

3.2.2 整体的功能仿真

整体的功能仿真是通过顶层模块调用调制模块和解调模块,实现整体的仿真。

顶层模块代码如下: module

ASK_ding(clk,reset,en,sig_S,mo_rdy,carriers,modata,demodata,out_rdy,cnt,k);

input clk,reset,en; output sig_S; output carriers; output modata; output mo_rdy; output demodata;

output out_rdy;

output [2:0] cnt; output [2:0] k;

two_ASK U_mo ( .clk(clk), .reset(reset), .en(en), .sig_S(sig_S), .out_rdy(mo_rdy), .carriers(carriers), .modata(modata) );

ASK_two U_demo ( .clk(clk), .reset(reset), .in_rdy(mo_rdy),

12

.modata(modata), .demodata(demodata), .out_rdy(out_rdy),

endmodule

对顶层模块进行仿真,结果如图3-2

.cnt(cnt), .k(k)

);

图3-2 整体功能仿真

其中cnt为时钟计数器,k为调制信号计数器,sig_S为01信号,modata为已调信号,demodata为解调后信号,观察上图,可知道代码仿真正确,实现了2ASK的调制解调。

3.3板上调试

板上调试代码如下:

module chipscope_ask(clk,sig_S,modata,demodata); input clk;

output sig_S,modata,demodata; wire en;

wire [35:0] control0;

13

wire [35:0] control1; wire [1:0] async_out; wire [0:0] async_in; wire [2:0] mydata;

assign reset=async_out[0];

assign en=async_out[1]; assign trig0=en; assign async_in[0]=sig_S; assign mydata[0]=sig_S; assign mydata[1]=modata; assign mydata[2]=demodata; ASK_ding

u1(.clk(clk),.reset(reset),.en(en),.carriers(carriers),.sig_S(sig_S),.demodata(demodata),.cnt(cnt),.modata(modata),.mo_rdy(mo_rdy),.out_rdy(out_rdy),.k(k));

my_icon u2(.CONTROL0(control0),.CONTROL1(control1));

my_ila u3(.CONTROL(control0),.CLK(clk),.DATA(mydata), .TRIG0(trig0));

my_vio u4(.CONTROL(control1),.ASYNC_IN(async_in), .ASYNC_OUT(async_out)); endmodule

板上调试需要添加三个核,icon,vio和ila,需要添加clk的引脚约束,如图3-3

图3-3 clk引脚约束

添加完约束后可以通过ise进行实现和产生bit流文件,下载到V-2板上便可进行chipscope在线调试。调试结果如下 Vio核波形

14

图3-4 vio核波形

这里使用vio核主要是想看各个使能端口信号的作用和做开关模拟操作。经检验,结果符合要求。 Ila核波形

图3-5 ila核波形

用ila核来看信号波形,从图中可以看出,实现了2ASK信号的调制与解调。解调信号虽然有一定的延时,但结果正确。这个延时是因为判别模块的判别时刻较信号开始时刻延时5个时钟周期,所以解调信号就如图中那样。

4总结

这次做2ASK的调制解调,复习了原理,理解了代码,收获不少。在做板调时遇到了些困难,是对chipscope核的不熟悉造成的。也是因为之前做的板调太少了,这两天感觉学到好多。基本掌握chipscope的应用方法,以后板调的效率会高很多。

这次做的2ASK是数字载波的,相对于正弦载波的简单很多,没设计滤波器,乘法器什么的。感觉还是缺少些东西。

15


2ASK在FPGA中的实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工地例会汇报材料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: