打印

求助脉冲间隔测量,附代码

[复制链接]
2124|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lotus_1984|  楼主 | 2010-11-10 07:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求测脉冲于脉冲之间的间隔,ipClock是时钟,ipSignal是脉冲的输入,opNum是输出,现在程序编译后,temp的寄存器好像被编译器忽略了,并没有锁存数据,求解如何解决,谢谢!
module cpld(opNum,ipClock,ipSignal);
output[7:0] opNum;
input ipClock,ipSignal;

reg[17:0] iClkC1;
reg[17:0] temp;
reg[7:0] opNum_reg;
always@(posedge ipClock)
begin
  begin
    iClkC1=iClkC1+1;
  end
end

always@(ipSignal)
begin
  if(ipSignal)
    temp<=iClkC1;
end

always@(temp[7:0])
begin
  if(temp[17:8]==10'b0111010100)  //在10ms的范围内
  begin
    if(temp[7:0]>=8'b11010010 &&temp[7:0]<8'b11011000) //+2
      opNum_reg=8'b11101111;
    else if(temp[7:0]>=8'b11000110 &&temp[7:0]<8'b11010010 )
      opNum_reg=8'b11110111;
    else if(temp[7:0]>=8'b10110100 &&temp[7:0]<8'b11000110 )
      opNum_reg=8'b11111011;
    else if(temp[7:0]>=8'b10101000 &&temp[7:0]<8'b10110100 )
      opNum_reg=8'b11111101;
    else if(temp[7:0]>=8'b10011100 &&temp[7:0]<8'b10101000 )
      opNum_reg=8'b11111110;
  end
end
assign opNum=opNum_reg;
endmodule

相关帖子

沙发
andyany| | 2010-11-10 08:50 | 只看该作者
仿真观察一下。

使用特权

评论回复
板凳
lotus_1984|  楼主 | 2010-11-11 08:18 | 只看该作者
谢谢关注,仿真观察不对,现在已经解决,用沿触发就对了。

使用特权

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

本版积分规则

8

主题

42

帖子

0

粉丝