(计算机应用技术专业论文)复杂数字系统级芯片技术—设计工具应用与扩展.pdf_第1页
(计算机应用技术专业论文)复杂数字系统级芯片技术—设计工具应用与扩展.pdf_第2页
(计算机应用技术专业论文)复杂数字系统级芯片技术—设计工具应用与扩展.pdf_第3页
(计算机应用技术专业论文)复杂数字系统级芯片技术—设计工具应用与扩展.pdf_第4页
(计算机应用技术专业论文)复杂数字系统级芯片技术—设计工具应用与扩展.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)复杂数字系统级芯片技术—设计工具应用与扩展.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 集成电路制造技术的飞速发展,现在已经可以把一个完整的电子 系统集成到一个芯片上,即所谓的系统级芯片( s o c ) 。系统级芯片 的设计需要新的设计方法和建模工具。s y s t e m c 是o s c i ( 0 p e n s y s t e m ci n i t i a t i v e ) 组织制定和维护的一种开放源码的c + + 建模平台, 它由一个定义良好的c + + 类库及仿真内核组成,支持对系统进行寄存 器传输级,行为级和系统级的描述。s y s t e m c 的优点包括对软硬件联 合设计的支持,更高效和方便的进行i p 交换,以及在不同的抽象模 型问复用测试基准的能力。 本文的研究内容首先是提出了一种基于s y s t 锄c 的自项向下的 设计流程。这一设计流程基于系统的四层抽象模型:功能模型,事务 模型,通信模型和实现模型。并以一个c s m c dm a c 层协议的实 现实例验证了这一设计流程,评估了s y s t e m c 在s o c 设计中的优缺 点。本文最后探讨了如何实现s y s t e m c v ) l 的自动转换。采用 l e x 和y a c c 作为辅助工具,实现了一个可以将部分s y s t e m c 代码转 到v h d l 的编译系统原型。 关键词:s y s t e m c系统级设计模型编译系统 a b s t r a c t d u et ot h ed e v e l o p m e n to fi c t e c h n o l o g y ,n o w ac o m p l e xs y s t e mc a n b ei m e g r a t e di nac h i pc a l l e ds y s t e mo nc h i p ( s o c ) t h ed e s i g no fs o c n e e d sn e wd e s i g nm e t h o d 0 1 0 9 y sa n dm o d e l i n gt o o l s s y s t e m ci sa no p e n c + + m o d e l i n gp l a t f o r mp r o m o t e db y t h eo p e n s y s t e m ci n i t i a t i v e ,w “c h c o n s i s t so faw e l l d e f i n e ds e to fc + +c l a s s e sa n d as i m u l a t i o n k e m e l ,s u p p o n i n gd e s i g n a b s t r a c t i o n s a tm e r e g i s t e r _ t r a n s f e r , b e h a v i o r a l ,a n ds y s t e m 1 e v e l s t h e a d v a n t a g e s o fs y s t e m ci n c l u d et h e a b i l i t yf o rh a r d w a r e s o f w a r ec o d e s i g n ,t h ea b i l i t yt oe x c h a n g ei pe a s i l y a n de 佑c i e n t l y ,a n dt h ea b i l i t yt or e u s et e s tb e n c h e sa c r o s sd i f f e r e n tl e v e l s o f m o d e l i n g a b s t r a c t i o n f i r s t l y ,at o p d o w nd e s i g nm e t h o d o l o g y b a s e do n s y s t e m c i s p r e s e n t e d t h em e t h o d 0 1 0 9 y i sb a s e do nf o u r s y s t e m a b s n a c t m o d e l s :f u n c t i o nm o d e l ,t r a n s c a t i o nm o d e l ,c o m m u n i c a t i o nm o d e la j l d i m p l e m e n t a t i o n m o d e l ac s m a c dm a c p r o t o c 0 1c o n c r e t ee x a m p l e i s p r e s e n t e d t o v e r i 匆i t ,a i l d i t s a d v a n t a g e s a n dd i s a d v a n t a g e sa r ea l s o e v a l u a t e d f i n a l l y ,t h e m e t h o df o rt r a n s l a t i n gas y s t e m cs o u r c ei n t o a n e q u i v a l e n tv ) lp r o g r a m i sd i s c u s s e d w i t hm ea i d e dt o o l sl e xa n d y a c c ,ap r o t o t y p eo fs y s t e m c v h d l t r a n s l a t i o ns y s t e mi si m p l e m e n t e d k e y 、v o r d s :s y s t e m c s y s t e m l e v e l d e s i g n m o d e l c o m p i l a t i o ns y s t e m s 2 毽1 。 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的 规定,同意学校保留并向国家有关部门或机构送交论文的复印 件和电子版,允许论文被查阅和借阅。本人授权江苏大学可以 将本学位论文的全部内容编入有关数据库进行检索,可以采用 影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口 本学位论文属于,在年我解密后适用本授权书。 不保密吖 学位论文作者签名:俅林 知;年彳月l d 日 指导教师签名鸶友人 j 4 哆年月j 零日 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容以 外,本论文不包含任何其他个人或集体已经发表或撰写过的作品 成果。对本文的研究做出重要贡献的个人和集体,均已在文中以 明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:传林 日期:2 d 町年月留日 江苏大学硕士毕业论文 第一章绪论 本章对系统级芯片设计技术的发展概况和背景作一简单介绍,同时阐明了本 课题的研究意义以及主要的研究内容。 1 1s o c 时代的到来及对当前设计方法和开发工具的挑战 图1 - 1s o c 系统结构匿 在芯片复杂性大大增加的同时,电子产品地更颤换代的速度也越来越快,一 个产品往往只有几个月的寿命就被另外一个功能更强的产品所取代,这意味着芯 片的市场寿命越来越短,因此要求它的设计时间尽可能短。一方面是芯片的复杂 性不断增加,另一方面是所要求的设计时间尽可能短,这两种市场需求对e d a ( 电 子设计自动化1 工具和设计方法提出了严重的挑战。让我们看一下目前一般采用 的设计方法【2 】m 【4 1 。 1 1 1 目前采用的系统芯片设计方法 目前采用的设计方法主要分为下面四个步骤: 1 1 1 1 系统级设计 确定要进行一个电子系统的设计时,先由工程师确定系统的各个功能模块, 各功能模块一般用c 语言描述,同时为了验证系统的正确性,建立一个测试平 台,测试平台也是用高级语言编写的。这样测试平台和系统一起构成了一个仿真 江苏大学硕士毕业论文 系统,进行系统功能的仿真。可以监测测试结果,并调整各功能模块的参 数,算法和相关参数。 1 1 1 2 系统分割 确定系统哪些功能由软件通过m p ( 微处理器) 或d s p ( 数字信号处理器) 实现,哪些由f p g a ( 现场可编程门阵列) 和a s i c ( 专用集成电路) 来实现。 用目前的e d a ( 电子设计自动化) 工具进行系统分割是非常困难的,主要原因 是硬件和软件是用不同的语言描述的,无法放在一个系统中通过仿真来决定最佳 分割。因此只能根据各功能模块的复杂性及对速度的要求做出分割的决定。一旦 做出决定后,硬件设计和软件设计是分别进行的,在硬件设计分别完成后再要改 变分割就非常困难了。 1 1 1 3 软件实现 那些由软件实现的功能模块由于原来是用高级程序设计语言如c 语言等写 成的,因此要将c 语言代码通过相应的编译器编译成m p 或d s p 上可执行的汇 编代码。 1 1 1 4 硬件实现 与软件相比,硬件实现要复杂得多,主要原因是描述功能模块的高级编程语 言不能用来描述硬件。当前描述硬件用的是h d l 语言,所以必须经过手工的转 换,将c 或c + + 语言转换成相应的h d l 代码,然后综合成硬件电路。 一般的设计流程如下图。1 : 。 m 蝴u a lc o n v e 强i o l l l v h 。t 姗m s r e s to f p c e 婚 图i 2 系统设计流程图 当系统的复杂度不太高时,目前采用的方法的缺陷还不是致命的,但当芯片 2 些蔓奎兰塑主望些堡窒 的复杂度日益增加之后,碰到的问题就越来越多。 1 1 2 目前方法的缺陷 硬件设计人员必须将c 所描述的功能模块再用h d l 描述遍,这是个 费时,容易出错的过程。而且从设计复用的角度,两次描述实现的是同一个功能 模块,是一种设计中的浪费【“。 系统的软硬件部分设计是分头进行的,它们分别进行优化,仿真和验证。 在各自的设计完成之后才会进行联合调试。这时往往会发现一些错误,但因为用 h d l 描述硬件完成之后,系统的硬件资源已经确定下来,再做修改,往往代价 很大,只好通过牺牲系统的一些性能来解决【2 】。 测试无法复用,因为测试也同样需要设计人员手工将c 或c + + 代码转到 h d l 3 j 。 上述问题的根源在于系统设计,硬件设计和测试验证这三个部分之间没有统 一的语言,因此系统级芯片时代对e d a 工具的要求是要找到一种以系统级芯片 为对象的设计语言,它能统一整个设计流程,使硬件、软件的设计和验证能同时 进行【2 】,s v s t e m c 就是这样一种建模语言。 1 2s o c 设计中的相关技术 s o c 时代虽然已经来临,但在进行s o c 设计前,必须先解决一些相关的技 问题,这些技术问题都已经成为了当前的研究热点。 1 2 1 主要的设计流 设计方法是一个成功的产品开发的关键。设计方法的研究是电子与计算机工 程中的一个很活跃的研究领域。这些方法,我们按照它们的设计战略,可以大致 分为三类【4 】:自顶向下( t 0 p d o w n ) ,自底向上( b u t t o m u p ) 和趋向中间 ( m e e t i n t h em i d d i e ) 。很难说哪一种设计方法比另外的两种好,但是当前 t o p d o w n 的设计方法似乎更流行。自顶向下( t o p d o w n ) 的设计战略对于需要 设计探求( d e s i g ne x p l o r a t i o n ) 和需要从高层定义的系统是比较适合的。 1 2 2 软硬件联合设计 在s o c 设计中,一个给定的系统定义必须分割成两部分软件和硬件。 软硬件分割是一个很重要的问题,会极大的影响整个系统的性能。将系统的不同 组件分别用软件和硬件实现的目的是为了使系统的性能优化。通常,分割是基于 花费函数的评估( e v a l u a t i o no f a c o s tf i l i l c t i o n ) f l j ,花费函数来自于对系统设计所 施加的各种限制。例如,执行时间,数据存储和激活频率( 矗e q u e n c y o fa c t i v a t i o n ) 等等要求都可以被加到花费函数中。这一过程并没有被标准化,一个典型的分析 过程中有多次的分割,每一个分割之后,要进行相应的评估,直到系统的定义要 求在最小的花费下得到满足,这是一个迭代递增的设计过程。这一过程目前还很 难完全自动化的进行,通常都需要人的介入。这个问题是当前的研究热点,在局 江苏大学硕士毕业论文 部领域已经取得了一定的成功。 另外一个密切相关的问题就是如何测试这些异构的组件,虽然我们可以单独 分别测试硬件和软件,但是同时对它们进行联合测试也是非常重要的,因为存在 如下相关的问题: 软硬件单元问的接口要被测试。 如果硬件部分首先被测试和综合,定义的改变和b u g 的修正则只能在软件 中进行,就会如上所说,影响系统的性能。 所以软硬件联合设计需要软硬件联合仿真环境。 1 2 。3 建模工具 硬件描述语言是当前一种重要的e d a 建模工具。它们是用来对硬件的行为 进行建模的程序设计语言。h d l 拥有对典型的硬件行为进行建模的语义,例如 并发,延时,时钟,端口和信号。这种语言适合于仅仅拥有硬件的芯片设计,对 于s o c 设计它是不适合的。因为: 典型的系统是在一个高于h d l 所能达到的抽象层次上进行描述的,c 或 c + 十通常被用来描述比较抽象的系统。而且因为仿真速度的需要,功能验证总是 选择在尽可能高的抽象层次上进行,而c ,c + + 模型的验证速度远远大于h d l 。 当前的h d l 仿真环境不满足软硬件联合设计和联合仿真的需要。 当前市场上有大量的基于c c + + 的系统i p ,如果能够复用这些i p ,将极 大的缩短芯片的设计时间。 由于h d l 用于s o c 设计的限制,导致了系统建模语言( s y s t e ml e v e l m o d e l i n gl a n g u a g e s ( s l m l s ) ) 的出现。例如有: s p e c c 【6 】 s p e c c 是一种基于c 的系统定义语言。它是在a n s ic 的基础上,扩展了相 应的支持硬件建模的结构。s p e c c 可以在很高的抽象层次上对系统进行描述,然 后在s p e c c 参考编译器( s p e c cr e f e r e n c ec o l p i l i e r ) 中进行仿真。s p e c c 包括 一个公开源码的预处理器,可以将s p e c c 的一些结构转化到相应的a n s ic 代码, 然后再被编译和仿真。所以我们可以得到系统的可执行的定义。 s u p e r l o g 【3 】 s u p e r l o g 是一种基于v e r i l o g 和c 的系统级描述语言,它是一个v e r i l o g 的 超集,带有一些类式c 语言的结构。由s u p e r l o g 所编写的代码不能编译成可执 行的格式,它需要特定的仿真工具的支持。 s v s t e m c 也是这一领域进展的结果,下一章将详述它的特点。 1 2 4 设计综合 通常功能级的验证模型的抽象层次很高,不直接暗示任何硬件组件。这样做 是因为对于一个大系统很难一开始就在芯片级( c i r c u i t l e v e l ) 对其进行描述,而 更容易在算法级描述【l 】;而且从仿真速度上考虑,也需要高抽象模型。在功能验 证之后,我们就需要产生这些模型所代表的实际芯片。这时,我们需要相应的综 合工具。当前市场上存在各种不同的综合工具,综合工具使用预定义的库组件, 将算法代码映射到这些的组件实例中。当前的自动化综合工具还有很多不足之 4 江苏大学硕士毕业论文 出,例如功能不强,限制性条件太多等等。 1 3 本文的研究内容及意义 本文的研究内容是提出了一种具体的基于s y s t e m c 的自顶向下( t o p d o w n ) 的设计流程,以一个通信协议的实现实例验证了这一设计流程,评估了s y s t e m c 在s o c 设计中的优缺点,并探讨了s y s t e m c 的自动综合系统,实现了一个可以 将部分s v s t e m c 代码转到v h d l 的编译系统原型。 复杂数字系统设计工具和自动综合工具的研究是目前很活跃的研究领域【2 ”, 国内外有很多学者,工程技术人员和研究团体从事这方面的研究工作。本文提出 了一种基于s y s t e m c 的设计方法,并且可以自动生成标准的硬件描述语言v h d l 的描述文本,是一个有意义的研究内容。 s v s t e m c 的源代码可以免费从网站上下载【2 6 】,这一点使得我们可以按照自己 的需要对其进行相应的扩展和修改。 堕盔兰堡主兰、业笙奎 第二章基于s y s t e m c 的系统级设计方法 本章将详述s y s t e m c 的基本建模特性以及其对系统级建模的支持,同时提出 了一种基于s y s t e m c 的t o p - d o w n 的设计方法。这种设计方法源自s p e c c ,并与 s y s t 锄c 的特性相结合。 2 1 s y s t e m c 简介 s y s t e m c 是一个完全基于c + + 的建模平台,支持在r t l 级,行为级和系统 级描述系统。s y s t e m c 由一个c + + 类库和仿真内核组成【2 7 l 。s y s t e m c 利用了c 十+ 面向对象编程( 0 0 p0 b j e c t 一0 r i e n t e dp m g r 枷m i n g ) 的特性,通过扩展c + + 类库 对硬件建模提供支持,它提供了种利用c + + 的建模平台进行软硬件联合设计的 捷径。下图是s y s t e m c 的仿真过程【8 】: 图2 l 仿冥过程图 s y s t e m c 的仿真调度过程和v h d l 和v e r i l o g 类似,支持d e l t a 周期。d e l t a 周期由e v a l u a t e 和u p d a t e 周期组成,引入d e l t a 周期的概念是为了建模完全分布 式的,时间同步的计算模型【2 2 】。下面是s y s t e m c 仿真内核的调度程序的执行过 程f 7 j : 1 ) i n m a l j z a t i o n 周期以随机的顺序执行所有的p f o c e s s ,除了s cc t h r e a d 。 2 ) e v a l u a t e 周期一选择准备运行的p r o c e s s ,恢复它的执行,这可能导致即时事 件通知发生,这一事件的发生可能导致其它的p r o c e s s 准备运行。 3 ) 如果仍然有p r o c e s s 准备运行,则转到步骤2 。 4 ) u p d a t e 周期执行在步骤2 中调用r e q u e s tu p d a t e ( ) 函数而导致的对u p d a t e ( ) 过程的调用。 5 ) 如果仍有未决的延时事件通知,决定哪些p r o c e s s 将因为这些事件通知而准 备运行,然后转到步骤2 。 6 ) 如果不再有时间通知发生,仿真结束。 7 ) 将当前的仿真时间向前推进到最近的未决的时间通知。 8 ) 决定在当前仿真时间下,哪些进程由于事件通知的发生而准备运行,然后 6 江苏大学硕士毕业论文 转到步骤2 。 传统的软件开发环境中引入硬件设计和系统设计概念给我们带来许多好处。 正在使用的c c + + 程序开发环境可以直接用于s y s t e m c 程序的验证和调试工作 对于习惯查看仿真数据波形的硬件设计人员,可以查看其生成的波形文件, s y s t e m c 程序可以生成标准的v c d ,a s c i iw i f 或者i s d b 格式的波形文件。 2 1 1 实现和综合 s y s t e m c 的实现流的一个很重要特性就是系统的软硬件部分由一种语言进 行定义,其实现流如下图【8 】 煳 图2 - 2s y s t e m c 实现流程图 系统的设计入口可以在任何一个抽象层次:系统级,行为级或者r 1 l 级。 并且在所有抽象层次上保持统一的设计语言和环境。从高层到低层的转换可以通 过自动化工具或手工进行。 2 1 2s y s t e m c 的基本建模特性 2 1 2 1m o d u i e s p o r t g 番s i g n a l 8 7 耀嚣 一一 一一一一 黼 一一一 一一一一 端磬 跚一一 望蔓丕堂堡主兰些堡塞 相类似。请看下图【3 】: p o 难 图2 3s y s t e m c 实例4 这里有两个m o d u l e :a 和b ,r u n ,d a v ,s t a r t 和d o n e 是四个p o n ,s 1 和s 2 是连接p o r t 的s i g n a l 。 2 1 2 2p r o c e s s e s m o d u l e 的功能是由其中的p r o c e s s 实现的。和v h d l 相类似,s y s t c m c 中的 p r o c e s s 代表系统的并发行为。p r o c e s s 和敏感列表相联系,当发生了这些敏感事 件的时候就会激发p r o c e s s 。s y s t e m c 中按照仿真内核调用和执行p r o c e s s 的方式 的不同,可以把p r o c e s s 分为三种类型m : m e t h o dp r o c e s s ( s cm e t h o d ) 当p m c e s s 的敏感事件发生时,就执行 p m c e s s ,而且p r o c e s s 一旦开始执行,就不能够被中断和重新恢复执行 t h r e a dp r o c e s s ( s ct h 砌i a d ) 它和上面的最大区别就是它运行有一个 独立的运行栈,它在执行过程中可以被中断,并重新恢复执行。 c l o c k e dt h r e a dp r o c e s s ( s cc t h r e a d l 这个p m c e s s 是一个特殊的 t h r e a dp r o c e s s ,它的敏感事件只能是时钟信号,其它方面和t h r e a dp r o c e s s 相类 似。 2 1 2 3 数据类型 因为s v s t e m c 是一个特殊的c 抖的类库,所以所有的c + + 的数据类型都可 以使用。s y s t e m c 中包含建模硬件所必须的数据类型,例如表示b i t ,b i tv e c t o r ,和 4 v a l u e dl o g i c 等等。s y s t e m c 中还拥有一般h d l 中所没有的定点数。s c _ n x e d 和s cu f i x e d 分别代表有符号和无符号的定点数。这些定点数据类型支持标准的 定点数据所支持的特性,例如量化模式( q u a l l t i z a t i o nm o d e ) ,溢出模式( o v e r n o w m o d e l 和饱和位( s a t u r a t i o nb i t ) 。下面是一个例子唑 s c x e d x ; 定义了一个变量x ,它的整个长度是8 位;整数部分字长是5 位,量化模式, 将值四舍五入到可以表示的最近的值;溢出模式,x 的值达到最大时翻转回最小 值,饱和位( s a t u r a t i o n b i t ) 是2 位。 江苏大学硕士毕业论文 2 1 3 s y s t e m c 的系统级建模特性 如果s y s t e m c 只有上面的这些特性,那么s y s t e m c 只不过是在现存的h d l 上稍有改进罢了,s y s t e m c 作为一种新的系统建模语言的好处在于它不仅仅拥有 基本的与硬件建模相关的特性,还拥有方便进行系统级设计的建模结构。当前 s y s t e m c 对系统设计的支持主要在于支持p m c e s s 间的一种更加通用和抽象的通 信方式和事件同步机制【8 j :而且s y s t e m c 还提供了各种用于特定设计领域的库来 方便相关的设计工作。 2 1 3 1 e v e n t s 和s e n s i t i v j t y s y s t e m c 中提供了一种通用的事件的定义和通知机制,例如 s c e v e n te l ;声明事件 e 1 n o t i 匆( ) ;i 匿知事件发生 w a j t ( e 1 ) ;等待事件e 1 的发生 2 1 3 2i n t e r f a c e s 和c h a n n e ls 前面我们在m o d u l e 之间通信使用的是信号,这是一种非常底层的建模特性。 一个系统级的s y s t e m c 设计模型由一系列m o d u l e 和c h 锄e l 组成,m o d u l e 代表 系统的功能部分,c h a l l l l e l 代表代表系统的通信部分。s y s t e m c 中还提供了 i n t e r f a c e 。i n t e r f a c e 非常类似于通用编程语言中的接口概念,它定义了c h 锄e l 对外所提供的服务。s y s t e m c 拥有这两种结构,使得它支持一种基于接口的设计 方法,这种设计方法有许多益处,例如我们要定义一个f i f o 的c h 咖e l ,一个 基本的f i f o 支持下面的两个i n t e m c e , c l a s sw r i t e j f v i m a lp u b l i cs c _ i n t e r f a c e p u b l i c : v i r t u a lv o i dw r i t e ( c h a r ) = 0 ; v i r t u a lv o i dr e s e “) = 0 ; ) ; 上面是w i t ei f 接口,它定义了w i t e 和r e s e t 两项服务。 c l a s sr e a u f = v i r l l a lp u b l i cs c _ i n t e 如c e p u b l i c : v i r t u a lv o i dr e a d ( c h a r & ) = o ; v i r t u a li n t 肌m _ a v a i l a b l e ( ) 2 0 ; ) ; 上面是r e a di f 接口,它定义了r e a d 和n u l a v a i l a b l e 两项服务。 c 1 a s sf i f 0 :p u b l i cs c _ c h a n n e l ,p u b 】i c 、_ 晒t e i p u b l i cr e a d - i f 一 v o i dw r i t e ( c h a rc ) ; v o i dr e a d ( c h a r & c ) ) ; v o i dr e s e t ( ) ) ; v o i dn u ma v a i l a b l e ( ) ; ; 9 江苏大学硕士毕业论文 在f i f 0 中提供了所两个接口的实现,即具体实现了接口对外所提供的 服务。 这时假如我们定义一个m o d u l e p r o d u c e l c l a s s p r o d u c e r :p u b l i cs c j n o d u l e p u b l i c : s 9 _ p o r c 、v r i t e ( c ) ;,调用w i t e _ i f 接口所提供的、v r “e 服务 i f ( ) o u t 一 r e s e t ( ) ;) ;调用i t e _ i f 接口所提供的r e s e t 服务 ) ; 然后我们可以定义一个m o d u l e ,c o n s u m e r c l a s sc o n s u m e r :p u b l i cs c _ i n o d u l e p u b h c : s cp o r t i n ; l n 。 r e a d ( c ) ; i f ( i n 一 n u ma v a i l a b l e ( ) 5 ) ) ) ; 在高层模块中,我们可以将p r o d u c e r c o n s u m e r 和f i f 0 绑定起来。p r o d u c e r 的输出端口o u t 并不知道它是绑定到一个f i f o 上,它只知道它被绑定到一个对 象上,这个对象实现了w r i t ei f 接口。同样的,c 0 n s u m e r 的输入端口也不知道, 它只知道它被绑定到一个对象上,这个对象实现了r e 嘶f 接口。c h a n n e l 实现的 隐藏为我们提供了一种非常灵活的通信建模和细化机制。 隐藏了c h 锄e l 给我们带来了许多好处: 有利于系统功能模块和通信信道之间的分离,有利于整个系统的模块化设 计 由于p o r t 只能通过i n t e r f a c e 才能和c h a n n e l 相连,隐藏了通信信道的具体 实现,因此有利于通信信道的细化。当抽象的通信事务细化成具体的实现时候, 只要接口保持不变,系统的其它功能模块将保持不变,同样理由也有利于i p 嵌 入和设计复用。 2 1 3 。3 辅助特定领域建模的库 下图是当前s y s t e m c 的语言结构叭【2 5 】 1 0 江苏大学硕士毕业论文 支溪罴:圈耋糕等i 基本信道( c h a f 眦dl s 蟾n a l ,t _ 蚰e r ,m u t e x ,s e m 印h o r e ,f 曲等等i 核心语言 m o d u k s 数据类型i p o r t s o o g b 类型i p r o c e s s e s l o g i c 向量 i i n t e r f h c e s 位和位向量i c h a n n e k 任意精度的整型 i e v c n t s 定点数 l 标准:h 语言 g 图2 - 4s y s t e m c 语言结构图 从上面的语言结构图,我们可以看出来,s y s t e m c 是建立在标准c + + 的基础 上的,s y s t e m c 的核心语言( c o r e1 a n g u a g e ) 提供了个正交的最小的建模结构 用来支持结构化描述,并发,通信和同步。上层的建模结构是建立在下层的基础 之上的。 在s v s t e m c 的语言结构中,最上层的就是支持不同的计算模型( m o c ) 的 标准c h a n n e l 和辅助特定领域建模的各种库,不过当前版本的s y s t e m c 还没有提 供这些标准的c h a n n e i ,但是提供了一个m a s t e 卜s l a v e 库。 m a s t e 卜s l a v e 库主要是用在采用主从总线通信协议的系统。由一个或多个处 理器,d s p ,外设和a s i c 器件通过一套总线进行通信的系统非常适合采用这个 库。这个库在p m c e s s 之间引入了顺序执行和通信语义,适合于建立顺序的 s w s w 通信,h w s w 和h w h w 接口间的抽象功能级建模,这些模型本质上 顺序的。 使用这个库,复杂的系统,可以建立在串行通信的功能模块之间的连接基础 之上。省略了不必要的实现细节,有利于快速系统开发,对软硬件功能划分和资 源分配决定的效果进行评估。然后,模块间的功能级的通信可以细化到位精度的 ( c v c l e a c c u r a t e ) 总线协议的通信,最后可以把模块内部的功能行为描述细化到 位精度的( c y c l e a c c u r a t e ) 可综合的形式( r t l ) 。 这个库支持如下的设计抽象和流程: 2 1 3 3 1u n t f m e df u n c t i o n a il e v a i 在这层次,你可以创建系统的可执行的定义。整个系统分解为各个功能模 块,这些模块之间以顺序的形式通过抽象通信信道( c h a n n e l ) 进行通信。虽然没 有对系统的时间进行建模,但数据处理和执行顺序已经被精确定义。 2 1 3 3 2t i m e df u n o t i o n a il v 在这一层次上,一个功能进程( p r o c e s s ) 被赋予一个运行时间或周期。这有 利仿真系统的性能,还有对系统软硬件进行划分和资源分配的影响进行评估,在 江苏大学硕士毕业论文 这一层,你是在有限的资源上进行建模。当模型细化道这一层次上,u t f 上进程的执行顺序是不会改变的,只是把它们的执彳亍顺序在时间轴上表示出来。 在系统设计中,性能分析和软硬件划分是在这一层次上进行,因为在更细节 的实现层次上进行将会更加困难。软件模块( s w ) 将被划分成任务和任务之间 的通信,同步的实现是使用实时操作系统( n o s ) ,s y s t e m c 的s w 部分当前正在 开发当中。硬件部分( h w ) ,模块之间的通信协议被逐步细化到位精度 ( c v c l e a c c u r a t e ) 的模块。在一个系统中,不同的抽象层次的模块的存在是可能 的,例如一些模块是在功能描述的层次上,而另一些模块处在r 1 l 层次上。 2 1 3 3 3b u 8c y c l c c u r i t el o y l 在这一层次上,在h w s w 和s w s w 进程之间的通信是通过总线在位精度 ( c y c l e - a c c u r a t e l y ) 上进行建模,但进程的行为仍然是在功能层次上。s y s t e m c 中预定义好的总线协议有无握手( n o h a n d s h a l 【e ) ,使握手( e n a b l e h a n d s h a k e ) , 全握手( f u l l h a n d s h a k e ) 等等。用户也可以自定义所需要的总线协议。 2 1 3 3 4c y c i ea c o u r 矗t el e v e 在这一层次上,所有的硬件进程现在被细化到r t l ,可以被自动综合到门 级。当前采用m a s t e f - s l a v e 库的s y s t e m c 设计流程如下图: 设计探求 性能分析 h w ,s w 划分 多任务 抽象r t o s 目标r t o s 软件 硬件 图2 5 采用m a s t c 卜s l a v e 库的设计流程图 江苏大学硕士毕业论文 2 2 基于s y ! t e m c 的t o p d o n 设计 2 2 1 t o p d o w n 的设计方法 s y s t e m c 作为一种设计语言,在其发展过程中很大程度上受了s p e c c 的影响。 s y s t e m c 中的i n t e r f a c e ,c h a n n e l 这些语言结构的思想都来源于s p e c c 。s p e c c 是 一种在a n s ic 的基础上进行支持硬件的语言结构的扩充之后得到的系统级设计 语言。由加州大学欧文分校提出的,现在有一个s t o c ( s p e c ct e c l l l l o l o g yo p e n t c o n s o m u m ) 组织对其进行支持。s p e c c 所支持的设计方法是由一系列定义良好 的且无二义性的模型和一系列定义良好的模型问的细化过程组成【6 ”j 。 s y s t e i n c 本身可应用于不同的设计流中,本文中将把s p e c c 的设计方法引入 s y s t e m c 中,并和s y s t e m c 本身的特性相结合,得到一种基于s y s t e m c 的 t o p d o w n 设计流,并将在一个c s m a ,c d 协议设计实例中验证这种设计方法。 这一设计方法遵循t 0 p d o w n 的设计原则,支持软硬件联合设计。它从目标系统 的一个高层定义开始,然后一步步细化到系统的位精度的实现。下面将详述这一 设计方法,其设计过程有4 层抽象模型,如下图【6 】 圈2 6 设计模型图 2 2 1 1 功能模型( f u n c t i o nm o d e l ) 功能模型是系统一个纯功能上的抽象模型,是设计流程的入口。功能模型不 涉及任何实现上的细节,仅仅是为了描述,验证系统的功能。在功能模型中的 m o d u l e 的层次性仅仅反映了系统的功能,并不暗示任何需要实现的系统结构, 而不涉及任何时间概念。模型在时间o 点处开始执行。 2 2 1 2 事务模型( t r a n s c a t i o nm o d e l ) 、 在s o c 设计领域,事务( t 1 a n s c a t i o l l ) 有几个意思,但在我们这里,这个词意味 着在建模和仿真的系统中的两个组件间的一次数据或事件的交换1 0 】。这里我们并不关 注实现这个交换的协议,那是下一层关注的事情。一次数据事务可能是一个单字,一 江苏大学硕士毕业论文 系列字,或者一个复杂的数据结构,通过总线在系统的各个组件间传输。一个事 件事务建模系统的同步方面,确保s o c 模型的正确执行。在组件间的中断也可以看成 是一个事件事务的例子。一个系统的事务模型一般具有如下基本特征: 系统的结构模型功能模块通过抽象通信信道进行通信 各个功能模块的功能来自于功能模型 所有的通信都是事务( 数据或事件交换) 通过功能调用,而不是通过对信号赋值来执行事务 s y s t e m c 提供了接口( i m e r f a c e ) ,信道( c h 籼e 1 ) 和事件( e v e n t ) 来方便设计 人员建立系统的事务模型。s y s t e m c 中为用户提供了用于通信事务的基本信道 ( c h a n n e l ) ,同时允许用户自定义更高层信道( c h a 皿e 1 ) 来满足设计中的需要。事务模型 一般是有时间的模型。各个功能模块可以赋予运行时间,以便进行系统的仿真反馈, 验证和进一步的综合。例如下图就是一个简单的事务模型: l 模块a l j 二一模块b l 1ji _ j 图2 7 简单事务模型实例 模块a ,b 分别代表系统的计算,两个模块之间通过一个信道c 进行通信。 c 是一个先入先出队列( f i f o ) 。模块a 中要定义一个队列的输出端口: s c _ p o r t d a t a _ o u t ; 且定义一个完成通信操作的w r i t ep r o c e s s ; w r i t ep r o c e s s 的主要操作就是 d a t a o u t 一 w r i t e ( i ) ; ) ; 模块b 则定义一个队列输入端口: s c _ p o r t d a t a j n ; 定义一个完成通信操作的r e a d - p r o c e s s ; r e a dp r o c e s s 的主要操作就是 i = d a t a j n 一 r e a d ( ) ; ; 2 2 1 3 通信模型 在事务模型中,各个功能模块之间的通信还是通过抽象的通信语义。通信模 型中,抽象的通信事务就被实际的通信信道所代替。如上面所述,s y s t e m c 支持 基于接口的设计方法,所以可以很方面的进行这种通信细化过程。从事务模型到 通信模型的细化过程又可以详细的分为以下几个步骤,我们继续上面的例子的整 个细化过程来说明: 2 2 1 3 1 信道细化( c h a n n i 。r e f j n e m n t ) 抽象的通信信道被实际的通信协议所代替,通过协议信道的接口,协议信道 对外提供最基本的由协议所支持的事务方法。协议可取自协议库。上图中的信道 1 4 江苏大学硕士毕业论文 c 我们可以将其细化成支持停等协议的信道。细化后的结构如下图 d a t ai i l r e a d 哥m r e co u t d a t ao u t r e a d vo u t 图2 - 8 细化后结构图 c h a l l l l e l 在得到r e a d yi n 信号之后,从d a t ai n 读入数据,然后在下一个时钟 周期写入到d a t ao u t 中,r e ci n 和r e co u t 用来传送确认信息。细化后的c h a n n e l 结构如下: s cm o d u l e f r e f i n e dc h a i u l e l l fs ci n d a t ai n : s c o u t d a t a _ o u t ; s ci n r e a d yi n ,r e c i n ; s co u t r e a d vo u t ,r e co u t : ) ; 2 2 1 3 2 适配器插入 因为信道插入了通信协议,所以接口已经发生了变化,必须在模块和协议信 道间插入一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论