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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2653|回复: 8

[讨论] 这段代码会综合出latch吗 总感觉怪怪的

[复制链接]
发表于 2015-1-13 11:46:34 | 显示全部楼层 |阅读模式

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

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

x




  1. localparam N = 4;
  2.          reg [4 -1:0] maxTemp;
  3.          integer i;

  4.          always @ *
  5.                 begin
  6.                         maxTemp = 0;
  7.                         for (i = 0; i<N; i=i+1)
  8.                                 if(maxTemp<Sum[4*i +:4])
  9.                                          maxTemp = Sum[4*i +:4];
  10.              end


复制代码
发表于 2015-1-13 12:01:20 | 显示全部楼层
本来就是组合逻辑,这种写法省事,不过好像这堆组合逻辑有点长。
发表于 2015-1-13 12:13:11 | 显示全部楼层
第7行去掉 怎样
 楼主| 发表于 2015-1-13 13:42:17 | 显示全部楼层
回复 3# alex_leexiao

对 问题就在第七行,如果去掉 必然会出现latch。事实是 我综合之后这段代码并未出现latch,但总感觉怪怪的
 楼主| 发表于 2015-1-13 13:44:38 | 显示全部楼层
回复 2# wgej1987

请问 有更好或者你认为更合理的写法吗 这里要求组合逻辑来取出最大值 谢谢
发表于 2015-1-13 14:31:20 | 显示全部楼层
function的使用,一般单独包装成function,放在模块下方,在某些场合下挺好用的,我最近写了几个function。
发表于 2015-1-13 14:40:57 | 显示全部楼层
这个写法很合理啊,我也喜欢这种写法,省事,只是提醒下这个组合逻辑很长。这种需要综合软件去翻译,可能会影响综合速度或者形式验证速度,我是猜的。累加求和的组合逻辑也是这样啊。比如
always @ (*)
sum =0;
for()
sum=sum+d[i];
所以我没看出你的代码有什么问题,就是不会有锁存,所以我没什么想说的就提醒一下这个组合逻辑很长。如果可以切开来,比如两两并行比较。
发表于 2015-1-13 14:44:47 | 显示全部楼层
至于第七行,可以这么理解,假设你不给初始值,那么他可以是任何值,除非综合仿真工具会有一种default设定如果你不给初始就默认为0,那样也没事,但是万一没有,这种组合逻辑没初值肯定有问题。至于综合出什么就不知道了
 楼主| 发表于 2015-1-13 15:13:34 | 显示全部楼层
回复 7# wgej1987

明白了 谢谢你的耐心回答 包括楼中其他几位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 02:03 , Processed in 0.024152 second(s), 9 queries , Gzip On, Redis On.

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