三态器件上拉阻抗/下拉阻抗/总线保持转换方法

文档序号:6572827阅读:263来源:国知局
专利名称:三态器件上拉阻抗/下拉阻抗/总线保持转换方法
技术领域
本发明涉及一种SoC仿真方法,特别是一种SoC软硬件协同仿真中三态器件上 拉阻抗/下拉阻抗/总线保持转换方法。属于SoC仿真、验证技术领域。
背景技术
专业术语以及一些重要縮写软硬件协同仿真是指将一个大型的仿真系统分为软、硬件两部分来实现,需要 进行大量计算的部分采用FPGA硬件平台进行仿真,称之为硬件部分;需要使用行为 级描述的,或用于激励输入以及响应输出的仿真部分使用工作站来完成,称之为软件 部分。这样,就能通过结合FPGA硬件平台和工作站软件仿真的各自优点,来构成一个功能和速度都提高了的大型仿真系统。FPGA: Field Programmable Gate Array(现场可编程门阵列) SoC: System on Chip(系统级芯片集成) DUT: Design Under Testing(待测设计) TB: Test Bench(测试基准)一个大规模的SoC设计通常是由高层的算法设计开始的,接着按照所需实现的功 能及其复杂程度的不同,划分为软件设计和硬件设计两大模块,然后逐歩细化直至最 后实现。软硬件协同仿真的主要思想就是将功能复杂,需要大量仿真计算的硬件模块 下载到FPGA硬件仿真平台中进行测试和验证,同时将采用行为级等高级描述进行设 计的软件模块放到工作站去开发,从而实现了软、硬件两部分设计同时进行。这样, 不仅仅可以利用FPGA硬件平台的高速性能来加速硬件模块设计,而且同时由于工作 站上的软件仿真器结合工作,还可以方便快捷地施加激励信号和观测电路响应,大大 提高了SoC的设计效率,縮短了设计、验证时间以及产品投放市场的周期。在整个SoC设计划分为DUT和TB两部分后,DUT部分作为可综合部分下载到 FPGA平台,TB部分作为行为级部分在工作站仿真运行。由于FPGA三态器件资源 十分有限,并且FPGA电路上的高阻态无法正确地反馈到工作站进行仿真,因此需要 将三态器件进行适当地转换,使得软硬件能够正确地协同仿真。从现有软硬件协同仿真技术来看, 一般由SoC设计人员进行软硬件协同仿真之前,花费一定时间手动修 改SoC设计,将其划分为DUT和TB两部分并避免该类问题的存在。

