一种逻辑电路设计中的ram例化方法及装置的制作方法

文档序号:6557373阅读:286来源:国知局
专利名称:一种逻辑电路设计中的ram例化方法及装置的制作方法
技术领域
本发明涉及电子技术领域,更具体地说,涉及一种逻辑电路设计中的RAM例化方法及装置。
背景技术
在ASIC(Application Specific Integrated Circuit,专用集成电路)和FPGA(Field Programmable Gate Array,现场可编程门阵列)等电路设计中,往往会大量使用RAM(random access memory,随机存储器),例如使用RAM作为FIFO、数据缓存等,而这些RAM的存贮深度和存储数据位宽也可能不同。
例化是指使用例化语句调用与设计代码中例化名对应的元件。在逻辑设计的代码设计中一般只例化RAM的模型,这些例化名与综合库中RAM的单元名、相应的输入和输出管脚相对应。如图1所示,是现有的设计中使用的例化名和RAM综合库中单元名的关系图,例化名和RAM综合库中单元名通过RAM封装文件相对应。在逻辑设计的代码中,如果例化的RAM单元(如RAM_0和RAM_1等)的深度、位宽或者类型不同,即被认为是不同的RAM单元,且每一不同的RAM单元具有一个RAM封装文件,例如代码中RAM_0对应的封装文件为RAM_0.v;RAM_1对应的封装文件为RAM_1.v。例化不同的RAM单元必须使用不同的封装文件。这些RAM封装文件对外提供设计中RAM使用的通用接口,内部例化综合库中的RAM单元。在使用诸如DC(Design Compiler)的综合工具将逻辑设计代码综合成实际电路时,除了读入设计代码,还要读入RAM封装文件,使综合工具根据RAM封装文件,调用综合库中对应的RAM单元完成综合过程。
由于上述方案中不同的RAM必须对应一个RAM封装文件,而在ASIC设计中往往会使用大量不同的RAM,为了做到一种RAM对应一个RAM封装文件,要求设计中使用的RAM名必须和RAM封装文件中的RAM名相同,如对于图1中的RAM_0,其逻辑设计代码中使用RAM_0,则其封装文件中的RAM名也必须为RAM_0。从而必须花费时间和精力进行封装文件的设计,设计和维护工作量较大。
另外,由于现在逻辑设计通常由多人分工,同时设计的,每个设计人员都会维护自己的RAM列表和RAM封装文件;如果不同的设计人员使用了相同的RAM,但是在代码中各自对RAM的取名又不同,对RAM的封装文件的管理带来麻烦。
此外,由于每一种RAM对应一种RAM封装文件,这对RAM封装文件的仿真带来一定的困难。因为RAM封装文件相互之间无任何关联,因此无法搭建一个测试环境进行统一的仿真。如果为每一RAM搭建一种仿真环境,工作量巨大,耗时也太长。目前通常的做法是将所有的RAM封装文件在设计中搭建ASIC验证环境,进行仿真,但这种仿真耗时太长,而且仿真测试激励无法遍历到所有RAM,导致因检测不充分而无法发现电路可能存在的缺陷。

