一种FPGA布局布线后仿真中异常信号溯源方法转让专利

申请号 : CN201310329500.5

文献号 : CN103440363B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴仁科蔡铭

申请人 : 浙江大学

摘要 :

本发明公开了一种FPGA布局布线后仿真中异常信号溯源方法。通过对布局布线后网表文件进行词法分析和语法分析,得出相应的逻辑器件与器件之间信号的连接关系并用有向图存储,由用户给出一个异常信号,逆向搜索有向图,得出能影响到此异常信号值的极大连通子图,抽取有向图中极大连通子图对应路径上的全部信号加入仿真软件进行仿真,得到相应的信号仿真VCD文件。从异常信号连接的节点开始,根据VCD文件,依次判断连接至此节点的信号是否是异常信号的来源,从任意一个异常信号的来源回溯,找到无异常信号来源的信号即异常信号的源。本发明使得FPGA测试验证人员可以简化后仿真测试验证过程的异常信号的定位流程,缩短信号溯源时间。

权利要求 :

1.一种FPGA布局布线后仿真中异常信号溯源方法,其特征在于,该方法的步骤如下:(1) 通过对布局布线后网表文件进行词法分析和语法分析,得出网表文件相应的逻辑器件与逻辑器件之间的信号以及所述信号与逻辑器件的输入输出关系;

(2) 使用有向图存储相应的逻辑器件与逻辑器件之间信号的连接关系;

(3) 由用户给出一个异常信号;

(4) 逆向搜索有向图,得出能影响到异常信号值的极大连通子图,抽取所述有向图中极大连通子图对应的路径的全部信号加入仿真软件,进行仿真,得到相应的信号仿真VCD文件;

(5) 从以异常信号作为输出边的节点开始,根据VCD文件,依次判断连接至此节点的信号是否是异常信号的来源,从任意一个异常信号的来源继续回溯,找到无异常信号来源的信号即异常信号的源并显示回溯的路径。

2.根据权利要求1所述的一种FPGA布局布线后仿真中异常信号溯源方法,其特征在于:所述的布局布线后网表文件构造逻辑器件与逻辑器件之间信号连接关系时需提取并分析芯片库文件中的模块逻辑结构。

3.根据权利要求1所述的一种FPGA布局布线后仿真中异常信号溯源方法,其特征在于:在使用有向图存储逻辑器件与逻辑器件之间信号的连接关系时将逻辑器件抽象为有向图的节点,使用逻辑器件的名称作为节点标识符,逻辑器件之间信号抽象为有向图的有向边,以逻辑器件之间信号名称作为有向边标识符。

4.根据权利要求1所述的一种FPGA布局布线后仿真中异常信号溯源方法,其特征在于:用户给出异常信号需同时给出异常信号名称及出现异常时的仿真时刻。

5.根据权利要求1所述的一种FPGA布局布线后仿真中异常信号溯源方法,其特征在于:所述的仿真软件为VCS或者modelsim。

6.根据权利要求1所述的一种FPGA布局布线后仿真中异常信号溯源方法,其特征在于:在回溯之前需对有向图进行处理,将有向图中存在的环缩减为一个节点。

说明书 :

一种FPGA布局布线后仿真中异常信号溯源方法

技术领域

[0001] 本发明涉及异常信号溯源方法,尤其是涉及一种FPGA布局布线后仿真中异常信号溯源方法。

背景技术

[0002] 随着FPGA(现场可编程逻辑阵列)设计变得日渐复杂,相应的测试验证难度在迅速加大。在布局布线后仿真验证过程中,验证人员常常会遇到信号值为不定态或者毛刺等异常情况,目前对于异常信号的查找和溯源主要通过观察波形和对信号值的分析,反复将可能是异常信号来源的信号加入仿真器进行仿真分析,由于布局布线后仿真中内部信号名发生了变化且自动生成大量的寄存器、查找表及其他与非门等逻辑单元,查找过程非常繁琐且难以准确定位产生此异常信号的信号源头。

发明内容

