一种基于RTL网表的复位网络提取方法与流程

文档序号:22879211发布日期:2020-11-10 17:36阅读:285来源:国知局
一种基于RTL网表的复位网络提取方法与流程

本发明属于复位分析的技术领域,具体涉及一种基于rtl网表的复位网络提取方法。



背景技术:

rtl(registertransferlevel,寄存器传输级)用硬件描述语言(veriloghdl或vhdl)描述理想达到的功能,可以表示为一个有限状态机或是一个可以在预定的时钟周期边界上进行寄存器传输的时序状态机。而跨时钟域通俗地讲,就是模块之间有数据交互,但是模块用的不是同一个时钟进行驱动,在跨时钟域的信号传输过程中,可能出现亚稳态的情况,同一时钟域内的异步复位跨域也可能出现亚稳态的情况。

随着集成电路设计的复杂度越来越高,异步复位的使用也越来越普遍。因此,跨复位域导致的设计错误问题日渐突显,而跨复位域分析的首要任务就是对集成电路设计中的复位网络进行提取,传统的复位网络提取是通过人工分析完成,随着集成电路设计规模的不断扩大,逻辑功能越来越复杂,人工分析的效率和准确性都大打折扣。



技术实现要素:

为解决上述技术问题中的至少之一,本发明提出一种基于rtl网表的复位网络提取方法。

本发明的目的通过以下技术方案实现:

本发明提供了一种基于rtl网表的复位网络提取方法,其特征在于,

s1:先获取集成电路硬件描述语言对应的rtl网表中所有的时序器件;

s2:对每个时序器件进行回溯推导得到每个时序器件的回溯信号路径;

s3:搜索回溯信号路径上的信号量和每个时序器件对应的硬件描述语言,并与回溯信号路径进行复位模式匹配,筛选得到复位信号路径并存入信号路径集;

s4:对信号路径集中的复位信号路径逐条合并,形成复位网络。

作为进一步的改进,所述每个时序器件进行回溯推导,是指从每个时序器件的输入端口开始,反向搜索与该输入端口连接的电路或器件,遇到时序器件时,则对该时序器件的输入端口进行反向跟踪,直到搜索至该输入端口的输入信号源,得到从输入信号源至时序器件的回溯信号路径。

作为进一步的改进,所述时序器件的输入端口包括复位端口、清零端口及数据输入端口。

作为进一步的改进,在s2步骤中,回溯信号路径以线性链表方式存储,每个回溯信号路径存储为一个线性链表。

作为进一步的改进,所述s3步骤中筛选得到复位信号路径,是指对硬件描述语言做词法和语法分析后生成抽象语法树,搜索每个时序器件抽象语法树的always语句块,遍历always语句块的敏感信号列表中包含的所有信号量作为备选信号量及该always语句块内第一次出现的条件表达式中的条件信号量,若条件表达式的语句块中存在对时序器件输出信号量赋值的语句,且回溯信号路径上的信号量与条件信号量匹配,则该回溯信号路径是复位信号路径。

作为进一步的改进,所述s4步骤中复位信号路径逐条合并,是指先从信号路径集中任意选取一条复位信号路径初始复位网络,然后信号路径集中的复位信号路径从输入信号源开始,逐条与复位网络中的节点进行对比,若复位信号路径与节点相同,则将复位网络中的当前节点与复位信号路径合并,合并后的节点与前驱节点连接;若不相同,则在复位网络中新建节点,新建节点与复位信号路径合并,合并后的节点与前驱节点连接,直到复位信号路径集中所有的复位信号路径与复位网络合并完成。

本发明提供的一种基于rtl网表的复位网络提取方法,先获取集成电路硬件描述语言对应的rtl网表中所有的时序器件,对每个时序器件进行回溯推导得到每个时序器件的回溯信号路径,搜索回溯信号路径上的信号量和每个时序器件对应的硬件描述语言,并与回溯信号路径进行复位模式匹配,筛选得到复位信号路径并存入信号路径集,对信号路径集中的复位信号路径逐条合并,形成复位网络。由于采用了上述方法,本发明具有如下优点:

(1)通过对时序器件的输入端口进行回溯推导,能够得到一条完整的回溯信号路径。

(2)复位模式匹配方法,结合rtl网表和硬件描述语言能够准确识别复位信号路径。

(3)信号路径合并,将提取到的复位信号路径逐条合并成完整的复位网络。

(4)基于rtl网表结合硬件描述语言系统的对集成电路设计进行分析并提取出复位网络,在保证分析结果准确性的同时还大幅提高了分析的工作效率。

附图说明

利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。

图1为本发明的流程图。

图2为本发明rtl网表的示意图。

具体实施方式

为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步详细的描述,需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

结合图1所示,本发明实施例提供一种基于rtl网表的复位网络提取方法,