发明内容
本发明实施例要解决的技术问题在于,针对上述逻辑电路设计中由于RAM封装文件多而导致设计和维护工作量大、仿真测试耗时的问题,提供一种逻辑电路设计中的RAM例化方法及装置。
本发明解决其技术问题所采用的技术方案是构造一种逻辑电路设计中的RAM例化方法,包括以下步骤(a)读取逻辑电路设计代码,获取代码中标识RAM单元的参数组;(b)通过所述参数组在综合库封装文件中查找到与所述参数组对应的RAM单元名,所述综合库封装文件中的RAM单元名与综合库中的RAM单元相对应;(c)根据所述RAM单元名选择综合库中对应的RAM单元进行输入输出管脚的连接。
在本发明所述的逻辑电路设计中的RAM例化方法中,所述综合库封装文件中包括不同参数组与不同RAM单元名间的对应关系,且所述综合库封装文件包括对应于例化时使用的综合库中所有RAM单元的单元名。
在本发明所述的逻辑电路设计中的RAM例化方法中,在所述步骤(c)之后还包括(d)识别并删除步骤(c)中未进行输入输出管脚连接的RAM单元。
在本发明所述的逻辑电路设计中的RAM例化方法中,所述参数组中包括RAM类型、RAM深度以及RAM位宽参数。
本发明还提供一种逻辑电路设计中的RAM例化装置,包括有解释模块以及存储有综合库封装文件的存储单元,所述综合库封装文件中包括不同参数组与不同RAM单元名间的对应关系,且所述综合库封装文件包括对应于例化中使用的综合库中所有RAM单元的单元名;所述解释模块读取逻辑电路设计代码中的参数组、在所述综合库封装文件中通过所述参数组获取对应的RAM单元名、并根据所述RAM单元名获取综合库中对应的RAM单元进行输入输出管脚的连接。
在本发明所述的逻辑电路设计中的RAM例化装置中,还包括有优化模块,所述优化模块用于识别并删除管脚未经所述解释模块连接的RAM单元。
在本发明所述的逻辑电路设计中的RAM例化装置中,所述参数组中包括RAM类型、RAM深度以及RAM位宽参数。
本发明还提供一种生成逻辑电路的系统,包括例化装置,所述例化装置包括有解释模块以及存储有综合库封装文件的存储单元,所述综合库封装文件中包括不同参数组与不同RAM单元名间的对应关系,且所述综合库封装文件包括对应于例化中使用的综合库中所有RAM单元的单元名;所述解释模块读取逻辑电路设计代码中的参数组并通过该参数组从所述综合库封装文件获取综合库中对应的RAM单元后进行输入输出管脚的连接。
在本发明所述的生成逻辑电路的系统中,所述例化装置还包括优化模块,所述优化模块用于识别并删除与所述逻辑电路设计代码中参数组不对应的RAM单元。
在本发明所述的生成逻辑电路的系统中,所述参数组中包括RAM类型、RAM深度以及RAM位宽参数。
本发明逻辑电路设计中RAM例化方法、装置及生成逻辑电路的系统,通过使用统一的综合库封装文件,避免了RAM名冲突,并减少了RAM封装文件的设计和维护工作量,提高了设计效率。而且由于采用参数化的设计,在设计电路的逻辑功能时,可以随意使用RAM例化名,而不必考虑RAM的具体深度和宽度等信息。即使更换流片厂家,也不用修改逻辑设计。此外,本发明通过优化删除未连接的RAM单元,不会引入多有的逻辑资源导致设计门数增加,不用为每个RAM设计一个对应的RAM封装文件,因此减少了RAM封装文件设计和维护的工作量。
此外,由于采用了统一的综合库封装文件,可以方便搭建单独的RAM仿真统一环境,对所有RAM进行统一的仿真,减少了RAM仿真的工作量和仿真时间,并提高了RAM仿真覆盖率,从而减少了ASIC设计在RAM上的失误风险。


