BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / circuit / #15890同步于 2010/12/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Circuit机器人发帖

[讨论]VHDL中CASE和IF区别

loneliness
2010/12/23镜像同步9 回复
都说IF比CASE有优先级判断, 那么对于 if···else语句和case两状态选择语句, 这貌似在C中是等价的, 不知道在VHDL中具体实现是不是有区别啊?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
lanphon机器人#1 · 2010/12/23
VHDL不了解 在verilog中,原则上来说,case语句没有优先级,而if语句有优先级。但实际上很多综合工具必须指定一定的选项,(synosps中为parell_case)才可以综合出并行的case语句。不加上这个说明综合出来电路的情况视综合工具而定。肯定一点的是if语句一定会综合出带优先级的电路,因为if逻辑本身描述的就是带有优先级的。
police机器人#2 · 2010/12/23
好像case综合出来就是选择器 if综合出来就是一级一级的判断。。唔。。。 【 在 lanphon (上善若水) 的大作中提到: 】 : VHDL不了解 : 在verilog中,原则上来说,case语句没有优先级,而if语句有优先级。但实际上很多综合工具必须指定一定的选项,(synosps中为parell_case)才可以综合出并行的case语句。不加上这个说明综合出来电路的情况视综合工具而定。肯定一点的是if语句一定会综合出带优先级的电路�
ysun36机器人#3 · 2010/12/23
正解~ 此外,不要把视线只放在仿真或语法这一层上,最终的目的是为了描述一个电路。 C语言里面完全是串行的,仿真有时候也很难做到完全的并行。有时候仿真出来的结果和综合后电路的运行也不是完全对应的。 所以,最好是要完全弄清楚想描述的电路是什么行为。 【 在 lanphon 的大作中提到: 】 : VHDL不了解 : 在verilog中,原则上来说,case语句没有优先级,而if语句有优先级。但实际上很多综合工具必须指定一定的选项,(synosps中为parell_case)才可以综合出并行的case语句。不加上这个说明综合出来电路的情况视综合工具而定。肯定一点的是if语句一定会综合出带优先级的电路,因为if逻辑本身描述的就是带有优先级的。
loneliness机器人#4 · 2010/12/24
【 在 ysun36 的大作中提到: 】 : 正解~ : 此外,不要把视线只放在仿真或语法这一层上,最终的目的是为了描述一个电路。 : C语言里面完全是串行的,仿真有时候也很难做到完全的并行。有时候仿真出来的结果和综合后电路的运行也不是完全对应的。 : ................... 那么那一种电路所消耗的逻辑单元少些呢?
loneliness机器人#5 · 2010/12/24
【 在 police 的大作中提到: 】 : 好像case综合出来就是选择器 : if综合出来就是一级一级的判断。。唔。。。 那么case是2选1的时候,电路实现不就和IF ELSE一样的么?
loneliness机器人#6 · 2010/12/24
【 在 lanphon 的大作中提到: 】 : VHDL不了解 : 在verilog中,原则上来说,case语句没有优先级,而if语句有优先级。但实际上很多综合工具必须指定一定的选项,(synosps中为parell_case)才可以综合出并行的case语句。不加上这个说明综合出来电路的情况视综合工具而定。肯定一点的是if语句一定会综合出带优先级的电路,因为if逻辑本身描述的就是带有优先级的。 优先级的我也知道,只是对于case2选择与if..else有什么区别呢?
lanphon机器人#7 · 2010/12/24
【 在 loneliness 的大作中提到: 】 : 优先级的我也知道,只是对于case2选择与if..else有什么区别呢? 没区别。。。
loneliness机器人#8 · 2010/12/24
【 在 lanphon 的大作中提到: 】 : 没区别。。。 哦,我想问的就是这个。。。 谢谢学长啦~~~
ysun36机器人#9 · 2010/12/25
这个要看综合器的行为 综合成什么是综合器说了算~ case也可以综合成有优先级的也可以综合成没有优先级的。 case和if语句本身都是表象。 如果要用与非门来画电路的话,就完全没有这个问题了,因为你画的就是你想要的。 用描述语言来描述电路,要把综合器考虑进来,才能最终决定电路的行为。 【 在 loneliness 的大作中提到: 】 : 那么那一种电路所消耗的逻辑单元少些呢?