Verilog中if..else和case语句分析
本文主要讨论一下Verilog中if...else...与case..语句的比较。
先看几个图:
if...else..
case语句实现与上述一样的功能
发现RTL视图差别很大,而且从RTL视图也能看出if..else...有明显的优先级,case语句是并行的。但是我们再看看technology map:
两种表达方式的technology map的结果一样,说明映射到FPGA板子上的硬件电路一样。
•RTL视图显示的是编译后的结果显示的图形都是调用标准单元的结果。跟工艺库,FPGA类型,都没有关系。
•而TechnologyMap Viewer显示的是已经编译并映射到对应的FPGA器件中,是fitter(place
& route)后的结果。
所以现在的仿真和综合工具已经足够强大,最后综合后的结果if..else...与case...语句其实是一样的,无非是两种不同的实现方式。
下面最后再给出一个case语句表达的优先编码器的例子,大家从technology MAP中看一下最后映射到板子上的具有优先级的电路是什么样的。