将软件程序代码断言转换为硬件描述语言程序代码的方法技术

技术编号:2837375 阅读:257 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种将软件程序语言来源文件中的断言转换到硬件描述语言来源文件中的系统及方法,在本发明专利技术方法一开始,第一来源文件具有以软件程序语言写成的软件程序代码,第二来源文件具有从第一来源文件中的软件程序代码转译而来的硬件描述语言程序代码,但不包含由第一来源文件中的程序代码转译过来的断言,本发明专利技术的方法包含:从第一来源文件中读取软件程序断言;定位第二来源文件中第二区块的位置,其中第二区块对应第一来源文件中包含软件程序断言的第一区块;转换软件程序断言为以硬件描述语言写成的硬件程序断言;判断硬件程序代码文件中插入程序断言的第二区块的位置;以及在该位置插入硬件程序断言。

【技术实现步骤摘要】

本专利技术有关于一种用来设计数字化集成电路(integrated circuits,IC)的软件工具,特别是有关于一种使用硬件描述语言(hardware description language,HDL)断言(assertion)的工具。
技术介绍
传统上集成电路设计包含数个阶段,每个阶段都需要使用不同的工具或工具组,一般集成电路设计者会使用数种程序语言之一来撰写程序代码,在撰写程序代码流程的同时会进行模拟,设计者会执行模拟工具输入程序编码以测试设计结果,当模拟过程出现问题,测试者对程序代码编辑以修复问题并再度进行模拟,在模拟后设计者会使用合成器将程序编码转译为集成电路的逻辑表示,接着使用其他集成电路工具将逻辑表示转化成实体集成电路,成为可编程逻辑门阵列(Field Programmalbe Gate Array,FPGA)、专用集成电路(Application-Specific Integrated Circuit,ASIC)、或其他订制硅集成电路。集成电路设计者可以使用数种类别的程序语言进行设计,其中有一种语言集合被称为硬件描述语言(Hardware Description languages,HDL),亦被称为寄存器传输语言(Register Transfer Languages,RTL),一般所知的寄存器传输语言包含Verilog与VHDL,寄存器传输语言被认为是低阶程序语言,因为其描述的是特殊硬件特征如时序或是平行度,其他可供集成电路设计用的程序语言包含C、C++、或其他类似的语言,这类语言传统上比较常用来开发软件而非硬件,这些软件语言可以让设计者以较高阶的概念撰写程序代码,因此通常会增加设计者的工作效率。一般C/C++与硬件描述语言程序代码都包含断言,用以确认程序编码能准确实行预期的设计,一段断言为用来表示一个特定的设计特征应该或不应该如何运转的宣告,举例来说,一个特定区块的程序代码可能会假设两批输出中一次只有一批是有作用的,再举例来说,一个区块可能会假设每一批输入的值都不会大于一个特定的最大值,这些假设可以由设计者表示为断言来实现。因为大部分的模拟及合成工具都使用硬件描述语言来输入,而不是C/C++,使用C/C++撰写程序代码的设计者要将程序代码转译为硬件描述语言,转译过程可能是人工转译、自动转译、或两种方式的结合,然而,并非所有转译工具都能将C++断言转译为适当的硬件描述语言断言,因此,亟需提出一种能转译软件程序代码为硬件描述语言的工具,以克服传统技术的缺欠。
技术实现思路
有鉴于上述传统技术的诸多缺欠,本专利技术的目的在于提出一种能转译软件程序代码的断言为硬件描述语言的系统与方法,在本专利技术的一方法中,一第一来源文件包含以软件程序语言写成的源程序代码,会被转译为包含硬件描述语言源程序代码的第二来源文件。第二来源文件会执行由第一来源文件程序代码转译过来的断言,这个方法包含由第一来源文件读取软件程序代码断言;定位第二来源文件中的一第二区块,其中第二区块对应到第一来源文件中的具有软件程序代码断言的第一区块;转译软件程序代码断言为以硬件描述语言表示的硬件程序断言;决定第二区块中的一个位置以插入硬件程序断言;以及将硬件程序断言插入第二来源文件中被决定的位置。对本领域普通技术人员而言,其他未包含在本专利技术下述所公开的内容与附图中的系统、方法、特征或好处为显而易见的,因此凡其他未脱离专利技术所揭示的精神下所完成的等效改变或修改,均应包含在所述的权利要求范围内。附图说明图1显示使用本专利技术的方法转换软件程序代码断言为硬件描述语言程序代码的整体数据流区块示意图。图2A显示软件程序代码与硬件程序代码阶层结构与两者间对应关系的区块层级示意图。图2B显示软件程序代码与硬件程序代码文件如何表示图2A中的阶层结构的示意图。图3显示软件程序代码与硬件程序代码中另一种阶层结构的示意图。图4显示一软件程序代码函数以及对应的硬件程序代码模块示意图。图5显示使用本专利技术所公开的方法转换如图4所示的软件程序代码函数中的断言的硬件程序代码模块的示意图。图6显示本专利技术所公开的方法如何对应C/C++形式的断言于硬件描述语言形式的示意图。图7显示本专利技术的一实施例中可转换软件程序断言为硬件描述语言程序代码的系统的区块示意图。图8显示本专利技术的一实施例中可转换软件程序断言为硬件描述语言程序代码方法的流程图。图9显示用以实施本专利技术的转换软件程序断言为硬件描述语言程序代码方法的通用计算机的硬件区块示意图。主要元件符号说明110 软件程序代码120 转译工具130 硬件程序代码140 断言转换工具150 包含硬件断言的硬件程序代码160 硬件描述语言模拟器210S函数main210H模块top220S类别S_MUX220H模块H_MUX230S类别S_CTR230H模块H_CTR240S类别S_ENC240H模块H_ENC310 函数区块320 模块区块330 序列区块340 流程区块350S软件控制区块 350H硬件控制区块410S软件函数410H硬件模块420S第一控制区块420H第一控制区块430S第二控制区块430H第二控制区块440 流程区块450 断言510 硬件断言610 C/C++(软件)断言620 布尔代数630 输出字串640 严重程度650 Verilog语言(硬件)断言660 属性定义670 ASSERT宣告680 布尔代数690 $FATAL(严重程度)宣告695 输出字串710 读取逻辑720 第一定位逻辑725 软件指示码727 软件区块730 第二定位逻辑735 硬件指示码737 硬件区块740 转译逻辑750 第三定位逻辑760 插入逻辑800 可转换软件断言为硬件描述语言程序代码方法 810从软件来源文件中读取包含软件断言的函数或类别820决定软件断言与组成函数或类别的各种区块的相对位置830读取相对于函数或类别的硬件模块840转换软件断言到硬件断言850判断硬件断言在硬件程序代码文件中的插入位置860在插入位置插入硬件断言900计算机系统910处理器920网络接口930存储器940非易失性存储装置950总线具体实施方式本专利技术的一些实施例会详细描述如下。然而,除了详细描述外,本专利技术还可以广泛地在其他的实施例施行,且本专利技术的范围不受限定,其以所提出的权利要求范围为准。再者,在本说明书中,各元件的不同部分并没有依照尺寸绘图。某些尺度与其他相关尺度相比已经被夸张,以提供更清楚的描述和本专利技术的理解。本专利技术公开一种,包含将软件程序代码与经由软件程序代码转译而来的硬件描述语言程序代码一起检视;转译被检视的软件程序代码中的软件程序代码断言为硬件描述语言程序代码断言;以及将硬件描述语言程序代码断言插入硬件程序代码中。图1显示使用本专利技术的方法转换软件程序代码断言为硬件描述语言程序代码的整体数据流区块示意图,本专利技术的方法使用两组输入文件,两组输入文件通常被配置在不同的子目录中,其中一组输入文件包含软件程序代码110,软件程序代码110为使用软件程序语言如C或C++写成的程序代码,这些输入文件还包含用相同软件程序语言写成的断言,软件程序代码110会被输入转译工具120以将软件程序代码转译为硬件描述语言如VHDL或Verilog,由本文档来自技高网
...

