一种基于SystemC周期精确的统一染色器阵列TLM模型的制作方法

文档序号:9769895阅读:294来源:国知局
一种基于SystemC周期精确的统一染色器阵列TLM模型的制作方法
【技术领域】
[000?]本发明涉及计算机硬件建模技术领域,尤其涉及一种基于SystemC周期精确的统一染色器阵列TLM模型。
【背景技术】
[0002]对于系统的软/硬件协调设计和协同验证(Co-verificat1n),模拟速度非常重要。以寄存器传输级(RTL)建模为基础的传统方法速度慢,并且只有在设计过程的后期阶段才能获得所需的系统模型。为了提高效率,必须在设计过程的早期阶段启用有效的硬件/软件系统模拟。为了克服在RTL级建模的局限性,可以采用两个方法:(I)在比RTL级高的抽象级别建模。(2)使用一个通用的语言S ystemC建模不同抽象级别,包括寄存器传输级。SystemC2.0的事务级是比RTL级更高的抽象级别,在此级别可以根据系统的初始功能规范快速建立硬件的可执行规范,快速创建系统模型。在此级别中高的模拟速度允许提前开发和验证硬件相关的应用软件。通过在事务级模型(Trans-act1n Level Models,T LMs)中加入时序细节,可以评估系统的性能、探索系统的结构。S ystemC的模块本质也促进了所开发构件在系统间的复用。
[0003]SystemC是OSCI(Open SystemC Initiative)组织制定和维护的一种基于C++的建模平台,它完全是用C++语言编写的,由经过精心设计的C++类库和仿真内核构成,支持门级、RTL级、系统级等各个抽象层次上硬件的建模和仿真,而且是开放源代码的。SystemC支持硬件/软件协同设计,能够描述由硬件和软件组成的复杂系统的结构,支持在C++环境下对硬件、软件和接口的描述。用SystemC可以实现功能模块、通信模块、软件模块和硬件模块在各种系统级层次上的抽象,其引进的端口和信号的数据类型描述、时钟和延时的概念,正是基于要把软硬件的描述统一到一种建模语言的思想。用SystemC可以快速有效地建立软件算法的精确模型、硬件的体系结构、SoC的接口和系统级的设计,并对设计进行仿真、验证和优化(用SystemC建模,其仿真速度一般是用VHDL或Verilog建模的10?I(Km)t3SystemC最基本的结构单元是模块(module),模块可以包含其他模块或过程(process)和方法(method),过程如同C语言中的函数用以实现某一行为。模块通过接口(port)与其他模块通信,接口之间用信号(Signal)相连。一个完整的系统由多个模块组成,每个模块包含一个或多个过程和方法,过程是平行工作的,它们之间通过信号来通信。时钟Clock是一种特殊的信号在仿真时用以控制时序及使过程同步。基于SystemC的设计方法支持设计者在不同层次上建模,减小了代码量和工作量,提供了更高的工作效率,也就是说利用SystemC与传统的方法相比可以更为高效快速地进行仿真。但目前仍未发现基于SystemC周期精确的统一染色器阵列的建模方法。

【发明内容】

[0004]本发明为解决【背景技术】存在的上述技术问题,而提供一种基于SystemC周期精确的统一染色器阵列TLM模型,只需采用SystemC语言对I个染色处理单元进行建模,然后将模型实例化5遍,就可以完成对统一染色阵列的建模。
[0005]本发明的技术解决方案是:本发明为一种基于SystemC周期精确的统一染色器阵列TLM模型,其特殊之处在于:所述统一染色器阵列内部集成多个物理、逻辑相互独立的染色处理单元。
[0006]上述染色处理单元包括Control Status Register模块、Fetch模块、Decode模块、Issue模块、Execute模块、Load Store模块、fcite Back模块、Scoreboard模块、RegisterFile模块、Constant Cache模块、Local Sram模块、Share Sram模块和Instruct1n Cache模块;所述Fetch模块通过事务接口与CSR、Instruct 1n Cache和Decode模块相连;所述Decode模块通过事务接口与Fetch、Issue和Scoreborad模块相连;所述Issue模块通过事务级接口与Decode、Execute、Load Store和Scoreboard模块相连;所述Execute模块通过事务级接口与Issue和Write Back模块相连;所述Load Store模块通过事务级接口与Issue、Write Back、Constant Cache、Local Sram、Share Sram和Scoreboard模块相连;所述WriteBack模块通过事务级接口与Execute、Load Store和Regi ster File模块相连;所述Scoreboard模块通过事务级接口与Decode、Issue和Load Store模块相连。
[0007]上述Fetch模块负责监控CSR模块的状态,从Instruct1n Cache模块中取指令,然后将取出的指令传递给Decode单元。
[0008]上述Decode模块负责对指令进行译码,同时将指令信息填入Scoreboard模块。
[0009]上述Issue模块根据Scoreboard中记录的已发射、执行的指令状态,来决定当前的指令是否被发射,当判断指令可以被发射后,读取Register File中相关的操作数,将2条指令发射给Execute或Load Store模块,然后将被发射的指令信息写入Scoreboard模块。[00?0]上述Execute模块根据发射下来的指令,执行相关的算术、逻辑运算,再将运算结果传递给Write Back模块。
[00??]上述Load Store模块根据发射下来的指令,执行Load指令或Store指令。当执行完load、store指令后通知Scoreboard更新指令状态。
[0012]上述Write Back模块接收Execute模块或Load Store模块的写回数据,将其写入Register File的相应位置。
[0013]上述Scoreboard模块记录所有正在执行指令的状态,便于Issue模块根据状态信息以决定是否发射下一条指令。
[0014]上述染色处理单元为5个。
[0015]本发明提供的基于SystemC周期精确的统一染色器阵列TLM模型,采用SystemC语言和TLM建模方法,对统一染色阵列进行周期精确的建模。在TLM建模方法中,各个模块之间是通过事务级接口的函数、而不是通过硬件信号的连接来实现通信的。各个模块内部都包含了各自独立、并行执行的进程,每个进程都只有一个共同的事件触发一一时钟上升沿;每个进程都可以调用各自模块的事务级接口中的函数,来相互传递信息。
【附图说明】
[0016]图1是本发明中事务级SystemC周期精确建模的基本结构框图;
[0017]图2是本发明中统一染色阵列的结构框图;
[0018]图3是本发明中染色处理单元的事务级结构框图。
【具体实施方式】
[0019]下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
[0020]参见图1,事务级SystemC建模的基本结构包含TLM接口、事务发起者(Initiator)和事务受动者(Target) 图中描述的TLM接口 initiator—target—tlm—if是一个包含了读、写函数的虚类,其内部只对接口操作的函数进行申明,不涉及任何数据、行为的具体定义。事务Ini tiator内部定义了两个接口 A和B,申明了一个内部循环进程ini tiator—process()。接口 A、B的类型都是sc—port〈ini tiator—target—tlm—if >,内部进程 ini tiator—process属于一个SystemC的SC—CTHREAD类型,该进程在软件运行时具有单独的stack,并且在程序整个生命周期内存在。当该进程顺序执行到wait()语句时,进程挂起;只有在该进程事先声明
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1