打印

ASK解调问题请教

[复制链接]
1847|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mjei|  楼主 | 2010-6-18 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
网络上关于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

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

8

帖子

0

粉丝