发明内容
本发明的目的针对现有的系统级芯片集成软硬件协同仿真技术在三态器件处理 方式上的不足,提供一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法,其构思如下在用户指定SoC设计的DUT和TB两部分后,读入采用硬件描述语言描述的SoC 设计源代码并进行建立相应的线网,然后将SoC设计中的三态器件进行编组,采用 相应的功能等价电路,对线网进行修改,从而实现对已编组的三态器件进行转换,最 后将得到的转换电路以硬件描述语言进行输出,用于软硬件协同仿真的后续流程。为了容易讨论,图1表示一种对简化的系统级芯片集成软硬件协同仿真中三态器 件电路,采用相应的功能等价电路进行上拉阻抗/下拉阻抗/总线保持转换方法。三态器件101、 102、 103、 104属于同一编组,因此在进行电路转换之后,四个 三态器件对应于与门105、 106、 107、 108,再借助或门109将与门105、 106、 107、 108输出端相或后输出。当三态器件电路非高阻态输出时,转换后电路输出与之相同; 当三态器件电路高阻态输出时,则转换后电路输出为低电平,此转换称之为Pulldown 转换,又称上拉阻抗转换。'三态器件110、 111属于同一编组,因此在进行电路转换之后,两个三态器件对 应于与门112、 113,再借助或门114将与门112、 113输出端相或后输出到或门116 的输入端;或非门115将两个三态器件的使能信号en5、 en6相或输出到或门116的 输入端。当三态器件电路非高阻态输出时,转换后电路输出与之相同;当三态器件电 路高阻态输出时,则转换后电路输出为高电平,此转换称之为Pullup转换,又称下拉 阻抗转换。三态器件117、 118属于同一编组,因此在进行电路转换之后,两个三态器件对 应于与门119、 120,再借助或门121将与门119、 120输出端相或后输出到锁存器123 的数据输入端D;或门122将两个三态器件的使能信号en7、 en8相或输出到锁存器 123的使能输入端G。当三态器件电路非高阻态输出时,转换后电路输出与之相同; 当三态器件电路高阻态输出时,则转换后电路输出为上一次的非高阻态输出值,此转 换称之为Busholder转换,又称总线保持转换。根据上述的发明构思,本发明的技术方案是这样实现的 一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法,其特征在于在用户 指定SoC设计的DUT和TB两部分后,读入采用硬件描述语言描述的SoC设计源代 码并进行建立相应的线网,然后将SoC设计中的三态器件进行编组,采用相应的功 能等价电路,对线网进行修改,从而实现对已编组的三态器件进行转换,最后将得到 的转换电路以硬件描述语言进行输出,用于软硬件协同仿真的后续流程;其具体操作步骤如下步骤l,用硬件描述语言描述SoC设计,生成SoC设计源代码;步骤2,词法分析,从左到右一个个读入SoC设计源代码,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词; 步骤3,语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据硬件描述语言的语法规则,确定整个字符流是否构成一个语法上正确的程序;步骤4,语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息; 步骤5,中间代码生成,在语法分析和语义分析的基础上,将SoC设计源代码生成中间代码,用内部中间格式表示; 步骤6,树状层次结构线网生成,基于中间代码构造SoC设计的树状层次结构线'网;整个SoC设计的顶层模块为根模块,它由层次化的子模块实例和电路逻辑单元通过信号互联构成,且每个子模块内部由端口、电路逻辑单元、嵌套子模块的实例通过信号连接构成; 步骤7,遍历树状层次结构的电路线网,修改电路线网使电路线网中的三态器件全部转换为一位的三态器件且使能端高电平有效。 步骤8,三态器件编组,清空表格T,遍历树状层次结构的电路线网,对电路中所有三态器件进行编组;步骤9,对表格T存储的每一组三态器件进行上拉阻抗/下拉阻抗/总线保持转换;步骤io,输出电路,遍历修改后的线网,将得到的转换电路以硬件描述语言存储在电路描述文件中。上述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法,其中,在所述的步骤7中包括,7.1遍历树状层次结构的电路线网,将多位三态器件用多个一位三态器件替换;7.2如果三态器件使能端低电平有效,则在三态器件使能端前增加反相器,转换成 三态器件使能端高电平有效的等效电路;7.3得到三态器件全部是一位的三态器件且使能端高电平有效的电路线网。 上述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持 转换方法,其中,在所述的步骤8中包括,8.1清空表格T,从根模块开始遍历树状层次结构的电路线网,同时记录下从当前模块到根模块的路径信息Path;8.2依次处理遍历过程中发现的三态器件Tri,并对其进行编组,直至所有的三态 器件全被编组;8.3在表格T中存储的每一个信号S,信号S上被附加的五元组信息对应的三态器件被认为是一组三态器件。 上述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持 转换方法,其中,在所述的步骤8.2中包括,8.2.1记录下三态器件Tri的使能信号En,数据输入信号Din,数据输出信号Dout,三态器件自身以及三态器件所在模块的当前路径Path,即五元组信息(Tri、 En、Din、 Dout、 Path);8.2.2对三态器件Tri的数据输出信号Dout,根据当前路径信息Path寻找到尽可能 接近根模块的相连信号S;8.2.3在表格T中査找信号S,如果査找失败,将信号S插入到表格T中; 8.2.4将(Tri、 En、 Din、 Dout、 Path)五元组信息附加在信号S上。上述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法,其中,在所述的步骤9中包括,9.1对表格T存储的每一个信号S,读取信号S上被附加的五元组信息;9.2根据信号S上被附加的五元组信息个数n,在信号S所在的模块创建一个n输入或门A;如果该组三态器件跨越DUV和TB,则需要对DUV和TB双向端口进行拆分,并在TB插入IOBUF器件等操作,间接达到将FPGA电路上的高阻态正确地反馈到工作站的软件仿真器;9.3如果进行下拉阻抗转换,则或门A的输出端与信号S相连;如果进行上拉阻 抗转换,则需在信号S所在的模块创建一个n输入或非门B和一个二输入或门C, 或门C的两输入端与或门A的输出端、或非门B的输出端相连,或门C的输出端与信号S相连;如果进行总线保持转换,则需在信号S所在的模块创建一个n 输入或门D和一个一位锁存器E,锁存器E的数据输入端与或门A的输出端相连, 锁存器E的使能输入端与或门B的输出端相连,锁存器C的数据输出端与信号S 相连;9.4对信号S上被附加的每一个五元组信息(Tri、 En、 Din、 Dout、 Path)对应的三 态器件进行转换;上述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持 转换方法,其中,在所述的步骤9.4中包括,9,4.1读取五元组信息(Tri、 En、 Din、 Dout、 Path);9.4.2依据Path,如果三态器件Tri所在模块和信号S所在模块为不同模块,创建 从三态器件Tri所在模块到信号S所在模块,与信号En、 Din的相连信号En'、 Din,;如果三态器件Tri所在模块和信号S所在模块为同一模块,则信号En,为 En,信号Din'为Din。9.4.3在信号S所在的模块创建对应于三态器件Tri的二输入与门F,与门F的两 个输入端与信号En'、 Din'相连,与门F的输出端与或门A的一输入端相连;如 果进行上拉阻抗转换,则还需将信号En'连接到或非门B的一输入端;如果进行 总线保持转换,则还需将信号En'连接到或门D的一输入端。本发明一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线 保持转换方法由于采用了上述的技术方案,使之与现有技术相比较,具有如下显而易 见的突出实质性特点和优点1、 提高了转换方法的效率本发明一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线 保持转换方法由于实现了 SoC设计硬件描述语言源代码输入,自动转换之后并以硬 件描述语言文件的输出,从而有效地提高了转换的效率。2、 提高了转换方法的准确性本发明一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线 保持转换方法,借助依据本发明实现的电子设计自动转换程序,自动实现SoC设计 中三态器件进行编组和转换工作,从而避免了手动转换中遗漏等错误的发生,显著地 提高了转换的准确性。3、实现了上拉阻抗、下拉阻抗、总线保持三种转换本发明一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线 保持转换方法,借助依据本发明实现的电子设计自动转换程序,方便地实现三态器件 上拉阻抗、下拉阻抗、总线保持三种转换,具备转换的灵活性。