图1是现有技术逻辑电路设计中RAM例化名和RAM综合库单元名的关系示意图;图2是本发明第一实施例中逻辑电路设计时RAM例化装置的结构示意图;图3是本发明第二实施例中逻辑电路设计时RAM例化装置的结构示意图;图4是使用本发明进行例化的第一实施例示意图;图5是使用本发明进行例化的第二实施例示意图;图6是本发明实施例中逻辑电路设计时RAM例化方法的流程图。
具体实施例方式
如图2所示,本发明第一实施例中逻辑电路设计时RAM例化装置20读取逻辑电路设计代码并根据逻辑电路代码中的参数组,通过所述参数组在封装文件中获取对应的RAM单元,根据所述RAM单元名选择RAM综合库中的RAM单元,并对RAM单元进行输入和输出管脚的连接。该RAM例化装置20包括有解释模块21以及存储单元,该存储单元中存储有一个综合库封装文件22。
综合库封装文件22包括有设计代码中使用的RAM参数组到综合库中RAM单元间的映射关系。在本实施例中,综合库封装文件22包括有例化时使用的所有RAM单元的单元名,此时对应的综合库封装文件22的文件名为RAM.v。综合库封装文件22例化逻辑电路设计中使用的所有RAM单元,即可调用RAM综合库中的所有RAM单元。在代码设计时,不同的RAM例化都使用该综合库封装文件22。在该综合库封装文件22中,不同RAM通过参数组相区别,即一个参数组映射到综合库中的一个具体RAM单元。该参数组中包括RAM类型(TYPE)、RAM深度(DEEPTH)以及RAM位宽参数(WIDTH)。
在进行逻辑电路的代码设计中例化RAM时,使用诸如Verilog等自动化设计语言将参数具体值传递到综合库封装文件中RAM #(TYPE,DEEPTH,WIDTH) U_RAM_0其中TYPE、DEEPTH、WIDTH是对应具体RAM单元的具体值;U_RAM_0是设计代码中使用的例化名,各个RAM例化名不同。在将逻辑设计电路的设计代码综合成电路时,解释模块21读取逻辑电路设计代码中的参数组,并在综合库封装文件22中通过该参数组获取对应的RAM单元名,从而根据上述的RAM单元名获取综合库中对应的RAM单元,然后进行该RAM单元输入输出管脚的连接。
由于代码中RAM例化名实际对应统一的综合库封装文件22,而这个文件中又例化了所用到的所有RAM单元,则对应代码中的每个RAM例化名可通过传入综合库封装文件22中的参数值来选择真正对应的RAM单元进行输入和输出管脚的连接,而其余与例化名不对应的RAM单元的输入和输出管脚悬空。
由于ASIC综合工具(如DC)一般不会自动优化掉没有使用的RAM单元,因此综合后的电路将会调用统一封装文件中的所有RAM单元,导致电路面积变大。如图4所示,代码中的RAM_i综合后的电路对应所有RAM单元,但只有与RAM_i对应的RAM单元的管脚正常连接,其余多余RAM的管脚均悬空。
因为一般RAM的输出管脚为数据线,输出管脚都未连接的RAM就可以认为是未使用的多余RAM,不会影响到设计的正确性。
如图3所示,在本发明第二实施例中,RAM例化装置30同样包括有解释模块31以及存储有综合库封装文件32的存储单元。在本实施例中,RAM例化装置30还包括有优化模块33。在综合时,优化模块33用于识别输出管脚都未连接的RAM,并将这些未连接的RAM删除。上述的识别及删除可使用综合工具提供的脚本命令实现。如图5所示,为使用优化模块33在综合时进行优化后的示意图。
如图6所示,是本发明实施例逻辑电路设计中RAM例化方法的流程图。在本实施例中,通过一个统一的RAM封装文件实现RAM综合库中RAM单元的调用,从而简化RAM封装文件的设计。其具体包括以下步骤步骤S61读取逻辑电路设计代码,获取代码中标识RAM单元的参数组。在本实施例中,每一参数组包括RAM类型、RAM深度以及RAM位宽参数。
步骤S62通过综合库封装文件调用综合库中的RAM单元,并在综合库封装文件中使用所述参数组选择与该参数组对应的RAM单元名。在本实施例中,由于综合库封装文件例化综合库中的所有RAM单元,因此在该步骤中将调用综合库中的所有RAM单元。在该综合库封装文件中,通过不同的参数组来区分不同RAM单元,一个参数组映射到一个具体的RAM单元。
步骤S63根据所述RAM单元名选择RAM综合库中的RAM单元,并对选择的RAM单元进行输入输出管脚的连接。而调用的其他RAM单元的管脚则悬空。
当然除了使用RAM类型、RAM深度以及RAM位宽参数标识RAM单元外,在实际应用中,也可使用其他参数组来标识RAM单元。此外,在综合工具不能自动优化没有使用的RAM单元时,则可使用综合工具的脚本命令识别输出管脚都悬空的RAM单元,并删除这些RAM单元。
上述的装置和方法适用于专用集成电路、现场可编程门阵列等的例化。
经过形式验证和工具验证,使用本发明的装置和方法例化的逻辑电路,综合后电路和综合前的逻辑代码的逻辑功能是一致的,因此本发明并没有改变电路功能,是可行和可靠的。
上述的装置及方法可应用于生成逻辑电路的系统中,从而实现逻辑电路设计中的RAM单元例化。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种逻辑电路设计中的RAM例化方法,其特征在于,包括以下步骤(a)读取逻辑电路设计代码,获取代码中标识RAM单元的参数组;(b)通过所述参数组在综合库封装文件中查找到与所述参数组对应的RAM单元名,所述综合库封装文件中的RAM单元名与综合库中的RAM单元相对应;(c)根据所述RAM单元名选择综合库中对应的RAM单元进行输入输出管脚的连接。
2.根据权利要求1所述的逻辑电路设计中的RAM例化方法,其特征在于,所述综合库封装文件中包括不同参数组与不同RAM单元名间的对应关系,且所述综合库封装文件包括对应于例化时使用的综合库中所有RAM单元的单元名。
3.根据权利要求1所述的逻辑电路设计中的RAM例化方法,其特征在于,在所述步骤(c)之后还包括(d)识别并删除步骤(c)中未进行输入输出管脚连接的RAM单元。
4.根据权利要求1所述的逻辑电路设计中的RAM例化方法,其特征在于,所述参数组中包括RAM类型、RAM深度以及RAM位宽参数。
5.一种逻辑电路设计中的RAM例化装置,其特征在于,包括有解释模块以及存储有综合库封装文件的存储单元,所述综合库封装文件中包括不同参数组与不同RAM单元名间的对应关系,且所述综合库封装文件包括对应于例化中使用的综合库中所有RAM单元的单元名;所述解释模块读取逻辑电路设计代码中的参数组、在所述综合库封装文件中通过所述参数组获取对应的RAM单元名、并根据所述RAM单元名获取综合库中对应的RAM单元进行输入输出管脚的连接。
6.根据权利要求5所述的逻辑电路设计中的RAM例化装置,其特征在于,还包括有优化模块,所述优化模块用于识别并删除管脚未经所述解释模块连接的RAM单元。
7.根据权利要求5所述的逻辑电路设计中的RAM例化装置,其特征在于,所述参数组中包括RAM类型、RAM深度以及RAM位宽参数。
8.一种生成逻辑电路的系统,其特征在于,包括例化装置,所述例化装置包括有解释模块以及存储有综合库封装文件的存储单元,所述综合库封装文件中包括不同参数组与不同RAM单元名间的对应关系,且所述综合库封装文件包括对应于例化中使用的综合库中所有RAM单元的单元名;所述解释模块读取逻辑电路设计代码中的参数组并通过该参数组从所述综合库封装文件获取综合库中对应的RAM单元后进行输入输出管脚的连接。
9.根据权利要求8所述的生成逻辑电路的系统,其特征在于,所述例化装置还包括优化模块,所述优化模块用于识别并删除与所述逻辑电路设计代码中参数组不对应的RAM单元。
10.根据权利要求8所述的生成逻辑电路的系统,其特征在于,所述参数组中包括RAM类型、RAM深度以及RAM位宽参数。
全文摘要
本发明涉及一种逻辑电路设计中RAM例化方法,包括以下步骤(a)读取逻辑电路设计代码,获取代码中标识RAM单元的参数组;(b)通过所述参数组在综合库封装文件中查找到与所述参数组对应的RAM单元名,所述综合库封装文件中的RAM单元名与综合库中的RAM单元相对应;(c)根据所述RAM单元名选择综合库中对应的RAM单元进行输入输出管脚的连接。本发明还提供了一种对应的逻辑电路设计中RAM例化装置及一种对应的生成逻辑电路的系统。本发明通过使用统一的综合库封装文件,避免了RAM名冲突,并减少了RAM封装文件的设计和维护工作量,提高了设计效率。
文档编号G06F17/50GK1945585SQ200610063298
公开日2007年4月11日 申请日期2006年10月24日 优先权日2006年10月24日
发明者李小波 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1