芯有所想

精益求精

FPGA

FPGA在芯片开发中地位很重要,为了提高芯片的正确性,必须在ASIC Tapeout之前进行FPGA建模验证,软硬件协同验证。

FPGA 时序

  • FPGA合成的时候,尽可能减少不必要的clock复杂性。
    • 去掉bist电路
    • 去掉DFT电路
    • 去掉复杂的Clock Gating省电电路
  • synthesis之后要进行timing检查,确保timing没有violation
    • 一点点Setup violation可以接受。因为FPGA芯片工作条件一般不是worst case,可以适当超频。
    • 过大的violation要想办法清除掉。
    • 不要在DCM的input端设置时钟(如何解决input delay参考时钟的设置?)
  • vivado可以使用多个xdc文件
    • synplify不能forward的timing constraint可以单独再写一个
      1
      2
      
      read_xdc project_edif.xdc
      read_xdc patch.xdc; #用来写无法forward的constraint
      
  • 用RTL来描述SRAM,合成之后可以生成BlockRam,也可以生成DFF。
  • 尽可能少用negedge的触发器,因为negedge触发器会让ClockGating无法编译成Enable。