欢迎来到天天文库
浏览记录
ID:52113225
大小:2.70 MB
页数:31页
时间:2020-03-23
《SystemC From The Ground Up学习笔记中文.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、(一)systemC简介SystemC是一种系统设计语言。严格讲,SystemC是一个能够描述系统和硬件的C++类库。和其他硬件描述语言(如Verilog、VHDL)一样,SystemC支持RTL级建模,然而SystemC最擅长的却是描述比RTL更高层、更抽象的系统级和结构级。SystemC可以使得系统设计工作早期便达到很好的软硬件协同,这对于及早发现设计中的问题有很大帮助。SystemC支持多种技术来实现现代设计的复杂性。AbstractionDesignreuseTeamdisciplineProjectreuseAutomation(二)TLM-
2、BASEDMETHODOLOGY2.1Transaction-LevelModelingOverview1、事务级建模主要用途为·硬件体系结构的性能分析和行为分析。·软硬件划分和协同设计。 ·作为底层设备驱动和硬件仿真模型的接口。·集成操作系统仿真器和硬件模拟器。·作为精确到周期的模型和交易级模型的仿真平台。·作为测试图样,或者模拟设计的系统环境。2、特点·交易层是将理想的结构映射到需要考虑资源分配和设计约束的结构中。·存储器和寄存器的映射是精确的。·允许多线程通信。·可以通过对数据类型的约束来对总线的突发传输或者突发传输的片断进行建模。·事件驱动的仿
3、真机制,带有时间估计。·能够基于传输量和延时约束进行延时性能估计。性能估计能够采取基于报告的方式。也就是说,时间驱动的通道能够根据总线宽度和总线协议计算并报告一个交易需要多少个时钟周期。或者通过插入延时来仿真时间。·能够利用参数来精细的调整设计规范,以解决约束过紧或者过松的情形。·利用参数来对不同的总线协议和信号接口进行建模。3、TLM·交易可以理解为系统模型中两个组件之间的一次数据交换。这个交换与所采用的协议无关,因为交易级的模型通常不牵扯到具体的总线时序等细节。·一个数据交易可能是在系统组件之间传输的单个的字,多个字或者整个数据结构。例如:一次DM
4、A,一次存储器读或者写、一次寄存器读或者写都可以看成是一个交易。4、交易级建模提供的一个非常重要的用途就是可以在整个设计的比较早的阶段就开始进行嵌入式软件的开发。好处是:并行开发、仿真速度快、协同设计与验证更早进行软件开发更早更好的硬件功能验证测试建立一个从客户需求到详细软硬件规范的完整清晰路径5、交易级建模与SystemC的通信机制SystemC的通信机制有两个特点特别适合TLM建模:·功能与通信分离。也就是实现具体算法的部分与实现数据和事件传输的部分分离。功能由SystemC的模块(sc_module)来实现,而通信由通道(channel)来实现。
5、·接口方法调用(InterfaceMethodCall,IMC)。一组给定的通信方法(method)被称为接口(interface),包括数据接口和控制接口。通道(channel)是由一个或者多个接口来实现。模块能够使用它的端口(port)调用实现了相应接口并关联到该端口的通道实例方法。(三)SystemC概述1、主要组件2、SystemCCompilationFlow3、面向硬件的特征Themajorhardware-orientedfeaturesimplementedwithinSystemC:Timemodel(sc_time、sc_clock
6、)HardwaredatatypesModulehierarchytomanagestructureandconnectivityCommunicationsmanagementbetweenconcurrentunitsofexecution(通道)Concurrencymodel(SC_METHOD、SC_THREAD、SC_CTHREAD)4、SystemCComponents5、SystemCSimulationKernel(四)数据类型数据类型的选择依赖于值的范围,要求的精度,要求的操作,数据类型的选择影响仿真的速度、合成器和综合的结果。4.
7、1NumericRepresentation字符串表示:4.2NativeDataTypesSystemC支持所有的C++内建数据类型,包括int、longint、shortint、unsignedint、unsignedlongint、unsignedshortint、double、float、char、bool,以及C++的string类型。在任何情况下,C++内建数据类型在仿真速度和内存使用上是最有效的。4.3ArithmeticDataTypes算术数据类型提供两类算术数据类型,一类是位宽1到64,另一类位宽大于64位1.sc_intandsc
8、_uint对应于C++内建的int和unsignedint,不同点是可以指定数据的位宽(1到6
此文档下载收益归作者所有