电路状态扫描链、数据采集系统和仿真验证方法技术方案

技术编号:2843867 阅读:219 留言:0更新日期:2012-04-11 18:40
提供一种用于仿真验证集成电路设计的电路状态扫描链以及利用该扫描链的数据采集系统和仿真验证方法。上述集成电路包括多个寄存器及其对应的输入端组合逻辑和输出端组合逻辑,该扫描链结构包括对应每一寄存器所设第一复用模块及第二复用模块,通过第一复用模块及第二复用模块改变集成电路的工作模式,使集成电路有正常模式、保持模式及拍照模式三种工作模式,并在拍照模式下使寄存器构成一个扫描链环。

【技术实现步骤摘要】

本专利技术涉及一种用于仿真验证集成电路设计的电路状态扫描链以及利用该扫描链的数据采集系统和仿真验证方法。
技术介绍
集成电路产品能否及时上市是影响产品竞争力的一个重要因素,随着集成电路规模的不断扩大以及IP复用技术的发展,集成电路设计的仿真验证所需的时间越来越长,提高仿真验证效率成为目前压缩集成电路产品设计时间的有效手段之一。仿真包括软件仿真与硬件仿真。软件仿真是指把用硬件描述语言编写的描述集成电路的代码(如RTL Code等)输入软件仿真系统,以软件模拟该集成电路的逻辑功能。硬件仿真是指把所述的代码输入硬件仿真系统(FPGA平台),用FPGA模拟该集成电路的逻辑功能。软件仿真与硬件仿真各有优缺点软件仿真的内部状态全可见,可观察被测设计(被软件仿真系统模拟的集成电路)内的任意信号,所以能藉以对被测设计进行具体的分析,但仿真速度慢;硬件仿真速度快,但限于针脚数的限制,其内部信号的观察十分困难。因为对被测设计除错(DEBUG)只需要在发生错误前后的一小段时间对被测设计进行详细分析即可,所以只要把发生错误前后的一小段测试项目放在软件仿真系统上运行即可。结合硬件仿真与软件仿真的仿真验证方法在保证能对被测设计进行具体的分析的同时提高了仿真验证效率。简而言之,测试项目的大部分在硬件仿真系统上运行,把硬件仿真系统的输出信号与标准的输出信号进行比较,判断是否发生错误,通过复制硬件仿真系统的电路状态及输入序列,使硬件仿真系统在发生错误前后一小段时间的行为在软件仿真系统上重现,最后利用软件仿真系统对被测设计进行具体地分析,这种方法兼具硬件仿真与软件仿真两者的优点。任何单时钟、同步的数字系统都可以看成是一个巨大的状态机,硬件仿真系统模拟的被测设计就是这样一个系统。这里对以下几个概念进行说明输入序列(以下简写为input_seq)输入信号由时钟采样得到的离散序列。输出序列(以下简写为output_seq)输出信号由时钟信号采样得到的离散序列。状态序列(以下简写为state_seq)状态由时钟信号采样得到的离散序列。行为函数(behavior_function)由某个状态和与其对应的输入序列得到输出序列的函数,由当前状态和输入序列作为参数,产生状态序列和输出序列两个序列。行为函数和状态序列、输入序列以及输出序列的关系如下(state_seq,output_seq)=behavior_function(init_state,input_seq)。上式可以描述为一段时间内,系统的行为(state_seq和output_seq)由系统的行为函数(behavior_function)、初始状态(init_state)和输入序列(input_seq)三者唯一决定。如果需要在软件仿真系统上复现被测设计在硬件仿真系统上的行为,就需要在硬件仿真系统上得到上述三种信息行为函数、初始状态和输入序列。众所周知,一个单时钟、同步的集成电路,在任意时刻,其状态由内部存储器存储的数据唯一决定;其行为函数由其内部所有的组合逻辑唯一决定;输入序列则由外部决定。硬件仿真系统中与软件仿真系统中的该被测设计的组合逻辑相同(至少在正常工作模式下的组合逻辑相同),换言之,该集成电路在两个平台上的行为函数相同,因此,只要有硬件仿真系统上该被测设计的“初始状态”和“输入序列”就可以在软件仿真系统上复现该被测设计在硬件仿真系统上的行为(即状态序列与输出序列)。这是前述结合硬件仿真与软件仿真的仿真验证方案的基础。要在软件仿真系统中复现硬件仿真系统所模拟的该被测设计的行为,首先需要从硬件仿真系统得到“初始状态”和“输入序列”。“输入序列”可通过复制被测设计的输入得到,比较容易实现,问题在于如何得到“初始状态”(该领域一般把获得“初始状态”的过程称为拍照,SnapShot)。目前,业界一般的做法是把软件仿真系统与硬件仿真系统以某一种方式连接,使两者间可进行电路状态的相互传输,从而实现仿真在两个系统间的切换。如美国专利第5937179号(以下称179号专利)所揭示的方案,硬件仿真发生错误时,暂停测试项目的运行,利用备份寄存器构建的扫描链(Scan-Chain)把被测设计的电路状态导出并输入软件仿真系统,在软件仿真系统上从这一刻继续向前运行或者向后运行测试项目,在软件仿真系统上复现该错误并对之进行分析(请参179号专利说明书第3栏第63行至第67行以及第4栏第39行至第43行)。然而,这种仿真验证方法仍有以下几个缺点第一,用额外的备份寄存器构建电路状态扫描链,使集成电路门数大幅增加,提高了FPGA仿真的成本,对超大规模集成电路设计而言这点尤为突出;第二,仿真在软件仿真与硬件仿真之间切换,切换次数比较多,使仿真效率降低;第三,硬件仿真系统发生错误时,分析该错误的发生原因的最佳时刻已经过去,而要在软件仿真系统上通过回跑测试项目获得该时刻的“初始状态”非常困难,且不一定能够实现。
技术实现思路
因此,为简化仿真验证,提高仿真验证的效率,降低仿真验证的成本,亟需设计一种新的仿真验证方案。本专利技术提供一种电路状态扫描链,包括多个寄存器以及与每个寄存器对应的输入端组合逻辑和输出端组合逻辑,每个寄存器的输出端口和与之相对应的输出端组合逻辑的输入端口连接,所述电路状态扫描链还包括与所述多个寄存器相对应的多个第一复用模块及多个第二复用模块,其中,每个寄存器与相应的一个第一复用模块和相应的一个第二复用模块相关,第一复用模块与第二复用模块都分别设有两个输入端口与一个输出端口,其中,各第一复用模块的第一输入端口和与之相应的寄存器的输出端口连接,各第一复用模块的第二输入端口与前一寄存器的输出端口连接,各第二复用模块的第一输入端口和与之相应的寄存器所对应的输入端组合逻辑的输出端口连接,各第二复用模块的第二输入端口和与之相应的第一复用模块的输出端口连接,各第二复用模块的输出端口和与之相应的寄存器的输入端口连接,位于扫描链最后的寄存器的输出端口与扫描链上第一个寄存器所对应的第一复用模块的第二输入端口连接。本专利技术还提供一种利用上述电路状态扫描链的一种数据采集系统,包括拍照控制模块,通过控制所述多个第一复用模块和所述多个第二复用模块,来将所述电路状态扫描链的工作状态。如上所述的数据采集系统,所述电路状态扫描链的工作状态包括正常工作模式、保持模式和拍照模式。如上所述的数据采集系统,所述拍照控制模块内还设有计数器,用以控制所述电路状态扫描链的寄存器的值的移位次数。本专利技术还提供一种利用如上所述的电路状态扫描链或数据采集系统的仿真验证方法,包括以下步骤在测试项目上设置多个检测点;在硬件仿真系统上运行测试项目;在运行测试项目的同时下载输入数据;在检测点处对电路进行拍照;把电路状态和输入数据提供给软件仿真系统,在软件仿真系统上重现被测设计在硬件仿真系统上的行为。附图说明图1为被测设计的原始逻辑的简化框图。图2为本专利技术被测设计的简化逻辑框图。图3为本专利技术数据采集系统的简化硬件框图。图4为本专利技术在测试项目上设置检测点的示意图。具体实施例方式本专利技术通过改变被测设计的逻辑,把被测设计内部的寄存器串连成一条扫描链,以外部控制信号控制被测设计的工作模式(包括正常模式、拍照模式及保持模式)。另外,本专利技术的扫描链首尾相连,拍照完成后,被测本文档来自技高网
...

