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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 20470|回复: 12

Verilog中case语句嵌套出现的问题

[复制链接]
发表于 2003-9-10 15:13:45 | 显示全部楼层 |阅读模式

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

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

×
最近,我在写程序的时候出现一个问题:组合逻辑的always块出现了不希望的锁存器。我把所有的case都加上了default,还是不好使。这个程序没有什么奇怪的地方,就是使用了case的嵌套。不知道大家有没有过相同的经历,如何解决这个问题。
发表于 2011-11-25 17:22:28 | 显示全部楼层
改成并行的不带优先级的
case({所有条件})

endcase
把if 的条件和 case 的条件都放到一个case里去这样就好了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-9-10 18:15:10 | 显示全部楼层

Verilog中case语句嵌套出现的问题

程序太大了,所以没法贴出来。
不用assign的原因也是因为它太复杂了,用assign不方便,而且改动困难,还不能直观地看出操作的意义。
框架是:
if   begin
     if  begin
         casex(ir)
          i1:begin
              ……
              end
          i2:begin
              ……
              end
          i3:begin
              ……
              end
          i4:begin
              ……
              end
            ……
         endcase
     end
     else if  begin
casex(ir)
          i1:begin
              ……
              end
          i2:begin
              ……
              end
          i3:begin
              ……
              end
          i4:begin
              ……
              end
            ……
         
     end
     else if  begin
casex(ir)
          i1:begin
              ……
              end
          i2:begin
              ……
              end
          i3:begin
              ……
              end
          i4:begin
              ……
              end
            ……
         
     end
     else begin
           ……
     end
end
else if  begin
     同上
end
else if  begin
     同上
end
   ……
case分支里有许多种情况,在每个case块里,都存在内容是一样的项。
回复 支持 反对

使用道具 举报

发表于 2003-9-10 17:15:13 | 显示全部楼层

Verilog中case语句嵌套出现的问题

为什么不用assign呢
回复 支持 反对

使用道具 举报

发表于 2003-9-10 17:11:58 | 显示全部楼层

Verilog中case语句嵌套出现的问题

长见识
一直以为always一定会使用reg或latch呢
回复 支持 反对

使用道具 举报

发表于 2003-9-10 16:50:57 | 显示全部楼层

Verilog中case语句嵌套出现的问题

要不把程序贴出来大家讨论一下把,我以前也是用一些方法解决以后就没有深究,所以现在没搞清楚原因,干脆借这个机会解决一下?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-9-10 16:42:08 | 显示全部楼层

Verilog中case语句嵌套出现的问题

我解决了这个问题。出现这个问题的原因是case语句不能套用,我把简单的分支都改成if-else结构,复杂的分支还是使用case,这样就没有锁存了。
在综合结束后,出现这样的信息:case choices are mutually exclusive; inferring parallel case。大家帮忙看一下,这是怎么回事,是不是由于case分支中的存在有相同的结果的两个分支而导致的?
回复 支持 反对

使用道具 举报

发表于 2003-9-10 16:33:57 | 显示全部楼层

Verilog中case语句嵌套出现的问题

能给个例子吗?想研究下
回复 支持 反对

使用道具 举报

发表于 2003-9-10 16:14:50 | 显示全部楼层

Verilog中case语句嵌套出现的问题

在嵌套情况下,敏感变量写全了,并且加了default也有可能生成latch
回复 支持 反对

使用道具 举报

发表于 2003-9-10 16:08:43 | 显示全部楼层

Verilog中case语句嵌套出现的问题

case语句里还有其他的判断语句吗?如果有并且判断信号不在敏感列表里,是会生成latch的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-11-2 15:21 , Processed in 0.025417 second(s), 8 queries , Gzip On, Redis On.

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