公开/公告号CN115982095A
专利类型发明专利
公开/公告日2023-04-18
原文格式PDF
申请/专利权人 海光信息技术股份有限公司;
申请/专利号CN202310109322.9
申请日2023-02-13
分类号G06F15/78(2006.01);
代理机构北京超凡宏宇专利代理事务所(特殊普通合伙) 11463;
代理人周宇
地址 300450 天津市滨海新区天津华苑产业区海泰西路18号北2-204工业孵化-3-8
入库时间 2023-06-19 19:20:08
法律状态公告日
法律状态信息
法律状态
2023-05-05
实质审查的生效 IPC(主分类):G06F15/78 专利申请号:2023101093229 申请日:20230213
实质审查的生效
2023-04-18
公开
发明专利申请公布
技术领域
本申请属于集成电路技术领域,具体涉及一种逻辑真值表获取方法、装置、电子设备及存储介质。
背景技术
随着大规模集成电路的普及与应用,须尽可能缩小芯片面积,降低成本。随着工艺尺寸的不断缩小,成本呈指数增长,减少面积的优势愈发突出。如今,片上系统(System OnChip,SOC)上存储单元占了70%至80%的面积,甚至更多,减少存储单元的面积能大幅度减少芯片的面积,降低成本。寄存器矩阵存储相对于存储器存储具有速度快、面积小等特点,运用越来越广泛。
当前主要采用人工的方式,获取芯片中寄存器阵列的逻辑真值表。但是对于高性能芯片(高性能芯片中的寄存器阵列(m*n)的深度是很深的)来说,采用人工获取逻辑真值表的方式虽然可行,但是工作量较大,且容易出错。
发明内容
鉴于此,本申请的目的在于提供一种逻辑真值表获取方法、装置、电子设备及存储介质,以改善人工获取寄存器阵列的逻辑真值表所存在的效率低及容易出错的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种逻辑真值表获取方法,包括:从网表中找到寄存器阵列,所述寄存器阵列包括多个寄存器;从网表中找到用于控制各个寄存器的使能信号,所述使能信号受地址控制信号控制;改变所述地址控制信号的值,并基于不同所述地址控制信号下的各个使能信号,得到逻辑真值表,所述逻辑真值表包含各个使能信号与地址控制信号的对应关系,用于确定每个使能信号对应的寄存器。
本申请实施例中,通过自动从网表中找到寄存器阵列,然后再找到用于控制寄存器阵列中各个寄存器的使能信号,并自动改变地址控制信号的值,并基于不同地址控制信号下的各个使能信号,得到逻辑真值表,从而可以快速地得到逻辑真值表,由于整个过程均为机器按照脚本自动进行,无需人工干预,从而改善了人工获取寄存器阵列的逻辑真值表所存在的效率低及容易出错的问题。由于寄存器阵列(m*n)的深度m是很深的,采用人工的方式虽然可行,但是工作量较大,且容易出错。
结合第一方面实施例的一种可能的实施方式,从网表中找到寄存器阵列,包括:基于寄存器命名规则从网表中找到寄存器矩阵。
本申请实施例中,基于寄存器命名规则可以快速的找到网表中的寄存器矩阵。
结合第一方面实施例的一种可能的实施方式,所述寄存器阵列与ICG连接;从网表中找到用于控制各个寄存器的使能信号,包括:找到所述寄存器矩阵中每个寄存器的时钟引脚PIN;从网表中找到与每个时钟引脚PIN相连接的ICG;找到网表中每个所述ICG的使能信号。
本申请实施例中,在找到寄存器阵列后,通过每个寄存器的时钟引脚PIN便可找到ICG,从而便可快速准确获取到对应的使能信号。
结合第一方面实施例的一种可能的实施方式,所述寄存器阵列与选择器连接;从网表中找到用于控制各个寄存器的使能信号,包括:找到所述寄存器矩阵中每个寄存器的数据输入引脚PIN;从网表中找到与每个数据输入引脚PIN相连接的选择器;找到网表中每个所述选择器的使能信号。
本申请实施例中,在找到寄存器阵列后,通过每个寄存器的数据输入引脚PIN便可找到选择器,从而便可快速准确获取到对应的使能信号。
结合第一方面实施例的一种可能的实施方式,从网表中找到用于控制各个寄存器的使能信号,包括:找到所述寄存器矩阵中每个寄存器的时钟引脚PIN;判断是否能从网表中找到与每个时钟引脚PIN相连接的ICG;在能从网表中找到与每个时钟引脚PIN相连接的ICG时,找到网表中每个所述ICG的使能信号。
结合第一方面实施例的一种可能的实施方式,在不能从网表中找到与每个时钟引脚PIN相连接的ICG时,所述方法还包括:从网表中找到与每个寄存器的数据输入引脚PIN相连接的选择器;找到网表中每个所述选择器的使能信号。
结合第一方面实施例的一种可能的实施方式,所述地址控制信号还用于控制所述寄存器阵列的逻辑地址;基于不同所述地址控制信号下的各个使能信号,得到逻辑真值表,包括:基于预设数据写功能函数和不同地址控制信号下的各个使能信号以及逻辑地址,得到逻辑真值表。
本申请实施例中,预设数据写功能函数包含写条件和写地址,由于数据写功能是由写条件(使能信号)和写地址(为逻辑地址中的一种)所组成的函数来决定的,只有当写条件和写地址均符合才能将数据写入寄存器,在数据成功写入寄存器的情况下,基于该函数便可反推出满足要求的地址控制信号,进而便可得到逻辑真值表。
结合第一方面实施例的一种可能的实施方式,所述地址控制信号包括k位二进制信号,k为大于等于1的整数,对应2
本申请实施例中,通过依次增加或减少k位二进制信号的数值,并观察2
第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种逻辑真值表获取方法的流程示意图。
图2示出了本申请实施例提供的一种选择器与寄存器连接的原理示意图。
图3示出了本申请实施例提供的一种ICG与寄存器连接的原理示意图。
图4示出了本申请实施例提供的一种ICG与寄存器阵列相连接的原理示意图。
图5示出了本申请实施例提供的一种逻辑真值表获取装置的模块框图。
图6示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
为了能快速获得寄存器阵列的逻辑真值表,本申请实施例提供了一种逻辑真值表获取方法,下面将结合图1,对本申请实施例提供的逻辑真值表获取方法进行说明。
S1:从网表中找到寄存器阵列。
电路设计中,网表(netlist)是用于描述电路元件相互之间连接关系的文本文件,其已经为本领域所熟知,在此不再介绍。
在从网表中找到寄存器阵列时,一种实施方式下,可以是基于寄存器命名规则(属于正则表达式)从网表中找到寄存器矩阵,该寄存器阵列包括多个寄存器,以128*32的寄存器阵列为例,则该寄存器阵列对应的寄存器命名规则,可以如表1所示。
表1
从网表中找到命名规则符合表1所示的寄存器命名规则的寄存器,从而便可找到网表中的寄存器阵列。
可以理解的是,也可以采用其他的方式找到网表中的寄存器阵列,并不限于上述的命名规则,任何能从网表中找到寄存器阵列均可以。
S2:从网表中找到用于控制各个寄存器的使能信号,所述使能信号受地址控制信号控制。
在找到寄存器阵列后,需要进一步从网表中找到用于控制各个寄存器的使能信号(Enable),该使能信号用于控制或使能对应的寄存器,受地址控制信号控制。其中,地址控制信号包括k位二进制信号,k为大于等于1的整数,k位二进制信号对应2
当前控制或使能寄存器的方式主要有两种,一种基于ICG(Integrated ClockGate,集成时钟门),另一种基于选择器。
若已知寄存器阵列与选择器连接,则S2的具体过程可以是:先找到寄存器矩阵中每个寄存器的数据输入引脚PIN(D端),再从网表中找到与每个数据输入引脚PIN相连接的选择器,然后找到网表中与每个数据输入引脚PIN相连接的选择器的使能信号(也称为选择信号,用于控制选择器的输出)。一种实施方式下,寄存器阵列中的每个寄存器都会对应一个选择器,不同的寄存器对应不同的选择器,其原理图如图2所示。当Enable=1时,DoutN=DinN-1(表示第N时刻的输出与第N-1时刻的输入相同);当Enable=0时,DoutN=DoutN-1(表示第N时刻的输出与N-1时刻的输出相同)。
若已知寄存器阵列与ICG连接,则S2的具体过程可以是:先找到寄存器矩阵中每个寄存器的时钟引脚PIN,再从网表中找到与每个时钟引脚PIN相连接的ICG,然后找到网表中与每个时钟引脚PIN相连接的ICG的使能信号(用于控制ICG的打开或关闭)。该种实施方式下,寄存器阵列中的每个寄存器都会对应一个ICG,其中,同一行的寄存器对应同一个ICG,其原理图如图3所示。通过在寄存器的时钟输入之前加入ICG,使得不再是每个寄存器对应一个选择器,而是一行寄存器对应一个ICG,这样可以让寄存器在不需要翻转的时候没有时钟,从而可以让芯片的功耗降低以及芯片的面积减少。
在未知寄存器阵列的连接方式的情况下,则S2的具体过程可以是:找到寄存器矩阵中每个寄存器的时钟引脚PIN,判断是否能从网表中找到与每个时钟引脚PIN相连接的ICG;在能从网表中找到与每个时钟引脚PIN相连接的ICG时,找到网表中每个ICG的使能信号。在不能从网表中找到与每个时钟引脚PIN相连接的ICG时,该方法还包括从网表中找到与每个寄存器的数据输入引脚PIN相连接的选择器,找到网表中每个选择器的使能信号。
S3:改变所述地址控制信号的值,并基于不同地址控制信号下的各个使能信号,得到逻辑真值表。
在从网表中找到用于控制各个寄存器的使能信号(ICG的使能信号或者选择器的使能信号)后,便可改变地址控制信号的值,并基于不同地址控制信号下的各个使能信号,得到逻辑真值表,其中,逻辑真值表包含各个使能信号(Enable)与地址控制信号的对应关系。地址控制信号还可以用于控制寄存器阵列中寄存器的逻辑地址(如写地址),其中,该逻辑地址与寄存器对应的使能信号一一对应。
一种实施方式下,逻辑真值表如表2所示。可以理解的是,此处仅以k为7为例进行说明。k的取值并不限于此。
表2
上述的Add_6~Add_0为二进制的7位地址控制信号,用于生成寄存器的逻辑地址(Addressi),该逻辑地址可以作为写地址,也可以作为读地址。例如,Add_6~Add_0为0000000对应的逻辑地址0,Add_6~Add_0为0000001对应的逻辑地址1,以此类推,Add_6~Add_0为1111111对应的逻辑地址127。同一时刻,这128个使能信号中仅有一个使能信号的值为1。
一种实施方式下,上述S3的实现过程可以是:依次增加或减少k位二进制信号的数值,并根据2
又一种实施方式下,在基于不同地址控制信号下的各个使能信号得到逻辑真值表时,可以是基于预设数据写功能函数和不同地址控制信号下的各个使能信号以及逻辑地址,得到逻辑真值表。如模拟向寄存器写入数据,根据数据写入寄存器的情况,基于该预设数据写功能函数便可反推出满足要求的地址控制信号,从而便可确定地址控制信号中各个位的顺序,进而便可得到逻辑真值表。
其中,预设数据写功能函数可表示为RegArray(i,n)=Datai(conditioni,cmdi),其中,conditioni对应写入地址Addressi,cmdi对应使能信号Enablei,只有当conditioni和cmdi均符合数据写入要求时,才能将数据Datai写入寄存器阵列RegArray(i,n),i的取值为0~m。对于寄存器阵列来说,数据写功能是由写条件和写地址所组成的函数来决定的,该函数即为使能信号满足写条件的函数。在数据成功写入寄存器的情况下,基于该函数,便可反推出满足上述要求的地址控制信号,便可确定地址控制信号中各个位的顺序,进而便可得到逻辑真值表。
其中,m为寄存器阵列的深度,n为寄存器阵列的数据宽度。为了能将宽度为n的输入数据写入寄存器阵列RegArray(i,n),必须满足输入写地址Address=i,并且连接到RegArray(i,n)的时钟的ICG使能满足Enablei=WriteEnable=1’b1。
以图4所示的128*32的寄存器阵列为例,每一行的32(n)个寄存器由同一个ICG控制,共包含128个ICG(Enable0~Enable127)。可以理解的是,如果是基于选择器来控制,则每个寄存器对应一个选择器。此时,图4中的ICG与每一行的寄存器阵列及逻辑地址的对应关系如下:
ICG0->RegArray(0,n)->Address=0;
ICG1->RegArray(1,n)->Address=1;
ICG2->RegArray(2,n)->Address=2;
……
ICGi->RegArray(i,n)->Address=i;
……
ICG127->RegArray(127,n)->Address=127。
其中,位于同一行的n个寄存器的逻辑地址相同,通过上述的方式,便可快速找到寄存器矩阵的逻辑真值表。
基于同样的发明构思,本申请实施例还提供了一种逻辑真值表获取装置100,如图5所示。该逻辑真值表获取装置100包括:获取模块110以及处理模块120。
获取模块110,用于从网表中找到寄存器阵列,所述寄存器阵列包括多个寄存器;以及从网表中找到用于控制各个寄存器的使能信号,所述使能信号受地址控制信号控制。
处理模块120,用于改变所述地址控制信号的值,基于不同地址控制信号下的各个使能信号得到逻辑真值表,所述逻辑真值表包含各个使能信号与地址控制线的对应关系。
可选地,获取模块110,用于基于寄存器命名规则从网表中找到寄存器矩阵。
若所述寄存器阵列与ICG连接,可选地,获取模块110,用于找到所述寄存器矩阵中每个寄存器的时钟引脚PIN;从网表中找到与每个时钟引脚PIN相连接的ICG;找到网表中每个所述ICG的使能信号。
若所述寄存器阵列与选择器连接,可选地,获取模块110,用于找到所述寄存器矩阵中每个寄存器的数据输入引脚PIN;从网表中找到与每个数据输入引脚PIN相连接的选择器;找到网表中每个所述选择器的使能信号。
可选地,获取模块110,用于找到所述寄存器矩阵中每个寄存器的时钟引脚PIN;判断是否能从网表中找到与每个时钟引脚PIN相连接的ICG;在能从网表中找到与每个时钟引脚PIN相连接的ICG时,找到网表中每个ICG的使能信号;在不能从网表中找到与每个时钟引脚PIN相连接的ICG时,从网表中找到与每个寄存器的数据输入引脚PIN相连接的选择器;找到网表中每个选择器的使能信号。
所述地址控制信号还用于控制所述寄存器阵列的逻辑地址;处理模块120,用于基于预设数据写功能函数和不同地址控制信号下的各个使能信号以及逻辑地址,,得到逻辑真值表。
所述地址控制信号包括k位二进制信号,k为大于等于1的整数,对应2
本申请实施例所提供的逻辑真值表获取装置100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
如图6所示,图6示出了本申请实施例提供的一种电子设备200的结构框图。所述电子设备200包括:收发器210、存储器220、通讯总线230以及处理器240。
所述收发器210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,收发器210用于收发数据。存储器220用于存储计算机程序,如存储有图5中所示的软件功能模块,即逻辑真值表获取装置100。其中,逻辑真值表获取装置100包括至少一个可以软件或固件(Firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(Operating System,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的可执行模块,例如逻辑真值表获取装置100包括的软件功能模块或计算机程序。例如,处理器240,用于从网表中找到寄存器阵列,所述寄存器阵列包括多个寄存器;从网表中找到用于控制各个寄存器的使能信号,所述使能信号受地址控制信号控制;改变所述地址控制信号的值,并基于不同地址控制信号下的各个使能信号,得到逻辑真值表,所述逻辑真值表包含各个使能信号与地址控制信号的对应关系,用于确定每个使能信号对应的寄存器。
其中,存储器220可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。
其中,上述的电子设备200,包括但不限于手机、平板、电脑、服务器等。
本申请实施例还提供了一种非易失性的计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备200运行时,执行上述所示的逻辑真值表获取方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
机译: 一种存储有记录图像特征量获取设备,图像特征量获取方法,图像特征量获取程序,图像修改设备,图像修改方法,图像修改程序,图像打印的计算机可读记录介质的计算机可读记录介质。计算机可读记录介质记录设备,图像打印方法,图像打印程序
机译: 逻辑地址服务启动方法,逻辑地址管理设备,应用程序执行设备,逻辑地址服务管理程序,逻辑地址服务启动程序,逻辑地址服务管理程序中存储的存储介质以及逻辑地址服务中的存储介质中的存储介质储存
机译: 用于提供和获取内容的系统,用于提供内容的设备,用于获取内容的设备,提供和获取内容的方法,提供内容的方法,用于获取内容的方法,用于提供内容的程序的存储介质,用于获取的程序的存储介质,用于程序的存储介质提供内容的程序和获取内容的程序