>
首页 » 技术文章 » SystemC 在现代通信ASIC 设计中的应用

SystemC 在现代通信ASIC 设计中的应用

作者:王 鹏,谢永斌  时间:2006-12-21 23:29  来源:
摘要: SystemC作为一种新兴的SoC 设计语言, 正在成为现代通信ASIC 设计的重要工具 之一。文章对SystemC以及它在通信ASIC 设计中的应用从算法级和系统结构级两个方面进行了研究, 主要内容包括应用SystemC进行通信ASIC 算法的定点性能分析和算法优化, 对SystemC 实现的算法模型进行时序封装, 进行系统结构级仿真验证的方法。研究表明, 使用SystemC进行通信A2SIC 算法和系统结构的设计验证, 能够大大提高现代通信ASIC 设计的工作效率和产品质量。

关键词:SystemC;ASIC;定点算法;TL 模型;系统结构 

前言

  SystemC 在1999 年正式推出, 并由Open Sys2temC Initiative (OSCI) 负责支持、维护和发展。OSCI 是一个独立的非盈利性的组织, 专门负责SystemC 语言的开发和推广。这个组织包含了范围广泛的公司、研究机构、大学和个人成员。被选举出OSCI 理事会成员(Board Member Coreporations) 包括: ARM Ltd、Cadence Design Systems、Inc、CoWare、Fujitsu、Mentor Graphics、Motorola 、NEC、Synopsys、涵盖了系统厂商、半导体厂商、EDA 工具厂商、IP 供应商等。

SystemC是建立在C + + 基础上的、开放的系统级设计语言。SystemC语言的发展大致经历了两个大的阶段: SystemC1. 0 和SystemC2. 0。与HDL 语言类似, SystemC1. 0 可以用来进行硬件描述。2001年SystemC2. 0 的推出使SystemC 成为真正的系统级设计语言, 能够用来对SoC 体系结构进行更加自然和有效的描述, 这样就使SystemC 语言涵盖了从系统概念直到实现的针对系统软、硬件建模的能力。SystemC支持各种复杂的变量数据类型, 特别是可变字长的定点数据类型, 在通信算法仿真的研究中,可以非常灵活地处理各种不同格式的数据; 支持系统设计各个层次的模型抽象, 包括算法层次的模型、无时间信息(untimed) 的功能模型、含时间信息(timed) 的功能模型、业务级( Transaction Level)模型、行为级(Behavioral Level) 模型、寄存器传输级(Register2t ransfer Level) 模型等。

SystemC 在通信ASIC 定点算法设计中的应用

SystemC的定点数据类型及饱和处理方式
SystemC 语言支持所有的C/ C + + 数据类型,同时SystemC 所定义的以下数据类型可以用来进行定点或硬件设计和描述: sc-bit 、sc-logic、sc-int 、sc-uint 、sc-bigint 、sc-biguint 、sc-lb、sc-lv、sc-fixed、sc-ufixed、sc-fix、sc-ufix 等。丰富的数据类型使SytemC 支持从算法描述直到可综合的RTL描述。

SystemC 中除了使用c 语言中的long、short 等规定字长的整数类型外, 还可以使用用户自己定义字长的整数数据类型, 可以应用的数据类型分别有sc-uint < > 、sc-int < > 。

SystemC中定点小数数据类型分为有限字长和无限字长两类。有限字长的定点数分为sc-fixed <> 、sc-ufixed < > 、sc-fix、sc-ufix 四种数据类型, 其中sc-fixed 和sc-ufixed 的数据类型字长和整数字长等参数必须是常数。而在sc-fix 和sc-ufix 数据类型中字长和整数字长等参数不必为常数, 可以通过变量赋值。

在ASIC 定点算法中最常用的有两种量化方式, SC-RND 是四舍五入的量化方式, SC-TRN 是截尾的量化方式。最常用的两种溢出处理方式分别是SC-SAT 和SC-WRAP。定点数进行运算的时候,可能发生溢出。每次运算完毕后, 可用SystemC中overflow-flag () 来判断是否发生溢出。