通过以下对本发明一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下 拉阻抗/总线保持转换方法的实例结合其附图的描述,可以进一步理解本发明的目的、 具体结构特征和优点。其中,附图为图1是一种简化的软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换 电路图。图2是本发明一种软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换 方法的流程框图。图3是本发明一个实施例的软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线 保持转换方法中的一个简化三态器件电路图。图4是本发明一种软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换 方法中的对图3实施例进行下拉阻抗转换后的电路图。 '图5是本发明一种软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法中的对图3实施例进行上拉阻抗转换后的电路图。图6是本发明一种软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换 方法中的对图3实施例进行总线保持转换的后电路图。图7是本发明一种软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换 方法中的一个跨越DUV和TB的三态器件组实施例进行总线保持转换的电路图。
具体实施例方式为了能够更清楚地理解本发明一种系统级芯片集成软硬件协同仿真中三态器件 上拉阻抗/下拉阻抗/总线保持转换方法的技术内容,特举以下实例详细说明。请参阅图2所示,用硬件描述语言描述SoC设计201,得到SoC设计源代码202; 词法分析SoC设计源代码,得到对应的单词符号203;在词法分析基础上进行语法分 析,得到对应的语法短语204;在语法分析基础上进行语义分析,得到对应的类型信息205;在语义分析基础上,构造对应的内部中间代码206;基于内部中间代码,构造SoC设计对应的树状层次线网207;经过转换为一位的三态器件且使能端高电平有 效,得到修改后的线网208;调用三态器件编组程序212对所有三态器件进行编组, 得到三态器件编组信息209;调用三态器件转换程序213对每一组三态器件进行电路转换,得到转换后修改的电路线网210;遍历修改后的线网,将得到的转换电路以硬件描述语言存储为电路描述文件211。现在将参照如各附图所表示的说明性的实施例对本发明进行详细描述。在下面的 描述中,表示出许多具体的细节,以便提供对本发明的全面理解。但是,显然对于本 专业的技术人员来说,在没有这些细节的某些和全部的情况下,本发明还是可以实施 的。下面的各个附图表示本发明的实施例,为对公知的结构不进行详细描述的简化电 路,以便不至于不必要地混淆本发明,并对本发明的各特点和优点可以更好地理解。图3表示本发明的简化三态器件电路的实施例,每个模块内部由端口、电路逻辑 单元、嵌套子模块的实例通过信号连接构成。例如假定最上层M模块312为树状 层次结构中的根模块,它由层次化的子模块304、 305、 306、 307的实例通过信号互 联构成。三态器件301所在的Ml模块308属于Ml,模块310的子模块。模块310在 作为模块308父模块的同时,又属于M1,'模块304的子模块。同属一组的三态器件 301、 302、 303所在模块308、 309、 311相对模块312,都属于第三层次的子模块。 在实际的SoC设计树状层次线网中,三态器件所属模块的嵌套关系可以更复杂,并 且同属一组的三态器件个数不定。对于一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保 持转换方法的步骤8,针对图3的简化三态器件电路的实施例进行三态器件编组处理, 步骤如下R1:清空表格T,从M根模块312开始遍历树状层次结构的电路线网,同时记录 下从当前模块到根模块312的路径信息Path;R2:当遍历发现TRI1三态器件301时,当前路径Path信息为[M1—Ml ' — Ml,, —M],记录下三态器件301五元组信息(TRIl、 EN1、 IN1、 101、 [Ml—Ml , 一 Ml,' —M]);R3:对三态器件301的数据输出101信号314,根据当前路径信息[M1—Ml ,一 Ml', 一 M]寻找到尽可能接近根模块312的相连IO信号313;R4:在表格T中査找IO信号,査找失败,将IO信号插入表格T,并将(TRIl、EN1、 IN1、 101、 [Ml—Ml, 一 Ml,' 一 M])五元组信息附加在IO信号313上; R5:依次处理遍历过程中发现的三态器件302、 303,并对其进行编组,得到以下结果表格T中存储IO信号313,且IO信号附加三个五元组信息即((TRIl、 EN1、IN1、 101、 [Ml—Ml ' — Ml" — M]), (TRI2、 EN2、 IN2、 102、 [M2—M2 ' — M2"—M]) , (TRI3、 EN4、 IN4、 04、 [M4—M4 , 一 M4,' 一 M])},表示三态器件301、302、 303属于同一组三态器件。对于一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法的步骤9,针对图3的简化三态器件电路进行三态器件下拉阻抗转换后的电路如图4所示,步骤如下Sl:对表格T存储的IO信号,读取IO信号上被附加的一组五元组信息;S2:根据10信号上被附加的五元组信息个数3,在10信号所在的M模块418创建一个三输入或门416;S3:或门416的输出端连接IO信号417;S4:读取第一个五元组信息(TRIl、 EN1、 IN1、 101、 [Ml—Ml ' — Ml'' — M]);S5:依据[Ml—Ml , 一 Ml,' 一 M]路径,判断出三态器件TRIl所在Ml模块 419和10信号417所在M模块418为不同模块,创建从模块419到模块418,与ENl 信号401相连的ENr信号407,与IN1信号402相连的IN1'信号408;S6:在10信号417所在模块418创建对应于三态器件TRI1的二输入与门409, 与门409的两个输入端分别与EN1'信号407、 IN1'信号408相连,与门409的输出端 与或门416的一输入端相连;S7:对10信号上被附加的五元组信息(TRI2、 EN2、 IN2、 102、 [M2—M2 , 一 M2,, —M])对应的三态器件进行转化,创建从模块420到模块418,与EN2信号403相 连的EN2'信号410,与IN2信号404相连的IN2'信号411;在模块418创建对应于三 态器件TRI2的二输入与门412,与门412的两个输入端分别与EN2'信号410、 IN2' 信号411相连,与门412的输出端与或门416的一输入端相连;S8:对10信号上被附加的五元组信息(TRB、 EN4、 IN4、 04、 [M4—M4 ' — M4,, —M])对应的三态器件进行转化,创建从模块421到模块418,与EN4信号405相 连的EN4'信号413,与IN4信号406相连的IN4'信号414;在模块418创建对应于三 态器件TRI3的二输入与门415,与门415的两个输入端分别与EN4'信号413、 IN4' 信号414相连,与门的输出端415与或门416的一输入端相连。成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保 持转换方法的步骤9,针对图3的简化三态器件电路进行三态器件上拉阻抗转换后的 电路如图5所示,步骤如下Sl:对表格T存储的IO信号,读取IO信号上被附加的一组五元组信息;S2:根据10信号上被附加的五元组信息个数3,在10信号所在的M模块518创 建一个三输入或门516、 一个三输入或非门519和一个二输入或门520;S3:或门520的输入端与或门516的输出端、或非门519的输出端相连,或门520 的输出端连接10信号517;S4:读取第一个五元组信息(TRIl、 EN1、 IN1、 101、 [Ml—Ml ' — Ml, , 一 M]);S5:依据[Ml—Ml , 一 Ml,, 一 M]路径,判断出三态器件TRIl所在M1模块 521和10信号517所在M模块518为不同模块,创建从模块521到模块518,与EN1 信号502相连的EN1'信号508,与INI信号501相连的INl'信号507;S6:将ENl'信号508连接到或非门519的一输入端;在10信号517所在模块518 创建对应于三态器件TRI1的二输入与门509,与门509的两个输入端分别与EN2'信 号508、 IN1'信号507相连,与门509的输出端与或门516的一输入端相连;S7:对10信号上被附加的五元组信息(TRI2、 EN2、 IN2、 102、 [M2—M2 , 一 M2,, —M])对应的三态器件进行转化,创建从模块522到模块518,与EN2信号503相 连的EN2'信号510,与IN2信号504相连的IN2'信号511;将EN2'信号510连接到 或非门519的一输入端;在模块518创建对应于三态器件TRI2的二输入与门512, 与门512的两个输入端分别与EN2'信号510、 IN2'信号511相连,与门512的输出端 与或门516的一输入端相连;S8:对10信号上被附加的五元组信息(TRI3、 EN4、 IN4、 04、 [M4—M4 , 一 M4,' —M])对应的三态器件进行转化,创建从模块523到模块518,与EN4信号506相 连的EN4,信号514,与IN4信号505相连的IN4,信号513;将EN4,信号514连接到 或非门519的一输入端;在模块518创建对应于三态器件TRI3的二输入与门515, 与门515的两个输入端分别与EN4'信号514、 IN4'信号513相连,与门515的输出端 与或门516的一输入端相连。对于一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保 持转换方法的步骤9,针对图3的简化三态器件电路进行三态器件总线保持转换后的 电路如图6所示,步骤如下Sl:对表格T存储的IO信号,读取IO信号上被附加的一组五元组信息; S2:根据I0信号上被附加的五元组信息个数3,在IO信号所在的M模块618创 建一个三输入或门616、 一个三输入或门619和一个锁存器620;S3:锁存器620的G使能输入端与或门619的输出端相连,D数据输入端与或门 616的输出端相连,锁存器620的输出端连接10信号617;S4:读取第一个五元组信息(TRIl、 EN1、 IN1、 101、 [Ml—Ml ' — Ml, , 一 M]); S5:依据[Ml—Ml , 一 Ml', 一 M]路径,判断出三态器件TRIl所在Ml模块 621和10信号617所在M模块618为不同模块,创建从模块621到模块618,与EN1 信号602相连的EN1,信号608,与IN1信号601相连的IN1'信号607;S6:将EN1'信号608连接到或门619的一输入端;在10信号617所在模块618 创建对应于三态器件TRI1的二输入与门609,与门609的两个输入端分别与EN1'信 号608、 IN1,信号607相连,与门609的输出端与或门616的一输入端相连;S7:对10信号上被附加的五元组信息(TRI2、 EN2、 IN2、 102、 [M2—M2 ' — M2'' —M])对应的三态器件进行转化,创建从模块622到模块618,与EN2信号603相 连的EN2,信号610,与IN2信号604相连的IN2'信号611;将EN2'信号610连接到 或门619的一输入端;在模块618创建对应于三态器件TRI2的二输入与门612,与 门612的两个输入端分别与EN2'信号610'、 IN2'信号611相连,与门612的输出端与 或门616的一输入端相连;S8:对10信号上被附加的五元组信息(TRB、 EN4、 IN4、 04、 [M4—M4 , 一 M4,, —M])对应的三态器件进行转化,创建从模块623到模块618,与EN4信号606相 连的EN4,信号614,与IN4信号605相连的IN4'信号613;将EN4'信号614连接到 或门619的一输入端;在模块618创建对应于三态器件TRI3的二输入与门615,与 门615的两个输入端分别与EN4'信号614、 IN4'信号613相连,与门615的输出端与 或门616的一输入端相连。对于一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保 持转换方法,针对图7的跨越DUV和TB三态器件组的实施例进行编组和下拉阻抗 转换处理细节,步骤如下-Tl:清空表格T,从SoC根模块706开始遍历树状层次结构的电路线网,同时记 录下从当前模块到根模块706的路径Path;T2:当遍历发现TRI1三态器件701时,当前路径Path信息为[DUV—SoC],记录下三态器件701五元组信息(TRIl、 EN1、 IN1、 101、 [DUV—SoC]);T3:对三态器件701的数据输出101信号704,根据当前路径信息[DUV—SoC]寻 找到尽可能接近SoC根模块706的相连103信号705;T4:在表格T中查找I03信号,查找失败,将I03信号插入表格T,并将(TRIl、 EN1、 IN1、 101、 [DUV—SoC])五元组信息附加在I03信号705上;T5:依次处理遍历过程中发现的三态器件702、 703,并对其进行编组,得到以下 结果表格T中存储I03信号705,且I03信号附加三个五元组信息即((TRI1、EN1、 IN1、 101、 [DUV—SoC]), (TRI2、 EN2、 IN2、 101、 [DUV—SoC]) , (TRI3、 EN3、 IN3、 102、 [TB—SoC])},表示三态器件701、 702、 703属于同一组。T6:对表格T存储的I03信号,读取103信号上被附加的一组五元组信息;发现 该组三态器件跨越DUV和TB,需要对DUV和TB双向端口进行拆分,并在TB插 入IOBUF器件等操作,从而间接将FPGA电路上的高阻态正确地反馈到工作站软件 部分;T7:在DUV模块725创建OUTX输出端口 717、 INX输入端口 718、 ENX输出 端口 719,在TB模块726创建INY输入端口 720、 OUTY输出端口 721、 ENY输入 端口 722,并在SoC模块中将DUV模块和TB模块实例的OUTX输出端口 717和INY 输入端口 720相连、INX输入端口 718和OUTY输出端口 721相连、ENX输出端口 719和ENY输入端口 722相连;T8:在TB模块726创建IOBUF器件723 ,并将IOBUF器件723的IO端口与102 信号724相连、T端口与ENY输入端口 722相连、I端口与INY输入端口 720相连、 O端口与OUTY输出端口 721相连;T9:根据103信号上被附加的五元组信息,在所属DUV模块内的五元组个数2 基础上加1得到3;在DUV模块创建一个三输入或门716,将或门716输出端与OUTX 输出端口 717相连;T10:在DUV模块创建或门713,并将或门713输入端与所属DUV模块的三态 器件EN1使能信号708、 EN2使能信号710相连、或门713输出端与ENX输出端口 719相连;在DUV模块创建非门714,并将非门714输入端与或门713输出端相连; 在DUV模块创建二输入与门715,与门715的两个输入端分别与INX输入端口 718、 非门714输出端相连,与门715的输出端与或门716的一输入端相连;Tll:对103信号上被附加的处于DUV模块三态器件五元组信息(TRIl、 EN1、IN1、 101、 [DUV—SoC])对应的三态器件进行转换,在DUV模块创建对应于三态器 件TRIl的二输入与门711,与门711的两个输入端分别与INI信号707、 ENl信号 708相连,与门711的输出端与或门716的一输入端相连;T12:对103信号上被附加的处于DUV模块三态器件五元组信息(TRI2、 EN2、 IN2、 101、 [DUV—SoC])对应的三态器件进行转换,在DUV模块创建对应于三态器 件TRI2的二输入与门712,与门712的两个输入端分别与IN2信号709、 EN2信号 710相连,与门712的输出端与或门716的一输入端相连。
权利要求
1.一种系统级芯片集成系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法,其特征在于在用户指定SoC设计的DUT和TB两部分后,读入采用硬件描述语言描述的SoC设计源代码并进行建立相应的线网,然后将SoC设计中的三态器件进行编组,采用相应的功能等价电路,对线网进行修改,从而实现对已编组的三态器件进行转换,最后将得到的转换电路以硬件描述语言进行输出,用于系统级芯片集成软硬件协同仿真的后续流程;其具体操作步骤如下步骤1,用硬件描述语言描述SoC设计,生成SoC设计源代码;步骤2,词法分析,从左到右一个个读入SoC设计源代码,对构成源代码的字符流进行扫描和分解,从而识别出一个个单词;步骤3,语法分析,在词法分析的基础上将单词序列分解成各类语法短语,依据硬件描述语言的语法规则,确定整个字符流是否构成一个语法上正确的程序;步骤4,语义分析,在语法分析的基础上审核源代码有无语义错误,为中间代码生成阶段收集类型信息;步骤5,中间代码生成,在语法分析和语义分析的基础上,将SoC设计源代码生成中间代码,用内部中间格式表示;步骤6,树状层次结构线网生成,基于中间代码构造SoC设计的树状层次结构线网;整个SoC设计的顶层模块为根模块,它由层次化的子模块实例和电路逻辑单元通过信号互联构成,且每个子模块内部由端口、电路逻辑单元、嵌套子模块的实例通过信号连接构成;步骤7,遍历树状层次结构的电路线网,修改电路线网使电路线网中的三态器件全部转换为一位的三态器件且使能端高电平有效。步骤8,三态器件编组,清空表格T,遍历树状层次结构的电路线网,对电路中所有三态器件进行编组;步骤9,对表格T存储的每一组三态器件进行上拉阻抗/下拉阻抗/总线保持转换;步骤10,输出电路,遍历修改后的线网,将得到的转换电路以硬件描述语言存储在电路描述文件中。
2.按权利要求1所述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/ 总线保持转换方法,其特征在于在所述的步骤7中包括,7.1遍历树状层次结构的电路线网,将多位三态器件用多个一位三态器件替换;7.2如果三态器件使能端低电平有效,则在三态器件使能端前增加反相器,转换成三态器件使能端高电平有效的等效电路; 7.3得到三态器件全部是一位的三态器件且使能端高电平有效的电路线网。
3. 按权利要求1所述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/ 总线保持转换方法,其特征在于在所述的步骤8中包括, 8.1清空表格T,从根模块开始遍历树状层次结构的电路线网,同时记录下从当前模块到 根模块的路径信息Path; 8.2依次处理遍历过程中发现的三态器件Tri,并对其进行编组,直至所有的三态器件全 被编组。 8.3在表格T中存储的每一个信号S,信号S上被附加的五元组信息对应的三态器件被认 为是一组三态器件。
4. 按权利要求1所述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/ 总线保持转换方法,其特征在于在所述的步骤9中包括, 9.1对表格T存储的每一个信号S,读取信号S上被附加的五元组信息; 9.2根据信号S上被附加的五元组信息个数n,在信号S所在的模块创建一个n输入或门 A;如果该组三态器件跨越DUV和TB,则需要对DUV和TB双向端口进行拆分,并在 TB插入IOBUF器件等操作,间接达到将FPGA电路上的高阻态正确地反馈到工作站的软 '件仿真器; ' 9.3如果进行下拉阻抗转换,则或门A的输出端与信号S相连;如果进行上拉阻抗转换, 则需在信号S所在的模块创建一个n输入或非门B和一个二输入或门C,或门C的两输 入端与或门A的输出端、或非门B的输出端相连,或门C的输出端与信号S相连;如果 进行总线保持转换,则需在信号S所在的模块创建一个n输入或门D和一个一位锁存器E, 锁存器E的数据输入端与或门A的输出端相连,锁存器E的使能输入端与或门B的输出 端相连,锁存器C的数据输出端与信号S相连; 9.4对信号S上被附加的每一个五元组信息(Tri、 En、 Din、 Dout、 Path)对应的三态器件进 行转换;
5. 按权利要求3所述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/ 总线保持转换方法,其特征在于在所述的步骤8.2中包括, 1记录下三态器件Tri的使能信号En,数据输入信号Din,数据输出信号Dout,三态 器件自身以及三态器件所在模块的当前路径Path,即五元组信息(Tri、 En、 Din、 Dout、 Path); 2对三态器件Tri的数据输出信号Dout,根据当前路径信息Path寻找到尽可能接近根 4将(Tri、 En、 Din、 Dout、 Path)五元组信息附加在信号S上。 6.按权利要求4所述的一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/ 总线保持转换方法,其特征在于在所述的步骤9.4中包括, 9.4.1读取五元组信息(Tri、 En、 Din、 Dout、 Path); .2依据Path,如果三态器件Tri所在模块和信号S所在模块为不同模块,创建从三态 器件Tri所在模块到信号S所在模块,与信号En、 Din的相连信号En,、 Din,;如果三态 器件Tri所在模块和信号S所在模块为同一模块,则信号En'为En,信号Din'为Din。 9.4.3在信号S所在的模块创建对应于三态器件Tri的二输入与门F,与门F的两个输入端 与信号En'、 Din'相连,与门F的输出端与或门A的一输入端相连;如果进行上拉阻抗转 换,则还需将信号En'连接到或非门B的一输入端;如果进行总线保持转换,则还需将信 号En'连接到或门D的一输入端。
全文摘要
本发明涉及一种系统级芯片集成软硬件协同仿真中三态器件上拉阻抗/下拉阻抗/总线保持转换方法。本方法是在用户指定SoC设计的DUT和TB两部分后,读入采用硬件描述语言描述的SoC设计源代码并进行建立相应的线网,然后将SoC设计中的三态器件进行编组,采用相应的功能等价电路,对线网进行修改,从而实现对已编组的三态器件进行转换,最后将得到的转换电路以硬件描述语言进行输出,用于系统级芯片集成软硬件协同仿真的后续流程。本发明提供的方法,可有效地提高软硬件协同仿真中三态器件转换方法的效率和准确性,具有较好的实用性。
文档编号G06F17/50GK101231666SQ20071004600
公开日2008年7月30日 申请日期2007年9月13日 优先权日2007年9月13日
发明者明 冷, 孙凌宇, 郁松年 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1