[0003] 本发明的目的在于提供一种FPGA布局布线后仿真中异常信号溯源方法,通过对布局布线后仿真逻辑网表的分析,提取少量的信号值进行仿真,并能快速定位异常信号的来源。
[0004] 本发明所采用的技术方案的步骤如下:
[0005]  (1) 通过对布局布线后网表文件进行词法分析和语法分析,得出网表文件相应的逻辑器件与逻辑器件之间的信号以及所述信号与逻辑器件的输入输出关系;
[0006] (2) 使用有向图存储相应的逻辑器件与逻辑器件之间信号的连接关系;
[0007] (3)由用户给出一个异常信号;
[0008] (4)逆向搜索有向图,得出能影响到异常信号值的极大连通子图,抽取所述有向图中极大连通子图对应的路径的全部信号加入仿真软件,进行仿真,得到相应的信号仿真VCD文件;
[0009] (5)从以异常信号作为输出边的节点开始,根据VCD文件,依次判断连接至此节点的信号是否是异常信号的来源,从任意一个异常信号的来源继续回溯,找到无异常信号来源的信号即异常信号的源并显示回溯的路径。
[0010] 所述的布局布线后网表文件构造逻辑器件与逻辑器件之间信号的连接关系时需提取并分析芯片库文件中的模块逻辑结构。
[0011] 在使用有向图存储逻辑器件与逻辑器件之间信号的连接关系时将逻辑器件抽象为有向图的节点,使用逻辑器件的名称做为节点标识符,逻辑器件之间信号抽象为有向图的有向边,以逻辑器件之间信号名称作为有向边标识符。
[0012] 用户给出异常信号需同时给出异常信号名称及出现异常时的仿真时刻。
[0013] 所述的仿真软件为VCS或者modelsim。
[0014] 在回溯之前需对有向图进行处理,将有向图中存在的环缩减为一个节点。
[0015] 本发明具有的有益效果是:
[0016] 本发明通过对布局布线后仿真逻辑网表的分析,提取少量的信号值进行仿真,并能快速定位异常信号的来源,使得FPGA测试验证人员可以简化后仿真测试验证过程的异常信号的定位流程,缩短信号溯源时间。

附图说明

[0017] 图1是布局布线后仿真中异常信号溯源方法流程图。
[0018] 图2是分析布局布线后网表文件流程图。
[0019] 图3是信号仿真流程图。
[0020] 图4是定位异常信号源流程图。

具体实施方式

[0021] 下面结合附图和实施例对本发明作进一步说明。
[0022] 如图1所示,本发明的步骤如下:
[0023] (1) 通过对布局布线后网表文件进行词法分析和语法分析,得出网表文件相应的逻辑器件与逻辑器件之间的信号以及所述信号与逻辑器件的输入输出关系;
[0024] (2) 使用有向图存储相应的逻辑器件与逻辑器件之间信号的连接关系;
[0025] 如图2所示,上述2个步骤具体如下:
[0026] 1)在提前设定的文件所在路径或者在指定工程目录下检索获得获取后仿真网表文件及相应库文件。
[0027] 2)利用flex和bison对网表文件进行词法分析和语法分析,提取逻辑器件名称,及逻辑器件的各端口信号。
[0028] 3)对应网表文件中的每一个端口信号,检索库文件模块确定此端口信号为逻辑器件的输入还是输出端口,得到网表文件中逻辑器件与逻辑器件之间信号的输入输出关系。
[0029] 4)将逻辑器件与输入输出信号之间的连接关系通过有向图进行抽象,有向图以十字链表进行存储,逻辑器件抽象为相应的节点,使用逻辑器件的名称作为节点标识符,逻辑器件之间的信号抽象为有向图的有向边,以逻辑器件之间信号名称作为有向边标识符,信号值对应相应边的权值,以输入信号作为起始边自输入到输出构建有向图,并加入相应的起始节点和终结点。
[0030] (3) 由用户给出一个异常信号,获取异常信号名称及异常时刻需提供一个输入界面并定义输入格式和要求。;
[0031] (4) 信号仿真流程,如图3所示,具体步骤如下:
[0032] 1)以异常信号为初始边开始逆向搜索有向图,得到能影响此信号的极大连通子图,提取有向图中极大连通子图对应路径上的全部信号。
[0033] 2)将步骤1)中提取的全部信号加入仿真软件开始仿真,仿真软件为VCS或者modelsim,将信号仿真信息转储为VCD文件。
[0034] (5) 从以异常信号作为输出边的节点开始,根据VCD文件,依次判断连接至此节点的信号是否是异常信号的来源,从任意一个异常信号的来源继续回溯,找到无异常信号来源的信号。如图4所示,具体步骤如下:
[0035] 1)对图3中步骤1)得到的极大连通子图进行预处理、将有向图中的环收缩为一个节点。
[0036] 2)从异常信号值连接的节点开始、结合图3中步骤2)得到VCD文件进行回溯分析。用tu表示信号异常出现的时刻,t0表示时间零点,根据具体情况定义为FPGA复位时刻或者FPGA芯片上电时刻。分析的过程如下:
[0037] a)读入当前异常信号所连接的节点;
[0038] b)读入输入边,分析VCD文件;
[0039] c)判断tu至t0是否存在异常信号,若不存在跳转至e),否则;
[0040] d)更新tu为输入边出现异常的时刻,更新当前异常信号为输入边,跳转至a);
[0041] e)判断是否还有其他输入边,若有跳转至b),否则
[0042] f)结束模块、记录并此信号为异常信号源
[0043] 3)判断异常信号源点是否在环路中,如果是的话,需要继续在环中寻找最早出现异常值的信号。
[0044] (6)将异常信号源的名称及发生异常的时刻以简洁的方式呈现,并显示溯源过程经过的全部路径。