性能仿真和设计

为了确定ASIC 中的定点算法及数据格式, 可以借助SystemC 所提供的灵活的定点数据类型,搭建定点算法仿真链路, 按照一定的调整方法对接收信号进行相应的处理。通过调整不同的仿真链路条件, 得到相应定点算法的准确性能统计, 以确定选用何种定点算法用于ASIC。调节相关变量的总字长和整数字长参数, 得到不同字长情况下的系统性能统计, 然后分析用什么样的定点格式和字长参数来表示对应数据更为准确有效, 在保证系统性能的前提下, 尽量减少所需的字长, 就可以大大减少ASIC 实现时的资源消耗。

利用SystemC特有的定点数据类型进行通信ASIC 定点算法的设计、性能仿真和参数确定, 以TD-SCDMA 基站接收机物理层算法的定点SJ 模块为例进行说明, 该模块主要完成基站的智能天线与联合检测定点算法。我们使用sc-fix 的定点数据类型来准确地模拟系统实现中相应信号所使用的字长格式,然后在模块中按照相应的算法对输入信号加以处理,再予以输出。我们在CoCentric System Studio 软件平台上, 以此模块为中心搭建TD-SCDMA 仿真链路,并修改相应信号的字长表示格式进行系统BER (误码率) 的仿真比较, 可以得到不同字长情况下系统的性能比较曲线, 对它进行分析确定ASIC 中实现SJ 时所使用的字长格式。从图1 中可以看出, 当用于表示信号的字长在12 位以上时, 系统的BER相差无几, 这样在系统实现或ASIC 实现时, 就可以采用12 位字长来表示相应的信号变量。



SystemC 在通信ASIC 结构设计中的应用

SystemC与TLM模型
SystemC2. 0 语言发布的一个主要目的是使用户可以在(相对于RTL) 更高的层次对SoC 系统进行描述。SystemC2. 0 引入了新的特性、概念以支持更方便、有效地对系统进行建模, 包括: channel、interface、event 等。HDL 语言的RTL 模型适合于对一个特定的硬件模块进行建模, 但通常很难高效率的对构成整个SoC 的各模块之间的通信、同步机制进行描述。基于这个原因, Transac2tion Level ( TL) 的建模思想被引入到了SoC 设计流程之中。TLM ( Transaction Level Model) 主要用来对整个SoC 的体系结构进行描述, 进而对系统结构进行仿真、分析、优化。同时TLM 使得设计者在系统硬件的RTL 描述完成之前可以对SoC所包含的大量软件进行验证。使用SystemC2. 0提供的channel 、interface 等概念以及基于此的In2terface Method Call ( IMC) 的思想可以对SoC 系统的TL 模型进行描述, 建立SoC 虚拟平台, 进行软硬件的协同设计, 仿真和验证。

TL 模型的抽象程度根据模块接口需求逐渐细化。例如, 最初模型接口是粗糙的时序功能模型或总线精确级模型, 算法模块被封装成时序级或总线级与总线的IF 进行交互, 能逐渐细化到循环精确级模型, 以接近更准确的接口时序。图2 是一个由TL 模型细化到RTL 模型的示意图。



在定点算法模型的基础上进行系统级的分析

通常ASIC 算法设计流程要经过定点仿真和分析的反复迭代过程, 确定算法结构, 然后逐渐细化相应的定点算法模块, 使之成为可实现的逻辑模块。在过程中, 算法链路用途比较单一, 只能用于算法的性能评估和参数确定。在现代复杂的ASIC 开发过程中, 由于SystemC 所具有的强大功能, 我们可以用已有的算法链路形成相应的业务级参考模型( TLM) , 并用其模型进行Tl 级的描述和仿真, 这样可以在ASIC 设计工作中节省大量的时间和人力。

