产生系统模型的方法与在此系统模型中传输数据的方法

文档序号:6358026阅读:218来源:国知局
专利名称:产生系统模型的方法与在此系统模型中传输数据的方法
技术领域
本发明是有关于一种产生系统模型的方法与在此系统模型中传输数据的方法。
背景技术
由于半导体制程的制造技术的改良,集成电路(IC)科技在复杂度方面持续地增加。完整的系统单芯片(SoC)解决方案牵涉到许多组件,例如处理器、定时器、中断控制器、 总线、内存和/或单一电路上的嵌入式软件等组件,其现可用于各式各样的应用中。软件开发、早期硬件架构探索、复杂的系统单芯片或处理器装置的功能性验证为半导体工业所面临的挑战。当在65纳米(nm)和更小尺寸的制程制造技术上,利用可用于建构大型且复杂的单芯片的上百万个晶体管时,对这样复杂的装置进行功能性验证的挑战是成指数地成长。产业数据显示超过80%以上的计划资源被分配到这些装置的软件开发和功能性验证上。传统的设计流程是由描述即将制造的电路的行为或功能性开始。传统上,这样的软件程序是以程序性程序语言(Procedural Programming Languages),例如C/C++,这些程序性程序语言以有限的实施细节来定义将进行的行为。缓存器转换层级(Register Transfer Level ;RTL)为一种层级,在此层级上数字系统是就在功能性单元间的同步传输来描述。RTL是比门级(Gate Level)高出一个层级。在RTL中,每一执行的运算次序(因而计时)完整地被指定。集成电路装置的RTL模型可被用为自动化数字合成工具的一输入, 以产生门级网络连线表(Gate Netlist)。如在此所使用,用语“模型”是被用来描述一单元, 此单元可实现于软件中并可被实施在计算机可读取媒体上,其代表在实际装置外的形式中的所欲装置(例如系统方块)的行为。逻辑合成工具将一个RTL描述转换为门级网络表。 门级网络表更通过由所谓的配置与绕线工具(Place and Route Tool)来经历晶体管层级的转换,以达到实体的集成电路层级。

发明内容
本发明的一方面是在提供一种产生系统模型的方法与在此系统模型中传输数据的方法,可供集成电路(IC)设计者在进行RTL设计或门层级设计之前,来进行软件的开发, 以进行架构上的变更来研发具有最佳效能与精确功能性的软件。根据本发明的一实施例,在此产生系统模型的方法中,首先模型化系统单芯片的系统方块为被计算机所实施的无计时功能性模型于无计时功能层级上。接着,使用无计时功能性模型于交易层级上来产生系统方块的被计算机所实施的交易层级模型。然后,使用交易层级模型于周期精确层级上来产生系统方块的被计算机所实施的周期精确模型。接着,操作处理器来执行使用交易层级模型和周期精确模型其中至少一者的软件程序,来验证系统单芯片的功能性。根据本发明的另一实施例,在此产生系统模型的方法中,首先产生系统单芯片的系统方块的交易层级模型于一交易层级上。接着,产生系统方块的无计时功能性模型于无计时功能层级上,无计时功能性模型是设置来被交易层级模型所调用。然后,利用交易层级模型来产生系统方块的周期精确模型于周期精确层级上。 根据本发明的又一实施例,在此传输数据的方法中,首先于于无计时功能层级上, 模型化系统单芯片的至少一系统方块为第一无计时功能性模型与第二无计时功能性模型。 然后,分别使用第一无计时功能性模型与第二无计时功能性模型于交易层级上产生系统方块的第一交易层级模型与第二交易层级模型。接着,分别利用第一交易层级模型与第二交易层级模型于周期精确层级上,产生系统方块的第一周期精确模型和第二周期精确模型。 然后,从第一无计时功能性模型传送数据至第一周期精确模型。接着,从第一周期精确模型透过周期精确总线来传送数据至第二周期精确模型。然后,从第二周期精确模型传送数据至第二无计时功能性模型。


