论文部分内容阅读
基于现场可编程门阵列(Field Programmble Gate Array,FPGA)的硬件模拟平台以其比软件仿真更快的运行速度而被广泛地应用于芯片的功能验证。然而,FPGA内部信号的可观测性与可控制性有限,这给验证工程师带来了挑战。扫描链能为FPGA提供全电路状态的可观测性与可控制性。但是,在FPGA上插入扫描链需要消耗较多的逻辑资源。为降低扫描链的逻辑资源消耗,本文进行了以下三点研究。首先,提出了一种基于逻辑混合方法的高效扫描链插入方法。该方法利用了FPGA中已经被占用的查找表(Look Up Table,LUT)来实现扫描链所需逻辑,提升了LUT的利用效率。逻辑混合方法可用于不同的FPGA平台,同时适用于全扫描和部分扫描。实验表明,在全扫描情况下,与原语替换方法相比,逻辑混合方法可平均减小约22.9%的资源消耗。其次,为进一步减小扫描链的面积消耗,本文研究了BALLAST部分扫描方法。BALLAST方法将平衡结构部分扫描问题划分为两个子问题并分别求最优解。该方法的缺点是,各个子问题的最优解无法保证最终解的全局最优性。在BALLAST方法的基础上,本文提出了平衡结构部分扫描问题的整数线性规划模型。所提模型克服了BALLAST方法的缺点,在理论上可获得平衡结构部分扫描问题的全局最优解。实验表明,与BALLAST方法相比,将所提整数线性规划模型与逻辑混合相结合的方法可减少约13.5%的逻辑资源消耗。第三点,对平衡结构的进一步分析表明,BALLAST方法使用的图模型存在一些固有缺点,这阻碍了部分扫描的更优结果。为此,本文对BALLAST方法使用的图模型进行了改进,提出了一种基于增广S图的平衡结构部分扫描方法。实验表明,与BALLAST方法相比,基于增广S图的方法可减少约17.9%的逻辑资源消耗。以上三种措施并举,可有效降低FPGA平台上扫描链的逻辑资源消耗。