自动生成硬件构件仿真工程的方法和装置的制作方法

文档序号:6337116阅读:189来源:国知局
专利名称:自动生成硬件构件仿真工程的方法和装置的制作方法
技术领域
本发明涉及计算机硬件开发领域,特别涉及一种自动生成硬件构件仿真工程的 方法和装置。
背景技术
在传统的网络技术体系框架下,依靠拓展链路传输带宽、提高节点处理速度、 增大复杂控制算法和协议等系列技术,很难满足特性差异日益扩大的用户业务承载需 求,面对大量差异化用户业务的规模化应用,网络无法适应的问题日趋凸现。针对这一 问题,面向服务提供的新型网络技术体系被提出,该技术体系的基本思想是根据用户 的业务需求对网络路由结点进行重构,从而构建出满足用户需求的业务承载网。实现上述面向服务提供的新型网络技术体系的关键技术是开放式可重构路由 交换节点技术。该技术的基础是平台化支撑下构件化处理技术,其定义处理的三个等 级一平台、组件和构件,其中,平台是可重构完成多种任务的系统,组件是可重构实现 特定功能的单元,构件是可重构实施给定处理的模块。该平台化支撑下构件化处理技术 的特征体现在以下三个方面1、平台为各种组件提供可重构的运行支撑环境,而组件为 各种构件提供可重构的运行支撑环境,构件是基本处理模块;2、平台、组件和构件均服 从统一的系列标准化规范,即任意第三方提供的标准化组件可以在同一平台上参与完 成给定任务,任意第三方提供的标准化构件可以在同一组件上参与完成特定功能;3、平 台级和组件级均能实现功能升级重组、性能编程分配和管理分层配置,构件级具有较强 的可维护性(如加载、卸载、升级和更新)。开放性可重构路由交换节点的构件包括硬件构件和软件构件两部分,其中软件 构件在计算机领域已经被很早提出和应用,而硬件构件只在近几年才得到关注和应用。 与软件构件不同,硬件构件是一种可下载到FPGA上的硬件编程程序,具有某种单一的 处理功能,其在部署到FPGA之前需要进行仿真工作。所谓硬件构件仿真,是指对特定 的硬件构件进行功能仿真(Function simulation),目的是验证其逻辑功能是否正确和完 备。硬件构件仿真不考虑时延等实际物理特性,而只针对理想情况下的构件进行逻辑功 能的验证,即观察在不同的仿真数据输入下该硬件构件的输出结果是否符合预想的逻辑 要求。目前为止,针对硬件构件的仿真方法并未有任何的针对性,即都是使用传统的 硬件仿真方法对硬件构件进行仿真,比如编写test bench脚本或者直接修改仿真的输入波 形等。这些方法都不可避免的需要大量的手工操作,并且当面对大规模仿真数据(数据 宽度大,条数多)时都无法快捷地建立起仿真工程。实际上,开放性可重构路由交换节点的硬件构件是有其特殊性的,它们主要处 理的是报文数据,所以需要对大规模数据进行仿真;同时其处理逻辑相对简单、输入端 口标准化,所以仿真工程的建立是可以流程化和自动化的。因此,一种能够自动生成对 大规模数据进行仿真的硬件构件仿真工程的方法是必要的。