【技术保护点】
一种转换一软件程序语言来源文件中的断言到硬件描述语言来源文件中的转换方法,包含:从一第一来源文件内的软件程序语言程序代码中读取一软件程序断言,其中该软件程序断言位于一第一区块中;定位一第二区块的位置,其中该第二区块对应该第一 区块,且位于一包含硬件描述语言来源程序代码的第二来源文件内,该第二来源文件内的程序代码为转译该第一来源文件而来,其中不包含由该软件程序断言转译而来的一硬件程序断言;转换该软件程序断言为以硬件描述语言写成的一硬件程序断言;判断 该第二区块内的一插入位置以插入该硬件程序断言;以及在该插入位置插入该硬件程序断言。

【技术特征摘要】
US 2006-6-1 11/445,0131.一种转换一软件程序语言来源文件中的断言到硬件描述语言来源文件中的转换方法,包含从一第一来源文件内的软件程序语言程序代码中读取一软件程序断言,其中该软件程序断言位于一第一区块中;定位一第二区块的位置,其中该第二区块对应该第一区块,且位于一包含硬件描述语言来源程序代码的第二来源文件内,该第二来源文件内的程序代码为转译该第一来源文件而来,其中不包含由该软件程序断言转译而来的一硬件程序断言;转换该软件程序断言为以硬件描述语言写成的一硬件程序断言;判断该第二区块内的一插入位置以插入该硬件程序断言;以及在该插入位置插入该硬件程序断言。2.如权利要求1所述的转换方法,其中上述的第一来源文件包含最少一顶端软件实体,而该第二来源文件包含最少一顶端硬件实体,其中每一实体包含最少一区块,该转换方法还包含判断该软件程序断言位于哪一个该顶端软件实体中;判断该软件程序断言与包含该软件程序断言的该顶端软件实体内其他区块的一相对位置;判断哪一该顶端硬件实体对应于包含该软件程序断言的该顶端软件实体;以及基于该相对位置判断在对应的该顶端硬件实体内用以插入该硬件程序断言的该插入位置。3.如权利要求1所述的转换方法,还包含定位该第一区块内的该软件程序断言的位置,该第一区块位于该第一来源文件内的该顶端软件实体中;以及判断包含对应该顶端软件实体的该顶端硬件实体的该第二来源文件的文件名称。4.如权利要求3所述的转换方法,其中该顶端软件实体为一软件程序语言函数,该顶端硬件实体为一硬件描述语言模块。5.如权利要求4所述的转换方法,其中该函数与该模块都包含最少一区块,该转换方法还包含判断该软件程序断言相对于在同一函数内的其他区块的一软件程序断言位置;判断该顶端硬件实体内的多个区块的多个区块位置;判断一插入位置,该插入位置与在同一模块内的该多个区块的相对位置关系对应于该软件程序断言位置;以及插入该硬件程序断言于该插入位置。6.如权利要求1所述的转换方法,还包含读取一第一组来源文件,该第一组来源文件包含多个以软件程序语言写成的来源文件,其中还包含该第一来源文件;建立一第一阶层结构用以表示该第一组来源文件内的程序代码文件阶层结构;以及判断一第二组来源文件内的该第二来源文件,该第二组来源文件由该第一组来源文件转译而来,其中该第二来源文件在该第二组来源文件的阶层结构位置对应于该第一来源文件在该第一阶层结构的位置。7.如权利要求1所述的转换方法,其中上述的软件程序断言包含一布尔代数与一输出字串,而上述的硬件程序断言包含一属性定义。8.一种转换一第一来源文件中的最少一断言到一第二来源文件中的转换系统,其中该第一来源文件包含用软件程序语言写成的来源码,该第二来源文件包含硬件描述语言来源码,该转换系统包含一读取逻辑,用以自该第一来源文件读取一软件程序断言;一第一定位逻辑,设定一第一区块,该第一区块包含该第一来源文件内的该软件程序断言与最少一软件位置指示码,该第一定位逻辑用以判断该软件程序断言的一相对位置,该相对位置于该第一区块内并与该软件位置指示码相关;一第二定位逻辑,设定一第二区块,该第二区块位于该第二来源文件内并对应于该第一区块,该第二定位逻辑搜寻该第二来源文件内的最少一硬件位置指示码,该硬件位置指示码对应于该软件位置指示码;一转译逻辑,用以转译该软件程序断言为一硬件程序断言;一第三定位逻辑,用以判断该第二来源文件内的一插入位置,该...

【专利技术属性】
技术研发人员:余大伟张征陈琦
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

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

1