Verilog中if..else和case语句分析

本文主要讨论一下Verilog中if...else...与case..语句的比较。


先看几个图:

if...else..

Verilog中if..else和case语句分析_第1张图片

Verilog中if..else和case语句分析_第2张图片


case语句实现与上述一样的功能

Verilog中if..else和case语句分析_第3张图片

Verilog中if..else和case语句分析_第4张图片


发现RTL视图差别很大,而且从RTL视图也能看出if..else...有明显的优先级,case语句是并行的。但是我们再看看technology map:

Verilog中if..else和case语句分析_第5张图片



两种表达方式的technology map的结果一样,说明映射到FPGA板子上的硬件电路一样。



RTL 视图显示的是编译后的结果显示的图形都是调用标准单元的结果。跟工艺库, FPGA 类型,都没有关系。
TechnologyMap Viewer 显示的是已经编译并映射到对应的 FPGA 器件中,是 fitter place & route )后的结果。


所以现在的仿真和综合工具已经足够强大,最后综合后的结果if..else...与case...语句其实是一样的,无非是两种不同的实现方式。


下面最后再给出一个case语句表达的优先编码器的例子,大家从technology MAP中看一下最后映射到板子上的具有优先级的电路是什么样的。


Verilog中if..else和case语句分析_第6张图片



Verilog中if..else和case语句分析_第7张图片





你可能感兴趣的:(FPGA)