DC里面使用DFT的指令是insert_dft,那我怎么知道哪些电路会用到DFT呢?又不可能所有电路都用DFT?

DFT是测什么的?

可以把DFT想象为对一块电路的输入输出端口使用DFT单元进行封装。所谓DFT单元就是带MUX的寄存器,当开启使能后,scan_chain_in就会输入数据,相当于dirver,然后再scan_chain_out处相当于一个monitor进行监控。使用scan_chain和FPGA的ILA有所不同,后者是在不影响电路正常工作的情况下加入的监控器,而使用scan_chain测试电路是得输入测试数据,然后通过串行导出结果来观测等电路结果的,也就是说分为正常模式和测试模式,这两种模式不能同时存在,你不能在电路正常工作的同时对电路信号进行检测。

DFT进行测试就是将scan_chain的enable信号打开,这时候可以在scan_chain_in输入测试数据,然后关闭enable,让电路进行运算,运算完了,再开启enable,这时候采集scan_chain_out的数据,就能把输出给导出来了。

在芯片设计和测试中scan和bist有什么区别? - 知乎