System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种组合逻辑电路的寄存器传输级代码生成方法及系统技术方案_技高网

一种组合逻辑电路的寄存器传输级代码生成方法及系统技术方案

技术编号:39987360 阅读:7 留言:0更新日期:2024-01-09 02:00
本发明专利技术公开了一种组合逻辑电路的寄存器传输级代码生成方法及系统,本发明专利技术包括把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;根据真值表生成组合逻辑电路的寄存器传输级代码,其中遍历是指以检查规则rule1~ruleK作为约束条件,遍历2<supgt;N</supgt;种由N个输入in1~inN构成的输入组合,在每种输入组合下确定M个输出out1~outM中每个输出的取值。本发明专利技术旨在通过构建真值表生成组合逻辑电路的寄存器传输级代码时实现对更大规模的输入的支持,生成的RTL代码不需要对其进行功能验证且有利于综合工具生成时序优化的电路。

【技术实现步骤摘要】

本专利技术涉及集成电路设计,具体涉及一种组合逻辑电路的寄存器传输级(register-transfer level,rtl)代码生成方法及系统。


技术介绍

1、集成电路设计的重要一环就是编写rtl代码(寄存器传输级代码),也就是进行逻辑设计。一个集成电路主要由两部分组成:时序逻辑电路和组合逻辑电路。时序逻辑电路通常就是一组寄存器,这组寄存器按照给定时钟脉冲来进行时序操作,使得时序逻辑电路具有记忆功能;组合逻辑电路则由逻辑门组成,提供电路的逻辑功能。

2、对于任何一个组合逻辑电路,无论功能多么复杂,都可以将其抽象成具有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代码。

3、采用构建完整真值表的方法生成rtl代码有诸多优点:真值表的构建非常直观,不需要进行高层次抽象,且考虑了所有可能情况,所以出错概率相对低;根据真值表生成rtl代码的过程可以由工具自动完成,只要真值表构建正确,rtl代码的正确性就有保证;生成的rtl代码非常接近底层实现,有利于综合工具生成时序优化的电路。但是这种方法最大的问题就是能够处理的输入信号规模有限。假设共有10根输入信号,那么有1024种输入组合,构建完整的真值表需要填写1024行的信息;可是当输入信号为20根时,就有超过100万种输入组合,构建完整的真值表需要填写超过100万行的信息,人工填写规模如此庞大的真值表是非常困难的。当输入信号较多时,通常需要根据组合逻辑电路要实现的功能进行高层次抽象或对输入场景进行合并以减少真值表的规模,与构建完整的真值表相比,这些方法编写出来的代码出错概率相对高、需要进行充分的功能验证,而且时序可能会差。


技术实现思路

1、本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种组合逻辑电路的寄存器传输级代码生成方法及系统,本专利技术旨在通过构建真值表生成组合逻辑电路的寄存器传输级代码时实现对更大规模的输入的支持,生成的rtl代码不需要对其进行功能验证且有利于综合工具生成时序优化的电路。

2、为了解决上述技术问题,本专利技术采用的技术方案为:

3、一种组合逻辑电路的寄存器传输级代码生成方法,包括:

4、s101,把对组合逻辑电路进行功能验证所使用的检查规则作为约束条件,遍历每种输入组合下组合逻辑电路的输出取特定值时是否违反检查规则并依此填写真值表;

5、s102,根据真值表生成组合逻辑电路的寄存器传输级代码。

6、可选地,步骤s101包括:

7、s201,确定组合逻辑电路的n个输入in1~inn,m个输出out1~outm,以及k条进行功能验证所使用的检查规则rule1~rulek;

8、s202,以检查规则rule1~rulek作为约束条件,遍历2n种由n个输入in1~inn构成的输入组合,在每种输入组合下确定m个输出out1~outm中每个输出的取值为0、1还是“-”,其中“-”表示既可以为0也可以为1,从而得到由m个输出out1~outm中每个输出的取值为0、1还是“-”构成的真值表。

9、可选地,步骤s202包括:

10、s301,初始化行变量i为0,进入步骤s302;

11、s302,判断行变量i是否小于2n,如果是,进入步骤s303;否则表示已经遍历完所有由n个输入in1~inn构成的输入组合,得到由m个输出out1~outm中每个输出的取值为0、1还是“-”构成的真值表,跳转至步骤s102;

