FPGA经验谈系列文章——6、常用代码的逻辑级数预估(条件语句)
条件语句
条件语句包括 if…else…,case,casex等语句,也是我们在代码中经常会用到的,我们依次来进行讨论。
(1)if…else…语句
在我们的固有印象中,if…else…语句中else层级不能过多,如果层级过多可能导致组合逻辑级数变大。例如一个3级层级的if语句,可以使用三个MUX来进行实现,看起来逻辑级数会有三级。但实际上由于FPGA的LUT结构,条件语句也是可通过LUT来实现的。3级层级的if语句包括3个条件输入,3个选择数据输入,1个选择输出,也就是说一共6个输入1个输出,正好可以用一个LUT6来实现
三级if条件语句只需要一个逻辑级数就可以实现,那么更多的条件层级呢?接下来分析一下12级条件下的if…else…语句的实现细节,代码如下:
module test