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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

case语句不同写法综合结果请教

[复制链接]
发表于 2009-11-4 14:00:55 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 etop_fans 于 2009-11-4 14:33 编辑

最近对case语句一些问题不明白,查了些资料,感觉也说的不太清楚,所以请教大家:
1.第一种写法:
reg [1:0] a;
[email=always@(posedge]always@(posedge[/email] clk)
case(a)
2'b00: b <= ..;
2'b01: b <= ..;
2'b10: b <= ..;
2'b11: b <= ..;
endcase

2.第二种写法:
reg [1:0] a;
[email=always@(posedge]always@(posedge[/email] clk)
case(a)  /* synthesis full_case */
2'b00: b <= ..;
2'b01: b <= ..;
2'b10: b <= ..;
2'b11: b <= ..;
endcase

3.第三种写法:
reg [1:0] a;
[email=always@(posedge]always@(posedge[/email] clk)
case(a)
2'b00: b <= ..;
2'b01: b <= ..;
2'b10: b <= ..;
2'b11: b <= ..;
default:;
endcase

我的问题是:
1.第一种写法中,因为没有写入default语句,很多资料上说“可能”会引入锁存器,有的资料又说组合逻辑才会引入锁存器,时序逻辑的话会引入移位寄存器,实际上case的分支语句中已经覆盖了a所能取到的值,请问到底综合出来到底是什么结构?
2.第二种写法中加入了full_case综合指令,资料上说这个时候综合工具会避免产生锁存器,如果a出现分支语句以外的其他情况时,b的值不关心,这个不关心怎么理解?假如我把2'b11: b <= ..;这句去掉,那么当a=2'b11时,b的值是不是说可能为1也可能为0?
3.经常见到第三种这样的写法,想请问从综合结果的角度考虑,这种写法和第一种,第二种写法有什么区别??

有没有人愿意一起探讨,谢谢大家!!
发表于 2009-11-4 14:23:30 | 显示全部楼层
时序逻辑中case不全不会引入锁存器,综合器会默认default为啊a《=a。

即使是组合逻辑,第一种写法也不会引入锁存器,因为你的case已经达到了所有的branch。第三种写法综合工具会有warning说default branch无法到达。不过也没关系的

只有在组合逻辑的case中才会有full case不满足引入latch的情况出现
发表于 2009-11-4 14:26:28 | 显示全部楼层
synthesis full_case 最好不要用,可能会造成综合和仿真不一致。如果你不了解它的具体工作原理的话
 楼主| 发表于 2009-11-4 14:34:11 | 显示全部楼层
谢谢楼上2位  请问一下第三种写法和前两种有啥区别吗?
发表于 2009-11-4 14:43:27 | 显示全部楼层
第三种设置了default也就是如果你的case不满的情况下,你设置的其他的branch为一个共同的赋值,且这个赋值是你任意设置的。第一种case不满的情况下,其他的branch都执行a<=a的语句。
 楼主| 发表于 2009-11-4 14:50:46 | 显示全部楼层
哦 另外再请问下 是不是在时序逻辑中
不管是if语句没有写全else 还是case不写全default
都不会产生锁存器?
锁存器只在组合逻辑才出现?
发表于 2009-11-4 14:54:52 | 显示全部楼层
正解,时序逻辑的写法,DC不会出LATCH。但是写的实在太烂的,可能会报仿真综合不一致的warning
 楼主| 发表于 2009-11-4 15:04:13 | 显示全部楼层
我想FPGA的综合应该也差不多吧
谢谢tppxp !
发表于 2009-11-4 15:15:28 | 显示全部楼层
FPGA综合不太清楚啊~,因为FPGA不带latch资源,所以在组合逻辑里case不全产生什么效果就不知道了,你可以自己去试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 08:42 , Processed in 0.020454 second(s), 6 queries , Gzip On, Redis On.

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