系统仿真方法与流程

文档序号:12720138阅读:788来源:国知局
本发明关于一种系统仿真方法。
背景技术
::系统仿真被广泛应用于电子产品制造、生产的流程中。举例来说,集成电路中的逻辑门仿真、缓存器传输级(register-transferlevel,RTL)仿真均属此类。系统仿真得以在实际制作装置以前让设计者了解装置之间的互动以及可能的问题。因此能提高实际生产时的良率,某种程度上可降低生产成本。然而,系统仿真往往旷日费时,从而延后了设计与生产的时程。技术实现要素:有鉴于上述问题,本发明提出一种仿真精准度可调的系统仿真方法,得以在仿真时间与仿真精确度之间调节。依据本发明的系统仿真方法,包括下列步骤:依据第一模型与仿真尺度参数,仿真第一电路于N个时钟周期内的运作,其中N为正整数,第一参数模型系关于第一电路。依据关于第一模型的输入信号或输出信号,调整仿真尺度参数,以调整N值。依据本发明的系统仿真方法,包括下列步骤:依据信号率,选择性地以周期模式、事件模式或窗口模式进行仿真。当选择以窗口模式进行仿真时,依据第一模型与仿真尺度参数,仿真第一电路于N个时钟周期内的运作,其中N为正整数,第一模型系关于第一电路。依据关于第一模型的至少一输入信号或至少一输出信号,调整仿真尺度参数,以调整N值。附图说明图1为依据本发明一实施例的仿真方法流程图。图2为依据本发明一实施例的仿真系统功能方块图。图3为用以说明本发明中三种仿真模式的仿真时间示意图。图4为依据本发明一实施例的仿真尺度参数调整方法流程图。图5为依据本发明另一实施例的仿真尺度参数调整方法流程图。图6为依据本发明一实施例的误差估计与补偿时序示意图。附图标记说明1000仿真系统1100第一模型1110第一同步模块1120第一队列1130第二队列1140第一仿真模块1141第一参数模型1143信号率估计单元1145动态同步调整单元1147时序误差估计单元1149时序误差补偿单元1200第二模型1210第二同步模块1220第三队列1230第四队列1240第二仿真模块OUT1输出信号IN1输入信号OUT2输出信号IN2输入信号TP、TS时间Rk、Rk-1信号率Nmin、Nmax门槛值d1~d4误差d1’~d4’误差具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。依据本发明一实施例的系统仿真(simulation)方法,具有周期模式(cyclemode/cyclebased)、事件模式(eventmode/eventbased)与窗口模式(windowmode/windowbased)三种仿真模式,其中三种仿真模式可以由用户指定,也可以依据信号率来切换。其中于窗口模式中的运作方式请参照图1,其为依据本发明一实施例的系统仿真方法流程图。如图1所示,所述系统仿真方法包括下列步骤:如步骤S110所述,依据第一模型与仿真尺度参数,仿真第一电路于N个时钟(clock)周期内的运作,其中N为正整数,第一模型系关于第一电路。第一电路可以是集成电路、硅智财(siliconintellectualproperty,SIP)、芯片、电子装置或电路装置。以功能而言,第一电路可以是中央处理器(CPU)、图形处理器(graphicprocessingunit,GPU)、记忆体控制器(memorycontroller)、图像信号处理器(imagesignalprocessor,ISP)、编码器或译码器等。如步骤S120所示,依据关于第一模型的输入信号或输出信号,调整仿真尺度参数,以调整N值。具体来说,请参照图2,其中图2为依据本发明一实施例中的仿真系统架构示意图,如图2所示,依据本发明一实施例的仿真系统1000具有对应于第一电路的第一模型1100与对应于第二电路的第二模型1200。其中第一模型1100具有第一同步模块1110、第一队列(queue)1120、第二队列1130、第一仿真模块1140。而第二模型1200具有第二同步模块1210、第三队列1220、第四队列1230与第二仿真模块1240。而如图2所示,第一仿真模块1140与第一队列1120、第二队列1130以及第一同步模块1110通信连接,而第一同步模块1110还与第一队列1120以及第二队列1130通信连接。此处所述的通信连接是指任意两个模块(实体电路或是软件程序集)之间有信号的交换。于一实施例中,仿真系统1000是一个实际的硬件系统,举例来说,第一仿真模块1140可以是实际的中央处理器,第一队列1120与第二队列1130可以是缓存器或是记忆体,而第一同步模块1110可以是另一个处理单元用来触发各元件作动的。于另一实施例中,仿真系统1000是一个由软件程序集呼叫来架构的环境,其中各模块与队列之间 的互动由旗标、指针与程序呼叫与回传的语法来实现。于另一实施例中,仿真系统1000是以硬件描述语言(hardwaredescriptionlanguage,HDL)所实现,可以是缓存器传输级(register-transferlevel,RTL)、行为级(behaviorallevel)、逻辑门级(gatelevel)等描述方式。第一电路例如图1所述的第一电路,第二电路相似于第一电路,在此不再赘述。第一参数模型1141于某些较为简单的例子中,可以是一个输入输出及/或延迟对照表(look-uptable,LUT),然而于现今的某些电路例如图型处理器由于其运算特性,难以以简单的对照表来描述其作动,此时会以程序语言、方程式、方程式搭配对照表或其他方式来建构适当的第一参数模型,以描述第一电路的作动,例如仿真第一电路的功能、信号交换及/或输入输出的时间。第一同步模块1110于周期模式、事件模式及窗口模式分别在时钟周期、事件发生及窗口周期(窗口周期的说明请见下述)时控制第一队列1120从第二模型1200接收输入信号,并将在第二队列1130的输出信号传送到第二模型1200。在一实施例中第一同步模块1110于周期模式、事件模式及窗口模式分别在时钟周期、事件发生及窗口周期时控制第一队列1120从总线(bus)接收输入信号,并将在第二队列1130的输出信号传送到总线。第一队列1120接收到输入信号后,将输入信号IN1输入至第一参数模型1141以仿真第一电路,而第一参数模型1141仿真第一电路产生输出信号OUT1输出到第二队列1130。在一实施例中,输入信号可以包括请求指令或响应信号,输出信号可以包括请求指令或响应信号。第二模型1200与第一模型1100类似,在此不多赘述。然而需说明的是,第一模型1100与第二模型1200可以处于不同的模式,例如第一模型1100处于窗口模式,第二模型1200处于周期模式;第一模型1100与第二模型1200也可以处于有不同的窗口周期,例如第一模型1100的窗口周期为2个时钟周期,第二模型1200的窗口周期为5个时钟周期。请先参照图3为依据本发明一实施例的仿真时间示意图,其用以说明本发明中三种仿真模式在仿真电路时所需要的时间示意图。其中请先可以看到实际电路依据时钟而运作时,在第三个时钟周期、第五个时钟周期与第八个时钟周期有事件发生(斜线)。于这种状况下,当以周期模式仿真时,由于不论有无事件发生都需要确认,因此总计仿真实际电路k个时钟周期 的运作需要花费k*(TP+TS),其中TP为处理时间而TS为同步时间(synchronizationtime)。如果以事件模式仿真时,仅有在发生事件时需要进行确认,总计仿真实际电路k个时钟周期的运作需要花费k*TP+Ne*TS,其中Ne为事件发生的次数。如果以窗口模式仿真时,则需要给定一个N值,也就是时钟信号的每N个时钟周期需要进行一次信号交换的确认,其中N是正整数,N个时钟周期可以代表一个窗口周期。则总计仿真实际电路于k个时钟周期的运作,需要花费k*TP+k*TS/N。换句话说,当事件发生的频率(信号交换的频率,信号率)低于一个程度时,以窗口模式仿真会快于以周期模式仿真。具体来说,以N等于2来进行窗口模式仿真,会快于以周期模式进行仿真。此外,当k/N小于Ne时,也就是事件的发生频率大于某个门槛时,以窗口模式仿真会比用事件模式仿真还要快。需说明的是,上述计算方式仅为例示,仿真所需的时间会因不同电路、不同仿真环境等因素而不同。于一实施例中,以第一仿真模块1140为例,请回到图2,第一仿真模块1140中具有信号率估计单元1143与动态同步调整单元1145,信号率估计单元1143依据一段时间(例如数个时钟周期内)中所取得的输出信号及/或输入信号的数量,来计算信号率Rk,在一实施例中,输入信号可以包括请求指令或响应信号,输出信号可以包括请求指令或响应信号,而动态同步调整单元1145则依据信号率来调整仿真尺度参数,以调整N的值,其中仿真尺度参数可以是N的值、N值的上限门槛值、N值的下限门槛值、信号率的变动门槛值、时序误差值、时序误差上限门槛值、时序误差下限门槛值及/或其他可以用来调整仿真效率/精度的参数。其中,请一并参照图4,其为依据本发明一实施例的仿真尺度参数调整方法流程图。于步骤S510中,信号率估计单元1143是计算一定的时间内(例如M个时钟周期)收到的指令数量以作为当前的信号率Rk。而于步骤S512中,动态同步调整单元1145依据当前信号率Rk与前一次信号率Rk-1,判断信号率Rk是否增加。当判断信号率Rk增加(Rk>Rk-1)时,如步骤S514,动态同步调整单元1145判断信号率增加值(Rk-Rk-1)是否小于变动门槛值Rth。当增加值小于变动门槛值时,如步骤S516,维持仿真尺度参数,在本实施例中,即维持N值不变。当增加值不小于该变动门槛值时,如步骤S518,动态同步 调整单元1145判断当前N值是否大于下限门槛值Nmin。当N值大于下限门槛值Nmin时,如步骤S520,动态同步调整单元1145调整仿真尺度参数以降低N值。当N值不大于下限门槛值Nmin时,如步骤S522,动态同步调整单元1145维持仿真尺度参数使得N值维持不变。而于步骤S512的判断中,当信号率未增加时,如步骤S524,动态同步调整单元1145判断信号率的降低值(Rk-1-Rk)是否小于变动门槛值Rth。当降低值小于变动门槛值时,如步骤S526,动态同步调整单元1145维持仿真尺度参数,使N值不变。当降低值不小于变动门槛值时,如步骤S528,动态同步调整单元1145判断当前N值是否小于上限门槛值Nmax。如果当前的N值小于上限门槛值Nmax时,如步骤S530,动态同步调整单元1145调整仿真尺度参数以增加N值。而如果当前N值不小于上限门槛值Nmax时,如步骤S532,动态同步调整单元1145维持仿真尺度参数以使N值不变。于某些实施例中,请参照图5,其为依据本发明另一实施例的仿真尺度参数调整方法流程图。图5与图4的主要差异在于,在步骤S518中,如果当前的N不大于下限门槛值Nmin,则如步骤S522’,仿真系统1000将仿真的模式从窗口模式调整至周期模式。而在步骤S528中,如果当前的N不小于上限门槛值Nmax,则如步骤S532’,仿真系统1000将仿真的模式从窗口模式调整至事件模式。于另一实施例中,当下限门槛值Nmin为1,则无须步骤S522’,因为当N值不大于1时,N就会等于1,也就是周期模式。于一实施例中,当以周期模式进行仿真时,动态同步调整单元1145判断信号率是否低于信号率上限门槛值,当信号率低于信号率上限门槛值时,切换至窗口模式。于一实施例中,当以事件模式进行仿真时,动态同步调整单元1145判断信号率是否高于信号率下限门槛值,当信号率高于信号率下限门槛值时,切换至窗口模式。于另一实施例中,请参照一并参照图2与图6,其中图6为依据本发明一实施例的误差估计与补偿时序示意图。其中第一列是第一模型1100所对应的第一电路发出响应信号(输出信号)的时序。而第二列是第一模型1100依照前述方法以N等于10的方式仿真的时序,而第三列是经由补偿后得到的误差补偿后的时序。如第一列的时序可以看出来,第一电路会在 第三个时钟周期、在第十五个时钟周期、在第廿七个时钟周期与在第卅三个时钟周期送出响应信号。而基于N等于10的方式仿真的话,根据前述的仿真方法,响应信号会在第十个时钟周期、第廿个时钟周期、第卅个时钟周期与第四十个时钟周期时被送出。从而造成了误差d1至误差d4,其中误差d1至d4分别为七个时钟周期、五个时钟周期、三个时钟周期与七个时钟周期。以图6的实施例来说,经过四十个时钟周期的仿真时,总计的时序误差值若未经补偿,会达到22(7+5+3+7=22)个时钟周期之多。虽然这个仿真有时候仅为了了解所仿真的电路(第一电路)的功能是否正常,然而设计者往往也希望仿真的时序误差值不会差太多。因此,于一实施例中,第一仿真模块1140中还具有时序误差估计单元1147与时序误差补偿单元1149。时序误差估计单元1147统计累积的时序误差值。当在第十时钟周期要送出响应信号时,时序误差值为七个时钟周期(大于零),表示当前时序有延迟。另外,在本范例中,经由时序误差补偿单元1149之运算可以得知原本会在第二十时钟周期送出响应信号若在第十时钟周期送出响应信号可以使得原本在送出第二个响应信号之累计时序误差值从原本为d1与误差d2之总和变成为d1’与误差d2’的总和。由于误差d1’为七个时钟周期,而误差d3’为负五个时钟周期,因此累计时序误差值为两个时钟周期。而等到第卅时钟周期时,时序误差值又额外累积了三个时钟周期而达到五个时钟周期,在此时序误差补偿单元1149会经由运算看是否将原本在第四十时钟周期才发出的响应信号送出。经计算后,原来在未补偿的状况下会在第四十个时钟周期才送出的响应信号,会在第卅时钟周期就送出。如此一来,整个时序误差值为误差d1’至d4’的总和,其中误差d1’为七个时钟周期,误差d2’为负五个时钟周期,误差d3’为三个时钟周期,而误差d4’为负三个时钟周期,所以整个时序误差值系将前述误差加总得到二个时钟周期。由此,依据本实施例的仿真方法,第一模型1100在每个窗口周期会依据时序误差补偿单元1149之运算结果来确认累积时序误差值以判断是否将响应信号送出,若延后于一个窗口周期才送出响应信号会使得累积时序误差值变小时,第一模型1100会依据时序误差补偿单元1149的运算结果,在下一个窗口周期再将响应信号送出。反之则将在现在之窗口周期送 出响应信号。具体来说,在进行误差补偿时,先估计或计算时序误差值,其中估计是代表有预测未来可能造成累进的时序误差值,而计算是指累加过去的时序误差值。于某些实施例中两者可并存,而于另一些实施例中,可以仅仅是计算累加过去的时序误差值。当时序误差值大于零时,表示发生时序延迟的错误,因此第一模型1100提前地送出部份的输出信号。而如果当时序误差值小于零时,则第一模型1100延后送出部份的输出信号。另外,时序误差值的大小也可用来调整仿真尺度参数,以调整N的值,控制窗口周期的大小。调整窗口周期大小的方式如下。当时序误差值大于某一个所设定的门槛值时,缩小窗口周期的大小。否之则加大窗口周期的大小。此处所描述的门槛值并非只能单一个值,它可以是多个值所组成。例如,当时序误差值大于时序误差上限门槛值时,减少仿真尺度参数以缩小窗口周期的大小,当时序误差值小于时序误差下限门槛值时,增加仿真尺度参数以增加窗口周期的大小。依据本发明所提出的仿真方法,申请人进行了实际的仿真,以说明其功效。请参照下表一,其中N为1即为现在一般的基于周期的仿真方法(cyclebasesimulationmethod)。从表一可以看出依据本发明的仿真方法中,窗口模式相较于周期模式的仿真方法而言,可以提升仿真效率。表一综上所述,依据本发明的仿真方法所实作的仿真系统,可以自动的调 整一个电路被批次仿真的运作周期数(N),由于不需要对每个运作周期都进行运算,因此仿真所占用的系统资源较少,也可以增加仿真的效率。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1