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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: forlsy

[讨论] always实现组合逻辑.常用吗?

[复制链接]
发表于 2012-9-9 11:42:08 | 显示全部楼层
这个要看 公司或者个人的 code stytle , 我个人推荐 不要用 always 实现组合逻辑, assign 可以实现 任何组合逻辑,always 用来实现 时序逻辑很好。
发表于 2012-9-9 17:12:55 | 显示全部楼层




   这两种语句的实际组合电路模型不一样吗?还是说仿真结果不一样?
发表于 2012-9-9 17:42:26 | 显示全部楼层
回复 1# forlsy


    其实真的无所谓的
发表于 2012-9-9 17:49:06 | 显示全部楼层
本帖最后由 Timme 于 2012-9-9 17:54 编辑


这两种语句的实际组合电路模型不一样吗?还是说仿真结果不一样?
cccc000000 发表于 2012-9-9 17:12




仿真结果(验证结果)不一样。可能导致RTL仿真通过,而实际电路/后仿结果不通过。换句话说,带不定态插入/不定态终止的RTL代码不利于验证。

不定态终止范例:





  1. always@(*)
  2.   if(A)
  3.     Y = B;
  4.   else
  5.     Y = C;




复制代码
当A为不定态时击中else,Y为C。输入有不定态,输出无不定态,即不定态终止。

不定态插入范例:





  1. always@(*)
  2.   case(A[1:0])
  3.      2'b00 : Y = B;
  4.      2'b01 : Y = C;
  5.      2'b10 : Y = D;
  6.      default : Y = 'bx;
  7.   endcase




复制代码
当A为2'b11时,Y为不定态。输入无不定态,输出有不定态,即不定态插入。

以上两种都不利于RTL验证。
发表于 2012-9-9 19:59:54 | 显示全部楼层
回复 24# Timme

解释的很好!
但是个人觉得一般还是会采用第一种写法。
发表于 2012-9-9 23:32:31 | 显示全部楼层


某些情况下always写的组合逻辑可读性更强吧,而assign更加简洁,但某些情况下可读性差。
禅师1988 发表于 2012-5-29 21:51



同感
发表于 2012-9-9 23:43:25 | 显示全部楼层


仿真结果(验证结果)不一样。可能导致RTL仿真通过,而实际电路/后仿结果不通过。换句话说,带不定态 ...
Timme 发表于 2012-9-9 17:49




   Timme 逻辑开发工具和过程的理解很深刻。佩服,以后还请多多指点。你这个说明可能回答了我在工作中遇到的那个问题,功能仿真没问题,下载后基本上完全是乱的,我上周一直在找原因,现在回想起来,应该跟这个有关系了。因为整个功能用了4个状态机,都是3段式,第二段都是always(*)的组合逻辑。
发表于 2012-9-10 00:32:19 | 显示全部楼层


Timme 逻辑开发工具和过程的理解很深刻。佩服,以后还请多多指点。你这个说明可能回答了我在工作中 ...
dddk 发表于 2012-9-9 23:43



你描述的这个情况,时序约束出问题的概率更大些。。。
发表于 2012-9-11 09:53:49 | 显示全部楼层
回复 10# Timme


   有道理
发表于 2012-9-11 11:57:23 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-28 00:31 , Processed in 0.029762 second(s), 6 queries , Gzip On, Redis On.

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