【技术保护点】
一种电路状态扫描链,设于被测设计内,该被测设计包括:多个寄存器以及与每个寄存器对应的输入端组合逻辑和输出端组合逻辑,每个寄存器的输出端口和与之相对应的输出端组合逻辑的输入端口连接,其特征在于,所述电路状态扫描链还包括 与所述多个寄存器相对应的多个第一复用模块及多个第二复用模块,其中,每个寄存器与相应的一个第一复用模块和相应的一个第二复用模块相关,第一复用模块与第二复用模块都分别设有两个输入端口与一个输出端口,其中,各第一复用模块的第一输入端口和与 之相应的寄存器的输出端口连接,各第一复用模块的第二输入端口与前一寄存器的输出端口连接,各第二复用模块的第一输入端口和与之相应的寄存器所对应的输入端组合逻辑的输出端口连接,各第二复用模块的第二输入端口和与之相应的第一复用模块的输出端口 连接,各第二复用模块的输出端口和与之相应的寄存器的输入端口连接,位于扫描链最后的寄存器的输出端口与扫描链上第一个寄存器所对应的第一复用模块的第二输入端口连接。

【技术特征摘要】
1.一种电路状态扫描链,设于被测设计内,该被测设计包括多个寄存器以及与每个寄存器对应的输入端组合逻辑和输出端组合逻辑,每个寄存器的输出端口和与之相对应的输出端组合逻辑的输入端口连接,其特征在于,所述电路状态扫描链还包括与所述多个寄存器相对应的多个第一复用模块及多个第二复用模块,其中,每个寄存器与相应的一个第一复用模块和相应的一个第二复用模块相关,第一复用模块与第二复用模块都分别设有两个输入端口与一个输出端口,其中,各第一复用模块的第一输入端口和与之相应的寄存器的输出端口连接,各第一复用模块的第二输入端口与前一寄存器的输出端口连接,各第二复用模块的第一输入端口和与之相应的寄存器所对应的输入端组合逻辑的输出端口连接,各第二复用模块的第二输入端口和与之相应的第一复用模块的输出端口连接,各第二复用模块的输出端口和与之相应的寄存器的输入端口连接,位于扫描链最后的寄存器的输出端口与扫描链上第一个寄存器所对应的第一复用模块的第二输入端口连接。2.一种数据采集系统,包括电路状态扫描链,用于采集电路状态;拍照控制模块,用于控制所述电路状态扫描链的工作状态,其特征在于,所述电路状态扫描链包括多个寄存器以及与每个寄存器对应的输入端组合逻辑和输出端组合逻辑,每个寄存器的输出端口和与之相对应的输出端组合逻辑的输入端口连接,所述电路状态扫描链还包括与所述多个寄存器相对应的多个第一复用模块及多个第二复用模块,其中,每个寄存器与相应的一个第一复用模块和相应的一个第二复用模块相关,第一复用模块与第二复用模块都分别设有两个输入端口与一个输出端口,其...

【专利技术属性】
技术研发人员:周振亚张亚林孙一江
申请(专利权)人:上海奇码数字信息有限公司
类型:发明
国别省市:31[中国|上海]

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

1