12、s303,初始化列变量j为1,进入步骤s304;

13、s304,判断列变量j是否大于m,如果是,表示在当前输入组合下,真值表中所有输出信号的对应位都已经填写完成,跳转至步骤s313,否则进入步骤s305;

14、s305,根据n个输入in1~inn生成不重复的输入组合作为当前输入组合,进入步骤306;

15、s306,令第j个输出outj的取值为0,判断输入组合取值为当前输入组合、第j个输出outj为0是否在检查规则rule1~rulek中存在检查规则的违反,如果是,表示当前输入组合下第j个输出outj不能为0,进入步骤s307,否则跳转至步骤s309;

16、s307,令第j个输出outj的取值为1,判断输入组合取值为当前输入组合、第j个输出outj为1是否在检查规则rule1~rulek中存在检查规则的违反,如果是,表示当前输入组合下第j个输出outj不能为1,第j个输出outj既不能为0也不能为1,说明检查规则定义有错,需要重新定义检查规则,结束并退出;否则表示当前输入组合下第j个输出outj不能为0但是可以为1,进入步骤s308;

17、s308,将真值表中第i行第j个输出outj的对应位填1,跳转至步骤s312;

18、s309,令第j个输出outj的取值为1,判断输入组合取值为当前输入组合、第j个输出outj为1是否在检查规则rule1~rulek中存在检查规则的违反,如果是,表示当前输入组合下第j个输出outj不能为1但是可以为0,进入步骤s310,否则表示当前输入组合下第j个输出outj既可以为0也可以为1,跳转至步骤s311;

19、s310,将真值表中第i行outj第j个输出的对应位填0,跳转至步骤s312;

20、s311,将真值表中第i行outj第j个输出的对应位填“-”,进入步骤s312;

21、s312,令j=j+1,然后跳回至步骤s304;

22、s313,令i=i+1,然后跳回至步骤s302。

23、可选地,步骤s202为采用形式化验证工具完成。

24、可选地,步骤s102之后,还包括针对根据真值表生成的组合逻辑电路的寄存器传输级代码,跳过对寄存器传输级代码进行功能验证,直接采用综合工具生成电路。

25、此外,本专利技术还提供一种组合逻辑电路的寄存器传输级代码生成本文档来自技高网...

【技术保护点】

1.一种组合逻辑电路的寄存器传输级代码生成方法,其特征在于,包括:

2.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S101包括:

3.根据权利要求2所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S202包括:

4.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S202为采用形式化验证工具完成。

5.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤S102之后,还包括针对根据真值表生成的组合逻辑电路的寄存器传输级代码,跳过对寄存器传输级代码进行功能验证,直接采用综合工具生成电路。

6.一种组合逻辑电路的寄存器传输级代码生成系统,其特征在于,包括:

7.根据权利要求6所述的组合逻辑电路的寄存器传输级代码生成系统,其特征在于,所述真值表生成程序单元包括:

8.一种组合逻辑电路的寄存器传输级代码生成系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~5中任意一项所述组合逻辑电路的寄存器传输级代码生成方法。

9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~5中任意一项所述组合逻辑电路的寄存器传输级代码生成方法。

10.一种计算机程序产品,所述计算机程序产品中包含计算机程序或者指令,其特征在于,所述计算机程序或者指令用于被微处理器编程或配置以执行权利要求1~5中任意一项所述组合逻辑电路的寄存器传输级代码生成方法。

...

【技术特征摘要】

1.一种组合逻辑电路的寄存器传输级代码生成方法,其特征在于,包括:

2.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤s101包括:

3.根据权利要求2所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤s202包括:

4.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤s202为采用形式化验证工具完成。

5.根据权利要求1所述的组合逻辑电路的寄存器传输级代码生成方法,其特征在于,步骤s102之后,还包括针对根据真值表生成的组合逻辑电路的寄存器传输级代码,跳过对寄存器传输级代码进行功能验证,直接采用综合工具生成电路。

6.一种组合逻辑电路的寄存器传输级代码生成系统,其特征在于,包括:

...

【专利技术属性】
技术研发人员:孙彩霞邓全郑重沈俊忠郭辉郭维雷国庆王俊辉倪晓强黄立波隋兵才王永文
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1