发明内容
有鉴于此,本发明提供一种自动生成硬件构件仿真工程的方法和装置,实现硬 件构件仿真工程的自动创建,从而极大方便了对FPGA硬件构件的仿真过程,并加快了 硬件构件的开发与部署。本发明的技术方案是一种自动生成硬件构件仿真工程的方法,所述方法包括
a.数据源生成步骤
1)分析硬件构件端口信息,得到输入端口的数据长度;
2)利用得到的输入端口数据长度,生成硬件构件仿真数据表格,供用户输入;
3)根据用户输入的仿真数据,生成硬件构件ROM文件;
4)根据用户输入的仿真数据,生成硬件构件ROM访问接口;
5)根据用户输入的仿真数据条数,构造数据地址迭代器;
6)将ROM文件、ROM访问接口以及ROM地址迭代器进行组装,得到仿真数据
源;
b.仿真工程生成步骤
1)将待仿真的硬件构件与仿真数据源进行组装,得到硬件构件仿真应用;
2)在硬件构件仿真应用的输入端接入激励发生器,提供时钟激励和复位信号,从而 构成硬件构件仿真工程。本发明另一技术方案是一种自动生成硬件构件仿真工程的装置,包括硬件构件 端口分析模块和仿真数据分析模块,其特征在于还包括ROM文件生成模块,ROM访问接 口生成模块,地址迭代器生成模块,数据源组装模块,激励发生器模块,仿真应用组装 模块,仿真工程组装模块,其中
1)硬件构件端口分析模块,用于分析硬件构件输入端口的个数以及各自的宽度,并 得到总的数据宽度;
2)仿真数据分析模块,用于分析仿真数据的条数以及数据的有效性;
3)ROM文件生成模块,用于将用户输入的仿真数据转换成标准格式的ROM文件;
4)ROM访问接口生成模块,用于生成ROM文件的访问接口,该文件将ROM数据 封装成为一个可调用的硬件实体,该实体根据输入的ROM地址空间的一个地址,输出该 地址对应的仿真数据;
5)地址迭代器生成模块,用于生成地址迭代器,该迭代器是一个硬件实体,并且根 据时钟变化依次循环输出所有仿真数据的地址;
6)数据源组装模块,用于将ROM访问接口和地址迭代器进行组装,构成仿真数据 源,该数据源是一个硬件实体,并且根据时钟变化依次循环输出所有的仿真数据;
7)激励发生器模块,用于产生固定周期的时钟激励以及固定变化的复位信号;
8)仿真应用组装模块,用于将仿真数据源和待仿真的硬件构件进行组装,构成硬件 构件仿真应用;
9)仿真工程组装模块,用于对硬件构件仿真应用添加周期性的激励,即在硬件构件 仿真应用的输入端接入激励发生器,从而构成硬件构件仿真工程。由上述技术方案可知,本发明在建立硬件构件仿真工程的过程中,能够根据用户输入的仿真数据自动生成数据源,并分析得到硬件构件的接口信息,从而将数据源与 硬件构件准确地组装成硬件构件仿真应用,最后给予仿真应用固定周期的时钟激励。整 个硬件构件仿真工程的生成过程只需要用户在最开始时输入仿真数据,其后的工作能够 自动完成,从而极大地方便了硬件构件仿真工作的进行。本发明具有以下优点
仿真数据批量化由于硬件构件仿真数据源的存在,生成的硬件构件仿真工程可以 满足用户的批量仿真要求,即允许用户将大规模的仿真数据在一次仿真中全部完成,这 是现有硬件仿真方法无法做到的;
仿真工程自动创建即使现有硬件仿真手段使用数据源进行批量仿真,仿真工程的 建立也需要繁琐的过程,本发明可以使这一过程自动完成;
屏蔽硬件构件差异性硬件构件仿真工程在创建时会自动提取硬件构件的端口信 息,从而动态生成相应的仿真数据源,所以用户无需关心硬件构件的功能和端口,硬件 构件的差异性将得到屏蔽。