现有的ASIC 基带处理算法仿真链路通常是用SystemC 搭建的无时序模型, 是基于数据流驱动的, 可以通过对定点算法模型进行时序封装(加时序Wrapper) 的方法, 将其重用成TL 模型, 挂接到基于ARM 处理器或AMBA 总线的系统架构上进行系统结构级的描述和仿真, 如图3 所示。



  为获得更为准确的ASIC 系统模型, 可以通过Wrapper 的设计细化来完成模型的接口与真实硬件实现的逼近。例如, 逼近逻辑模块与总线进行的事件及中断交互等。采用这种方法, 可以很方便的将已有的定点算法模型改造成TLM 级的参考模型,进行结构级的联合建模仿真, 为ASIC 设计提供强有力的支持。

性能仿真和设计

以Synopsys 提供的一个IP Router ASIC 设计为例进行分析, 由一个IP 路由器内的AMBA 总线、ARM 处理器、中断控制器、DMA 控制器、程序存储器、数据存储器等模块构成, 这些模块采用SystemC 建立TL 模型, 其中的ARM 处理器TL模型包含完整的ARM ADU 调试环境。实例里还包含对AMBA 总线进行统计和监控的模块, 使用Synopsys 在SystemC 开放语言开放基础上增添的monitor 类, 可以得到总线使用的统计特性以及在总线上所进行的数据传递、资源访问等信息。在这个实例中, 设定了存储器大小、存储器读写周期、DMA 的循环写周期等作为进行分析优化的参数以达到对整个系统体系结构进行分析的目的。

  设计过程中, 有两种系统结构方案, 一是单总线结构, 它的复杂性较低, 但可能会带来数据传输的碰撞和拥塞, 降低系统各单元之间数据传输的速率; 另一种是双总线结构, 它能够保证系统中各个单元尽量高速有效的交流数据, 但系统复杂性会随之大幅度增加。面对这两种结构, ASIC 的设计者如何权衡选择呢? 如何在设计阶段就获得这两种方案各自的性能统计呢? 一种非常有效的方法是, 使用SystemC建立相应的TL 模型, 分别仿真测试两种结构下ASIC 的各项系统性能, 如总线繁忙程度、数据传输发生碰撞的概率等等, 获得客观有效的性能比较数据并以饼状图等直观形式给出, 设计者据此做出准确的权衡判断用于ASIC 的系统结构设计。另外, 当ASIC 的结构模型建立并分析完成之后, 软件设计人员可以在ARM 的ADU 环境下进行分析、调试。由于TL 模型能够提供较RTL 模型快得多的仿真速度, 允许对较多数量的软件代码进行分析以发现可能的设计纰漏。同时硬件设计人员也可在此结构平台上进行硬件的开发。由于SystemC 语言支持各种层次的抽象模型, 设计“细化”的方法将TL的SystemC代码转变为SystemC 的RTL 代码, 然后在同样的测试环境下对RTL 代码进行仿真。

结束语

  现代通信专用ASIC 对传统的集成电路设计提出了很大的挑战, 作为建立在C + + 语言之上的系统级的设计语言, SystemC 的特性使设计者能够对系统进行各种抽象层次的建模、仿真、分析, 它所特有的定点数据类型能够有效地帮助ASIC 设计者确定并优化定点算法。基于SystemC 的TL 模型能够对ASIC 的整个体系结构进行更自然、更高效地描述、分析、优化, 使设计者更有效的进行系统软、硬件联合设计, 获得更高的工作效率、更好的产品和更快的上市周期。

相关推荐

AMD成立半订制业务部门 抢客制化ASIC市场

AMD  ASIC  2013-05-13

超低噪声混合信号芯片 助力医疗CT性能显著提升

西门子  ASIC  CT  2012-11-15

泰克荣获ARM TechCon软件类“最佳产品奖”

泰克  示波器  ASIC  2011-11-10

博世授予ADI 公司2009-2010年度最佳供应商称号

ADI  ASIC  2011-08-22

基于FPGA的芯片设计及其应用

FPGA  ASIC  2011-06-17

ASIC设计转FPGA时需要注意的几点

FPGA  ASIC  2011-05-23
在线研讨会
焦点