CN117592409A - 一种基于流图的hdl信号二值分析系统和方法 - Google Patents
一种基于流图的hdl信号二值分析系统和方法 Download PDFInfo
- Publication number
- CN117592409A CN117592409A CN202311718297.0A CN202311718297A CN117592409A CN 117592409 A CN117592409 A CN 117592409A CN 202311718297 A CN202311718297 A CN 202311718297A CN 117592409 A CN117592409 A CN 117592409A
- Authority
- CN
- China
- Prior art keywords
- signal
- analysis
- flow graph
- control
- representation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000010586 diagram Methods 0.000 title claims abstract description 18
- 230000003068 static effect Effects 0.000 claims abstract description 12
- 238000012300 Sequence Analysis Methods 0.000 claims abstract description 7
- 238000004088 simulation Methods 0.000 abstract description 19
- 238000004364 calculation method Methods 0.000 abstract description 13
- 230000006978 adaptation Effects 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于流图的HDL信号二值分析系统和方法,包括依次连接的流图生成模块、静态分析模块和结果输出模块,流图生成模块用于将原始设计的AST表示转为流图表示,并为设计中的每个信号生成专属数据流图;静态分析模块用于遍历每个信号的专属数据流图进行时序分析和控制分析,得到对应信号的二值化分析结果;结果输出模块用于将对应信号的二值化分析结果输出。上述一种基于流图的HDL信号二值分析系统和方法,将信号在仿真过程中的计算逻辑简化为二值计算,大大减少了仿真过程的计算量,有效提高仿真性能和速度。
Description
技术领域
本发明属于电子设计自动化(EDA)技术领域,特别是涉及一种基于流图的HDL信号二值分析系统和方法。
背景技术
仿真是硬件设计过程中一个不可缺少的环节,硬件设计模块只有经过了严格的仿真测试以后,才能启动后序的其他流程,因此仿真的性能会严重影响硬件设计流程的效率。一些文献中阐述了HDL仿真中遇到的各种问题,其中一个突出的问题就是由于SystemVerilog规定信号除了0/1之外,还可以有x/z两个额外的状态,也即SystemVerilog中的信号都是四值的。为了表示信号的四值状态,每位信号都需要2比特存储:
c:控制字段,每位信号分配1比特;d:数据字段,每位信号分配1比特;如果c的值为0,那么d的值即信号的值;如果c的值为1,那么信号值为x/z。
所以即使是一条简单的S=A&B语句,如表1所示:
在仿真过程中也需要复杂的计算,如表2所示:
信号可被二值化是指信号在整个仿真过程中、或者满足某个条件以后,该信号的控制字段将一直为0,信号将只有0/1两个状态。而信号二值分析是指通过某种手段获得信号是否可被二值化的信息。
考虑到在实际的硬件设计中,通常大多数信号在经过reset以后,在后面的整个仿真过程中通常都只将有0/1两个状态,也即在经过reset赋初值以后,大部分信号的控制字段在接下来的仿真中都会维持0不变。因此如果能够在编译期通过一些方法将这些信号识别出来,那么这些信号在仿真过程中的计算逻辑就可以被简化为二值计算(如表3所示),大大减少了计算量,从而提升仿真速度。
因此,基于以上问题,提出一种基于流图的HDL信号二值分析系统和方法。
发明内容
针对以上技术问题,本发明提供一种基于流图的HDL信号二值分析系统和方法。
本发明解决其技术问题采用的技术方案是:
一种基于流图的HDL信号二值分析系统,包括依次连接的流图生成模块、静态分析模块和结果输出模块,
流图生成模块用于将原始设计的AST表示转为流图表示,并为设计中的每个信号生成专属数据流图;
静态分析模块用于遍历每个信号的专属数据流图进行时序分析和控制分析,得到对应信号的二值化分析结果;
结果输出模块用于将对应信号的二值化分析结果输出。
优选地,流图生成模块用于将原始设计的AST表示转为流图表示,包括:
创建start节点作为流图起始节点;
遍历原始设计的AST创建节点,并根据原始设计中的语句执行顺序添加有向边;
在start节点和AST中initial、continuous assign、always语句所对应的节点之间添加有向边;
分析信号之间的依赖关系,并根据依赖关系在流图上添加对应的有向边,形成最终的流图表示。
优选地,流图生成模块为设计中的每个信号生成专属数据流图,包括:
以对当前信号变量值进行修改的节点开始依次向上分析,分析过程中忽略对其它信号变量值进行更新的节点,保留控制类节点,直至遇到start节点或者终止节点,形成当前信号的专属数据流图。
优选地,控制类节点包括事件控制节点、时序控制节点和条件控制节点。
优选地,静态分析模块用于对每个信号的专属数据流图进行时序分析和控制分析包括:
通过每个信号的专属数据流图上的时序节点,确定当前信号的信号值的更新时序条件;
通过每个信号的专属数据流图上的控制节点,确定当前信号的信号值的更新控制条件。
优选地,在控制分析过程中,需结合其他信号的二值分析结果,以确定该控制节点在当前时序条件下是否会被满足。
优选地,对应信号的二值化分析结果包括:
当前信号是否可被二值化,当可被二值化时,对应的二值化的条件;
可被二值简化的语句。
一种基于流图的HDL信号二值分析系统的基于流图的HDL信号二值分析方法,包括以下步骤:
获取原始设计的AST表示,将原始设计的AST表示转为流图表示,并为设计中的每个信号生成专属数据流图;
遍历每个信号的专属数据流图进行时序分析和控制分析,得到对应信号的二值化分析结果并输出。
上述一种基于流图的HDL信号二值分析系统和方法,将信号在仿真过程中的计算逻辑简化为二值计算,大大减少了仿真过程的计算量,有效提高仿真性能和速度。
附图说明
图1为本发明一实施例中一种基于流图的HDL信号二值分析系统的结构示意图;
图2为本发明一实施例中样例流图表示图;
图3为本发明一实施例中clk信号的专属数据流图;
图4为本发明一实施例中rst信号的专属数据流图;
图5为本发明一实施例中data信号的专属数据流图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
在一个实施例中,如图1所示,一种基于流图的HDL信号二值分析系统,包括依次连接的流图生成模块、静态分析模块和结果输出模块,
流图生成模块用于将原始设计的AST表示转为流图表示,并为设计中的每个信号生成专属数据流图;
静态分析模块用于遍历每个信号的专属数据流图进行时序分析和控制分析,得到对应信号的二值化分析结果;
结果输出模块用于将对应信号的二值化分析结果输出。
具体地,提出了一种基于流图的二值分析系统,该系统首先将设计AST转为流图形式,然后为每个信号生成该信号自己的专属数据流图,再通过对信号的专属数据流图在时序上进行分析,得到信号可被二值化的条件。
在一个实施例中,流图生成模块用于将原始设计的AST表示转为流图表示,包括:
创建start节点作为流图起始节点;
遍历原始设计的AST创建节点,并根据原始设计中的语句执行顺序添加有向边;
在start节点和AST中initial、continuous assign、always语句所对应的节点之间添加有向边;
分析信号之间的依赖关系,并根据依赖关系在流图上添加对应的有向边,形成最终的流图表示。
具体地,全文将以下列AST表示作为样例说明:
流图生成模块首先会创建start节点作为起始节点,然后遍历AST创建必要的流图节点和边,最后还会分析信号变量之间的依赖关系并添加对应的边。如本例中clk=~clk语句可能会触发always@(posedge clk)的发生,因此需要在这两个节点之间添加边。经过上述一系列的处理过程,该样例最终可以被表示为如图2流图。其中,AST中包括@/#/wait等控制语句、if/case等条件语句、赋值语句、系统函数调用等,需要为上述AST节点创建流图节点和边。
在一个实施例中,流图生成模块为设计中的每个信号生成专属数据流图,包括:
以对当前信号变量值进行修改的节点开始依次向上分析,分析过程中忽略对其它信号变量值进行更新的节点,但保留控制类节点,直至遇到start节点或者终止节点,形成当前信号的专属数据流图。
在一个实施例中,控制类节点包括事件控制节点、时序控制节点和条件控制节点。
具体地,接着,数据流图生成模块会为每个信号变量生成它们自己的专属数据流图。以data信号变量为例,上一步生成的流图中一共有两个节点会对data的值进行修改,这两个节点分别为data<=0和data<=data+1。因此将从这两个节点开始,依次向上分析,分析过程中会忽略对其他值进行更新的节点,但需要保留事件控制、时序控制、条件控制等控制类节点,直至遇到start节点或者always等终止节点,最终会形成如下图所示的data信号变量数据流图。同理,clk和rst信号也将得到如图3-5所示的数据流图。
在一个实施例中,静态分析模块用于对每个信号的专属数据流图进行时序分析和控制分析包括:
通过每个信号的专属数据流图上的时序节点,确定当前信号的信号值的更新时序条件;
通过每个信号的专属数据流图上的控制节点,确定当前信号的信号值的更新控制条件。
在一个实施例中,在控制分析过程中,需结合其他信号的二值分析结果,以确定该控制节点在当前时序条件下是否会被满足。
具体地,静态分析会遍历信号的数据流图,最终得到该信号的二值化分析结果。如本例中的data信号,经过分析会知道data一共存在两种值更新的条件:
@(posedge clk)和!rst=True时被赋值为0;
@(posedge clk)和!rst=False时被赋值为data+1。
因为data在0时刻没有初始化语句,因此data是否可被二值化就取决于data何时被赋值为0,结合对clk和rst的二值分析可以知道,clk和rst在0时刻以后都是可二值化的;clk在1、3、5...等时刻会触发@(posedge clk)控制条件,rst在0-5时刻满足!rst=True条件。最终可以分析出,data在1时刻以后都是可被二值化的,又因为data<=data+1语句永远在1时刻以后才会被执行,所以在对data<=data+1进行代码生成时,可以直接忽略data的控制字段,只使用数据字段即可。
在一个实施例中,对应信号的二值化分析结果包括:
当前信号是否可被二值化,当可被二值化时,对应的二值化的条件;
可被二值简化的语句。
具体地,经过上述分析,最终可以得到clk、rst、data信号的二值分析结果为:
clk在0时刻以后是可二值化的;rst在0时刻以后是可二值化的;data在1时刻以后是可二值化的;data<=data+1语句是可以二值简化的。
一种基于流图的HDL信号二值分析方法,包括以下步骤:
获取原始设计的AST表示,将原始设计的AST表示转为流图表示,并为设计中的每个信号生成专属数据流图;
遍历每个信号的专属数据流图进行时序分析和控制分析,得到对应信号的二值化分析结果并输出。
上述一种基于流图的HDL信号二值分析系统和方法,将信号在仿真过程中的计算逻辑简化为二值计算,大大减少了仿真过程的计算量,有效提高仿真性能和速度。
以上对本发明所提供的一种基于流图的HDL信号二值分析系统和方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种基于流图的HDL信号二值分析系统,其特征在于,包括依次连接的流图生成模块、静态分析模块和结果输出模块,
所述流图生成模块用于将原始设计的AST表示转为流图表示,并为设计中的每个信号生成专属数据流图;
所述静态分析模块用于遍历每个信号的所述专属数据流图进行时序分析和控制分析,得到对应信号的二值化分析结果;
所述结果输出模块用于将对应信号的二值化分析结果输出。
2.根据权利要求1所述的系统,其特征在于,所述流图生成模块用于将原始设计的AST表示转为流图表示,包括:
创建start节点作为流图起始节点;
遍历原始设计的AST创建节点,并根据原始设计中的语句执行顺序添加有向边;
在所述start节点和所述AST中initial、continuous assign、always语句所对应的节点之间添加有向边;
分析信号之间的依赖关系,并根据依赖关系在流图上添加对应的有向边,形成最终的流图表示。
3.根据权利要求1所述的系统,其特征在于,所述流图生成模块为设计中的每个信号生成专属数据流图,包括:
以对当前信号变量值进行修改的节点开始依次向上分析,分析过程中忽略对其它信号变量值进行更新的节点,但保留控制类节点,直至遇到start节点或者终止节点,形成当前信号的专属数据流图。
4.根据权利要求3所述的系统,其特征在于,所述控制类节点包括事件控制节点、时序控制节点和条件控制节点。
5.根据权利要求1所述的系统,其特征在于,所述静态分析模块用于对每个信号的专属数据流图进行时序分析和控制分析包括:
通过所述每个信号的专属数据流图上的时序节点,确定当前信号的信号值的更新时序条件;
通过所述每个信号的专属数据流图上的控制节点,确定当前信号的信号值的更新控制条件。
6.根据权利要求5所述的系统,其特征在于,在控制分析过程中,需结合其他信号的二值分析结果,以确定该控制节点在当前时序条件下是否会被满足。
7.根据权利要求5或6所述的系统,其特征在于,所述对应信号的二值化分析结果包括:
当前信号是否可被二值化,当可被二值化时,对应的二值化的条件;
可被二值简化的语句。
8.一种基于权利要求1至7中任一项所述系统的基于流图的HDL信号二值分析方法,其特征在于,包括以下步骤:
获取原始设计的AST表示,将所述原始设计的AST表示转为流图表示,并为设计中的每个信号生成专属数据流图;
遍历每个信号的所述专属数据流图进行时序分析和控制分析,得到对应信号的二值化分析结果并输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311718297.0A CN117592409A (zh) | 2023-12-13 | 2023-12-13 | 一种基于流图的hdl信号二值分析系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311718297.0A CN117592409A (zh) | 2023-12-13 | 2023-12-13 | 一种基于流图的hdl信号二值分析系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117592409A true CN117592409A (zh) | 2024-02-23 |
Family
ID=89909939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311718297.0A Pending CN117592409A (zh) | 2023-12-13 | 2023-12-13 | 一种基于流图的hdl信号二值分析系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117592409A (zh) |
-
2023
- 2023-12-13 CN CN202311718297.0A patent/CN117592409A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
CN107273269B (zh) | 日志解析方法及装置 | |
CN109086215B (zh) | 一种嵌入式软件单元测试用例生成方法及系统 | |
US8302041B1 (en) | Implementation flow for electronic circuit designs using choice networks | |
US7350180B1 (en) | Search algorithm for inheriting clock contexts in hardware description language translation tools | |
US11269760B2 (en) | Systems and methods for automated testing using artificial intelligence techniques | |
CN113569524B (zh) | 芯片设计中基于综合网表提取时钟树的方法及应用 | |
CN114756219B (zh) | 一种基于c++的fpga硬件构造语言实现系统 | |
CN106648636B (zh) | 一种基于图挖掘的软件函数变更预测系统及方法 | |
CN109725900B (zh) | 寄存器传输级Verilog代码的SMV模型构建方法 | |
CN108563561B (zh) | 一种程序隐性约束提取方法及系统 | |
US6760889B2 (en) | Method for converting a logic circuit model | |
US8418119B2 (en) | Logical circuit netlist reduction and model simplification using simulation results containing symbolic values | |
CN116204847A (zh) | 一种计算图优化方法、装置及设备 | |
CN111381828A (zh) | 生成代码文件的语法树的方法、装置及电子设备 | |
CN112651197A (zh) | 电路划分预处理的方法及门级电路并行仿真的方法 | |
US8849650B2 (en) | System and method for automatically generating sentences of a language | |
US8954307B1 (en) | Chained programming language preprocessors for circuit simulation | |
CN117592409A (zh) | 一种基于流图的hdl信号二值分析系统和方法 | |
CN115167868B (zh) | 代码编译方法、装置、设备及计算机存储介质 | |
CN111143448A (zh) | 一种知识库构建方法 | |
CN113568598B (zh) | 基于yosys实现求和运算的FPGA逻辑综合方法及装置 | |
CN115576603A (zh) | 一种获取代码片段中的变量值的方法及装置 | |
CN111381826A (zh) | 生成代码文件的语法树的方法、装置及电子设备 | |
CN113849187A (zh) | 面向量子线路噪声的编译优化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |