片上系统设计中的事务级建模方法_石晓郁
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由 于 高 层 模 型 (如 算 法 模 型 )的 仿 真 速 度 通 常 要 比 低一层的模型快 10 倍或更多, 同时高层模 型可重用 为低层次设计的参考模型, 高层的可执行规格可作为 低层设计模块的验证平台, 因此经常需要将不同层次的 模型混合仿真。把高层模型的对外接口用 transactor 形 式转换成低层模型的接口, 就可以连接到整个系统上。
常与系统时钟相关, 不引入管脚级的细节, 信息传输
通常以事务的方式建模。
* 管脚周期精确 PCA(Pin Cycle Accurate): 仅用于
模型的接口, 而非内部功能, 定时精确到时钟周期, 通
常与系统时钟相关, 描述精确到管脚级。
* 寄存器传输精确 RT(Register Transfer accurate):
但不必是周期精确的。
* 功 能 模 型 (Functional Model): 指 抽 象 级 别 在
TLM 之上的模型, 包括 SAM 和 SPM。
* 系统级模型(System Level Model): 指抽象级别在
RTL 之上的模型, 包括 SAM、SPM 和 TLM。
3 事务级建模方法 TLM
技
1 系统级设计与验证简介
片上电子系统的速度和复杂度的不断提高不仅 使得底层的设计实现易于出问题, 而且顶层的系统架 构、通讯机制、软硬件划分等都可能使系统的功能 、性 能或成本、开发周期等指标不满足要求。一旦在 底层 的实现阶段发现了这种顶层的设计问题, 会有大量的 设计工作重新进行; 此外, 工程师对设计规格的理解 偏差, 或设计规格本身的不完整及二义性也是造成设 计错误的原因之一; 底层硬件的设计在验证时需要大 量的输入激励和检验响应, 在信号级完成这样的工作 不但速度很慢而且容易遗漏。
片 上 系 统 SOC
供参考模型和验证平台; 可以作为软件开发的平台, 优化软硬件划分方案。所以事务级的系统硬件可执行 规格又称为可执行平台 EP( Executable Platform )。它 是架构精确的, 为软件开发和模块级的验证提供一个 快速全功能的环境。当 EP 作为底层 RTL 模块的测试 平台时, 需要将相应的 TLM 模块替换为目标 RTL 模 块 与 transactor 的 组 合 , transactor 是 SystemC 的 术 语 , 作用是将一种抽象级的接口转换为另一种抽象级的 接口。
件设计和验证统一的高级描述语言; 规范抽象方式和
级别, 特别是在 RTL 之上规范硬件平台的建模方法。
国际上 EDA 界经过几年的发展与讨论, 公认最有
前 途 成 为 电 子 系 统 设 计 与 验 证 统 一 语 言 的 就 是 Sys-
temC, 它是在 C++的基础上加上 一套适合于 硬件描述
中 文 核 心 期 刊 《 微 计 算 机 信 息 》(嵌 入 式 与 S O C )2006 年 第 22 卷 第 2-2 期
统建模的几种抽象方式和应用类型。
抽象方式可分为:
* 非 定 时 功 能 UTF(UnTimed Functional): 可 用 于
模型的接口和内部功能, 进程的执行和数据传输都不
定时不是周期精确的。此种模型主要用于高层次性能
建模和时间预算。
* 事务级模型 TLM(Transaction Level Model): 用于
建模可执行的平台, 通常只描述硬件。模型接口用不
含管脚细节的 TF 方式, 可以是也可以不是周期精确
的 , 数 据 传 输 用 事 务 方 式 建 模 ; 模 型 功 能 用 TF 方 式 ,
图 1 由 TLM 构成的可执行平台
在 TLM 级实现可执 行 的 规 格 有 助 于 进 行 系 统 架 构的性 能分析, 探 索 不 同 的 架 构 方 案 ; 为 RTL 设 计 提
- 192 - 360元 /年 邮局订阅号: 82-946
《P LC 技术应用 200 例》
您的论文得到两院院士关注
事务级建模方法 TLM(Transaction Level Modeling) 是为了解决以下问题而发展起来的, 这些问题包括提
供软件开发的早期平台; 系统架构探索与验证; 系统 级模型在模块级验证中的应用。它用于建模可执行的 平台, 通常只描述硬件。
所谓事务, 一方面指把低层次的信息传输组合成 的较高级别的传输, 比如把读写一大块数据作为一个 事务, 它包含总线上的若干次突发传输, 每个突发传 输又会包含地址连续的多个数据传输; 另一方面指不 牵涉具体的信号, 而是把传输中涉及到的信息分类作 为整体表示。事务级建模方法把模块的功能和模块间 的通讯分开建模, 模块间通讯用事务来表示, 接口用 不 含 管 脚 细 节 的 TF 方 式 , 功 能 也 用 TF 方 式 , 是 否 周 期精确根据需要而定。通过提高抽象级别, 并把分散 在各模块中的通讯协议处理功能集成在专门的通讯 模块中完成, 极大地加快了系统仿真的速度。
新 el): 是系 统 的 一 份 不 含 时 间 信 息 的 可 执 行 规 格 , 描 述 系统的硬件和软件成分。模型接口用不含管脚细节的
UTF 方式, 通常 描 述 通 讯 协 议 ; 模 型 功 能 也 用 UTF 方
式, 行为用算法来建模, 且主要以顺序方式描述。此种
模型主要用于架构探索和算法验证。
您的论文得到两院院士关注 文章编号:1008- 0570(2006)02- 2- 0191- 03
片 ห้องสมุดไป่ตู้ 系 统 SOC
片上系统设计中的事务级建模方法
Tra n s a ctio n Le ve l Mo d e lin g in S o C De s ig n
(洛阳中国空空导弹研究院 EDA 中心)石 晓 郁
设计分析。通过建立系统级的抽象模型, 执行仿真分
析和评估给出量化的指标, 从而对系统级的功能性能
作出正确的设计, 并在此基础上进行软硬件模块划分。
2 模型层次
为便于后面叙述的方便, 这里先简要介绍一下系
《嵌入式系统应用精选 200 例》
邮局订阅号: 82-946 360 元 / 年 - 191 -
片上系统 SO C
which are adopted to solve these problems, such as executable specification, executable platform, multiple abstraction- level modeling
and verification, finally emphasizes the transaction level modeling based on SystemC. Keywor ds: SoC, Executable Specification, Executable Platfor m, SystemC, TLM
所有这些都要求我们用跟以往大不相同的方式 看待电子系统的设计流程: 设计规格必须用形式化 的 、语 法 严 格 且 语 义 明 确 的 高 级 语 言 描 述 ; 从 系 统 的 顶层到底层的每一适当的抽象层次都采用合适的高 级语言建立相应的模型; 每一层次的模型都要进行验 证, 并可作为下一层次系统模型的参考模型和子模块 的测试平台。如此, 便可形成一系列可执行的设计规 格( Executable Specification ), 并将验证工作左移到 系 统设计的早期阶段, 从而达到消除设计规格的歧义性
软 件 工 程 师 可 以 使 用 处 理 器 指 令 集 仿 真 器 ISS (Instruction Set Simulator)来测试程序, ISS 使用总 线事 务访问外部设备, 总线事务通过总线功能模型连接到 硬件模型, 从而使软硬件测试过程无缝连接。以前的 总 线 功 能 模 型 是 PCA, 相 应 的 硬 件 模 型 是 RTL, 导 致 仿真速度很慢, 现在通过使用事务作为内部模块间通 信 的 方 式, 总 线 功 能 模 型 是 BCA, 相 应 的 硬 件 模 型 是 TLM, 软件模型、硬件模型和测试平台可以在较高的抽 象 级 连 接 成 整 体 , 仿 真 速 度 快 100 倍 以 上 , 并 可 在 设 计 周 期 中 更 早 的 阶 段 与 ISS 一 起 作 为 软 件 运 行 的 平 台。具体可见示意图 1。
用的是传统的软件高级语言 C++、Fortran 等 , 而底层
的硬件设计用的是硬件描述语言 VHDL、Verilog, 这样
造成整个设计和验证流程不够顺畅, 各层次之间难以
做到无缝连接; 对于更复杂或运算量非常大的系统,
验证的速度尤其是软硬件联合仿真的速度太慢, 难以
进行有效的验证。上述问题的解决方法是: 规定软硬
* 系统性能模型 SPM(System Performance Model):
是系统的一份含时间信息的可执行规格, 描述系统的
硬件和软件成分。模型接口用不含管脚细节的 UTF 或
TF 方式, 通常描述 通讯协议, 通 讯行为可以 是定时 的
但不一定达到周期精确; 模型功能可用 TF 或 UTF 方
式, 行为用算法来建模, 顺序或并发方式都可以采用,
由于电子系统中相当部分的工作是由软件完成, 所以必须确保在应用环境下软硬件能够正确地协同 工作。以前软件中依赖于硬件的部分通常要等到样机 加工好后才能调试, 使得嵌入式软件的完整验证只能 在系统设计周期的后端进行, 此时发现的设计错误通 常要花费较高的修改代价, 特别是那些牵涉到软硬件 划分等系统层次的问题。
耗费时间, 时间只可能作为定序机制而使用。
* 定 时 功 能 TF(Timed Functional): 可 用 于 模 型 的
接口和内部功能, 进程的执行和数据传输都都分配了
有限的时间。
* 总线周期精确 BCA(Bus Cycle Accurate): 仅用于
模型的接口, 而非内部功能, 定时精确到时钟周期, 通
的模板库和仿真内核构成, 并不断地扩充进有望成为
标 准 的 附 加 库 , 如 验 证 库 SCV、 事 务 级 建 模 库 TLM
API 等。
在基于 SystemC 的 系 统 级 建 模 和 验 证 流 程 中 , 首
先在顶层建立较高抽象级的模型, 主要用于完成系统
控制与算法的设计分析, 进行物理架构的功能性能的
S hi,Xiaoyu
摘要: 本 文 论 述 了 片 上 系 统 设 计 与 验 证 中 存 在 的 一 些 问 题 , 如 系 统 架 构 探 索 与 评 估 、软 硬 件 协 同 仿 真 等 , 介 绍 了 用 来 解 决 这
些 问 题 的 可 执 行 规 格 、可 执 行 平 台 、多 抽 象 层 次 混 合 建 模 与 验 证 等 较 新 的 观 念 和 方 法 , 最 后 着 重 介 绍 了 基 于 软 硬 件 统 一 的
石晓郁: 工程师
和及早发现较高层次的设计错误的目的。
术
创 目 前 国 际 上 已 普 遍 做 到 用 高 级 语 言 来 进 行 系 统
的规格描述和底层实现, 从而形成从系统顶层到底层
新 的一系列可验证的模型; 软件与硬件的相互验证不必
等到实物样机加工好再进行, 而是与硬件的 RTL 模型
联合仿真。其存在的主要问题有: 顶层设计如算法等
同时用于模型的接口和内部功能, 所有的事情都被安
技 排了时间, 时钟用于同步, 需要做完整的详细的功能 说明, 每个寄存器、每条总线、每一位在每个周期的行
术 为都有描述, 能够直接被逻辑综合器综合成硬件实 现, 等同于 RTL 模型。
创
应用类型可分为:
* 系 统 架 构 模 型 SAM (System Architectural Mod-
建 模 语 言 SystemC 的 事 务 级 建 模 方 法 。
关键词: 片上系统;可执行规格;可执行平台;SystemC;事务级建模
中 图 分 类 号 : T P 253
文献标识码:A
Abstr act: This paper addresses some problems existed in SoC design and verification, introduces some new concepts and approaches
常与系统时钟相关, 不引入管脚级的细节, 信息传输
通常以事务的方式建模。
* 管脚周期精确 PCA(Pin Cycle Accurate): 仅用于
模型的接口, 而非内部功能, 定时精确到时钟周期, 通
常与系统时钟相关, 描述精确到管脚级。
* 寄存器传输精确 RT(Register Transfer accurate):
但不必是周期精确的。
* 功 能 模 型 (Functional Model): 指 抽 象 级 别 在
TLM 之上的模型, 包括 SAM 和 SPM。
* 系统级模型(System Level Model): 指抽象级别在
RTL 之上的模型, 包括 SAM、SPM 和 TLM。
3 事务级建模方法 TLM
技
1 系统级设计与验证简介
片上电子系统的速度和复杂度的不断提高不仅 使得底层的设计实现易于出问题, 而且顶层的系统架 构、通讯机制、软硬件划分等都可能使系统的功能 、性 能或成本、开发周期等指标不满足要求。一旦在 底层 的实现阶段发现了这种顶层的设计问题, 会有大量的 设计工作重新进行; 此外, 工程师对设计规格的理解 偏差, 或设计规格本身的不完整及二义性也是造成设 计错误的原因之一; 底层硬件的设计在验证时需要大 量的输入激励和检验响应, 在信号级完成这样的工作 不但速度很慢而且容易遗漏。
片 上 系 统 SOC
供参考模型和验证平台; 可以作为软件开发的平台, 优化软硬件划分方案。所以事务级的系统硬件可执行 规格又称为可执行平台 EP( Executable Platform )。它 是架构精确的, 为软件开发和模块级的验证提供一个 快速全功能的环境。当 EP 作为底层 RTL 模块的测试 平台时, 需要将相应的 TLM 模块替换为目标 RTL 模 块 与 transactor 的 组 合 , transactor 是 SystemC 的 术 语 , 作用是将一种抽象级的接口转换为另一种抽象级的 接口。
件设计和验证统一的高级描述语言; 规范抽象方式和
级别, 特别是在 RTL 之上规范硬件平台的建模方法。
国际上 EDA 界经过几年的发展与讨论, 公认最有
前 途 成 为 电 子 系 统 设 计 与 验 证 统 一 语 言 的 就 是 Sys-
temC, 它是在 C++的基础上加上 一套适合于 硬件描述
中 文 核 心 期 刊 《 微 计 算 机 信 息 》(嵌 入 式 与 S O C )2006 年 第 22 卷 第 2-2 期
统建模的几种抽象方式和应用类型。
抽象方式可分为:
* 非 定 时 功 能 UTF(UnTimed Functional): 可 用 于
模型的接口和内部功能, 进程的执行和数据传输都不
定时不是周期精确的。此种模型主要用于高层次性能
建模和时间预算。
* 事务级模型 TLM(Transaction Level Model): 用于
建模可执行的平台, 通常只描述硬件。模型接口用不
含管脚细节的 TF 方式, 可以是也可以不是周期精确
的 , 数 据 传 输 用 事 务 方 式 建 模 ; 模 型 功 能 用 TF 方 式 ,
图 1 由 TLM 构成的可执行平台
在 TLM 级实现可执 行 的 规 格 有 助 于 进 行 系 统 架 构的性 能分析, 探 索 不 同 的 架 构 方 案 ; 为 RTL 设 计 提
- 192 - 360元 /年 邮局订阅号: 82-946
《P LC 技术应用 200 例》
您的论文得到两院院士关注
事务级建模方法 TLM(Transaction Level Modeling) 是为了解决以下问题而发展起来的, 这些问题包括提
供软件开发的早期平台; 系统架构探索与验证; 系统 级模型在模块级验证中的应用。它用于建模可执行的 平台, 通常只描述硬件。
所谓事务, 一方面指把低层次的信息传输组合成 的较高级别的传输, 比如把读写一大块数据作为一个 事务, 它包含总线上的若干次突发传输, 每个突发传 输又会包含地址连续的多个数据传输; 另一方面指不 牵涉具体的信号, 而是把传输中涉及到的信息分类作 为整体表示。事务级建模方法把模块的功能和模块间 的通讯分开建模, 模块间通讯用事务来表示, 接口用 不 含 管 脚 细 节 的 TF 方 式 , 功 能 也 用 TF 方 式 , 是 否 周 期精确根据需要而定。通过提高抽象级别, 并把分散 在各模块中的通讯协议处理功能集成在专门的通讯 模块中完成, 极大地加快了系统仿真的速度。
新 el): 是系 统 的 一 份 不 含 时 间 信 息 的 可 执 行 规 格 , 描 述 系统的硬件和软件成分。模型接口用不含管脚细节的
UTF 方式, 通常 描 述 通 讯 协 议 ; 模 型 功 能 也 用 UTF 方
式, 行为用算法来建模, 且主要以顺序方式描述。此种
模型主要用于架构探索和算法验证。
您的论文得到两院院士关注 文章编号:1008- 0570(2006)02- 2- 0191- 03
片 ห้องสมุดไป่ตู้ 系 统 SOC
片上系统设计中的事务级建模方法
Tra n s a ctio n Le ve l Mo d e lin g in S o C De s ig n
(洛阳中国空空导弹研究院 EDA 中心)石 晓 郁
设计分析。通过建立系统级的抽象模型, 执行仿真分
析和评估给出量化的指标, 从而对系统级的功能性能
作出正确的设计, 并在此基础上进行软硬件模块划分。
2 模型层次
为便于后面叙述的方便, 这里先简要介绍一下系
《嵌入式系统应用精选 200 例》
邮局订阅号: 82-946 360 元 / 年 - 191 -
片上系统 SO C
which are adopted to solve these problems, such as executable specification, executable platform, multiple abstraction- level modeling
and verification, finally emphasizes the transaction level modeling based on SystemC. Keywor ds: SoC, Executable Specification, Executable Platfor m, SystemC, TLM
所有这些都要求我们用跟以往大不相同的方式 看待电子系统的设计流程: 设计规格必须用形式化 的 、语 法 严 格 且 语 义 明 确 的 高 级 语 言 描 述 ; 从 系 统 的 顶层到底层的每一适当的抽象层次都采用合适的高 级语言建立相应的模型; 每一层次的模型都要进行验 证, 并可作为下一层次系统模型的参考模型和子模块 的测试平台。如此, 便可形成一系列可执行的设计规 格( Executable Specification ), 并将验证工作左移到 系 统设计的早期阶段, 从而达到消除设计规格的歧义性
软 件 工 程 师 可 以 使 用 处 理 器 指 令 集 仿 真 器 ISS (Instruction Set Simulator)来测试程序, ISS 使用总 线事 务访问外部设备, 总线事务通过总线功能模型连接到 硬件模型, 从而使软硬件测试过程无缝连接。以前的 总 线 功 能 模 型 是 PCA, 相 应 的 硬 件 模 型 是 RTL, 导 致 仿真速度很慢, 现在通过使用事务作为内部模块间通 信 的 方 式, 总 线 功 能 模 型 是 BCA, 相 应 的 硬 件 模 型 是 TLM, 软件模型、硬件模型和测试平台可以在较高的抽 象 级 连 接 成 整 体 , 仿 真 速 度 快 100 倍 以 上 , 并 可 在 设 计 周 期 中 更 早 的 阶 段 与 ISS 一 起 作 为 软 件 运 行 的 平 台。具体可见示意图 1。
用的是传统的软件高级语言 C++、Fortran 等 , 而底层
的硬件设计用的是硬件描述语言 VHDL、Verilog, 这样
造成整个设计和验证流程不够顺畅, 各层次之间难以
做到无缝连接; 对于更复杂或运算量非常大的系统,
验证的速度尤其是软硬件联合仿真的速度太慢, 难以
进行有效的验证。上述问题的解决方法是: 规定软硬
* 系统性能模型 SPM(System Performance Model):
是系统的一份含时间信息的可执行规格, 描述系统的
硬件和软件成分。模型接口用不含管脚细节的 UTF 或
TF 方式, 通常描述 通讯协议, 通 讯行为可以 是定时 的
但不一定达到周期精确; 模型功能可用 TF 或 UTF 方
式, 行为用算法来建模, 顺序或并发方式都可以采用,
由于电子系统中相当部分的工作是由软件完成, 所以必须确保在应用环境下软硬件能够正确地协同 工作。以前软件中依赖于硬件的部分通常要等到样机 加工好后才能调试, 使得嵌入式软件的完整验证只能 在系统设计周期的后端进行, 此时发现的设计错误通 常要花费较高的修改代价, 特别是那些牵涉到软硬件 划分等系统层次的问题。
耗费时间, 时间只可能作为定序机制而使用。
* 定 时 功 能 TF(Timed Functional): 可 用 于 模 型 的
接口和内部功能, 进程的执行和数据传输都都分配了
有限的时间。
* 总线周期精确 BCA(Bus Cycle Accurate): 仅用于
模型的接口, 而非内部功能, 定时精确到时钟周期, 通
的模板库和仿真内核构成, 并不断地扩充进有望成为
标 准 的 附 加 库 , 如 验 证 库 SCV、 事 务 级 建 模 库 TLM
API 等。
在基于 SystemC 的 系 统 级 建 模 和 验 证 流 程 中 , 首
先在顶层建立较高抽象级的模型, 主要用于完成系统
控制与算法的设计分析, 进行物理架构的功能性能的
S hi,Xiaoyu
摘要: 本 文 论 述 了 片 上 系 统 设 计 与 验 证 中 存 在 的 一 些 问 题 , 如 系 统 架 构 探 索 与 评 估 、软 硬 件 协 同 仿 真 等 , 介 绍 了 用 来 解 决 这
些 问 题 的 可 执 行 规 格 、可 执 行 平 台 、多 抽 象 层 次 混 合 建 模 与 验 证 等 较 新 的 观 念 和 方 法 , 最 后 着 重 介 绍 了 基 于 软 硬 件 统 一 的
石晓郁: 工程师
和及早发现较高层次的设计错误的目的。
术
创 目 前 国 际 上 已 普 遍 做 到 用 高 级 语 言 来 进 行 系 统
的规格描述和底层实现, 从而形成从系统顶层到底层
新 的一系列可验证的模型; 软件与硬件的相互验证不必
等到实物样机加工好再进行, 而是与硬件的 RTL 模型
联合仿真。其存在的主要问题有: 顶层设计如算法等
同时用于模型的接口和内部功能, 所有的事情都被安
技 排了时间, 时钟用于同步, 需要做完整的详细的功能 说明, 每个寄存器、每条总线、每一位在每个周期的行
术 为都有描述, 能够直接被逻辑综合器综合成硬件实 现, 等同于 RTL 模型。
创
应用类型可分为:
* 系 统 架 构 模 型 SAM (System Architectural Mod-
建 模 语 言 SystemC 的 事 务 级 建 模 方 法 。
关键词: 片上系统;可执行规格;可执行平台;SystemC;事务级建模
中 图 分 类 号 : T P 253
文献标识码:A
Abstr act: This paper addresses some problems existed in SoC design and verification, introduces some new concepts and approaches