(一)systemC简介
SystemC是一种系统设计语言。严格讲,SystemC是一个能够描述系统和硬件的C++类库。和其他硬件描述语言(如Verilog、VHDL)一样,SystemC支持RTL级建模,然而SystemC最擅长的却是描述比RTL更高层、更抽象的系统级和结构级。
SystemC可以使得系统设计工作早期便达到很好的软硬件协同,这对于及早发现设计中的问题有很大帮助。
SystemC支持多种技术来实现现代设计的复杂性。 Abstraction Design reuse Team discipline Project reuse Automation
(二)TLM-BASED METHODOLOGY
2.1 Transaction-Level Modeling Overview
1、事务级建模主要用途为
· 硬件体系结构的性能分析和行为分析。 · 软硬件划分和协同设计。
· 作为底层设备驱动和硬件仿真模型的接口。 · 集成操作系统仿真器和硬件模拟器。
· 作为精确到周期的模型和交易级模型的仿真平台。 · 作为测试图样,或者模拟设计的系统环境。 2、特点
·交易层是将理想的结构映射到需要考虑资源分配和设计约束的结构中。 ·存储器和寄存器的映射是精确的。 ·允许多线程通信。
·可以通过对数据类型的约束来对总线的突发传输或者突发传输的片断进行建模。
·事件驱动的仿真机制,带有时间估计。 ·能够基于传输量和延时约束进行延时性能估计。性能估计能够采取基于报告的方式。也就是说,时间驱动的通道能够根据总线宽度和总线协议计算并报告一个交易需要多少个时钟周期。或者通过插入延时来仿真时间。
·能够利用参数来精细的调整设计规范,以解决约束过紧或者过松的情形。 ·利用参数来对不同的总线协议和信号接口进行建模。 3、TLM ·交易可以理解为系统模型中两个组件之间的一次数据交换。这个交换与所采用的协议无关,因为交易级的模型通常不牵扯到具体的总线时序等细节 。 ·一个数据交易可能是在系统组件之间传输的单个的字,多个字或者整个数据结构。
例如:一次DMA,一次存储器读或者写、一次寄存器读或者写都可以看成是一个交易。
4、交易级建模提供的一个非常重要的用途就是可以在整个设计的比较早的阶段就开始进行嵌入式软件的开发 。
好处是:并行开发、仿真速度快、协同设计与验证
更早进行软件开发
更早更好的硬件功能验证测试
建立一个从客户需求到详细软硬件规范的完整清晰路径 5、交易级建模与SystemC的通信机制
SystemC的通信机制有两个特点特别适合TLM建模: ·功能与通信分离。也就是实现具体算法的部分与实现数据和事件传输的部分分离。功能由SystemC的模块(sc_module)来实现,而通信由通道(channel)来实现。
·接口方法调用(Interface Method Call,IMC)。一组给定的通信方法(method)被称为接口(interface),包括数据接口和控制接口。通道(channel)是由一个或者多个接口来实现。模块能够使用它的端口(port)调用实现了相应接口并关联到该端口的通道实例方法。
(三)SystemC概述
1、主要组件
2、SystemC Compilation Flow
3、面向硬件的特征
The major hardware-oriented features implemented within SystemC: Time model (sc_time、sc_clock) Hardware data types
Module hierarchy to manage structure and connectivity
Communications management between concurrent units ofexecution(通道) Concurrency model(SC_METHOD、 SC_THREAD、 SC_CTHREAD)
4、SystemC Components
5、SystemC Simulation Kernel