图1是硬件构件仿真数据源的生成过程; 图2是硬件构件仿真工程的生成过程;
图3是硬件构件仿真工程自动生成装置的模块结构; 图4是硬件构件仿真工程的内部组成结构; 图5是硬件构件仿真数据源的内部组成结构。
具体实施例方式为使本发明的上述步骤、特征和优点能够更加明显易懂,下面结合附图对本发 明的具体实施方式
做详细的说明。实施例一一种自动生成硬件构件仿真工程的方法,其流程由数据源生成过程 和仿真工程生成过程组成。其中,数据源生成过程如图1所示,包括以下步骤 1)分析硬件构件端口信息
为了能够生成适合不同硬件构件端口的仿真数据源,需要对硬件构件的端口进行 分析。硬件构件在下载运行之前是一段硬件编程程序,根据开发语言的不同,可能是 VHDL或者Verilog程序等。语言的识别可以简单地通过硬件构件描述文件(XML文件) 中的相应属性得到,或者直接通过分析程序中的特殊关键字。针对不同的语言实现,可 以使用不同的分析方法来得到硬件构件端口信息,比如对于VHDL程序可以分析其entity 模块的内容,又如Verilog程序可以分析其module模块的内容。所以,硬件构件的端口 分析过程分为两部
a)分析硬件构件的实现语言可以通过读取硬件构件描述文件,或者直接分析实现 程序中的特殊关键字;
b)针对不同的实现语言,分析硬件构件的端口信息提取出不同输入端口的数据长 度,并计算出硬件构件总的输入数据长度。
这里需要说明的是硬件构件描述文件,该文件是在硬件构件开发过程中生成 的,记录了该构件的基本信息、接口信息以及资源信息,并以XML文件的形式成为硬件 构件的附属产品。硬件构件描述文件的基本信息中包含了开发该构件所使用的语言和开 发工具,而接口信息中包含了该构件的端口信息。但由于硬件构件描述文件是用户人为 填写的,所以可能存在信息不全或者错误的情况,为了使硬件构件仿真工程能够顺利生 成,优选方法是对硬件构件的实现程序进行直接分析。2)用户输入指定宽度的仿真数据
用户输入的仿真数据最终将作为硬件构件的输入数据,所以其长度受硬件构件的输 入数据长度限制,比如IPv4协议识别构件的输入端口数据长度为141位,超过此长度的 数据将无法作为该构件的输入。在1)步骤中,硬件构件的输入数据总长度已经得到,所 以用户的输入过程将得到限制,对于长度不足的数据进行补零操作。用户的输入流程可 以采用填写仿真数据表格的形式或者读取仿真数据文件的形式。此外,在用户输入仿真 数据的过程,还需要对仿真数据的有效性进行检验,主要包括是否为16进制字符,数 据长度是否超过限制等。3)根据仿真数据,生成ROM文件
ROM文件是FPGA硬件设计中的重要组成部分,主要用来存储位图、指令或者数据 等,与真实硬件环境中的ROM芯片相对应。根据开发环境的不同,ROM文件的格式也 有所不同,比如QuartusII中的ROM文件有mif格式和hex格式,而Xilinx ISE中的ROM 文件为coe格式。其中hex格式和coe格式是字符串文本形式,并且格式标准比较通用, 所以优选这两种格式。如果硬件环境是Xilinx开发板,则可以采用coe格式。该格式是将仿真数据直 接作为ROM文件的内容,所以ROM文件的生成过程就是复制数据的过程。如果硬件环境是Altera开发板,则可以采用hex格式。该格式的具体要求如下 :llaaaatt[dd..]cc
每条数据都被构造成上述形式,其中U表示数据长度,单位为字节,aaaa表示该条数 据的下标,tt表示为“00”,[dd..]表示该条仿真数据,CC表示数据校验位,有关该格式 的详细信息可参考Hexadecimal (Intel-Format)的国际标准。所以,此时的ROM文件生成 过程就是按照hex格式标准封装仿真数据。4)根据仿真数据,生成ROM访问接口
ROM访问接口是一个对ROM文件进行访问的硬件编程程序,其输入为仿真数据的 地址下标,输出为该地址对应的仿真数据。对于不同开发语言,ROM访问接口的实现是不同的,但是对于同一种语言下的 不同硬件构件,ROM访问接口是可以模板化的,即只需要替换模板的指定属性,比如地 址长度、仿真数据长度、ROM文件名称以及硬件构件名称等,就可以生成针对不同硬件 构件的ROM访问接口。以Altera硬件环境下的ROM访问接口生成过程为例
a)模板准备ROM访问接口模板是预先生成的,并且只需要生成一次。模板的生 成方式有两种一种是直接编写模板,需要开发人员对ROM文件的访问方式十分了解; 另一种是修改已有的一种相同语言下的硬件构件ROM访问接口文件,将其中需要变动的 部分参数化。在Quartus II下,可以通过mega-function工具来生成指定ROM文件的访问接口,从而对该接口进行参数化修改,生成同种语言下的硬件构件ROM访问接口文件。b) ROM访问接口生成根据已获得的仿真数据长度和地址长度,以及已知的 ROM文件名称和硬件构件名称,来替换ROM访问接口模板中的指定参数,生成的新的 硬件编程程序即为该硬件构件对ROM文件的访问接口。5)根据仿真数据条数,构造仿真数据地址迭代器
为了能够对仿真数据进行逐个仿真,需要对所有仿真数据进行循环遍历,这样就 需要对仿真数据的地址进行迭代。仿真数据地址迭代器的工作原理是在每个时钟上 升沿将地址加1,达到数据条数时归零,即如果数据条数为L,则地址迭代过程为 0,1,2, ......,L-2, L-1,0,1,2, ......L-1,0,1,......。仿真数据地址迭代器也是一个硬件编程程序,其本质是一个计数器,输入为时 钟和复位信号,输出为仿真数据地址,并且随着时钟在不断循环计数。6)将ROM文件、ROM访问接口、地址迭代器组装成仿真数据源
ROM访问接口和地址迭代器都是硬件编程程序,并且地址迭代器的输出地址长度与 ROM访问接口的输入地址长度一致,所以二者可以顺利进行组装,从而将ROM文件、 ROM访问接口、地址迭代器结合成为仿真数据源。需要说明的是,所谓硬件构件的组装,实际上是编写新的硬件程序,该程序调 用各个组装对象,并将其端口进行互连映射。由于数据源的各个组成部分的端口信息以 及连接方式是已知的,所以数据源的组装是可以自动完成的。仿真数据源的连接方式和 内部结构如图5所示,其输入为时钟和复位信号,输出为一条仿真数据,并且仿真数据 随时钟的到来而循环变化。仿真工程生成过程如图2所示,包括以下步骤
1)仿真数据源与硬件构件进行组装,得到硬件构件仿真应用 由于仿真数据源的输出数据长度是根据硬件构件的输入数据长度来设定的,所以二 者是可以顺利组装的。组装之后将得到硬件构件仿真应用,该应用可以看成新的硬件构 件,并且可以下载运行,其完成的逻辑是对所有仿真数据进行不断仿真,并输出相应的 仿真结果。硬件构件仿真应用的内部结构如图4所示,虚线框中的部分即为硬件构件仿 真应用。不过,硬件构件仿真应用的运行需要时钟激励,而硬件构件仿真是在软件环境 下进行的,所以最终的硬件构件仿真工程还需要对硬件构件仿真应用添加人为的时钟激 励。2)为硬件构件仿真应用添加激励发生器,得到硬件构件仿真工程
鉴于1)中所述的硬件构件仿真应用的不足,为硬件构件仿真应用添加人为的激励发 生器,从而组成最终的硬件构件仿真工程。硬件构件仿真工程的内部结构如图4所示, 在硬件构件仿真应用的输入端接入激励发生器。激励发生器的功能是对外发出固定周期的时钟信号,比如以IOns为周期的时 钟;以及固定变化的复位信息,比如前100ns复位信号为1,其后的时间复位信号为0。 由于硬件构件仿真的目的是验证其处理数据的正确性,所以时钟周期和复位信号的设定 可以固定化,这样激励发生器就可以预先自动生成。实施例二 一种自动生成硬件构件仿真工程的装置,其结构如图3所示。
该装置包括仿真数据分析模块,硬件构件端口分析模块,地址迭代器生成模 块,ROM文件生成模块,ROM访问接口生成模块,数据源组装模块,仿真应用组装模 块,激励发生器模块,仿真工程组装模块。其中
1)仿真数据分析模块用于对用户输入的仿真数据进行分析,得到数据条数,并且 对数据的有效性进行检验,规范数据长度和格式;
2)硬件构件端口分析模块用于对硬件构件的程序代码进行分析,得到不同输入端 口的数据长度和硬件构件总的输入数据长度;
3)地址迭代器生成模块用于生成对仿真数据条数的循环计数器,从而作为对仿真 数据的地址下标的循环遍历;
4)ROM文件生成模块根据开发环境的不同(Altera或Xilinx),选择 不同的ROM文件格式对仿真数据进行封装。本装置以Altera环境为例,根据 Hexadecimal (Intel-Format)标准,将仿真数据封装成hex格式;
5)ROM访问接口生成模块用于将ROM文件封装成可访问的硬件编程程序,即 ROM访问接口。本装置在运行之前已经生成了针对不同语言的ROM访问接口模板,所 以ROM访问接口生成模块的工作仅仅是替换模板中的地址长度、仿真数据长度、ROM 文件名称以及硬件构件名称等参数。此外,ROM访问接口模板的生成不作为本装置运行中的某一模块,而仅仅是本 装置初始化的一个前提条件,其生成方法为将已有的ROM访问接口程序参数化。6)数据源组装模块将ROM访问接口和仿真数据地址迭代器以图5所示的方 式进行组装,得到新的硬件编程程序,即仿真数据源。本装置以VHDL程序为例,自动 将ROM访问接口程序和仿真数据地址迭代器程序进行组装,生成仿真数据源的VHDL代 码程序;
7)仿真应用组装模块将仿真数据源与硬件构件以图4虚线框中所示的方式进行组 装,得到硬件构件仿真应用。本装置同样以VHDL程序为例,自动完成这一过程;
8)激励发生器模块用于生成进行软件仿真的激励信号。本装置的激励发生器模块 是预先生成的,其产生固定周期(IOns)的时钟信号和固定变化的复位信号;
9)仿真工程组装模块用于生成最终的硬件构件仿真工程,其内部是由硬件构件仿 真应用和激励发生器所组成,结构如图4所示。本装置同样以VHDL程序为例,自动完 成组装过程,最后得到针对该硬件构件的仿真工程程序。上述所示的具体实施方式
仅仅是提供了本发明的几种实现思路,通过对装置模 块的阐述给出了一种实现方案。但本发明将不限于本文所示的这些实施例和优选方案, 而是包含与本文所公开的方法和出发点相一致的最广的范围。
权利要求
1.一种自动生成硬件构件仿真工程的方法,其特征在于包括数据源生成和仿真工程 生成,其中a.数据源生成包括以下步骤分析硬件构件端口信息,得到输入端口的数据长度;利用得到的输入端口数据长度,生成硬件构件仿真数据表格,供用户输入;根据用户输入的仿真数据,生成硬件构件ROM文件;根据用户输入的仿真数据,生成硬件构件ROM访问接口 ;根据用户输入的仿真数据条数,构造数据地址迭代器;将ROM文件、ROM访问接口以及ROM地址迭代器进行组装,得到仿真数据源;b.仿真工程生成包括以下步骤将待仿真的硬件构件与仿真数据源进行组装,得到硬件构件仿真应用; 在硬件构件仿真应用的输入端接入激励发生器,提供时钟激励和复位信号,从而构 成硬件构件仿真工程。
2.根据权利要求1所述的方法,其特征在于,数据源生成的步骤1)中硬件构件的端 口分析过程分为两部a.分析硬件构件的实现语言通过读取硬件构件描述文件,或者直接分析实现程序 中的特殊关键字;b.针对不同的实现语言,分析硬件构件的端口信息提取出不同输入端口的数据长 度,并计算出硬件构件总的输入数据长度。
3.根据权利要求1所述的方法,其特征在于,仿真数据源的输入为时钟和复位信号, 输出为一条仿真数据,并且仿真数据随时钟的到来而循环变化。
4.根据权利要求1所述的方法,其特征在于,仿真工程生成的步骤1)硬件构件仿真 应用中,还包括为硬件构件仿真应用添加人为的激励发生器。
5.一种自动生成硬件构件仿真工程的装置,包括硬件构件端口分析模块和仿真数据 分析模块,其特征在于还包括ROM文件生成模块,ROM访问接口生成模块,地址迭代 器生成模块,数据源组装模块,激励发生器模块,仿真应用组装模块,仿真工程组装模 块,其中硬件构件端口分析模块分析硬件构件输入端口的个数以及各自的宽度,并得到总的 数据宽度;仿真数据分析模块分析仿真数据的条数以及数据的有效性; ROM文件生成模块将用户输入的仿真数据转换成标准格式的ROM文件; ROM访问接口生成模块生成ROM文件的访问接口,该文件将ROM数据封装成为一 个可调用的硬件实体,该实体根据输入的ROM地址空间的一个地址,输出该地址对应的 仿真数据;地址迭代器生成模块生成地址迭代器,该迭代器是一个硬件实体,并且根据时钟变 化依次循环输出所有仿真数据的地址;数据源组装模块将ROM访问接口和地址迭代器进行组装,构成仿真数据源,该数据 源是一个硬件实体,并且根据时钟变化依次循环输出所有的仿真数据; 激励发生器模块产生固定周期的时钟激励以及固定变化的复位信号;仿真应用组装模块将仿真数据源和待仿真的硬件构件进行组装,构成硬件构件仿真 应用;仿真工程组装模块对硬件构件仿真应用添加周期性的激励,即在硬件构件仿真应用 的输入端接入激励发生器,从而构成硬件构件仿真工程。
全文摘要
本发明公开了一种自动生成硬件构件仿真工程的方法和装置。方法包括数据源的生成与硬件构件仿真工程的生成两部分。其中,数据源的生成过程包括ROM文件及其接口的生成,地址迭代器的生成,以及数据源的组装;硬件构件仿真工程的生成过程包括数据源与硬件构件之间的组装,以及为硬件构件仿真应用添加激励发生器。本发明中用于实现上述方法的装置,能够实现对大规模仿真数据进行同时仿真,并且屏蔽了不同硬件构件接口以及功能的差异性,整个生成过程自动完成,从而使硬件构件仿真工作方便快捷和有效。
文档编号G06F11/26GK102012856SQ201010566110
公开日2011年4月13日 申请日期2010年11月30日 优先权日2010年11月30日
发明者张博, 李鹏, 汪斌强, 王保进, 王志明, 袁博, 赵靓, 韩晓亚, 黄万伟, 齐宁 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1