有不少人有疑问,了解FPGA底层资源,尤其是CLB、RAM的组成,这些信息即时不了解也不影响我们进行FPGA代码的开发。
其实对于初级FPGA代码开发工程师来说只要掌握了verilog语法和FPGA开发流程就足够了,但是对于资深FPGA工程师来说,深入了解FPGA底层资源是基础技能之一。只有了解了使用FPGA的底层结构才能开发出相应的资源最优、时序最优的代码。
比如xilinx 7系列的FPGA底层LUT是6输入的,可配置为2个同输入的5LUT结构,这是它的最小单位,多以对于这个器件的开发来说,5输入一下的LUT实现和5输入的LUT使用的资源是一样的。再比如xilinx 7系列的FPGA的BRAM是M36K可以配置为2*M18K,对于有资深FPGA工程师,会充分考虑位宽、深度分配情况来进行方案和代码规划。再比如DSP48E1,了解底层的FPGA工程师会充分考虑其预加结构和级联结构来让自己的代码最优。