是否可以综合使用:
case语句中的case语句case语句中的if语句if语句中的case语句我可以编译它,没有任何错误,但我仍然不确定它是否会搞乱硬件结构,使它变得复杂。
我这么做的原因:
我有几个状态(状态机),为了让它们遍历所有的状态,我使用了用例语句。但我也需要在这些状态中设定一些条件(cases和ifs),其中一些条件相当大。
发布于 2013-10-11 15:31:18
合成器没有理由不处理嵌套的if和case,事实上我在过去已经做了很多次了。
我设想,当涉及到逻辑实现时,合成器的算法将if视为case语句的两个分支版本,因此决策函数的类型不是问题。嵌套它们只会导致它为每个决策创建一组逻辑,这在嵌套决策的情况下是级联的。
如果你发现它不工作,提交一个错误报告!
当然,如果您具有非常积极的定时约束,以及许多嵌套条件,您可能会发现合成器产生的逻辑虽然正确,但不够快,无法满足您的时钟周期目标。在这种情况下,除了重构您的逻辑以减少决策的深度之外,没有什么可做的。
发布于 2013-10-10 20:57:19
IEEE 1076-2008 ( LRM)附件J引用IEEE 1076.6-2004,寄存器-传输级别(RTL)综合,其中支持case语句,case语句替代(实际选择和相关的语句序列)可以指定包括case语句在内的顺序语句。
因此,答案是肯定的,一般情况下,您应该期望case语句在语句选项中能够被合成。一个特定的供应商是否完全支持1076.6是一个独立的问题。
https://stackoverflow.com/questions/19305014
复制相似问题