s1:先获取集成电路硬件描述语言对应的rtl网表中所有的时序器件,rtl是用寄存器级的描述方式来描述电路的数据流,用硬件描述语言编写的代码都可转换为同类的rtl网表,使用综合工具生成硬件描述语言对应的rtl网表,即将硬件描述语言转换成电路,rtl网表中包括没有时钟驱动端口的组合逻辑电路和有时钟驱动端口的时序器件等信息,从rtl网表中提取有时钟驱动端口的所有时序器件。

s2:对每个时序器件进行回溯推导得到每个时序器件的回溯信号路径,具体的,从每个时序器件的输入端口开始,反向搜索与该端口连接的电路或器件,输入端口可包括复位端口、清零端口及数据输入端口,输入端口为当前时序器件与某个输入信号连接的端口,通过输入信号量为当前时序器件提供直接信号,输入信号量是硬件描述语言中连接到当前时序器件输入端口的变量,遇到时序器件则对该时序器件的数据输入端口进行反向跟踪,直到搜索至该端口的输入信号源,即连接到当前时序器件输入端口最源头的输入信号,输入信号源是输入信号量的信号来源,得到从输入信号源至时序器件的回溯信号路径,并将回溯信号路径以线性链表方式存储,每个回溯信号路径存储为一个线性链表,线性链表是采用链式存储的线性表,存储特点是,每个节点都分数据域和指针域两部分,数据域包含存储元素的值,回溯信号路径存储在数据域内,指针域包含存放直接前驱或直接后继元素的地址信息。

s3:搜索回溯信号路径上的信号量和每个时序器件对应的的硬件描述语言,并与回溯信号路径进行复位模式匹配,是先对集成电路采用的硬件描述语言做词法和语法分析后生成抽象语法树,搜索每个时序器件抽象语法树的always语句块,遍历always语句块的敏感信号列表中包含的所有信号量作为备选信号量及该always语句块内第一次出现的条件表达式中的条件信号量,若条件表达式的语句块中存在对时序器件输出信号量赋值的语句,且回溯信号路径上的信号量与条件信号量匹配,则该回溯信号路径是复位信号路径。

always语句块的敏感信号列表中包含的所有信号量,主要是集成电路所有的输入信号和条件判断信号,因为有时不完整的敏感信号列表会造成不同的仿真和综合结果,因此需要保证敏感信号列表信号量的完整性,敏感信号列表出现在always块中,其行为级的含义是只要敏感信号列表内的信号量发生电平变化,则always模块中的语句就执行一次。

结合图2所示,下述为时序器件对应的硬件描述语言与回溯信号路径进行复位模式匹配的示例:

从rtl网表中提取出的一条时序器件的回溯信号路径是:rst_n->dff(pre)->b,时序器件硬件描述语言对应的always语句块是:

表示在时钟的上升沿或复位的下降沿会执行if条件语句中的语句块,其中,pre是d触发器的名称,b是d触发器pre的输出信号量,a是d触发器pre的输入信号量,m1为子模块,m2为当前模块,clk为d触发器pre的时钟端信号,rst_n为d触发器pre的清零端信号,rst_n出现在always语句块的敏感信号列表中表示该d触发器为异步复位。

时序器件d触发器pre及其相关输入输出信号由该always语句块综合而来,则会获取该always语句敏感信号列表中的clk和rst_n信号量,得到备选信号量{clk,rst_n},always语句块第一次出现的条件表达式if语句中的条件信号量rst_n,以及该条件下对应的赋值语句b<=1'b0,并与回溯信号路径中的信号量进行对比,发现回溯信号路径的信号量与条件信号量rst_n匹配,同时被赋值信号b是d触发器pre的输出信号,因此该回溯信号路径即为复位信号路径;反之,备选信号量与回溯信号路径的信号量不匹配或者条件表达式语句块中没有对输出信号量的赋值语句,则该回溯信号路径不是复位信号路径。

s4:对信号路径集中的复位信号路径对应的回溯信号路径存储的线性链表进行逐条合并形成复位网络,即先从信号路径集中任意选取一条复位信号路径对应的回溯信号路径存储的线性链表作为初始复位网络,信号路径集中的复位信号路径从输入信号源开始,逐条与复位网络中的节点进行对比,复位信号路径与节点相同,则将复位网络中的当前节点与复位信号路径合并,合并后的节点与前驱节点连接;若不相同,则在复位网络中新建节点,新建节点与复位信号路径合并,合并后的节点与前驱节点连接,直到复位信号路径集中所有的复位信号路径与复位网络合并完成。

上面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,不能理解为对本发明保护范围的限制。

总之,本发明虽然列举了上述优选实施方式,但是应该说明,虽然本领域的技术人员可以进行各种变化和改型,除非这样的变化和改型偏离了本发明范围,否则都应该包括在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1