集成电路流水线设计验证方法、系统及其模型实现方法

文档序号:6372172阅读:220来源:国知局
专利名称:集成电路流水线设计验证方法、系统及其模型实现方法
技术领域
本申请涉及集成电路设计和验证领域,具体涉及集成电路流水线设计验证方法、系统及其模型实现方法。
背景技术
集成电路设计的规模和复杂度在逐渐提升,尽早发现设计中存在的问题可以有效的降低设计成本,因此在集成电路设计的前端设计中对硬件设计进行功能和性能的建模设计,以预先调整好设计架构,通过验证建模设计思路及目标功能理解的正确性来验证集成电路设计的正确性,已经成为了大型集成电路设计环节中不 可缺少的一步。集成电路流水线设计主要包括流水线RTL (寄存器传输级)设计,在复杂的流水线RTL设计中通常还会设计流水线控制单元来管理各级流水。流水线控制单元主要负责多周期指令、写读冲突指令、中断和异常等多种情况的流水线管理,对流水线上各级流水单元的寄存器进行冻结和刷新。因此,对集成电路流水线设计的RTL设计采用建模方式进行的验证包括建立与流水线RTL设计对应的流水线模型,流水线模型由流水单元组成,当存在流水线控制单元的RTL设计时,该流水线模型还相应包括流水线控制单元的模型。其验证方式是在保证流水线模型正确的前提下,同时对流水线的RTL设计和流水线模型输入同一激励,比对两者各级单元的输出是否一致,若不一致则说明流水线的RTL设计出错。由上述可知,在利用流水线模型验证集成电路流水线设计的RTL设计之前需对流水线模型的正确性和完备性进行验证。但现有技术中须同时验证流水线模型中的全部单元以确定出错之处并进行纠错,因此纠错效率较低。

