这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » ASK解调问题请教

共4条 1/1 1 跳转至

ASK解调问题请教

高工
2010-06-18 11:25:27     打赏
网络上关于ASK解调的很多代码都与下面这个类似,但是仿真始终不能通过,现有如下疑问: 1、  在第二个always块的敏感信号列表中只有x,所以该过程块完全由x块驱动,也就是当x的上升沿未到达时,该过程块不执行。故当x是一连串低电平时,y并不能被及时的赋值为0,因为它被赋值为0还需要有clk的触发,从而保证cnt等于3'b110时它能得到执行。而这与设计的预期不符合。 2、  曾想过,将m<=m+1放在另一个always块中,但是它引入的问题是在两个不同的always块中对m赋值,虽然在ModelSim中仿真通过,但是是不可综合的。


请网友们帮忙看看,谢谢

module ASK_two(clk,reset,x,y);    input clk;    input reset; input x; //输入的已调ASK信号 output y; //输出的调制信号   reg y;   reg[2:0]cnt; reg[2:0]m;   always@(posedge clk) begin if(!reset) begin           cnt<=3'b000; end else         cnt<=cnt+1; end   always@(posedge x) begin  if(!reset) begin  m<=3'b000; end else  begin           if(cnt==3'b110) begin               if(m<=3'b010)                   y<=1'b0;               else                   y<=1'b1;                m<=3'b000;             end           else              m<=m+1; end end endmodule  



关键词: 解调     问题     请教    

高工
2010-06-18 18:49:56     打赏
2楼

嗯,谢谢。这个解决了上述问题,不过感觉综合出来的电路不够优化,估计是因为if-else语句没有完全匹配。


高工
2010-06-19 14:52:35     打赏
3楼

呵呵,这段代码的思想是利用包络检波的原理(非相干解调),通过判断输入信号的连续高电平的个数来完成判决。


高工
2010-06-19 15:06:01     打赏
4楼
Jason_Zhang大牛果真名不虚传啊,呵呵,确实设计的预期是仅仅想在x的上升沿时触发m的计数,所以上述语句可能会引入问题。由于我的仿真中激励波形的设置问题,而导致没有影响到功能仿真的结果。而且我个人认为,即便是计数不断增加,也不会影响判决。

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]