在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2478|回复: 2

[求助] 急寻答案 ASK解调的verilog设计

[复制链接]
发表于 2011-4-1 14:39:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
先把代码弄上

module ASK_two(clk, reset, x, y);
input clk;
input reset;
input x;
output y;

reg y;

reg [2:0] cnt; //计数器
reg [2:0] m;   // 记录x的脉冲数数

always @(posedge clk) begin    //完成cnt的循环计数
  if(!reset) begin
     cnt <= 3'b000;
  end
  else if(cnt == 3'b111)
     cnt <= 3'b000;
  else
     cnt <= cnt +1 ;
end

always @(posedge x) begin    // 此过程完成2_ASK信号的解调
  if(!reset) begin
      m <= 3'b000;
  end
  else begin
        if(cnt == 3'b110) begin
                if (m <= 3'b010)          // 只要m计数器超过3,就判决为1
                        y <= 1'b0;
                else  
                        y <= 1'b1;
                m <= 3'b000;          // 清空m计数器
        end
        else
                m <= m+1;
  end
end
endmodule
这是某本书上的程序

有两个疑问:
1、为什么选择m的阈值为3而不是其他值
2、也是最难理解的问题 if(cnt == 3'b110) begin  这步开始,触发条件是posedge x即x的上升沿,现在的问题是,要是恰好x上升沿的时候不是在cnt=6处,而是在cnt=7处呢?(即在cnt=6时x是个下降沿)那么就无法判断了啊,不是就出现错误了吗?

小弟是刚开始接触verilog,希望大家积极给予意见啊。
发表于 2011-4-2 12:40:49 | 显示全部楼层
搞懂ASK算法的原理,再看这段东西吧
发表于 2011-4-27 11:22:50 | 显示全部楼层
我也是有这个疑问,方针出来根本不对!求解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 16:05 , Processed in 0.016029 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表