集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1427|回复: 2

请教:关于多个敏感信号的问题--可能与异步有关

[复制链接]
ttang 发表于 2011-11-1 23:55:22 | 显示全部楼层 |阅读模式
  1. always@(posedge clk or negedge inc)
  2. begin
  3. if(inc == 1'b0)
  4.         begin
  5.                 if(qout >= 4'd9)
  6.                         begin
  7.                                 qout = 0;
  8.                                 cout = 1;
  9.                         end
  10.                 else
  11.                         begin
  12.                                 qout = qout + 1;
  13.                                 cout = 0;
  14.                         end
  15.         end
  16. else
  17.         begin
  18.         if( qout >= 4'd9)       
  19.                 begin
  20.                         qout = 0;
  21.                         cout = 1;
  22.                 end
  23.         else
  24.                 begin
  25.                         qout = qout + 1;
  26.                         cout = 0;
  27.                 end
  28.        
  29.         end

  30. end
复制代码
就是一个模10计数器,希望它每个clk来临时加1,每个inc下降沿到来时也加1,结果仿真的时候,inc下降沿到来时,qout变化得很剧烈,根本不是加1,能否解释一下为什么会这样?
另外,如果去掉if语句,又会报错
求教
至芯兴洪 发表于 2011-11-5 09:32:34 | 显示全部楼层
你的设计思想就不对,当然不能达到预期的结果,虽说你想采集inc的下降沿,可根本就没有实现采集下降沿相应的代码,你的always块是一个时钟和一个复位的模式,你不会是想在复位期间计数吧
jiezhouliping 发表于 2011-11-5 11:33:04 | 显示全部楼层
always@(posedge clk or negedge inc)

begin

if(inc == 1'b0)

第一行与第三行是不是有问题啊
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-15 19:45 , Processed in 0.065802 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表