备打工人之SystemC学习(四) 行为建模2

动态创建进程

SC_METHOD、SC_THREAD、SC_CTHREAD都是讲台进程,从SystemC2.1开始引入了动态进程。动态进程 创建允许在同一个函数方法中自动创建和分配多个进程,用于临时断言检查、处理零时性的并发事件等。相关的语法包括:
sc_spawn
sc_spawn_options
SC_FORK
SC_JOIN
sc_process_handle::wait()
sc_bind
sc_ref
sc_cref

注意:使用任何上述语法前需要调用
#define SC_INCLUDE_DYNAMIC_PROCESSES

以下逐个介绍

sc_spawn

函数sc_spawn主要用于创建动态进程,也可以用于创建静态进程。sc_spawn可以在sc_main中调用,可以在模块的构造函数中调用,也可以在其他进程中调用,还可以在sc_spawn动态创建的进程中调用,从而形成进程树。
语法如下:

template <typename T> sc_process_handle sc_spawn(T object, const char * name_p=0,const sc_spawn_options * opt_p=0)

参数T object是为以必须指定的sc_spawn函数的参数。它可以是一个函数指针,可以是由sc_bind指定的模块的方法,也可以是一个函数对象。所谓函数对象是指一个对象重载了操作符(),为了支持动态进程创建。

sc_spawn_options

类sc_spawn_options用于创建作为sc_spawn实参的一个对象。类sc_spawn_options包括很多方法用来修改sc_spawn_options的属性。

系统建模中的分层模型

事务处理器模型和通信细化是SystemC中给的重要概念,首先介绍系统建模中通讯的抽象层次。

通讯中的抽象层次

系统建模是将底层细节屏蔽的抽象过程。这是通信的抽象层次。

每个层次包含三个组件:发起者、通道和目标设备。发起者通过接口,利用通道连接到目标设备上。接口给发起者和目标设备提供了通道所提供的的服务。

寄存器传输层

寄存器传输层是第0层。寄存器传输层描述了存储单元和组合逻辑快之间的互联关系,可以直接进行逻辑综合得到门级网表。

传输层

传输层在寄存器传输层之上,称为第一层。它的特点是这个抽象基本中的系统是由精确到周期的行为组成,寄存器传输层也是精确到时钟的。传输层的系统监控一般对应着一定的总线协议。这一层的系统模型是有时钟的,主设备和从设备之间的一次事务在时钟事件上完成。一次事务代表了一次数据传输和相应的总线控制信号的握手。

这一层的模型不需要写可综合的实现代码,而只需要提供一个精确到时间周期、符合协议要求的模块互连机制和一个快速仿真的测试平台。

第一层的模型可以通过适当的转换与第零层的RTL模块互连,也可以与第二层互连。第一层的语法适用于进行指令集处理器模型与时钟精确的其他硬件模型的互联。

这一层,传输层与寄存器传输层相比,特点在于:

  • 网表简单
  • 仿真速度快
  • 功能块和通信通道之间的接口更为简单,不需要知道所有的接口信号。

这一层建模的主要用途是:

  • 作为第三层和第二层模块和精确到周期的模型之间的桥梁
  • 为一些IP模块(例如嵌入式微处理器)的抽象仿真模型提供精确到周期的接口。
  • 精确到周期的测试平台建模
  • 精确到周期的测试性能仿真

主要特点:

事务层

事务层是第二层。这一层的系统模型带有时间信息,但不精确到时钟周期,系统是时间驱动执行的。发起者设备和目标设备之间的一个事务可能包含几个数据的传输。执行这个事务所需要的时间由主设备和从设备来评估。通常的事务级系统摩西与总线协议无关,因为总线协议总是与精确到时钟周期的系统有关。

事务级建模的主要用途为:

  • 硬软件系统结构的性能分析和行为分析
  • 软硬件划分和协同设计
  • 周期性能分析
  • 作为底层设备驱动和硬件仿真软件的接口
  • 集成操作做系统仿真器
  • 作为精确到周期的模型和事务级模型仿真平台
  • 作为测试图样,或者模拟设计的系统环境

主要特点为:

  • 事务层是将理想结构映射到需要充分考虑资源分配和设计约束的结构中
  • 存储器和寄存器的映射是精确的
  • 多线程通信
  • 可以通过对数据类型的约束来对总线的突发传输或者突发传输的片段进行建模
  • 时间驱动的仿真机制
  • 能够基于传输量和延时约束进行延时性能估计

消息层

消息层是第三层。这一层的系统没有任何时间信息,系统执行是事件驱动的。主设备和从设备之间的一次事务包含了多个数据的传输,这些数据可能处于非常抽象的层次。

消息层系统模型主要是用来证明系统概念,制定可执行的设计规范,功能划分和高层的设计折中等。具体的包括:

  • 对数据通道和控制单元进行功能划分
  • 系统通信定义和最初的概念型系统的测试平台
  • 与高层的系统仿真集成
  • 算法性能、行为和控制探索

SystemC的事务处理级建模初步

事务的概念

事务可以理解为系统模型中两个组件之间的一次数据交换。

事务级建模用法

事务处理级建模提供一个非常重要的用途就是可以在设计比较早的时候进行嵌入式软件的开发。TLM模型能够提供非常快速的硬件仿真速度,从个人提高开发的效率。

另一个作用是系统结构探索,提供初步的性能分析

事务级建模的特点

进行事务级建模的SoC设计一般都是需要软硬件的混合系统。大多数的系统带有一个或者多个嵌入式的微处理器和相应的片上总线通信结构,完成各个功能模块之间的相互通讯。事务处理器建模的主要任务是利用SystemC进行相应的通信抽象,实现通信机制。
特点:

  • 功能与通信分离。实现具体算法的部分与实现数据和时间传输的部分分离。
  • 接口方法调用。一组给定的同学方法被称为接口,包括数据接口和控制接口。

通信细化

通信细化的概念

当最佳系统体系结构被选定,TLM模型被逐步地细化,转化为可以综合的寄存器传输级模型。

所谓通信细化是指在保持接口不变的情况下具体实现的细节可以由粗糙的功能模型向更低级别的模型和更具体的实现细节转换,单独修改或者替换某一个单元不会影响其他单元,一般需要引入适配模块以保持到其他模块的接口不变。

一个通信细化实例


通信细化的过程就是一个替换的过程。假设图中的FIFO是我们要最终硬件实现的目标模块,最初是一个TLM级行为模型,然后细化RTL模型。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值