CN117313593A - 一种组合逻辑电路的寄存器传输级代码生成方法及系统 - Google Patents
一种组合逻辑电路的寄存器传输级代码生成方法及系统 Download PDFInfo
- Publication number
- CN117313593A CN117313593A CN202311284606.8A CN202311284606A CN117313593A CN 117313593 A CN117313593 A CN 117313593A CN 202311284606 A CN202311284606 A CN 202311284606A CN 117313593 A CN117313593 A CN 117313593A
- Authority
- CN
- China
- Prior art keywords
- rule
- logic circuit
- combinational logic
- input combination
- truth table
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000005540 biological transmission Effects 0.000 title claims abstract description 17
- 238000012795 verification Methods 0.000 claims abstract description 32
- 101150112154 outJ gene Proteins 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 28
- 238000012546 transfer Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 17
- 230000009191 jumping Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 6
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000003786 synthesis reaction Methods 0.000 claims 1
- 101150061215 outM gene Proteins 0.000 abstract description 5
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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]
-
- 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/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
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)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种组合逻辑电路的寄存器传输级代码生成方法及系统,本发明包括把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;根据真值表生成组合逻辑电路的寄存器传输级代码,其中遍历是指以检查规则rule1~ruleK作为约束条件,遍历2N种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值。本发明旨在通过构建真值表生成组合逻辑电路的寄存器传输级代码时实现对更大规模的输入的支持,生成的RTL代码不需要对其进行功能验证且有利于综合工具生成时序优化的电路。
Description
技术领域
本发明涉及集成电路设计技术领域,具体涉及一种组合逻辑电路的寄存器传输级(Register-Transfer Level,RTL)代码生成方法及系统。
背景技术
集成电路设计的重要一环就是编写RTL代码(寄存器传输级代码),也就是进行逻辑设计。一个集成电路主要由两部分组成:时序逻辑电路和组合逻辑电路。时序逻辑电路通常就是一组寄存器,这组寄存器按照给定时钟脉冲来进行时序操作,使得时序逻辑电路具有记忆功能;组合逻辑电路则由逻辑门组成,提供电路的逻辑功能。
对于任何一个组合逻辑电路,无论功能多么复杂,都可以将其抽象成具有N个输入和M个输出的函数,记为(out1,out2,…,outM)=f(in1,in2,…,inN),其中每个输入和输出都是一位数字信号。每个输入信号要么为0,要么为1,所以,对于具有N个输入的组合逻辑,共有2N种输入组合。在编写具有N个输入、M个输出的组合逻辑电路的代码时,可以采用构建完整真值表的方法。如图2所示,该真值表具有2N行、(N+M)列,其中1~N列分别对应输入in1~inN,(N+1)~(N+1+M)列分别对应输出out1~outM,1~2N行分别对应2N种输入组合,比如第一行对应{in1,in2,…,inN}=0,第二行对应{in1,in2,…,inN}=1,以此类推,第2N行对应{in1,in2,…,inN}=2N-1。在每种输入组合下,一个输出信号的取值可能有3种情况:1,0或“-”。“-”表示在这种输入组合下,这根输出信号的值是什么逻辑电路并不关心,是0或者是1都不影响电路的功能。根据组合逻辑电路要实现的功能填写出完整的真值表后,就可以通过与、或、非等逻辑门编写出这段组合逻辑电路的RTL代码。
采用构建完整真值表的方法生成RTL代码有诸多优点:真值表的构建非常直观,不需要进行高层次抽象,且考虑了所有可能情况,所以出错概率相对低;根据真值表生成RTL代码的过程可以由工具自动完成,只要真值表构建正确,RTL代码的正确性就有保证;生成的RTL代码非常接近底层实现,有利于综合工具生成时序优化的电路。但是这种方法最大的问题就是能够处理的输入信号规模有限。假设共有10根输入信号,那么有1024种输入组合,构建完整的真值表需要填写1024行的信息;可是当输入信号为20根时,就有超过100万种输入组合,构建完整的真值表需要填写超过100万行的信息,人工填写规模如此庞大的真值表是非常困难的。当输入信号较多时,通常需要根据组合逻辑电路要实现的功能进行高层次抽象或对输入场景进行合并以减少真值表的规模,与构建完整的真值表相比,这些方法编写出来的代码出错概率相对高、需要进行充分的功能验证,而且时序可能会差。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种组合逻辑电路的寄存器传输级代码生成方法及系统,本发明旨在通过构建真值表生成组合逻辑电路的寄存器传输级代码时实现对更大规模的输入的支持,生成的RTL代码不需要对其进行功能验证且有利于综合工具生成时序优化的电路。
为了解决上述技术问题,本发明采用的技术方案为:
一种组合逻辑电路的寄存器传输级代码生成方法,包括:
S101,把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;
S102,根据真值表生成组合逻辑电路的寄存器传输级代码。
可选地,步骤S101包括:
S201,确定组合逻辑电路的N个输入in1~inN,M个输出out1~outM,以及K条进行功能验证所使用的检查规则rule1~ruleK;
S202,以检查规则rule1~ruleK作为约束条件,遍历2N种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值为0、1还是“-”,其中“-”表示既可以为0也可以为1,从而得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表。
可选地,步骤S202包括:
S301,初始化行变量I为0,进入步骤S302;
S302,判断行变量I是否小于2N,如果是,进入步骤S303;否则表示已经遍历完所有由N个输入in1~inN构成的输入组合,得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表,跳转至步骤S102;
S303,初始化列变量J为1,进入步骤S304;
S304,判断列变量J是否大于M,如果是,表示在当前输入组合下,真值表中所有输出信号的对应位都已经填写完成,跳转至步骤S313,否则进入步骤S305;
S305,根据N个输入in1~inN生成不重复的输入组合作为当前输入组合,进入步骤306;
S306,令第J个输出outJ的取值为0,判断输入组合取值为当前输入组合、第J个输出outJ为0是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为0,进入步骤S307,否则跳转至步骤S309;
S307,令第J个输出outJ的取值为1,判断输入组合取值为当前输入组合、第J个输出outJ为1是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为1,第J个输出outJ既不能为0也不能为1,说明检查规则定义有错,需要重新定义检查规则,结束并退出;否则表示当前输入组合下第J个输出outJ不能为0但是可以为1,进入步骤S308;
S308,将真值表中第I行第J个输出outJ的对应位填1,跳转至步骤S312;
S309,令第J个输出outJ的取值为1,判断输入组合取值为当前输入组合、第J个输出outJ为1是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为1但是可以为0,进入步骤S310,否则表示当前输入组合下第J个输出outJ既可以为0也可以为1,跳转至步骤S311;
S310,将真值表中第I行outJ第J个输出的对应位填0,跳转至步骤S312;
S311,将真值表中第I行outJ第J个输出的对应位填“-”,进入步骤S312;
S312,令J=J+1,然后跳回至步骤S304;
S313,令I=I+1,然后跳回至步骤S302。
可选地,步骤S202为采用形式化验证工具完成。
可选地,步骤S102之后,还包括针对根据真值表生成的组合逻辑电路的寄存器传输级代码,跳过对寄存器传输级代码进行功能验证,直接采用综合工具生成电路。
此外,本发明还提供一种组合逻辑电路的寄存器传输级代码生成系统,包括:
真值表生成程序单元,用于把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;
代码生成程序单元,用于根据真值表生成组合逻辑电路的寄存器传输级代码。
可选地,所述真值表生成程序单元包括:
初始化程序模块,用于确定组合逻辑电路的N个输入in1~inN,M个输出out1~outM,以及K条进行功能验证所使用的检查规则rule1~ruleK;
输入组合真值循环构建程序模块,用于以检查规则rule1~ruleK作为约束条件,遍历2N种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值为0、1还是“-”,其中“-”表示既可以为0也可以为1,从而得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表。
此外,本发明还提供一种组合逻辑电路的寄存器传输级代码生成系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述组合逻辑电路的寄存器传输级代码生成方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述组合逻辑电路的寄存器传输级代码生成方法。
此外,本发明还提供一种计算机程序产品,所述计算机程序产品中包含计算机程序或者指令,所述计算机程序或者指令用于被微处理器编程或配置以执行所述组合逻辑电路的寄存器传输级代码生成方法。
和现有技术相比,本发明主要具有下述优点:
1、本发明能处理更大规模的输入。本发明提出一种RTL代码的生成方法,该方法中人工只需要定义检查规则,形式化验证工具根据检查规则判断每种输入组合下输出信号的合法取值,从而构建出完整的真值表,相比于人工填写真值表,工具能够处理更大规模的输入。
2、本发明生成的RTL代码不需要对其进行功能验证。本发明把功能验证使用的检查规则作为约束条件,遍历每种输入组合下输出取特定值时是否违反检查规则,依此填写真值表,再根据真值表生成RTL代码。从真值表生成RTL的过程可以通过工具自动完成,只要真值表构建正确,RTL代码的正确性就有保证。而真值表是由工具依据检查规则生成的,只要检查规则定义是完备的,那么生成的真值表就是符合设计预期的,所以RTL一旦生成,就是不违反所定义的检查规则的代码,不需要再进行功能验证。
3、本发明生成的RTL代码有利于综合工具生成时序优化的电路。本发明也是通过构建完整的真值表生成RTL代码,RTL代码非常接近底层实现,有利于综合工具生成时序优化的电路。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中构建的真值表示例。
图3为本发明实施例方法的详细流程示意图。
具体实施方式
本发明的基本原理是:在对组合逻辑代码进行功能验证时,可以采用模拟验证或形式化验证方法,无论采用哪种验证方法,通常都会定义一系列检查规则,如果代码没有违反这些检查规则,就认为这段代码符合设计预期。假设定义的检查规则是完备的、能够覆盖组合逻辑电路的所有功能场景,那么不违反所定义的检查规则的代码就是功能正确的代码。在此基础上,如图1所示,本实施例提供一种组合逻辑电路的寄存器传输级代码(RTL代码)生成方法,包括:
S101,把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;
S102,根据真值表生成组合逻辑电路的寄存器传输级代码。
本实施例中,步骤S101包括:
S201,确定组合逻辑电路的N个输入in1~inN,M个输出out1~outM,以及K条进行功能验证所使用的检查规则rule1~ruleK;
S202,以检查规则rule1~ruleK作为约束条件,遍历2N种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值为0、1还是“-”,其中“-”表示既可以为0也可以为1,从而得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表。图2为本实施例中构建的真值表示例,参见图2可知,该组合逻辑电路的N个输入分别为in1、in2、…、inN,M个输出分别为out1、out2、…、outM;N个输入构成了2N种由N个输入in1~inN构成的输入组合,每一种输入组合下,M个输出out1~outM中每个输出的取值为0、1或者“-”,其中“-”表示既可以为0也可以为1。
如图3所示,本实施例步骤S202包括:
S301,初始化行变量I为0,进入步骤S302;;
S302,判断行变量I是否小于2N,如果是,进入步骤S303;否则表示已经遍历完所有由N个输入in1~inN构成的输入组合,得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表,跳转至步骤S102;
S303,初始化列变量J为1,进入步骤S304;
S304,判断列变量J是否大于M,如果是,表示在当前输入组合下,真值表中所有输出信号的对应位都已经填写完成,跳转至步骤S313,否则进入步骤S305;
S305,根据N个输入in1~inN生成不重复的输入组合作为当前输入组合,进入步骤306;
S306,令第J个输出outJ的取值为0,判断输入组合取值为当前输入组合、第J个输出outJ为0是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为0,进入步骤S307,否则跳转至步骤S309;
S307,令第J个输出outJ的取值为1,判断输入组合取值为当前输入组合、第J个输出outJ为1是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为1,第J个输出outJ既不能为0也不能为1,说明检查规则定义有错,需要重新定义检查规则,结束并退出;否则表示当前输入组合下第J个输出outJ不能为0但是可以为1,进入步骤S308;
S308,将真值表中第I行第J个输出outJ的对应位填1,跳转至步骤S312;
S309,令第J个输出outJ的取值为1,判断输入组合取值为当前输入组合、第J个输出outJ为1是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为1但是可以为0,进入步骤S310,否则表示当前输入组合下第J个输出outJ既可以为0也可以为1,跳转至步骤S311;
S310,将真值表中第I行outJ第J个输出的对应位填0,跳转至步骤S312;
S311,将真值表中第I行outJ第J个输出的对应位填“-”,进入步骤S312;
S312,令J=J+1,然后跳回至步骤S304;
S313,令I=I+1,然后跳回至步骤S302。
本实施例中,步骤S202为采用形式化验证工具完成。此外,步骤S102根据真值表生成组合逻辑电路的寄存器传输级代码为现有方法,可利用现有工具实现,故其实现细节在此不再详述。本实施例中,步骤S102之后,还包括针对根据真值表生成的组合逻辑电路的寄存器传输级代码,跳过对寄存器传输级代码进行功能验证,直接采用综合工具生成电路,从而可以快速生成时序优化的电路。
综上所述,相对于传统的人工填写真值表的方式而言,本实施例方法借助形式化验证工具依据对组合逻辑电路进行功能验证所使用的检查规则来生成真值表,从而使得本实施例方法能处理更大规模的输入,而且由于RTL代码直接依据对组合逻辑电路进行功能验证所使用的检查规则,因此生成的RTL代码不需要对其进行功能验证且有利于综合工具生成时序优化的电路。
此外,本实施例还提供一种组合逻辑电路的寄存器传输级代码生成系统,包括:真值表生成程序单元,用于把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;代码生成程序单元,用于根据真值表生成组合逻辑电路的寄存器传输级代码。
本实施例中,所述真值表生成程序单元包括:初始化程序模块,用于确定组合逻辑电路的N个输入in1~inN,M个输出out1~outM,以及K条进行功能验证所使用的检查规则rule1~ruleK;输入组合真值循环构建程序模块,用于以检查规则rule1~ruleK作为约束条件,遍历2N种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值为0、1还是“-”,其中“-”表示既可以为0也可以为1,从而得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表。
此外,本实施例还提供一种组合逻辑电路的寄存器传输级代码生成系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述组合逻辑电路的寄存器传输级代码生成方法。此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述组合逻辑电路的寄存器传输级代码生成方法。此外,本实施例还提供一种计算机程序产品,所述计算机程序产品中包含计算机程序或者指令,所述计算机程序或者指令用于被微处理器编程或配置以执行所述组合逻辑电路的寄存器传输级代码生成方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种组合逻辑电路的寄存器传输级代码生成方法,其特征在于,包括:
S101,把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;
S102,根据真值表生成组合逻辑电路的寄存器传输级代码。
2.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S101包括:
S201,确定组合逻辑电路的N个输入in1~inN,M个输出out1~outM,以及K条进行功能验证所使用的检查规则rule1~ruleK;
S202,以检查规则rule1~ruleK作为约束条件,遍历2N种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值为0、1还是“-”,其中“-”表示既可以为0也可以为1,从而得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表。
3.根据权利要求2所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S202包括:
S301,初始化行变量I为0,进入步骤S302;
S302,判断行变量I是否小于2N,如果是,进入步骤S303;否则表示已经遍历完所有由N个输入in1~inN构成的输入组合,得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表,跳转至步骤S102;
S303,初始化列变量J为1,进入步骤S304;
S304,判断列变量J是否大于M,如果是,表示在当前输入组合下,真值表中所有输出信号的对应位都已经填写完成,跳转至步骤S313,否则进入步骤S305;
S305,根据N个输入in1~inN生成不重复的输入组合作为当前输入组合,进入步骤306;
S306,令第J个输出outJ的取值为0,判断输入组合取值为当前输入组合、第J个输出outJ为0是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为0,进入步骤S307,否则跳转至步骤S309;
S307,令第J个输出outJ的取值为1,判断输入组合取值为当前输入组合、第J个输出outJ为1是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为1,第J个输出outJ既不能为0也不能为1,说明检查规则定义有错,需要重新定义检查规则,结束并退出;否则表示当前输入组合下第J个输出outJ不能为0但是可以为1,进入步骤S308;
S308,将真值表中第I行第J个输出outJ的对应位填1,跳转至步骤S312;
S309,令第J个输出outJ的取值为1,判断输入组合取值为当前输入组合、第J个输出outJ为1是否在检查规则rule1~ruleK中存在检查规则的违反,如果是,表示当前输入组合下第J个输出outJ不能为1但是可以为0,进入步骤S310,否则表示当前输入组合下第J个输出outJ既可以为0也可以为1,跳转至步骤S311;
S310,将真值表中第I行outJ第J个输出的对应位填0,跳转至步骤S312;
S311,将真值表中第I行outJ第J个输出的对应位填“-”,进入步骤S312;
S312,令J=J+1,然后跳回至步骤S304;
S313,令I=I+1,然后跳回至步骤S302。
4.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S202为采用形式化验证工具完成。
5.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S102之后,还包括针对根据真值表生成的组合逻辑电路的寄存器传输级代码,跳过对寄存器传输级代码进行功能验证,直接采用综合工具生成电路。
6.一种组合逻辑电路的寄存器传输级代码生成系统,其特征在于,包括:
真值表生成程序单元,用于把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;
代码生成程序单元,用于根据真值表生成组合逻辑电路的寄存器传输级代码。
7.根据权利要求6所述的组合逻辑电路的寄存器传输级代码生成系统,其特征在于,所述真值表生成程序单元包括:
初始化程序模块,用于确定组合逻辑电路的N个输入in1~inN,M个输出out1~outM,以及K条进行功能验证所使用的检查规则rule1~ruleK;
输入组合真值循环构建程序模块,用于以检查规则rule1~ruleK作为约束条件,遍历2N种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值为0、1还是“-”,其中“-”表示既可以为0也可以为1,从而得到由M个输出out1~outM中每个输出的取值为0、1还是“-”构成的真值表。
8.一种组合逻辑电路的寄存器传输级代码生成系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~5中任意一项所述组合逻辑电路的寄存器传输级代码生成方法。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~5中任意一项所述组合逻辑电路的寄存器传输级代码生成方法。
10.一种计算机程序产品,所述计算机程序产品中包含计算机程序或者指令,其特征在于,所述计算机程序或者指令用于被微处理器编程或配置以执行权利要求1~5中任意一项所述组合逻辑电路的寄存器传输级代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311284606.8A CN117313593A (zh) | 2023-09-28 | 2023-09-28 | 一种组合逻辑电路的寄存器传输级代码生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311284606.8A CN117313593A (zh) | 2023-09-28 | 2023-09-28 | 一种组合逻辑电路的寄存器传输级代码生成方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117313593A true CN117313593A (zh) | 2023-12-29 |
Family
ID=89284482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311284606.8A Pending CN117313593A (zh) | 2023-09-28 | 2023-09-28 | 一种组合逻辑电路的寄存器传输级代码生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117313593A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117907812A (zh) * | 2024-03-20 | 2024-04-19 | 英诺达(成都)电子科技有限公司 | 电路检测方法及装置、电子设备、存储介质、程序产品 |
-
2023
- 2023-09-28 CN CN202311284606.8A patent/CN117313593A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117907812A (zh) * | 2024-03-20 | 2024-04-19 | 英诺达(成都)电子科技有限公司 | 电路检测方法及装置、电子设备、存储介质、程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6553514B1 (en) | Digital circuit verification | |
EP3076298B1 (en) | Methods and apparatus for embedding an error correction code in memory cells | |
US20090210841A1 (en) | Static timing analysis of template-based asynchronous circuits | |
KR20070078960A (ko) | 디지털 회로의 자동 설계 장치, 자동 설계 방법, 및 자동설계 프로그램 | |
CN117313593A (zh) | 一种组合逻辑电路的寄存器传输级代码生成方法及系统 | |
US7346862B2 (en) | Method and apparatus for optimizing a logic network in a digital circuit | |
CN112069763B (zh) | 修正电路的方法 | |
CN104620242A (zh) | 相关时序架构 | |
US20120054698A1 (en) | Logic modification synthesis | |
US7546560B2 (en) | Optimization of flip flop initialization structures with respect to design size and design closure effort from RTL to netlist | |
US8436646B1 (en) | Reconfigurable logic block with user RAM | |
US10699053B1 (en) | Timing optimization of memory blocks in a programmable IC | |
US6530069B2 (en) | Printed circuit board design, testing, and manufacturing process | |
TW201218008A (en) | Intelligent architecture creator | |
US7290174B1 (en) | Methods and apparatus for generating test instruction sequences | |
CN116050312A (zh) | 基于链表树的硬件逻辑设计层次结构信息提取方法及系统 | |
US9104829B2 (en) | Method of validating timing issues in gate-level simulation | |
US8065128B1 (en) | Methods and apparatus for automated testbench generation | |
US20150058575A1 (en) | Precharge disable using predecoded address | |
US20040143813A1 (en) | System development supporting apparatus, system development supporting method, and computer-readable recorded medium | |
US7735035B1 (en) | Method and system for creating a boolean model of multi-path and multi-strength signals for verification | |
US7567892B2 (en) | Method and system for realizing a logic model design | |
US7134105B2 (en) | Multiple level transistor abstraction for dynamic circuits | |
US9268891B1 (en) | Compact and efficient circuit implementation of dynamic ranges in hardware description languages | |
CN111539174B (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 |