为让本发明的上述和其它目的、特征、和优点能更明显易懂,上文特举一较佳实施例,并配合所附附图,作详细说明如下图1是绘示根据本发明一实施例的方块图;图2是绘示根据本发明一实施例的流程图;图3是绘示根据本发明一实施例的利用LT包装器来从无计时功能性模型产生TL 模型的方块图;图4是绘示根据本发明一实施例的利用AT包装器来从无计时功能性模型产生TL 模型的方块图;图5是绘示根据本发明一-实施例的利用TL包装器来从TL模型产生CA模型的方块图6是绘示根据本发明一-实施例的利用简略计时(LT)协议的突发读取周期的时序图7是绘示根据本发明一-实施例的利用近似计时(AT)协议的突发读取周期的时序图8是绘示根据本发明一 实施例的计算机系统的功能性组件的方块图。
主要组件符号说明
110a:无计时功能性模型IlOb 无计时功能性模型
120a 交易层级模型120b 交易层级模型
130a 周期精确模型130b 周期精确模型
130c 周期精确模型130d 周期精确模型
140 周期精确总线
200 流程210 步骤
220 步骤230 步骤
240 步骤
310a 无计时功能性模型310b 无计时功能性模型
314a 简略计时包装器314b 简略计时包装器
320a 交易层级模型320b 交易层级模型
325a:启始器插槽325b :目标插槽
328 简略计时总线350 虚拟通讯连结
360 虚拟通讯连结370 外部内存模型
410a 无计时功能性模型410b 无计时功能性模型
416a 近似计时包装器416b 近似计时包装器
417a 请求队列417b请求队列
418a 响应队列418b响应队列
420a 交易层级模型420b交易层级模型
425a:启始器插槽425b目标插槽
429 近似计时总线450 虚拟通讯连结
460 虚拟通讯连结
510a 无计时功能性模型510b无计时功能性模型
515a:包装器515b包装器
520a 交易层级模型520b交易层级模型
530a 周期精确模型530b周期精确模型
532a:启始器交易器532b目标交易器
534a 请求队列534b请求队列
536a 响应队列536b响应队列
540 周期精确总线550 虚拟通讯连结
560 虚拟通讯连结
TO T13 时间
ARADDR 总线ACLK高阶可扩展接口总线时脉
ARREADY 地址准备信号ARVALID :地址有效信号
RLAST 信号RDATA 总线
RREADY 信号RVALID 信号
800 计算机系统806 总线
807 处理器808 主存储器
809 只读存储器810 储存装置
811 显示装置812 输入装置
814 通讯接口815 通讯连结
831 数据储存系统832 数据库
833:数据接口
具体实施例方式
由于RTL设计的缓慢模拟速度,在RTL的软件开发是很有挑战性的。在每秒数百万个周期范围中模拟速度对于软件开发是有引导性的,而RTL典型地是提供小于每秒100至 200个周期的模拟速度。硬件加速器与模仿器(Emulator)的使用已快速地增加,而达到对软件开发有引导性的每秒周期数处理量。然而,硬件加速器或模仿器只能在有RTL或门层级设计可获得时才可使用。在RTL设计信息准备好前,在设计周期中进行架构变更来研发可最佳地执行并具精确功能性的软件已经是太晚了。很多的项目计划被取消或太晚上市是由于软件开发的延宕。因此,需要一种平台或工具,以于付诸至RTL或门层级上的设计前开发软件,而此平台或工具是被提供于各种不同的实施例中。较高阶无计时功能模型(Untimed Functional Model)或基于开放性系统C 促进组织的系统 C TLM-2 简略计时协议(Open SystemC Initiative (OSCI) SystemC TLM-2Loosely Timed(LT)protocol)的模型提供软件开发者在付诸至RTL前的快速模拟平台。OSCI SystemC TLM-2LT协议是被描述于电机电子工程师学会(Institute of Electrical and Electronics Engineers ;IEEE) 1666-2005 标准系统 C i吾言参考手册以及OSCI系统C TLM-2.0语言参考手册中,在此二者全部内容已并入本案以供参考(Hereby Incorporated by Reference) 0在模型中,制程间的沟通以及LT模型间的沟通是发生于纯功能性交易层级(Purely Functional Transaction Level),在纯功能性交易层级上没有信号级功能性(Functional)或时脉级计时(Timing)粒度(Granularity),相对于周期精确RTL模拟,其可以多个数量级将模拟加速。如在此所使用,用语“周期精确”是指在周期方面将时间准确定义的计时粒度。用语“交易”是指将一完整互动编码的电子表现方式,此互动是例如从中央处理器写入一或多个位至内存中。一交易可为多个指令的序列,此指令序列是位于比装置所操作的基本原子层级更高的层级上。传统上,位于RTL中的交易需要多个时脉周期来执行。交易层级(Transaction Level ;TL)模型可快速地计算交易的最终结果(例如被模型化的装置的最终结果)而不需要进行实体装置(real device)实际所进行的每一个步骤。位于TL中的交易可不计算时间或只花费一些在时脉周期中量测不出来的“近似”的时间。相对地,RTL中的交易被认为会占用时脉周期。因此,TL模型比较低阶的模型,例如RTL模型,执行得更快(因此更准确)。较早的软件开发可早期确认出软件所需的确实架构与功能性需求,以确保最后的硅芯片(Final Silicon)可确实符合软件的需求。类似于软件开发为硬件架构探索的问题。因为RTL的设计无法在早期获得,所以传统上,在设计周期中,RTL所进行的硬件架构探索会太晚发生。在设计周期中,确认在RTL 中需要变更芯片架构的延迟问题和效能问题会太晚。较高阶的OSCI-SystemC TLM-2 近似时脉(Approximately Timed (AT))协议模型相当适合于硬件架构探索。如在此使用,用语“高”、“较高”、“低”、“较低”,是指功能性与计时粒度。例如,较高层级是对应至比较低层级更粗糙的功能性与计时粒度。更粗糙的功能性粒度是指在不处理RTL的信号级功能性粒度的演算层级上,对装置进行模型化。更粗糙的计时粒度是指不以计时粒度(当在无计时模型中)或以近似的计时粒度对装置进行模型化。近似的计时粒度是指简略计时(LT)或近似计时(AT)粒度。LT和AT计时为与交易层级 (Transaction Level ;TL)模型化有关的概算(Approximation)并描述如下。RTL为周期精确计时且被认为是相对较低的层级。AT协议提供足够的计时粒度来较佳地近似至系统于周期精确RTL中最后设计时所面对的延迟。因为相较于LT的两阶段协议(Phased Protocol), AT具有四个(或更多)阶段通讯协议(Phased Communication ftOtocol),所以AT具有较细的计时粒度。然而,AT计时粒度亦较高于周期精确RTL粒度。换句话说,AT足够快速且可利用足够的真实计时信息,来允许在付诸RTL之前,进行快速且有意义的硬件架构探索。如在此所使用,用语“电子系统级(Electronic System Level ;ESL) ”以及“无计
7时功能层级”,是指使用无计时的程序型程序语言,例如C或C++的高层级,而无计时功能性模型则为在此高层级所模型化的模型。无计时功能性模型可为系统设计中的启始点,且可用来探索与验证定义装置核心功能性的算法。一旦此模型被建立及验证,即可利用将于以下详述的LT或AT包装器逻辑模块(wrapper logic modules),来从无计时功能性模型建立软件开发以及硬件探索的系统。因此,在实施例中,重复使用为建立演算无计时功能模型所投入的投资(在时间与资源方面),以加速LT或AT系统。LT平台是允许软件开发来与可允许架构探索的AT平台进行平行处理。简略计时通讯协议提供最快速的模拟处理量(速度),此是因为它具有简单的两阶段请求/响应(request/response)协议。因为具有高模拟速度,LT很适合设计周期中的早期软件开发。软件开发使用核心功能、地址地图以及系统缓存器,但不需任何计时粒度, 除了内存的写入/读取以及缓存器的写入读取之外,而模型开发者可利用已知的方法来实施,例如使用SystemC的旗号(kmaphore),此为本领域习知技艺者所了解。另一方面,近似时脉(AT)通讯协议为四阶段(启始请求、结束请求、启始响应、结束响应),且支持无阻断(Non-blocking)行为,以提供计时粒度更进一步的精细化。如此的计时粒度可允许系统效能评估、早期功耗评估以及架构探索。如此的计时粒度允许对系统中存在的延迟进行较LT更佳的近似,藉此允许好的效能评估以及不同的可能架构。LT与AT协议为较高模型化层级(相对于RTL)的组件,较高模型化层级即为已知的交易层级模型化(Transaction Level Modeling ;TLM)或此处所使用的“交易层级”(TL)。 在较高的层级上,可进行设计探索来评估可达成的效能与功耗、哪一个部分要使用等等。 TL是指用来模型化数字系统的一高层级,其中模块间的沟通是与功能性单元的实施细节分开。系统设计者所面对的另一个挑战为装置的功能性验证。产业数据显示接近60%的原型硅芯片(First silicon)由于功能失效而故障。肇因于开发验证环境所增加的时间、 缓慢RTL模拟速度所增加的时间以及精细设计粒度而进行除错(Debug)所增加的时间,目前用来于RTL进行复杂电子系统功能性验证的技术是不适用的。各种不同的实施例是有益地提供于一较高层级上被模型化的一平台,其中大部份的功能性验证都可在此平台上进行,然后于RTL验证期间,重复使用上述的较高层级模型来加速模拟。例如,实施例可利用一语言,例如C或C++来完成无计时功能性模型,并从中产生TL和周期精确(Cycle Accurate ;CA)模型。实施例将无计时功能模型(例如用来进行算法开发的模型)转换为TL(LT或AT)模型,然后更进一步转换为最后设计的周期精确模型,接着继续产生出较高层级模型来驱动较低层级。在实施例中,最后的RTL设计不会马上准备好,因为较高层级模型可能与周期精确交易处理器(Transactor) —起使用,而非与仍处于开发阶段下的系统方块的最后RTL—起使用。有益的是,通过测试的有效原型硅芯片(First Pass Working Silicon)可因此来以比以前所可能的更快的速度来导入市场。图1是绘示根据一实施例的功能方块示意图。图1的左侧和右侧可分别对应至启始器anitiator)与目标(Target),且以具有不同字尾(分别为“a”和“b”)的类似标号来标示;此惯例在其它的附图中也会采用。TL模型120a是由无计时功能性模型IlOa所产生。周期精确(CA)模型130a是由TL模型120a所产生。此产生的细节将在更下面的地方以其它附图的内容来描述。如此所产生的CA模型130a是透过CA总线140来与其它模型沟通。例如,CA模型130a可与CA模型130b沟通,CA模型130b本身是由另一无计时功能性模型IlOb透过TL模型来产生,或者CA模型130a可与其它的CA模型130c、130d沟通。 以前,不存在有可使无计时功能性模型,例如模型IlOaUlOb利用CA总线140来沟通以进行硬件功能性验证的技术,此是因为需要分开的CA模型(不从无计时功能性模型产生)。 通过使较低层级模型由较高层级模型所产生,如图1中所绘示的实施例可使无计时功能性模型于较低层级来重复使用,以释放珍贵的开发者时间与资源。图2是绘示根据一实施例的流程图。在流程200开始之后,在步骤210中,系统单芯片(System-On-Chip ;SoC)的系统方块是于第一层级上的无计时功能性模型中,例如无计时功能性层级,来被模型化。在步骤220中,TL模型是利用此无计时功能性模型来于较低交易层级(TL)中产生。在步骤230中,周期精确(CA)模型是利用此TL模型来于较低CA 层级上产生030)。在步骤240中,SoC的功能性是通过操作一处理器来验证,以利用TL模型与CA模型中的至少一者,例如一者或另一者或两者一起,来执行软件程序。TL模型的产生与CA模型的产生将先于下面描述,而细节则表示于更下方的其它附图的内容中。初始时,装置的无计时功能性模型是利用程序语言,例如C或C++来产生。简略计时(LT)或近似计时(AT)包装器逻辑模块产生TL模型(LT或AT模型)于无计时功能性模型周围。TL模型可作为启始器或目标。为了启始TL总线(LT或AT总线)上的交易,启始器TL包装器逻辑(Initiator TL Wrapper Logic)呼叫较高层级的无计时功能性模型, 以从高层级的无计时功能性模型撷取数据,并将数据封装(Encapsulate)入兼容SystemC TLM-2的通用酬载(Generic Payload ;GP)。包装器逻辑利用GP来产生交易对象并使用 SystemC TLM-2标准的方法来将GP传递至其它也使用LT或AT协议的模型。目标TL模型送出它从启始器TL模型所接收的酬载至它的功能性核心ESL模型。当目标模型想要回送数据时,它的TL包装器逻辑从目标核心ESL模型撷取响应数据,并在启始器所提供的参考指标(Pointer)上来更新GP。然后,目标侧(Target Side)利用LT或AT来回送状态指标至启始器侧(Initiator side)。为了启始CA总线上的周期,TL包装器逻辑送出交易至周期精确交易处理器(于更下面描述),周期精确交易处理器轮流将交易译码、撷取它的酬载以及根据具体的CA总线协议来将它推进CA总线。当目标想要回送数据,TL包装器逻辑接收上述的响应数据(从无计时功能性模型而来)以及送出响应交易至周期精确交易处理器。交易处理器译码交易并撷取它的酬载,以利用数据来驱动CA总线。为了以无计时功能性模型来开始并到达计时粒度(LT或AT,两者皆为TL)的下一层级,各种不同的实施例利用OSCI TLM-2标准协议LT或AT来以可彼此互相沟通的组件来建立系统。为了利用LT或AT协议来建立系统,无计时ESL功能性核心模型是以下述的LT 或AT包装器来“包装”。从无计时功能性模性来产生TL模型以LT包装器来包装无计时功能性模型图3是绘示利用LT包装器来从无计时功能性模型产生TL模型的方块图。如同在此所使用,用语“包装器”是指可从较高层级模型产生较低层级模型的逻辑模块。图3的左右侧是分别对应至启始器和目标,且以具有不同字尾(“a”对应至启始器而“b”对应至目标)的类似标号来标示。LT包装器31 将以下述的无计时功能性模型310a包装,以形成TL模型320a (具体为LT模型320a),其中TL模型320a是透过LT总线328以及启始器与目标插槽(Socket) 325a、32 来与其它TL模型,例如TL模型320b沟通。TL模型320a与320b 之间的虚拟通讯连接350是绘示于图3中。在实施例中,启始器插槽32 和目标插槽32 是透过,例如已知的功能函数、^^11印0汁()来沟通。然而,由此功能函数在启始器与目标间所传送的酬载(例如,一笔交易的交易数据、地址表示、数据、字节致能(Byte Enable) 等)并未以定值来传送。相反地,b_transport()功能函数是于启始器与目标间传送指针 (参数)至此酬载。如此做的原因为启始器与目标两者皆可直接地于透过b_transp0rt() 所获得的指针(内存地址)来进行写入/读取,而不用来回地于它们之间传送定值并拖慢模拟。因此,虚拟通讯连接350不会取代基于插槽(Socket-Based)的接口。虚拟通讯连接为对应插槽所散布的酬载的指标。如本领域习知技艺者所了解,指针为酬载所在内存的地址,且可被启始器与目标两者存取。b_transp0rt()功能函数是于启始器与目标间传送此地址。位于无计时功能性模型层级的虚拟通讯连接360也被绘示。图3可对应至无计时功能性模型(模型310a)已经存在的情况,或对应至无计时功能性模型(模型310a) —开始不存在,但与LT包装器一起被制造出来。在第一个情况中,无计时功能性模型310a已经存在 (即系统方块已经于无计时功能层级被模型化),在各种不同的实施例中,与外部模型(例如外部内存模型370)沟通的模型的一些部份被进行修改。例如,无计时功能性模型310a 具有被称为写入至内存(WriteToMemory)的功能,此功能是写入至外部内存模型370,包装器逻辑31 被设置来修改无计时功能性模型310a与外部内存模块370之间的接口。在写入至内存的本体(Body)中,可将码修改如下(下面只展示虚拟程序代码)
void WriteToMemoryO; { properties of the method; #ifdef untimedF unction
〈original code as is>
#elifLT
〈create Generic Payload> from the properties of the method (address,
data, etc).
〈create transaction object pointer to the Generic Payload> 〈send object pointer to LT_Initiator—Socket function〉
#endif
}
void LT_initiator_Socket();
〈create TLM-2 Initiator Socket〉
<send Generic Payload object pointer using TLM-2 b—transport
method of the Initiator Socket> }在无计时功能性模型310a编译的期间,“无计时功能”或“LT”的任一者可用来作为编译前处理器指令线选项(Pre-processor Command Line Option),以提供可实施的方式来使用原始的核心(例如无计时功能性模型)“如原本一样”,但也允许重复使用相同的功能性核心来建立用于软件开发的基于LT系统。对于第二个情况,即没有预先存在的无计时功能性模型,无计时功能性模型功能可由LT包装器逻辑呼叫(调用),此是因为无计时功能性模型还没被建立,这与第一个情况相反。第二个情况较为合意,此是因为从简略时脉域(Domain)中的函式(Function)呼叫无计时域中的函式会比较容易。换句话说,相对于周围的其它方式,从计时域至无计时域的同步会比较容易。当外部LT模型从无计时模型请求数据或需要送出数据至另一模型时,LT 计时域会精确地知道。然后,LT模型320a会于此时来呼叫无计时模型310a。无计时功能性模型310a以零时(Zero Time)来完成它的功能(因为它未被计时)例示性的虚拟码是表示如下
void LT_Initiator_Socket();
{
〈create TLM-2 Initiator Socket〉
〈call the untimed ESL model's WritetoMemory() function to request
dada it wants to write to the LT bus>
〈create Generic Payload> from the data received from the ESL model
(address, data, etc.)·
〈create Transaction object pointer to the Generic Payload>
<send Generic Payload object pointer using TLM-2 b_transport method
of the initiator Socket〉
void WriteToMemoryO; {
properties of the method;
#ifdef untimedFunction
〈original code as is> #elifLT
〈provide data to LT_Intiator_Socket() as request and return.
#endif }在TLM-2标准中的简略计时通讯协议是利用阻断传输接口法(blocking transport interface method),艮口 b_transport ()来完成。在这段文章中,阻断是意指完成此功能的单一函式,以及同一启始器绪(Initiator Thread)被阻挡而不能对目标进行另一个请求,直到它接收到它之前请求的回应状态。不提供反向的路径给响应是必要的,此是因为启始器仅等待(被阻挡)到目标回送回应状态的时候。在回送状态至启始器之前,目标可消耗或可不消耗时间。在进行处理的期间,目标通过发出(Issue)明确的“等待”信号而不消耗时间,此是因为“等待”中止处理绪并回送控制给下方的(如本领域习知技艺者所知的SystemC模拟核心的)事件排程器(kheduler)。当模型或程序回送控制至事件排程器时,上下文交换(Context Switching)会消耗显著的中央处理器时间。LT通讯模型被设计来执行得尽可能快速,而此“等待”信号会使此基本的优点无效化。因此,当在LT模式中进行沟通时,较佳地,目标不进行“等待”。另外,如同在SystemC TLM-2LT标准酬载定义中,交易对象(例如酬载)(未绘示于图3中)可被传送至目标来做为参考(指针)。目标可在指针上直接读取或写入数据,而不用通过值来明确地来回传送数据至启始器,其可将模拟加速的更快。LT包装器31 利用通用酬载(GP)或协议具体化酬载(Protocol-Specific Payload ;PSP)来产生TLM-2交易。GP包含有属性,例如地址、数据、字节致能等,用来模型化基础的内存映像(memory-mapped)总线。如果总线不能利用GP来模型化,它会被扩展来容纳对总线具有特别意义的属性。这种扩展的GP被称为PSP,例如对于被插入(interleaved) 高阶可扩展接口(Advanced extensible Interface, AXI)的写入与读取而言,可使用识别 (ID)卷标(属性)。这样的ID属性不会存在于GP中。因此GP被扩展来增加ID属性并产生AXI PSP。与GP扩展有关的步骤是详细说明于本领域所公知的OSCI TLM-2语言参考手册中。对一写入指令而言,LT包装器31 从无计时功能性模型310a撷取数据并以此数据来在交易对象指针上更新酬载。交易对象是利用启始器插槽32如与13_^^11印01^()函式呼叫,例如发出请求,来将交易对象通过参考送至LT总线328。交易是于目标插槽32 被接收,而酬载域(Payload Field)与指令是利用如[transport ()函式来提取。LT包装器 314b提取写入指令,并从交易对象指针读取数据并写入数据至无计时功能性模型310b。类似地,对一读取指令而言,LT包装器314b从无计时功能性模型310b读取数据并于交易对象指针的数据域中来写入数据,而LT包装器31 直接从交易对象指针读取数据并将它送至无计时功能性模型310a。因此,LT包装器314a、314b分别从无计时功能性模型310a、310b产生TL模型 320a、320b。关于利用SystemC TLM-2LT协议来进行程序设计的准则与规范的额外细节,已为本领域习知技艺者所了解且被解释于SystemC TLM-2LT语言参考手册中。以AT包装器来包装无计时功能性模型AT模型是以和LT模型产生方式很相似的方式来由无计时功能性模型产生。AT为四阶段无阻断协定,而LT为两阶段阻断协定。换句话说,AT协议不用等待来接收目前(现在)交易的响应,即可允许开始下一个交易,例如通过同一启始器绪。在这个意义上,AT允许交易的管线化(Pipelined)发送。多个进行中αη-flight)的交易请求与其响应可按照次序或不按照次序返回。在AT启始器从目标接收请求结束阶段(EncLRequest Phase)后, AT启始器可只发出下一请求。然而,AT启始器绪可于接收上个请求的回应之前,发出下一个请求。图4是绘示利用AT包装器416a来从无计时功能性模型410a产生TL模型的方块图。AT包装器416a布署(提供)交易队列,也就是请求队列417a与响应队列418a。LT 包装器亦可部署交易队列,但是因为LT采用阻挡呼叫,所以没有真正的原因来使交易排列 (排队)发送。换句话说,AT可将交易请求排列,以精确地模型化系统的管线化行为。请求队列417a排列请求交易,而响应队列418a储存从AT总线4 透过启始器插槽42 所接收的回应。为了能够决定哪一个回应属于哪一个请求,包装器逻辑416a维持队列指针(未绘示)。OSCI TLM-2标准定义了单一交易的四个AT通讯阶段(启始器)Begin_ReqUest、(目标)End_Request、(目标)Begin_Response 以及(启始器)End_Response。为了维持请求与响应队列417a、418a,各种不同的实施例确保只有当EncLRequest从目标被接收时,启始器才送出下一个BegiruRequest。启始器不能发出下一个请求,直到目标指出它已经接受了请求并回送EncLRequest传输呼叫至启始器。然而,下一个请求可于前一个请求的开始_回应(BegiruResponse)到达前启动。根据AT协议的四阶段来维持请求队列417a与响应队列间的正确相互关系,可使最新的高效能总线,例如AXI的管线化周期的模型化变得容易。 换句话说,如果AT通讯协议将AXI总线模型化,则逻辑会被完成,以允许管线化总线行为, 如同上述的交易队列。以AXI总线为例来继续说明,LT和AT包装器可将OSCI TLM-2通用酬载(GP)扩展为协定具体化酬载。例如,AXI总线需要将ID与交易一起传送,以追踪管线化(以及无次序的)写入和读取。ID域不是OSCI TLM-2 GP的一部份。因此,GP将不必被扩展来加入 ID。没有ID的情况下,AT包装器逻辑(且统称为AXI逻辑)不会知道哪一个响应对应至哪一个请求。如以上所述,用来扩展GP的规则已解释于OSCI SystemC TLM-2. 0语言参考手册(LRM)。AT包装器可以两种方式来与无计时功能性模型410a沟通。不是以无计时功能性模型410a的内部功能呼叫AT包装器逻辑416a的方式,就是以AT包装器逻辑416a的内部功能呼叫无计时功能性模型410a的方式。第一个方式很适合用来从已存在的无计时功能性模型410a建立AT包装器。第二种方式更适合AT包装器逻辑与无计时功能性模型410a 两者并联的情况。以任一方式,AT包装器416a皆可从无计时功能性模型410a接收数据并由此制造TLM-2标准通用酬载(GP)。无计时功能性模型410a可送出调用AT包装器逻辑416a的写入功能或读取功能。 对于写入而言,AT包装器逻辑416a可利用,如根据OSCI TLM-2说明书的feite_Command, 来从功能参数撷取写入地址、数据以及字节致能数据,并形成GP。AT包装器逻辑416a可扩展GP来增加具体化总线协议(例如PSP)所使用的字段。对于读取而言,At包装器逻辑 416a可利用,如Read_Command,来将地址和位致能置入GP中。然后,启始器侧制造出作为“通用酬载”类的指针的交易对象(未绘示),并透过 TLM-2启始器插槽42 将它传送到目标侧,例如使用nb_transp0rtfW()接口函式。AT包装器逻辑416a将每一个交易附加上独特的ID,如此它可匹配响应队列418a中的条目与请求队列417a中的条目。以此方式,启始器侧可利用正确的ID来发出EncLResponse阶段至目标侧,而目标侧可利用正确的ID来发出EncLRequest阶段至启始器侧。目标侧记录并执行nb_transport_fw()函式。根据交易的接收,目标侧通过利用如nb_transportJdw()函式呼叫来启始具有适当ID的EncLRequest交易,并将其回送给启始器,以发出信号至启始器侧来表示它已收到请求。对从启始器送出的写入指令而言,目标AT包装器416以正确的ID来发送Begin_ Response交易至启始器侧,以指示启始器应当送出数据。启始器响应地在交易对象指针上利用写入数据来更新GP并以正确的ID来发送EncLResponse交易至目标。AT包装器逻辑 416在交易对象指针上从GP撷取数据并传送写入数据与地址至无计时功能性模型410b的核心内存。对从启始器送出的读取指令而言,目标AT包装器416b从无计时功能性模型410b 的核心内存读取数据并直接地在交易对象指针上更新数据。目标AT包装器416b利用对一启始器的nb_transport_bw()函式呼叫来启始带有正确ID的Begin_response交易,其中此启始器是在交易对象指针上从GP读取数据并送出数据至无计时功能性模型410a的核心内存。然后,目标侧利用带有正确ID的EncLResponse来结束交易。因此,AT包装器416a、416b分别从无计时功能模型410a、410b来产生TL模型 420a、420b。关于AT通讯协议与要遵守的规则的详细细节,已为本领域习知技艺者所知且被解释于OSCI TLM-2.0语言参考手册中。图4是绘示分别用来在TL层级和无计时功能性层级进行通讯的虚拟通讯连结450和460。从TL模型产生CA模型在各种不同的实施例中,周期精确交易器模块(交易器)是通过CA总线来与TL包装器逻辑模块沟通以形成CA模型。简而言之,交易器从AT或LT包装器接收交易并从交易撷取酬载信息(例如地址、数据、字节致能、脉冲(burst)等)以及指令信息(例如Write_ Command,Read_Command)。交易器是设计来利用特定的周期精确总线协议(例如AXI协议) 来工作。交易器是基于写入或读取指令的一者来于总线上开始合适的周期。交易器是于总线上驱动所需的地址和控制信息,以启始一周期以及写入所需地址至总线上或等待所需的
14读取数据到达。图5是绘示具体利用TL包装器51 来从TL模型520a产生CA模型530a 的方块图,其中TL包装器51 可危LT包装器31 或AT包装器316a。在以下图5的讨论中,首先以LT及其相关的时序6为背景来进行讨论,接着以AT及其相关的时序7 为背景来进行讨论。虽然,特定的交易(例如突发交易(Burst Transaction)是讨论如下, 应了解的是其仅为非受限范例。图5是绘示分别用来在TL和无计时功能性层级进行通讯的虚拟通讯连结550和560。在做为由插槽传送的酬载的指标方面,这些虚拟通讯连结的操作类似于虚拟通讯连结350、360。从LT模型产生CA模型对于从简略时脉(LT)包装器51 至启始器交易器53 的写入_指令(Write_ Command)而言,交易层级(TL)包装器51 ,在此为LT包装器,制造带有它从无计时功能性模型510a所收到的写入信息的酬载。LT包装器51 送出此交易至启始器交易器53 的请求队列534a。启始器交易器53 撷取并译码从队列53 而来的交易并驱动地址、数据、 控制信号于CA总线540上,以启始写入周期。在侦测写入周期的开始的方面,CA模型530b的目标交易器532b是根据字节致能来撷取地址和数据,并传送此信息至利用写入数据酬载来形成交易的交易器逻辑(未绘示于图5中)。目标交易器532b将此交易置入请求队列534b中。对于突发写入(Burst Write)而言,目标交易器532b在形成交易前,会接着持续监视数据总线,直到它接收到最后的数据。LT包装器51 接受交易并送出写入数据至无计时功能性模型510b。接着,LT 包装器51 送出成功或失败状态指示至目标交易器532b。响应被储存于目标和启始器的响应队列536b、536a中,分别针对通讯的返回方向。对于从简略时脉(LT)包装器51 至启始器交易器53 的读取_指令(Read_ Command)而言,LT包装器51 制造带有读取地址、字节致能、突发长度(Burst Length)等的酬载,且将酬载置入启始器请求队列53 中。启始器交易器撷取并译码从请求队列53 而来的交易并驱动地址、控制信号于CA总线540上,以启始读取周期,使数据总线处于未驱动浮动状态(Undriven Float State)。以图6所绘示的AXI突发式写入(Burst write)为例,启始器交易器53 于ARADDR总线上驱动地址,将地址有效信号ARVALID标示(Assert) (高),且将地址准备信号ARREADY标示(低)。在侦测读取周期的开始的方面,目标交易器532b撷取地址、字节致能和突发信息 (Burst ^formation),并制造交易。目标交易器532b将此交易置入由LT包装器515b监视的请求队列534b中。LT包装器51 是从请求队列534b撷取交易及从目标的无计时功能性模型510b请求数据。然后,LT包装器51 制造带有从无计时功能性模型510b而来的数据的交易酬载,并将交易置入响应队列536b中,目标交易器532b从响应队列536b撷取交易并利用读取数据来驱动总线来得到所需的突发长度,并在最后的读取数据后来完成周期。无论读取周期是否已开始,针对到达的读取数据,启始器交易器53 会接着持续监视数据总线。以图6所绘示的AXI突发式写入为例,启始器交易器53 是根据信号 RLAST,RVALID以及RREADY的反标示(De-assert)(逻辑高)来侦测AXI突发式读取周期的结束。启始器交易器53 撷取它内部缓冲器(未绘示于图5中)中的所有读取数据,并于最后的数据被收到后来形成交易。启始器交易器53 将被完成的交易送至响应队列536a。LT包装器51 从响应队列536a译码交易来作为读取指令,并从交易酬载撷取数据,以及送出数据至无计时功能性模型510a。在图6中,时间Tl是对应至LT交易的开始。在时间T2和T12之间,根据AXI总线协议来驱动突发式数据于RDATA总线上。时间T13是对应至LT交易的结束。从AT模型产生CA模型图7是绘示利用AT协议的两个管线化循序(In-order)交易的时序图。对于从TL 包装器51 ,在此例中为AT包装器,而来的第一读取指令而言,AT包装器51 制造带有读取地址、字节致能、突发长度等的酬载,并利用ID来将酬载置入启始器请求队列53 中。启始器交易器53 撷取并译码从请求队列53 而来的交易,并利用交易的AXI总线PSP所包含的信息来启始突发周期(Burst Cycle)。启始器交易器53 是于ARADDR总线上来驱动地址,将地址有效信号ARVALID标示(高),且将地址准备信号AAEADY标示(低)。一旦启始器交易器53 完成CA总线540上的读取周期的启始,启始器交易器53 会送出信号至AT包装器51 来通知EncLRequest阶段。针对启始器交易器53 所启始的当前读取周期的BegiruResponse阶段,启始器交易器53 会接着持续监视总线。CA总线M0。其间,启始器交易器在它的请求队列53 中侦测第二待决交易(利用ID)。因为 AXI允许管线化读取,启始器交易器53 通过驱动相关的总线协议信号来启始第二 AXI突发读取周期,如以上所述。一但启始器交易器53 在总线540上完成第二读取周期的启始, 启始器交易器53 会送出信号至AT包装器51 来通知EncLRequest阶段。针对启始器交易器53 所启始的第二读取周期的BegiruResponse阶段,启始器交易器53 会接着持续监视总线。在侦测读取周期的开始的方面,目标交易器532b撷取地址、字节致能和突发信息,并制造带有ID的交易,此交易是储存于请求队列534b中。AT包装器51 译码即将到来的交易并送出地址和字节致能信息至无计时功能性模型510b,以请求所需的数据。无计时功能性模型510b回送数据给AT包装器51 ,AT包装器51 是形成一返回交易(Return Transaction)并利用与第一读取请求匹配的ID来将它送到响应队列536。当目标交易器进行等待来接收送至目标AT包装器51 的第一读取指令时,目标交易器532b侦测第二读取周期的开始。目标交易器532b撷取地址、字节致能和突发信息, 制造带有ID的交易并将交易储存于请求队列534b中。目标交易器532b在它的响应队列536b中侦测到对第一读取请求的回应为可用的 (Available)。目标交易器532b将此交易的ID与它的请求队列534b中的第一读取请求的 ID进行比对。如果ID互相匹配,目标交易器532b会利用从响应队列536b所接收的数据来开始驱动CA总线M0,并在最后的数据被驱动时来完成周期。启始器交易器53 通过侦测RVALID和RREADY信号的标示(Assertion)来侦测第一请求的BegiruResponse阶段。启始器交易器也形成BegiruResponse交易并透过它的内部响应队列536a以一 ID将它送出至AT包装器515a,其中此ID是对应至第一交易的请求ID。启始器交易器53 接着针对读取数据来持续监视总线M0,直到周期结束,其中启始器交易器53 是根据信号RLAST、RVALID以及RREADY的逻辑高位准的侦测来通知周期结束。启始器交易器53 利用EncLResponse阶段及与第一读取请求匹配的ID来送出完整的交易至AT响应队列。AT包装器51 将读取指令译码,从交易酬载撷取数据,比对ID以及送出已撷取的数据至无计时功能性模型510a。目标侧的AT包装器515b利用一 ID来将第二读取交易译码以及送出地址和字节致能信息(address and byte enable information)至无计时功能性模型510b,无计时功能性模型510会回送数据给AT包装器51恥。AT包装器51 形成是形成一返回交易并利用与第二读取匹配的ID来将此交易送到响应队列536。目标交易器532b在它的响应队列 536b中侦测到对第二读取请求的回应为可用的。目标交易器532b将此交易的ID与它的请求队列534b中的第二读取请求的ID进行比对。根据比对,目标交易器532b会利用从响应队列536b所接收的数据来开始驱动CA总线M0,并在最后的数据被驱动时来完成周期。一但启始器交易器53 侦测到RVALID和RREADY信号的标示,启始器交易器53 就会侦测到第二BegiruResponse阶段。启始器交易器53 将此交易的ID与请求队列53 中的待决请求交易进行比对,并形成BegiruResponse交易,以透过内部响应队列536a来利用一 ID将此Begin_Response交易送出至AT包装器51 ,其中此ID是与交易的请求ID匹配。启始器交易器53 持续地针对读取数据来持续监视总线M0,直到周期结束,其中当启始器交易器53 侦测到信号RLAST、RVALID以及RREADY的逻辑高位准,启始器交易器53 即通知周期结束。启始器交易器利用EncLResponse阶段及与第二读取请求匹配的ID来送出完整的交易至响应队列536a。AT包装器51 将读取指令译码,从交易酬载撷取数据,比对ID以及送出数据至无计时功能性模型510a。“交易器”(启始器或目标)为一种模型,此模型是与利用交易来与AT(或LT)沟通的AT包装器515(或LT包装器)分离。在实施例中,交易器的请求和响应队列对包装器而言不是可用的,而且对包装器而言,只有从交易器的队列送出的交易才为可用的。在图7中,Tl和T3是分别对应至第一交易和第二交易的请求阶段的开始。时间 T4和T9是分别对应至第一交易的响应阶段的开始与结束。在时间T4和T9之间,在CA总线上可读取到突发数据。时间TlO和T12是分别对应至第二交易的响应阶段的开始与结束。各种不同的实施例提供给设计者不同的益处。针对不同的应用来将接续的计时层级附加于单一功能性核心上,以重复使用单一功能性核心(例如执行装置的原始算法的无计时功能性模型),如此可使软件开发比以前所可能的更早,例如利用如上述图3所示的LT 技术。利用如上述图4所示的AT技术可使较早的硬件架构探索实现。另外,改善的RTL硬件功能性验证是以各种不同的实施例来实现。如上所述,在 RTL阶段,功能性验证所面对的困难之一为模拟的速度,在理想的情况下,此速度约为每秒 100-200个周期。克服此缓慢模拟速度的一种方法为只让少数的系统方块位于RTL层级,而此方法是使用于LT/AT包装器来封装的无计时ESL模型之时,以及针对其余方块与周期精确交易器进行沟通之时。因为功能性核心(例如无计时ESL模型)是位于高层级,它可用每秒百万个周期来运行。即使LT/AT包装器和周期精确交易器拖慢模型的整体速度,它仍可以每秒数千个周期来运行,以引导在RTL中进行百万个验证周期。在实施例中,无计时ESL模型核心是有益地以零(已计时)事件来于交易层级运行,且不需返回事件排程器。因此,这种最终由高层级无计时功能性模型所导出的对各种不同层级上模型的分类提供了多个优点。图8是绘示根据一实施例的计算机系统800的功能性组件的示意图。计算机系统 800可包耦接至总线806的通讯接口 814。通讯接口 814提供双向的通讯于多计算器系统(Multiple Computer System) 800中。各别计算机系统800的通讯接口 814是传送与接收电子的、电磁的或光学的信号,这些信号包含有可呈现各种形式的信号信息的数据串流,这些信号信息是例如指令、讯息及数据。通讯连结815将一个计算机系统800与另一个计算机系统800连接。例如,通讯连结815可为局域网络(Local Area Network ;LAN),在此例中通讯接口 814可为LAN卡,或者通讯连结可为公众交换电话网络(Public Switch Telephony Network ;PSTN),在此例中通讯接口 814可为整体服务数字网络(Integrated Services Digital Network ; I SDN)卡或调制解调器。计算机系统800可透过其各别的通讯连结815与通讯接口 814来传送和接收包含有程序,例如应用码的讯息(messages)、数据及指令。被接收的程序代码可于它被各别的处理器807接收时来被各别的处理器807执行,且/或被储存于储存装置810中或其它相关的非挥发性媒体来于稍后执行。在实施例中,计算机系统800与数据储存系统831 —起运行,此数据储存系统831 是例如包含有可由计算机系统800快速存取的数据库832的数据储存系统831。计算机系统800是透过数据接口 833来与数据储存系统831沟通。耦接至总线806的数据接口 833 是传送与接收电子的、电磁的或光学的信号,这些信号包含有可呈现各种形式的信号信息的数据串流,这些信号信息是例如指令、讯息及数据。在本发明的实施例中,数据接口 833 的功能可由通讯接口 814执行。计算机系统800包含总线806或其它通讯机制来进行指令、讯息和数据整体信息的通讯,以及与总线806耦接的一或多个处理器807。计算机系统800也包含耦接至总线的主存储器808,主存储器808是例如随机存取内存(Random Access Memory ;RAM)或其它动态储存装置,用来储存处理器807将执行的动态数据和指令。在处理器807处理指令的期间,主存储器808也可用来储存暂存数据(Temporary Data),例如变量或其它的中间信息 (Intermediate Information)。计算机系统800可进一步包含耦接至总线806的只读存储器(Read Only Memory ; ROM) 809或其它的静态储存装置,以储存处理器807所用的静态数据和指令。储存装置810, 例如磁盘或光盘,也可被提供来耦接至总线806,以储存处理器807所用的静态数据和指令。计算机系统800可透过总线806来耦接至显示装置811,例如但不限定显示监视器,用来对使用者显示信息。输入装置812,例如文数字(Alphanumeric)或其它键,耦接至总线806,用以对处理器807进行信息和指令选择的通讯。在实施例中,个别的(individual)处理器807是执行储存于主存储器808中的一或多个指令的一或多个序列,而个别的计算机系统800通过此处理器807来执行具体的操作。这样的指令可被读取入主存储器808或储存装置810中。主存储器808所包含的指令序列的执行使得处理器807进行此处所述的流程。例如,在执行这样的指令时,可使锝处理器807进行如图2所示的流程200。在其它的实施例中,固接式(hard-wired)电路可被用来替代软件指令或与软件指令合并来完成实施例或实施例的构件,因此本发明的实施例不受限于硬件电路和/或软件的任何特定结合。如此处所使用的用语“计算机可读取储存媒体”,是指任何可提供信息或可被处理器807所使用的实体储存媒体。这样的媒体可利用很多形式,包含但不限定非挥发性和挥发性媒体。非挥发性媒体是如可于无电力时保存信息的媒体,包含例如只读存储器809、只读记忆光盘(CD-ROM)、可重复录写光盘(CD-RW)、只读数字视频光盘(DVD-ROM)、直接存取数字视频光盘(DVD-RAM)、可重复录写数字视讯光盘(DVD-RW)、蓝光光盘(BD-ROM)以及闪存、磁带以及磁盘。挥发性媒体是如无法于无电力时保存信息的媒体,包含例如主存储器 808、高速缓存或其它缓存器。 虽然本发明已以数个实施例揭露如上,然其并非用以限定本发明,在本发明所属技术领域中任何具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的专利保护范围须视所附的权利要求书所界定的范围为准。
权利要求
1.一种产生系统模型的方法,其特征在于,包含于一无计时功能层级上的被计算机所实施的一无计时功能性模型中,模型化系统单芯片的一系统方块;使用该无计时功能性模型于一交易层级上产生该系统方块的被计算机所实施的一交易层级模型;使用该交易层级模型于一周期精确层级上产生该系统方块的被计算机所实施的一周期精确模型;以及通过操作一处理器来执行使用该交易层级模型和该周期精确模型其中至少一者的一软件程序,来验证该系统单芯片的功能性。
2.根据权利要求1所述的产生系统模型的方法,其特征在于,该无计时功能性模型是由一程序语言来实施,该程序语言是选自由C语言以及C++语言所组成的一群组。
3.根据权利要求1所述的产生系统模型的方法,其特征在于,该交易层级模型为一简略计时模型。
4.根据权利要求1所述的产生系统模型的方法,其特征在于,该交易层级模型为一近似计时模型。
5.根据权利要求1所述的产生系统模型的方法,其特征在于,产生该交易层级模型的步骤包含从该无计时功能性模型撷取一数据;将该数据封装入一通用酬载;以及于该交易层级上从该通用酬载产生一交易对象。
6.根据权利要求1所述的产生系统模型的方法,其特征在于,产生该交易层级模型的步骤包含封装该无计时功能性模型于一包装器逻辑模块中,其中该包装器逻辑模块是设置来修改该无计时功能性模型与一外部内存模块间的一接口;产生该周期精确模型的步骤包含封装该交易层级模型于一交易器模块中,其中该交易器模块中是设置来与该包装器逻辑模块及一周期精确总线相互沟通。
7.一种传输数据的方法,其特征在于,包含于一无计时功能层级上的一第一无计时功能性模型与一第二无计时功能性模型中,模型化一系统单芯片的至少一系统方块;分别使用该第一无计时功能性模型与该第二无计时功能性模型于一交易层级上产生该至少一系统方块的一第一交易层级模型与一第二交易层级模型;分别利用该第一交易层级模型与该第二交易层级模型于一周期精确层级上,产生该至少一系统方块的一第一周期精确模型和一第二周期精确模型;从该第一无计时功能性模型传送一数据至该第一周期精确模型; 透过一周期精确总线从该第一周期精确模型传送该数据至该第二周期精确模型;以及从该第二周期精确模型传送该数据至该第二无计时功能性模型。
8.根据权利要求7所述的传输数据的方法,其特征在于,该第一无计时功能性模型和该第二无计时功能性模型是由一程序语言来实施,该程序语言是选自由C语言以及C++语言所组成的一群组。
9.根据权利要求7所述的传输数据的方法,其特征在于,产生该第一交易层级模型的步骤包含从该第一无计时功能性模型撷取一数据;将该数据封装入一通用酬载;以及于该交易层级上从该通用酬载产生一交易对象;产生该第一周期精确模型的步骤包含封装该第一交易层级模型于一第一交易器模块中,其中该第一交易器模块是设置来与该第一交易层级模型及该周期精确总线相互沟通;从该第一无计时功能性模型传送数据至该第一周期精确模型的步骤包含从该第一交易层级模型送出该交易对象至该第一交易模块;以及撷取一酬载,该酬载包含位于该第一交易模块的数据;透过该周期精确总线来传输数据的步骤包含在该周期精确总线上驱动该酬载; 从该第二周期精确模型传送数据至该第二无计时功能性模型的步骤包含于该第二周期精确模型的一第二交易模块中撷取该酬载;将该酬载送出至该第二交易层级模型;利用由该酬载所指定的地址来从一内存撷取该酬载中的该数据;以及将该数据储存于该第二无计时功能性模型中。
10. 一种产生系统模型的方法,其特征在于,包含 产生一系统单芯片的一系统方块的一交易层级模型于一交易层级上; 产生该系统方块的一无计时功能性模型于一无计时功能层级上,该无计时功能性模型是设置来被该交易层级模型所调用;以及利用该交易层级模型来产生该系统方块的一周期精确模型于一周期精确层级上。
全文摘要
本发明提供一种产生系统模型的方法与在此系统模型中传输数据的方法。在此产生系统模型的方法中,首先于模型化系统单芯片的系统方块为无计时功能性模型于无计时功能层级上。接着,使用无计时功能性模型于交易层级上来产生交易层级模型。然后,使用交易层级模型于周期精确层级上来产生周期精确模型。接着,利用交易层级模型和周期精确模型中的至少一者来验证系统单芯片的功能性。无计时功能性模型亦可设置来被交易层级模型所调用。在此传输数据的方法中,首先从第一无计时功能性模型传送数据至第一周期精确模型。接着,从第一周期精确模型透过周期精确总线来传送数据至第二周期精确模型。然后,从第二周期精确模型传送数据至第二无计时功能性模型。
文档编号G06F17/50GK102339343SQ201110093488
公开日2012年2月1日 申请日期2011年4月12日 优先权日2010年7月19日
发明者阿肖克·梅塔 申请人:台湾积体电路制造股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1