发明内容
本申请提供一种采用流水线模型对集成电路流水线设计进行验证的方法,所述流水线模型包括根据集成电路流水线设计确定的至少二级流水单元,每级流水单元中至少包括一个模型单元,每个模型单元包括后端接口,用于接收前一级流水单元输出的状态值和逻辑值;前端接口,用于将该模型单元的状态值和逻辑值输出到下一级模型单元;功能单元,用于对后端接口发来的逻辑值进行功能函数运算并输出逻辑值;内部控制单元,包括控制器和状态处理单元,所述控制器根据后端接口发来的数据和本身的控制逻辑输出选择信号,所述状态处理单元根据后端接口发来的数据和本身的状态处理逻辑输出状态值至前端接口; 选择单元,根据控制器输出的选择信号,在功能单元输出的逻辑值、该模型单元的复位值、置位值和上一状态的逻辑值中进行择一输出至前端接口;上述方法包括验证流水线模型的完备性和正确性;
流水线模型验证通过后,利用该流水线模型验证流水线设计的正确性;所述验证流水线模型的完备性和正确性包括以下步骤对流水线模型中各个模型单元的状态及其之间的关系进行声明,并预先设计各级流水状态断言;测例产生器产生验证激励,并按照时间顺序将验证激励发送到流水线模型,所述验证激励包括逻辑值和状态值;流水线模型的第一级流水接收测例产生器产生的 验证激励,根据验证激励进行运算,输出本级的逻辑值和状态值到第二级流水;第二级流水根据上一级流水输出的逻辑值和状态值进行运算,输出本级逻辑值和状态值到下一级流水;依此类推;实时检测各级流水输出的状态值,根据预先设计的流水状态断言对流水线模型进行状态断言判断,判断是否出现违反断言的现象,若是则发出报告,认为流水线模型没有通过验证。进一步,将实时检测的各级流水输出的状态值进行缓存,根据预先设计的流水状态断言对流水线模型进行状态断言判断步骤包括从预先设计的流水状态断言群中按照顺序读取流水状态断言;从缓存的各级流水输出的状态值中读取当前流水状态断言中涉及到的某级或某些级流水的状态值进行判断;当判断出现违反断言的现象时则发出报告,否则继续读取下一条流水状态断言进行判断,直到流水状态断言群中流水状态断言读取完毕。进一步,当出现违反断言的现象时,则执行以下步骤分别对产生当前流水状态的模型单元控制逻辑和上一级输出单元进行验证。此外,本申请还提供了一种集成电路流水线模型的实现方法,其包括模拟硬件运行方式,以寄存器为界划分模型单元;将当前寄存器和其前面一级或多级的寄存器之间的逻辑划分为一个模型单元,其中,组合逻辑中的功能函数运算划入模型单元的功能单元中,组合逻辑中的选择和控制逻辑划入模型单元的选择单元和控制器中,时序逻辑中的处理周期划入内部驱动单元;根据集成电路流水线级数设计将流水单元连接成至少二级流水,构成集成电路流水线模型。进一步,上述实现方法还包括采用外部驱动单元作为流水线模型各流水单元的驱动时钟;在每个流水单元内部设置内部驱动单元,所述内部驱动单元根据本流水单元接收和发送数据的时钟周期,将外部驱动单元输出的驱动时钟信号处理成本流水单元需要的时钟信号。同时,本申请还提供了一种集成电路流水线设计验证系统,其包括根据集成电路流水线设计确定的至少二级流水单元,每级流水单元中至少包括一个模型单元,每个模型单元包括后端接口,用于接收前一级流水单元输出的状态值和逻辑值;前端接口,用于将该模型单元的状态值和逻辑值输出到下一级模型单元;功能单元,用于对后端接口发来的逻辑值进行多种功能函数运算并输出多个逻辑值;内部控制单元,包括控制器和状态处理单元,所述控制器根据后端接口发来的数据和本身的控制逻辑输出选择信号,所述状态处理单元根据后端接口发来的数据和本身的状态处理逻辑输出状态值至前端接口 ;和选择单元,根据控制器输出的选择信号,在功能单元输出的多个逻辑值、该模型单元的复位值、置位值和上一状态的逻辑值中进行择一输出至前端接口 ;测例产生器,用于产生验证激励,并按照时间 顺序将验证激励发送到流水线模型,所述验证激励包括逻辑值和状态值;状态断言单元,用于对流水线模型中各个模型单元的状态及其之间的关系进行声明,并设计各级流水状态断言;状态判断单元,用于实时检测各级流水输出的状态值,根据状态断言单元的状态断言对流水线模型进行状态断言判断,若出现违反断言的现象则发出报告,认为流水线模型没有通过验证。进一步,上述系统还包括状态存储单元,用于缓存各级流水输出的状态值;所述状态判断单元包括状态读取子单元,用于读取状态断言单元中预先设计的各级流水的状态断言,还用于从状态存储单元中读取当前流水的状态断言中涉及到的某级或某些级流水的状态值;状态判断子单元,用于根据状态读取子单元读取的各级流水的断言状态、当前流水的状态断言中涉及到的某级或某些级流水的状态值,进行断言判断;状态报告子单元用于当状态判断子单元判断出现违反断言的现象时则发出报
生口 o进一步,所述流水线模型还包括流水线控制单元,用于全局控制流水线模型上各模型单元逻辑值和状态值的选择输出。进一步,所述模型单元还包括缓存单元,用于在所述功能单元运算过程中提供存储空间;包括缓存运算过程的中间值,或者按照模型单元的处理周期,存储中间周期的运算结果。进一步,所述流水线模型还包括外部驱动单元,作为流水线模型各流水单元的驱动时钟;所述模型单元还包括内部驱动单元,根据外部驱动单元的驱动信号,计算本模型单元中前端接口和后端接口发送和接收数据的时间,驱动所述前端接口和后端接口完成发送和接收任务。本申请的有益效果是本申请验证集成电路流水线设计中首先对流水线模型的完备性和正确性来进行验证,流水线模型验证通过后,可来验证集成电路流水线设计。而在该流水线模型的验证中,通过预先设计各级流水状态断言,其次实时检测各级流水输出的状态值,进而判断是否出现违反断言来验证。一旦流水线模型的设计出错则会出现违反断言的情况,如此则可直接验证与违反断言的流水中模型单元相关的各级流水及模型单元,即直接将出错的地方定位到具体的某级或某些级流水的模型单元中,不需要验证所有的流水线模型的全部单元,提高了纠错效率。


