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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3786|回复: 13

[求助] verilog中这段代码为什么不可综合?

[复制链接]
发表于 2017-4-24 20:40:46 | 显示全部楼层 |阅读模式

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

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

x
always @(A or B)      case (A)
          1'b0: F = B;
          1'b1: G = B;
    endcase

为什么是不能综合或与预先设想的不一致呢?

难道要这样写?
always @(A or B)
   if(!A)
      F = B;
  else
     G = B;
发表于 2017-4-24 21:11:22 | 显示全部楼层
很明显,两种写法都是错的,A=0时没有给G赋值,A=1时没有给F赋值,生成了latch。
always @(A or B)
   if(!A) begin
      F = B;
      G = ?
   end
  else begin
    F = ?
    G = B;
  end
第一种写法使用CASE时,也犯了同样的错误。如果你的代码风格是同一个always里只给一个变量赋值,你就很容易发现这个错误了。
发表于 2017-4-25 10:17:54 | 显示全部楼层
2楼很正确
发表于 2017-4-25 17:15:02 | 显示全部楼层
2樓正解
加個clock 就可以了
发表于 2017-4-26 15:03:45 | 显示全部楼层
2楼怎么对了?综合出latch不算可综合吗?
发表于 2017-4-26 17:28:49 | 显示全部楼层
回复 5# 河源皮

我有说过latch是不可综合的吗?看清楚楼主下面的疑问“与预先设想的不一致”。如果楼主的本意就是为了综合得到latch,他就不会在这里问大家了。
发表于 2017-4-26 21:15:03 | 显示全部楼层
是的,要符合相应的Verilog语法和对应的逻辑思维流程才可以的!!
发表于 2017-4-27 13:47:58 | 显示全部楼层
回复 6# 杰克淡定

你是对的。也许楼主只是想搞个组合逻辑出来,我想多啦
发表于 2017-4-29 01:59:09 | 显示全部楼层
兄弟们, 如果把 = 或者 <= 叫“赋值”,  可以转行了
发表于 2017-5-7 04:46:13 | 显示全部楼层
写法错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-3 05:08 , Processed in 0.029788 second(s), 7 queries , Gzip On, Redis On.

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