FPGA语言的编译器是否执行优化?

Sea*_*ake 3 verilog fpga compiler-optimization

计算机语言(如C/C++,Fortran,Julia等)的现代编译器的一个更有用的功能是它们能够在生成二进制文件之前对代码执行优化.如果我在Verilog中编写一个函数来制作FPGA"硬件"特殊功能,编译器会执行任何优化吗?作为一个具体的例子,假设我想设置一个使用Estrin方案进行并行化评估的多项式求值器,并且一些系数为0,编译器是否会看到并优化掉有效的NOOP?

dav*_*_59 5

是.您的示例中的优化称为" 常量传播 ".在优化布尔或算术表达式时,所有编译器中的技术都是相同的.编译器将简化它可以表达的任何表达式.另一个优化是" 死代码消除 "如果分支条件变为常数,则可以消除未选择的分支并且采用的分支变为无条件.但是在将RTL转换为硬件表示之后,优化过程与软件编译器有很大不同.

  • _loops_在硬件中不存在.对于这个问题,硬件中不存在任何程序性陈述.RTL代码中的循环方式在硬件中实现对于这个论坛来说太广泛了. (2认同)