图I为实施例提供的流水线模型的实现方法流程图;图2为实施例提供的流水线模型结构示意图;图3为实施例提供的模型单元结构示意图;图4为实施例提供的内部驱动单元应 用示意图;图5为实施例提供的验证流水线模型的完备性和正确性流程图;图6为实施例提供的验证流水线模型的完备性和正确性的实例图;图7为实施例提供的利用流水线模型验证流水线RTL设计的验证环境示意图和波形图;图8为实施例提供的利用流水线模型对集成电路流水线设计进行验证的系统示意图。
具体实施例方式下面通过具体实施方式
结合附图对本发明作进一步详细说明。本申请中,用于验证集成电路流水线设计的流水线模型包括多级流水单元,每级流水单元中包括多个模型单元,本实施例首先描述该流水线模型的实现方法,请参阅图1,该方法包括SlOl :模拟硬件运行方式,以寄存器为界划分模型单元。将当前寄存器和其前面一级或多级的寄存器之间的逻辑划分为一个模型单元,其中,组合逻辑中的功能函数运算划入模型单元的功能单元中,组合逻辑中的选择和控制逻辑划入模型单元的选择单元和控制器中,时序逻辑中的处理周期划入内部驱动单元。S102:根据集成电路流水线级数设计将流水单元连接成多级流水,构成集成电路流水线模型。完成以上基本步骤后,还包括为该流水线模型各级流水单元提供驱动信号,即S103 :采用外部驱动单元作为流水线模型各流水单元的驱动时钟;在每个流水单元内部设置内部驱动单元,内部驱动单元根据本流水单元接收和发送数据的时钟周期,将外部驱动单元输出的驱动时钟信号处理成本流水单元需要的时钟信号。本实施例中的流水线模型请参考图2,图I中划分了三级流水,每级流水单元中至少包括一个模型单元,各模型单元用模型单元1_A至模型单元3_C表示,其中,模型单元1_A模型单元1_B模型单元1_C为第一级流水线寄存器模型(第一级流水单元),模型单元2_A模型单元2_B为第二级流水线寄存器模型(第二级流水单元),模型单元3_A模型单元3_B模型单元3_C为第三级流水线寄存器模型(第三级流水单元)。对这些寄存器模型(流水单元)的外部驱动统一由时钟驱动单元。同时,图2还预设了流水线控制单元控制,该流水线控制单元控制可用于全局控制流水线模型上各模型单元逻辑值的选择输出。图3是模型单元100的结构示意图(图3同时示出了用于模型单元之间接收与分发数据的接收与分发通路200),其包括后端接口 101、前端接口 102、内部驱动单元103、内部控制单元104、功能单元105、选择单元106和缓存单元107。后端接口 101,用于接收前一级流水单元输出的状态值和逻辑值。前端接口 102,用于将该模型单元的状态值和逻辑值输出到下一级模型单元。内部驱动单元103,根据时钟驱动单元40的驱动信号,计算本模型单元中前端接口 102和后端接口 101发送和接收数据的时间,驱动前端接口 102和后端接口 101完成发送和接收任务。该模型单元100可以直接由外部驱动单元来驱动,还可设计自身内部驱动对外部驱动进行预处理以供本模型单元使用。故内部驱动单元103为本实施例优选设计。如图3所示,时钟驱动单元40为外部驱动单元,其为 模型单元100提供驱动事件,内部驱动单元103会对时钟驱动单元40的驱动事件作出反应,根据需求驱动前端接口 102、后端接口 101对数据的发送和接收。比如,当该模型单元100设计为两个周期的时间才能做完运算,而时钟驱动单元40为正常的时钟信号时,内部驱动单元103需要对外部时钟驱动信号进行分频,从而使得模型单元100对每一笔收到的数据进行处理,两个时钟周期后再将处理结果发送出去。对内部驱动单元做进一步详细介绍,请参阅图4,假设整个集成电路的功能规格定义为最多900周期完成(图4中周期用cycle表示),对整个集成电路功能集合进行分解,分为功能子集合A、功能子集合B、功能子集合C,分别定义在900周期的前350个周期内、中间100个周期内、最后450个周期内。分别对划分后的功能子集合进行建模,用模型单元替代,即模型单元A、模型单元B、模型单元C。外部驱动单元每周期对每个模型单元输出一个时钟信号。模型单元通过内部驱动单元控制有效值的输出,即模型单元A每350个周期输出一次有效值、模型单元B每100个周期输出一次有效值、模型单元C每450个周期输出一次有效值。模型单元的建模属于流水结构,例如在第I个周期第一笔有效数据进入模型单元A,第一笔数据经模型单元A处理后在第350个周期输出。第2个周期第二笔有效数据进入模型单元A,第二笔数据经模型单元A处理后在第351个周期输出。进一步细化,将模型单元C,分解成更小粒度的单元结构,即模型单元C_l、模型单元C_2、模型单元C_3、模型单元C_4、模型单元(_5,分别通过其各自的内部驱动单元,调节其有效值的输出为200周期、200周期、300周期、100周期、50周期。此过程模型单元A和模型单元B不需要改动,只修改模型单元C就可以在原有的平台上直接运行。而且对模型单元C细化过程的正确性,可以由模型单元C作为参考模型,保证模型单元C_l、模型单元C_2、模型单元C_3、模型单元C_4、模型单元C_5的组合和模型单元C功能的一致性。内部控制单元104,包括控制器104a和状态处理单元104b,控制器104a根据后端接口 101发来的数据和本身的控制逻辑输出选择信号,状态处理单元104b根据后端接口101发来的数据和本身的状态处理逻辑输出状态值至前端接口 102。当模型单元100外部接有流水线控制单元时,外部流水线控制单元在控制权上高于内部控制单元104。如图3所示,流水线控制单元50在控制权上高于内部控制单元104,一般将模型单元100常态(按正常状态运行)的控制逻辑作为内部控制,将模型单元100异常态(例如出现异常事件需要临时中断原来的运行状态执行其他事件)的控制逻辑作为外部控制(该外部控制由流水线控制单元50执行)。功能单元105,用于对后端接口 101发来的逻辑值进行功能函数运算并输出逻辑值。功能单元105配置有多个功能函数,其运算结果将作为本模型单元当前的输出逻辑值选项之一发给选择单元106。图3所示的功能单元105包括n个功能函数,功能函数运算时需要的数据即参数从后端接口 101取得。在一种实施例中,功能单元105选择哪个功能函数执行运算,可根据控制器的控制信号来确定。在另一种实施例中,功能单元105也可对从后端接口 101取得的参数经过多个功能函数的运算,输出多个逻辑值,后续由选择单元106在输出的多个逻辑值中进行选择。选择单兀106,用于根据控制器104a输出的选择信号,在功能单兀105输出的多个逻辑值、该模型单元的复位值、置位值和上一状态的逻辑值中进行择一输出至前端接口102。缓存单元107,用于在功能单元105运算过程中 提供存储空间;包括缓存运算过程的中间值,或者按照模型单元100的处理周期,存储中间周期的运算结果。此外,图3还包括了接收与分发通路200,用于为各个模型单元之间的数据接收和分发通路,其通过连接各个相关模型单元的前后端接口( 102、101)而成。采用上述流水线模型对集成电路流水线设计进行验证的方法。请参阅图5,该方法包括验证流水线模型的完备性和正确性;流水线模型验证通过后,利用该流水线模型验证集成电路流水线设计的正确性。验证流水线模型的完备性和正确性包括以下步骤S210:对流水线模型中各个模型单元的状态及其之间的关系进行声明,并预先设计各级流水状态断言。S220 :测例产生器产生验证激励,并按照时间顺序将验证激励发送到流水线模型,所述验证激励包括逻辑值和状态值。S230:流水线模型的第一级流水接收测例产生器产生的验证激励,根据验证激励进行运算,输出本级的逻辑值和状态值到第二级流水。S240:第二级流水根据上一级流水输出的逻辑值和状态值进行运算,输出本级逻辑值和状态值到下一级流水;依此类推。S250:实时检测各级流水输出的状态值,根据预先设计的流水状态断言对流水线模型进行状态断言判断,判断是否出现违反断言的现象,若是则发出报告,认为流水线模型没有通过验证。更具体的,上述步骤S250中还将实时检测的各级流水输出的状态值进行缓存。同时,上述根据预先设计的流水状态断言对流水线模型进行状态断言判断的步骤包括(I)从预先设计的流水状态断言群中按照顺序读取流水状态断言。(2)从缓存的各级流水输出的状态值中读取当前流水状态断言中涉及到的某级或某些级流水的状态值进行判断。(3)当判断出现违反断言的现象时则发出报告,否则继续读取下一条流水状态断言进行判断,直到流水状态断言群中流水状态断言读取完毕。当步骤S250中出现违反断言的现象时,则执行以下步骤分别对产生当前流水状态的模型单元控制逻辑、上一级输出单元进行验证。由于当前流水状态由本模型单元自身的控制逻辑、上一级输出单元(例如上一模型单元)二者决定,若流水线模型还包括流水线控制单元的话,当前流水状态还包括由流水线控制单元三者共同决定,因此仅需对以上二者或三者进行修正,并重新验证即可。
请参考图6,图6所示为验证流水线模型的完备性和正确性的一个实例。其中时钟驱动单元为clk,内部驱动单元保持时钟驱动单元的驱动性不变,即内部收发数据也为一个时钟周期。流水线模型中各模型单元包含ad_i_mem、i_mem_out、pc_creg、IF_reg、ID_reg、EX_reg等模型单元。流水线控制单元包括if_flush、id_fIush等,其产生的逻辑值可以控制 ad_i_mem、i_mem_out、pc_creg、IF_reg、ID_reg、EX_reg 的状态值。例如,if_flush 逻辑值为高时,可以使IF_reg的状态值变为0状态;if_flush逻辑值为为低时,IF_reg接受上一级模型单元输入的状态值作为自己的状态值,保持一个周期后传出。id_flush逻辑值为高时,可以使ID_reg的状态值变为0状态,为低时ID_reg接受上一级模型单元输入的状态值作为自己的状态值,保持一个周期后传出。作为状态断言单元的state_assert_branch断言了 EX_reg模型单元的状态,如果遇到BZ状态并 且发生了跳转,那么BZ之后的两个状态必须为0状态,而实际的流水线模型中EX_reg模型单元在此条件下没有紧跟两个0状态,所以状态断言单元发出违反断言的错误发生。此时根据状态错误,可以调整流水线控制单元的控制逻辑,而不用关心流水线模型中模型单元产生的具体逻辑值。通过状态值将流水线设计的出错之处定位至具体的某个单元之后,便可针对该出错的单元进行修正,如有必要可继续按上述方法进行验证,直至不再出错为止。接着将流水线模型与的流水线RTL设计进行比对,比较在同一验证激励下,两者输出的逻辑值是否一致,来验证流水线RTL设计的正确性,即验证集成电路流水线设计的正确性。图7所示为利用流水线模型验证流水线RTL设计的验证环境示意图和波形图,其中流水线模型中各模型单元的波形分别用模型单元1_A、模型单元2_B、模型单元3_C表示;流水线RTL设计的各寄存器的波形用Reg_l_A、Reg_2_B、Reg_3_C表示。验证流水线模型及流水线控制单元RTL设计时,测例产生器产生验证激励,同时加载到流水线RTL设计各寄存器和流水线模型各模型单元上,流水线控制单元和流水线控制单元RTL设计分别控制流水线模型各模型单元和流水线RTL设计各寄存器。之前流水线模型各模型单元和流水线控制单元已经完成图6中的状态验证,本验证环境用于对比集成电路流水线设计的建模结构和RTL设计中对应单元的输出逻辑值,完成逻辑值的对比检查,从而验证流水线RTL设计(包括流水线控制单元RTL)的正确性。采用上述流水线模型对集成电路流水线设计进行验证的系统请参阅图8,该系统主要包括测例产生器Z100,用于产生验证激励,并按照时间顺序将验证激励发送到流水线模型,所述验证激励包括逻辑值和状态值。状态断言单元Z200,用于对流水线模型中各个模型单元的状态及其之间的关系进行声明,并设计各级流水状态断言。状态判断单元Z300,用于实时检测各级流水输出的状态值,根据状态断言单元的状态断言对流水线模型进行状态断言判断,若出现违反断言的现象则发出报告,认为流水线模型没有通过验证。为更好实现本实施例的方案,上述系统还包括状态存储单元Z400,用于缓存各级流水输出的状态值。同时状态判断单元Z300细分为多个子单元,具体包括状态读取子单元Z310,用于读取状态断言单元中预先设计的各级流水的状态断言,还用于从状态存储单元中读取当前流水的状态断言中涉及到的某级或某些级流水的状态值。状态判断子单元Z320,用于根据状态读取子单元读取的各级流水的断言状态、当前流水的状态断言中涉及到的某级或某些级流水的状态值,进行断言判断。状态报告子单元Z330 :用于当状态判断子单元判断出现违反断言的现象时则发出报告。利用上述系统对流水线模型的完备性和正确性进行验证,流水线模型本身设计的验证通过后,可用于验证流水线RTL设计,其验证方式请参照上述关于图7的描述。以上内容是结合具体的实施方式对本发明所作的进 一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换。
权利要求
1.一种采用流水线模型对集成电路流水线设计进行验证的方法,所述流水线模型包括根据集成电路流水线设计确定的至少二级流水单元,每级流水单元中至少包括一个模型单元,每个模型单元包括 后端接口,用于接收前一级流水单元输出的状态值和逻辑值; 前端接口,用于将该模型单元的状态值和逻辑值输出到下一级模型单元; 功能单元,用于对后端接口发来的逻辑值进行功能函数运算并输出逻辑值; 内部控制单元,包括控制器和状态处理单元,所述控制器根据后端接口发来的数据和本身的控制逻辑输出选择信号,所述状态处理单元根据后端接口发来的数据和本身的状态处理逻辑输出状态值至前端接口; 选择单元,根据控制器输出的选择信号,在功能单元输出的逻辑值、该模型单元的复位值、置位值和上一状态的逻辑值中进行择一输出至前端接口; 其特征在于,所述方法包括 验证流水线模型的完备性和正确性; 流水线模型验证通过后,利用该流水线模型验证流水线设计的正确性; 所述验证流水线模型的完备性和正确性包括以下步骤 对流水线模型中各个模型单元的状态及其之间的关系进行声明,并预先设计各级流水状态断言; 测例产生器产生验证激励,并按照时间顺序将验证激励发送到流水线模型,所述验证激励包括逻辑值和状态值; 流水线模型的第一级流水接收测例产生器产生的验证激励,根据验证激励进行运算,输出本级的逻辑值和状态值到第二级流水; 第二级流水根据上一级流水输出的逻辑值和状态值进行运算,输出本级逻辑值和状态值到下一级流水;依此类推; 实时检测各级流水输出的状态值,根据预先设计的流水状态断言对流水线模型进行状态断言判断,判断是否出现违反断言的现象,若是则发出报告,认为流水线模型没有通过验证。
2.如权利要求I所述的方法,其特征在于,将实时检测的各级流水输出的状态值进行缓存,根据预先设计的流水状态断言对流水线模型进行状态断言判断步骤包括 从预先设计的流水状态断言群中按照顺序读取流水状态断言; 从缓存的各级流水输出的状态值中读取当前流水状态断言中涉及到的某级或某些级流水的状态值进行判断; 当判断出现违反断言的现象时则发出报告,否则继续读取下一条流水状态断言进行判断,直到流水状态断言群中流水状态断言读取完毕。
3.如权利要求2所述的方法,其特征在于,当出现违反断言的现象时,则执行以下步骤 分别对产生当前流水状态的模型单元控制逻辑和上一级输出单元进行验证。
4.一种集成电路流水线模型的实现方法,其特征在于,包括 模拟硬件运行方式,以寄存器为界划分模型单元;将当前寄存器和其前面一级或多级的寄存器之间的逻辑划分为一个模型单元,其中,组合逻辑中的功能函数运算划入模型单元的功能单元中,组合逻辑中的选择和控制逻辑划入模型单元的选择单元和控制器中,时序逻辑中的处理周期划入内部驱动单元; 根据集成电路流水线级数设计将流水单元连接成至少二级流水,构成集成电路流水线模型。
5.如权利要求4所述的实现方法,其特征在于,还包括 采用外部驱动单元作为流水线模型各流水单元的驱动时钟;在每个流水单元内部设置内部驱动单元,所述内部驱动单元根据本流水单元接收和发送数据的时钟周期,将外部驱动单元输出的驱动时钟信号处理成本流水单元需要的时钟信号。
6.一种集成电路流水线设计验证系统,其特征在于包括 根据集成电路流水线设计确定的至少二级流水单元,每级流水单元中至少包括一个模型单元,每个模型单元包括 后端接口,用于接收前一级流水单元输出的状态值和逻辑值; 前端接口,用于将该模型单元的状态值和逻辑值输出到下一级模型单元; 功能单元,用于对后端接口发来的逻辑值进行多种功能函数运算并输出多个逻辑值;内部控制单元,包括控制器和状态处理单元,所述控制器根据后端接口发来的数据和本身的控制逻辑输出选择信号,所述状态处理单元根据后端接口发来的数据和本身的状态处理逻辑输出状态值至前端接口 ;和 选择单元,根据控制器输出的选择信号,在功能单元输出的多个逻辑值、该模型单元的复位值、置位值和上一状态的逻辑值中进行择一输出至前端接口 ; 测例产生器,用于产生验证激励,并按照时间顺序将验证激励发送到流水线模型,所述验证激励包括逻辑值和状态值; 状态断言单元,用于对流水线模型中各个模型单元的状态及其之间的关系进行声明,并设计各级流水状态断言; 状态判断单元,用于实时检测各级流水输出的状态值,根据状态断言单元的状态断言对流水线模型进行状态断言判断,若出现违反断言的现象则发出报告,认为流水线模型没有通过验证。
7.如权利要求6所述的系统,其特征在于,还包括 状态存储单元,用于缓存各级流水输出的状态值; 所述状态判断单元包括 状态读取子单元,用于读取状态断言单元中预先设计的各级流水的状态断言,还用于从状态存储单元中读取当前流水的状态断言中涉及到的某级或某些级流水的状态值; 状态判断子单元,用于根据状态读取子单元读取的各级流水的断言状态、当前流水的状态断言中涉及到的某级或某些级流水的状态值,进行断言判断; 状态报告子单元用于当状态判断子单元判断出现违反断言的现象时则发出报告。
8.如权利要求6所述的系统,其特征在于,所述流水线模型还包括 流水线控制单元,用于全局控制流水线模型上各模型单元逻辑值和状态值的选择输出。
9.如权利要求6所述的系统,其特征在于,所述模型单元还包括 缓存单元,用于在所述功能单元运算过程中提供存储空间;包括缓存运算过程的中间值,或者按照模型单元的处理周期,存储中间周期的运算结果。
10.如权利要求6所述的系统,其特征在于,所述流水线模型还包括 外部驱动单元,作为流水线模型各流水单元的驱动时钟; 所述模型单元还包括 内部驱动单元,根据外部驱动单元的驱动信号,计算本模型单元中前端接口和后端接口发送和接收数据的时间,驱动所述前端接口和后端接口完成发送和接收任务。
全文摘要
本申请公开了一种采用流水线模型对集成电路流水线设计进行验证的方法。其首先对流水线模型的完备性和正确性进行验证,流水线模型验证通过后,可来验证集成电路流水线设计。而在该流水线模型的验证中,通过预先设计各级流水状态断言,其次实时检测各级流水输出的状态值,进而判断是否出现违反断言来验证。一旦流水线模型的设计出错则会出现违反断言的情况,如此则可直接验证与违反断言的流水中模型单元相关的各级流水及模型单元,即直接将出错的地方定位到具体的某级或某些级流水的模型单元中,不需要验证所有的流水线模型中的全部单元,提高了纠错效率。
文档编号G06F17/50GK102789521SQ20121021550
公开日2012年11月21日 申请日期2012年6月27日 优先权日2012年6月27日
发明者周芝丽, 张兴, 李世军, 王新安, 苏吉婷, 谢峥, 赵蕾, 陈旭 申请人:北京大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1