systemcTLM建模

分类: IC设计 |
Book: transaction level modeling with systemc
1. 术语
TLM: transaction level
modeling
ISS:
Instruction set simulator
BFM: Bus
Function Model
SystemC: SystemC
OSCI: Open
SystemC Initiative
BCA: bus cycle accuracy
2.历史
在早期的流程中,基于RTL层次的开发已经显示了一些缺陷包括仿真速度和开发周期等,因此很多公司开始
考虑更加抽象的建模层次。
2.1 cycle accuracy modeling
在早期有很多公司开发了一些建模的语言,除了完全重新设计外,有一些是基于现有的建模语言进行扩展
子集比如基于C++的扩展specC,cowareC,VCC,systemC。基于HDL的扩展如systemVerilog等。
使用这些扩展的语法来建模cycle级精度的模型(在早期的cpu建模中比较常用这种,使用C语言来建立
模拟cycle级的模型),这种模型比HDL要快10倍左右。但是也存在问题:
仿真速度仍然不够快(仿真速度取决于仿真器和模型的抽象层次)
建模代价比较高,开发速度不够快
2.2 systemC-based TLM建模
1999年开始,Systemc0.9
开始出现。 2001年 systemc2.0 released.
TLM建模的一个核心就是建模时计算和通信分离:
separating communication from
computation within a system
transaction:data transfer (i.e. communication)
or synchronization between two modules at
an instant (i.e. SoC event)
通信包括数据传输和同步(通过event)
TLM在流程中的位置:
http://s8/middle/80ce3a55gb9b2faf4ca67&690
在软硬件划分后,开始进入TLM建模,TLM平台作为硬件和软件team和测试team的共同平台,在同一个平台上
进行进一步的细化。
systemC2.0的simulation
kernel实现的是非抢占式的调度scheduler,因此软件的多线程和多任务不能用
systemC的thread来模拟。有2个解决方法:
1.
使用ISS来进行软件多任务的模拟和仿真,硬件部分使用systemC来模拟,在ISS和systemc 模拟器之间建
立通信
One could however use a processor ISS linked to the SystemC
simulation to run multi-tasking
embedded software
2.
用本地CPU来运行软件的多任务(host机器),利用socket来建立本地执行和systemC模拟器之间的通信
the socket connection between the SystemC simulator and tasks of
the embedded software
running
natively compiled for the workstation and
executing without ISS.
TLM 的历史:
RTL:使用硬件描述语言verilog/VHDL进行RTL设计仍然是目前的主流流程。
RTL+ISS: 在软硬件协同验证时,由于RTL模拟的速度比较慢,因此可以考虑使用更快的CPU模型比如ISS
这种指令集精度的模型来加速软件的运行。其余模块仍然是RTL
cycle-accuracy modeling:
不使用Verilog/VHDL,而是使用C语言这种高级语言来实现cycle-accuracy
model(早期CPU的建模就是通过基于C语言的cycle-accuracy建模);但是仿真
1. 术语
2.历史