FPGA综合编码

1 判决树

在FPGA中判断使用if else语句以及case实现。

a) if else 是有特权的,类似于优先编码(当两个条件同时成立,仅判断条件靠前的成立),所以当有特权条件时应该采用if else结构,对于并行的if条件语句其特权顺序恰好与if else 相反。

b) case 语句常常(不总是)用在所有条件互不相容的条件下进行的。但是默认条件下case依然是有特权的,编译器会选择附加逻辑产生特权逻辑。如果我们确定条件是互斥的,那么我们可以利用编译伪指令‘parallel_case’来实现完全并行结构。

c)  对于case默认条件下当所有条件均不满足则保持当前值,我们也可以采用伪指令full_case来取消默认条件。

2 利用阻塞赋值可以模拟组合逻辑,非阻塞赋值可以模拟时序逻辑。但是不能把阻塞和非阻塞混合到一个always模块中。

3 for loop可以用来压缩某些功能一致的语句。

4 Idef应该为全局定义利用。

5 参数应该为局部利用,从模块到模块转换。

6 命名参数传递优于位置参数传递或者deparameter.

你可能感兴趣的:(嵌入式FPGA)