(微电子学与固体电子学专业论文)基于systemc的des算法建模和验证.pdf_第1页
(微电子学与固体电子学专业论文)基于systemc的des算法建模和验证.pdf_第2页
(微电子学与固体电子学专业论文)基于systemc的des算法建模和验证.pdf_第3页
(微电子学与固体电子学专业论文)基于systemc的des算法建模和验证.pdf_第4页
(微电子学与固体电子学专业论文)基于systemc的des算法建模和验证.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(微电子学与固体电子学专业论文)基于systemc的des算法建模和验证.pdf.pdf 免费下载

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

文档简介

上海大学硕士学位论文 摘要 随着芯片集成度的快速增长。集成电路工业进入到了片上系统( s y s t e mo l la c h i p ,s o c ) 时代。急剧上升的复杂度和日益苛刻的上市时间向传统设计方法提出 挑战,迫切需要更有效,更快速的新的设计方法的支持。 s y s t e m c 应运而生,它是系统级设计的统一软硬件建模语言,支持从概念到 实现的无缝设计流程。使用s y s t e m c 使得设计基于统一的语言环境,整个系统得 到可执行的功能规约,软硬件协同验证在设计前期就开始,仿真速度更快。它避 免了传统的设计方法中由于使用了多种设计语言,不同设计人员之间存在的交流 障碍。 另一方面,在信息安全日益重要的今天,加密作为一个最为有力的武器,正 在发挥着重要的作用,数据加密标准( d a t ae n c r y p t i o ns t a n d a r d ,d e s ) 安全性 高、运算简单、速度理想。利用s y s t e m c 对d e s 建模并得到硬件实现极具理论 意义和现实意义。该加密模块可以广泛运用于诸如智能卡之类的各种产品。 本文运用s y s t e m c 完成了d e s 算法的建模和功能验证。所做的主要工作如 下: 1 针对目前s y s t e m c 还不是很成熟,支持其设计的流程和工具不是很完善的现 状,结合相应的e d a 工具给出一套基于s y s t e m c 的设计方案:探索出基于 s y s t e m c 核心库和s y s t e m c 验证标准( s y s t e m c v e r i f i c a t i o ns t a n d a r d ,s c v ) 进行功能验证的方法。 2 以面积为目标,对d e s 算法的具体实现做了改进和调整,并对算法实现的体 系结构做了合理优化,完成了算法建模。 3 利用一个经过验证的行为模型作为参考模型,对建立的模型进行了功能验证。 验证中采用了s c v 验证库提供的随机测试向量生成方法。 4 对不可综合的代码进行修改,利用s y s t e m cc o m p i l e r 将它转化为v e r i l o gh d l 并完成了综合和自动布局布线。 关键词:片上系统, s y s t e m c ,信息安全,数据加密标准 上海大学硕士学位论文 a b s t r a c t w k ht h ec o m p l e x i t yo ft h ei n t e g r a t e dc i r c u i ti n c r e a s i n g ,t h ei ci n d u s t r yh a s s t e p p e di n t ot h es o ce r a t h er a p i d l yi n c r e a s i n gc o m p l e x i t ya n dt h ep r e s s u r eo ft h e t i m e t o m a r k e ta r ec h a l l e n g i n gt h et r a d i t i o n a ld e s i g nf l o w s m o r ee f f e c t i v ed e s i g n m e t h o d sa r er e q u i r e d s y s t e m ci sau n i f o r mh a r d w a r e s o f t w a r em o d e l i n gl a n g u a g e ,w h i c hd e v e l o p e s f r o mc o n c e p tt oi m p l e m e n t a t i o n i tc a np r o d u c ea ne x e c u t a b l es p e c i f i c a t i o n ,e n a b l e - e a r l i e rh a r d w a r e s o f t w a r ec o - v e r i f i c a t i o na n df a s t e rs i m u l a t i o np e r f o r m a n c e t h e c o m m u n i c a t i o no b s t a c l e sb e t w e e nd e s i g n e r sa r ee l i m i n a t e df u l l y n o w a d a y sp e o p l er e l yo ni n f o r m a t i o nm o l es e r i o u s l ya n dt h ei n f o r m a t i o n s e c u r i t y b e c o m e sv e r yi m p o r t a n t e n c r y p f i o ni s w i d e l y u s e di nt h ef i e l do f i n f o r m a t i o ns e c u r i t y d e s ( d a t ae n c r y p t i o ns t a n d a r d ) a l g o r i t h mh a se x c e l l e n t p e r f o r m a n c e i m p l e m e n t i n gd e sa l g o r i t h mb yh a r d w a r eb a s e do ns y s t e m ci sa l li d e a l p r o j e c t t h ei m p l e m e n t a t i o nc a nb ew i d e l yu s e di na l lk i n d so fp r o d u c t ss u c ha ss m a r t c a r d s t h i st h e s i sf o c u s e so nt h em o d e l i n ga n dv a l i d a t i o nf o rd e sa l g o r i t h mb a s e do n s y s t e m c t h ep r i m a r yc o n t r i b u t i o n si nt h i st h e s i sf o l l o w : 1 i te x p l o r e sak i n do fm o d e l i n ga n dv a l i d a t i o nm e t h o d o l o g yb a s e do nt h ec o r e l i b r a r yo fs y s t e m c a n ds c v ( s y s t e m cv e r i f i c a t i o ns t a n d a r d ) a i m i n ga tt h e a c t u a l i t yt h a tt h ed e s i g nb a s e do ns y s t e m ci sj u s ta tt h eb e g i n n i n ga n dt h ee d a t o o l sa n dt h ed e s i g nf l o w ss u p p o r t i n gi ta l en o ta l lr e a d y 2 t h i st h e s i sa c c o m p l i s h e st h em o d e l i n gf o rd e sa l g o t i t h m i no r d e rt os a v ec h i p a r e a ,s o m ec h a n g e sa n dr e g u l a t i o n sa r em a d ei nt h ed e s i g n a tt h es a m et i m et h e s t r u c t u r eo f t h eh a r d w a r ei m p l e m e n t a t i o ni so p t i m i z e dr e a s o n a b l yt o o 3 t h em o d e li sv a l i d a t e dw i t ham e t h o do fr a n d o m i z a t i o nt e s t i n gw h i c hi sp r o v i d e d b ys c v ab e h a v i o rm o d e li su s e da st h er e f e r e n c em o d e li nt h ev a l i d a t i o n 4 t h i st h e s i sm a k e ss o m em o d i f i c a t i o n sa i m i n ga tt h es y s t e m cc o d ew h i c hc a nn o t b es y n t h e t i z e da n dt h e nt h es y s t e m cc o d ei st r a n s l a t e di n t ov e r i l o gh d l 上海大学硕土学位论文 a u t o m a t i c a l l y w i t h s y s t e m cc o m p i l e r f i n a l l y t h ep l a c i n ga n dr o u t i n gi s c o m p l e t e dt o o k e yw o r d s :s y s t e mo nac h i p ( s o c ) ,s y s t e m c ,i n f o r m a t i o ns e c u r i t y , d a t a e n c r y p t i o ns t a n d a r d ( d e s ) 上海大学硕士学位论文 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:扬墨勇 日期:兰竺! ! :2 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即:学 校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名:立趾导师签名:窆型 五 氏 日期:2o d ? 、2 2 - 上海大学硕士学位论文 第一章绪论 1 1 传统s o c 设计的流程及其面临的挑战 2 0 0 2 年,北美和欧洲超过8 0 的芯片采用0 1 8 微米及其以下工艺制造,亚 洲地区也有超过5 0 的芯片采用o 1 8 微米及其以下工艺【1 9 】,集成电路设计已经 全面进入深亚微米设计( d e e ps u b m i c r o nd e s i g n ) 时代。深亚微米设计使得芯片上 可以集成上干万个晶体管,这样整个复杂的包括软件和硬件的混和系统都可以被 集成到一块芯片上,这就是片上系统( s y s t e mo nac h i p ,s o c ) 。所谓s o c ,是指 在单硅芯片上实现信号采集、转换、存储、处理和i o 等功能,实现一个系统 的功能。 s o c 是在a s i c 的基础上发展起来的,但它具有很多独特的优点,比如速度 快、集成度高、功耗低,市场对s o c 产品有强烈的需求。 但是另一方面,s o c 的出现显著的提高了系统的复杂度。设计如此复杂的系 统,需要设计工具和设计方法强有力的支持。而目前的电子设计自动化 ( e l e c t r o n i cd e s i g n a u t o m a t i o n ,e d a ) i 具和设计方法显得力不从心。美国半导体 工业协会调查显示:芯片容量每年增长5 8 ,设计能力每年只增加2 1 【9 】。在设 计能力和生产能力( 芯片容量) 之间存在着一条设计生产力鸿沟( d e s i g n p r o d u c t i v i t yg a p ) 。过去硬件综合被用来弥补这条鸿沟。逻辑综合以及最近出现的 行为综合,也被称为高层综合( h i 曲一l e v e ls y n t h e s i s ,h l s ) 帮助设计者提高他们 的设计能力。但是硬件综合对s o c 设计是不够的,因为s o c 不仅仅包括硬件部 分,还包括软件部分。 在设计复杂度大幅度增加的同时,用户对s o c 的上市时间( t i m e t o m a r k e t , t t 【) 却越来越苛刻。由于s o c 很大一部分被应用于便携式通信、音频和视频处 理的消费类电子领域,如手机、m p 3 播放器。为了迅速抢占市场,s o c 的t t m 要求尽可能的小,否则开发者就会失去最佳市场的赢利窗口,甚至无法存活。 芯片设计能力的非饱和利用和强烈的市场压力迫使产业界寻求新的设计方 法。 图1 1 给出的是目前的s o c 设计流程。设计是从所要设计系统的功能规约开 上海大学硕士学位论文 始的。目前最常用的方式是,功能规约是一份用自然语言描述的书面文档p “。这 样做有以下几种不足:自然语言是含糊的,容易引起歧义的;功能规约可能是不 完备的;无法验证该功能规约的正确性。功能规约必须是完备的,它应该包括系 统的所有输入输出特性和特征;功能规约应该是抽象的,它不能包括任何实现方 面的细节;最后功能规约应该是可执行的,这样就可以在设计最初通过仿真验证 系统的功能。功能规约是设计时得到的系统的第一个正式的功能描述。它是设计 过程后续模型的参考模型。随着系统复杂度的不断上升以及缩减设计时间的要 求,用自然语言描述功能规约的不足越来越突出。系统设计人员不得不为他们的 设计生成可执行的功能规约。系统功能模型可以用数据流、离散事件、p e t r i 网、 同步异步状态机等等模型来实现【3 】,c ,c + + 经常被用来生成功能模型。这是因为, 它们提供了必要的数据结构和控制机制的抽象,可以产生简洁有效的功能模型。 用c c + + 描述的功能模型实质上是在执行时表现出和所描述系统一样行为的程 序。 图1 1 传统的s o c 设计流程 大多数系统既包括软件又包括硬件,经过软硬件划分后,系统被划分为软件 部分和硬件部分,交给软件开发人员和硬件开发人员分别实现。对软件开发者来 上海大学硕士学位论文 说,c c + + 是很自然的选择,但是c c - r + 是针对软件的编程语言,不能对时序 ( t i m i n g ) 、并发( c o n c u r r e n c y ) 、反应( r e a c t i v i t y ) 等硬件特性进行建模,而这些是对 包含硬件的s o c 进行精确建模所必须的。硬件开发人员使用硬件描述语言 ( h a r d w a r ed e s c r i p t i o nl a n g u a g e ,h d l ) , 以目前的设计是多种语言混和的设计。 v h d l 或者v e r i l o g 被用于硬件设计。 如v h d l 或v e r i l o gh d l 进行开发。所 c c + + 被用于系统级分析和软件设计, 混和的语言环境会带来很多问题。系统中的硬件部分和软件部分用不同的语 言来描述,使得系统设计人员对s o c 不同的软硬件划分方案进行权衡和体系结 构的评估很困难,代价很高,软硬件设计人员之间的交流存在语言的鸿沟【4 】,容 易产生歧义。 硬件设计开始之前,需要人工把功能规约中对应硬件部分的c c + + 的描述翻 译为h d l 描述。这个过程通常会产生大量的错误,并且会花去大量的时间。而 且系统级用c c + + 描述的测试平台( t e s t b e n c h ) 也需要被人工转化为用h d l 描 述的相同功能的t e s t b e n c h 。这些都不利于设计的复用,增加了开发难度。 s o c 设计中错误发现的越早,所花的代价越小。而硬件的验证要到寄存器传 输级( r e g i s t e rt r a n s f e rl e v e l ,r t l ) 完成才能开始,这时再发现错误然后返回到前 端,将付出巨大的代价。而且v h d l 、v e r i l o g 等硬件描述语言抽象层次较低, 更多关注硬件在r t l 级上的特性,而且随着s o c 硬件部分复杂性不断增加,仿 真时问会变得很长。 软件的测试验证最早只能等到硬件原型系统出现后才能开始进行。软硬件协 同技术可以使系统集成提前到硬件的r t l 级设计完成后开始,但这还是要等到 大部分硬件设计完成之后才能进行。目前常用的协同仿真和协同验证方法是 c c + + 描述的软件和用h d l 描述的硬件通过远程过程调用( r e m o t ep r o c e d u r e c a l l ,r p c i 或者使用诸如s o c k e t s 之类的内部进程通信的方式进行1 5 】。这样做有 很多局限性,如时间开销大,仿真性能低,发现错误迟导致开发代价高等等。 传统的开发方法已经不能适应新的形势,学术界、产业界纷纷积极地寻求新 的设计方法。 此外,设计的难度和强烈的t t m 压力使得基于知识产权( i n t e l l e c t u a l p r o p e r t y ,i p ) 模块的集成电路设计成为必然【6 】,为了使i p 使用者评估选择不同的 上海大学硕士学位论文 i p ,须为i p 建立起高抽象级的系统评估模型或者称之为行为模型。这种模型不 需要是周期精确( c y c l ea c c u r a t e ) 的,可以用一种很抽象的方式描述,虽然可以扩 充现有的h d l 来对其描述,但它们的系统描述能力尚不能满足要求。这也迫切 需要新的解决方案。 1 2s y s t e m c - - 新的系统级设计语言 从对传统s o c 设计方法的分析可以看出,目前设计流程的弊端主要是:r t l 级描述的层次较低,仿真速度不高;系统设计流程中存在着多种设计语言,不同 的开发人员之间存在着语义鸿沟;软硬件协同仿真点较晚,不利于在设计早期发 现错误,这时候的重新开发将付出较大的代价。所以提高设计的抽象层次,在流 程中使用统一的建模语言是解决问题的关键。 针对上面提出的问题,s y n o p s y s ,c o w a r e 和f r o n t i e r d e s i g n 等公司合作开发 了一种新的系统建模语言- - - s y s t e m c ,其目的是为系统设计提供一种单一的语言, 即提供个公共的平台来进行更好的软硬件协同设计和验证,提高设计效率。 s y s t e m c 既是系统级描述语言,又是硬件描述语言。它是可以对硬件和软件 系统进行建模的一种语言。它既可以在算法级进行建模,也可以在寄存器传输级 进行建模,还可以采用s y s t e m c 对整个系统进行建模,并像软件编程那样描述系 统的行为。 s y s t e m c 建立在c + + 语言基础上,它将并发、定时事件和数据类型等重要概 念引入c 十卜,从而扩展了c 十+ 的功能以及对硬件进行描述的能力。s y s t e m c 的这 一能力是通过类库提供的,类库提供了利用硬件元素、并发和反应行为对系统体 系进行建模的强大新机制。这些机制都只是建立在c + + 编程语言的类结构基础之 上。s y s t e m c 还提供了仿真内核,可用来对设计对象或系统的可执行规约进行仿 真。 由于s y s t e m c 本质上是c h ,因而可以使用标准的c + + 语言开发工具来建 立、仿真、调试和探索设计对象的各种体系结构和算法描述,可以在多种平台上 使用各种c + + 编译器来编译s y s t e m c 模型。 上海大学硕士学位论文 1 3 信息安全技术与d e s 加密算法 随着信息技术的发展,人们对信息的依赖程度越来越高,因而信息安全技术 显得格外重要。信息安全与通信保密正在成为一个国家政治、军事、经济以及社 会正常运行的基础,个人和普通公司、企业对安全的需求也日益迫切。 密码技术作为信息安全中一个最为有力的武器,正在发挥着重要的作用,在 各种安全解决方案中得到了越来越广泛的应用,成为解决安全问题的有效手段。 将智能卡或网络上传输的信息和系统内存储的信息进行加密可以极大地提高信 息的安全性。 在解决安全问题的实际应用中,密码产品有硬件加密和软件加密两种。它们 各有特点,互有千秋。目前硬件加密产品仍是商业和军事应用的主要选择,这是 因为硬件加密产品具有软件加密产品无法比拟的优点: ( 1 ) 速度。加密算法含有很多对明文位的复杂运算,这样的操作在一般的计 算机上难以实现,此外,加密通常都是高强度的计算任务,进行加密将会占用 c p u 大量的时间,计算机的性能因此会大大地降低。将加密移到芯片上,即使 该芯片是另外一个处理器也会使整个系统的速度加快。加密应该是不可见的,它 不应该防碍用户,硬件加密就可以很好的做到这一点1 3 3 1 。 ( 2 ) 安全性。对运行在没有任何物理保护的一般的计算机上的加密算法,入 侵者可以用各种跟踪工具秘密地修改算法而使任何人都不知道。硬件加密设备可 以安全地封装起来,应用防篡改盒能防止别人修改硬件加密设备。 ( 3 ) 易安装性。硬件加密设备比较容易安装。大多数的加密设备与普通计算 机无关,人们可以将专用的加密设备安装到电话、传真机、调制解调器等。 信息安全技术的核心是密码学理论与技术,密码学理论与技术目前主要有三 大体制,即基于数学的对称密码体制与公钥密码体制和基于量子力学的量子密码 体制。目前的加密产品中,大部分都是使用对称密码体制或公钥密码体制。 对称加密算法是应用较早的加密算法,技术成熟。对称加密算法的特点是算 法公开、计算量小、加密速度快、运算效率高。算法的加密和解密的流程是完全 相同的,区别仅仅是加密与解密使用子密钥序列的顺序正好相反 2 4 】。d e se 9 1 是主 流的对称加密算法。 d e s ,作为a n s i 的数据加密算法( d a t ae n c r y p t i o na l g o r i t h m ,d e a ) 和i s o 上海大学硕士学位论文 的d e a l ,成为一个世界范围内的标准己经2 0 多年了。尽管它带有过去时代的 特征,但它很好地抗住了多年的密码分析,理论和实践证明它仍是安全的。 本文运用s y s t e m c 对d e s 算法进行建模,并且利用s y s t e m c 验证标准 ( s y s t e m cv e r i f i c a t i o ns t a n d a r d ,s c v ) 提供的随机测试向量生成方法对模型的 功能进行了验证,最后完成了综合和布局布线得到硬件实现。其结果可以嵌入到 包括智能卡在内的各种需要d e s 加密模块的产品中。 1 4 本文所作的主要工作和论文章节安排 本章在分析了目前s o c 设计中面临的困难以后,提出用一种新的系统级建 模语言s y s t e m c 进行系统设计来取代传统设计方法。然后介绍了如今信息安全领 域里常用的加密技术特别是d e s 算法。 本文完成了d e s 算法的s y s t e m c 建模和验证,所做的工作主要包括以下四 个方面: 第一,针对目前s y s t e m c 还不是很成熟,支持其设计的流程和工具不是很完 善的现状,结合相应的e d a 工具给出一套基于s y s t e m c 的设计方案,探索出基 于s y s t e m c 核心库和s c v 验证库进行功能验证的方法。 第二,以面积为目标,对d e s 算法进行了模块划分,用新思路、新方法设 计了其中的各子模块,并对电路的实现结构做了合理的选择和优化,最后成功地 实现了它。 第三,利用s c v 验证库完成了模型的验证。 为了验证这一模型的功能是否正确,本文利用一个经过验证的行为模型作为 参考模型,然后给s y s t e m cd e s 模型和参考模型输入相同的密钥和明文数据, 通过观察它们的输出密文是否相同来验证s y s t e m cd e s 模型的功能正确性。本 文中的验证又是一种随机验证,它施加的激励是由s c v 验证库提供的随机测试 向量生成方法生成的。 第四,对模型的代码完成了综合和自动布局布线。 本文对目前尚不太成熟的s y s t e m c 综合环节做了一些探索和总结,利用 s y s t e m cc o m p i l e r 将d e s 算法的s y s t e m c 代码转化为v e r i l o gh d l ,再利用 d e s i g nc o m p i l e r 对其完成了综合和优化,最后利用s i l i c o ne n s e m b l e 自动布 6 上海大学硕士学位论文 局布线,得到了比较理想的面积值,证明本文基于面积资源的考虑对算法的改进, 数据处理方案的选择是成功的。 本文的章节安排如下: 第一章是绪论,分析当前s o c 设计中存在的问题,指出解决这些问题的方 法:介绍了在信息安全日益重要的今天,完成d e s 算法建模并得到硬件实现的 课题意义。 第二章详细介绍了s y s t e m c 的特点,利用s y s t e m c 进行系统设计的流程以 及它与h d l 相比的优势。 第三章是d e s 算法建模和验证。以面积为目标,对d e s 算法的功能模块划 分以及具体实现做了改进和调整,对硬件实现结构也做了合理优化,并得以成功 实现。功能验证采用的是随机验证方法,对该d e s 算法模型和一个已经过验证 的行为模型施加相同激励,通过比较输出来判断所建立模型的功能正确性。 第四章将d e s 算法模型的s y s t e m c 代码自动转换为v e r i l o g h d l ,然后完成 综合和自动布局布线。 第五章为结论和展望。 上海大学硕士学位论文 第二章新的系统级设计语言- - s y s t e m c 1 9 9 9 年9 月,微电子业内的一些一流e d a 公司、i p 供应商、半导体制造商 以及系统和内嵌式软件设计公司在加利福尼亚州s a i n tj o s e 举行的“内嵌式系统 会议”上,联合创建了开放s y s t e m c 创始会( o p e ns y t e m ci n i t i a t i v e ,o s c i ) 组织, 它负责维护和发展s y s t e m c 。s y s t e m c 是完全免费的,这使得e d a 供应商能够 充分自由地了解s y s t e m c 库的源代码以及优化它们的各种工具。包括s y n o p s y s 、 c a d e n c e 、f r o n t i e rd e s i g n 、a r m 、e r i s s i o n 、l u c e n t 、s o n y 、t i 、m o t o r o l a n e c 等核心成员,目前已经有5 0 多个著名的微电子公司支持该标准。2 0 0 5 年1 2 月, i e e e 表示已经批准了s y s t e m c 电子设计语言标准,称为i e e e l 6 6 6 。 现在已经有很多著名的公司包括西门子、a l c a t e l 、富士通、中国的东方通信、 大唐飞利浦等开始使用s y s t e m c 作为其系统级开发语言。在系统开发初期,可以 先对系统需求和构架进行分析和描述,然后利用s y s t e m c 进行交易级建模,划分 系统软硬件,对目标系统进行比较详细的划分,然后再利用s y s t e m c 完成后续流 程。 2 1s y s t e m c 语言介绍 2 1 1s y s t e m c 的重要特性 s y s t e m c 相对于普通c + + 主要增加了一个能对硬件不同抽象层次描述和仿 真的c 十+ 类库,和一个不依赖任何硬件仿真器的轻量级仿真内核。s y s t e m c 目前 扩充的基本硬件类主要反映硬件的模块结构、时序、并发行为、反应行为等电路 特性以及仿真监测的相关特性。几种重要的特性如下: 模块( m o d u l e s ) :在s y s t e m c 编写的程序中最基本的单元称为m o d u l e 。 m o d u l e 类似于v h d l 中的e n t i t y 和v e r i l o g 中的m o d u l e 。它是一个功能单元的抽 象描述。s y s t e m c 的模块是一个能够包含其他模块与进程的层次化实体。 进程( p r o c e s s e s ) :s y s t e m c 的进程类用于描述行为,包含于模块中。s y s t e m c 提供三种类型的进程供硬件和软件设计人员使用。 上海大学硕士学位论文 端口( p o r t s ) :模块通常有一组p o n s 和外界进行通信。p o r t s 分为输入端口, 输出端口和输入输出端口。如果一个m o d u l e 读入数据,它至少应该有一个输入 端口或者输入输出端口,如果它写出数据它至少应该有一个输出端口。 信号( s i g n a l s ) :s y s t e m c 的信号类是模块或子模块间消息数据流与接口信 号的模型对象。s y s t e m c 支持判决( r e s o l v e d ) 和非判决( u n r e s o l v e d ) 两种类型的信 号类,判决信号类能够有多于一个的驱动对象( 例如总线) ,非判决信号类信号只 能有一个驱动对象。s i g n a l s 用来连接不同模块的端口,不同的模块通过信号进 行通信。 时钟:s y s t e m c 的时钟类( 一种特殊s i g n a l 类) 是系统仿真时的时间记录者。 s y s t e m c 支持任意相位关系的多时钟系统模型。 基于周期时钟( c y c l e b a s e d ) 的仿真内核:s y s t e m c 包括有特别的基于周期 时钟的仿真内核类,以实现高速并发行为模型的仿真。 仿真波形跟踪:s y s t e m c 的仿真波形跟踪类支持模型在仿真运行时进行 v c d 、w i f 、s b d 等多种格式的仿真波形跟踪。 仿真实时( r u n t i m e ) 调试类:s y s t e m c 的仿真实时调试类能在模型与验证 环境代码编译时,实时进行错误的检查,该类的功能通过一个编译标志开启。 支持多种抽象级别:s y s t e m c 可以从抽象的系统功能级到周期精确的r t l 级建模。还支持t o p - d o w n 的各个抽象级别之间的逐步细化的开发。 丰富的p o r t 和s i g n a l 类型:为了支持不同抽象级别的模型,从功能级到 r t l 级,s y s t e m c 提供了丰富的p o n 平hs i g n a l 类型定义。这和硬件描述语言v e r i l o g 只支持b i t 和b i t 向量作为p o r t 和s i g n a l 的类型不同,s y s t e m c 既支持抽象数据类 型,如整型、浮点型等,又支持多种硬件电气信号类型,如两值信号、四值信号 类型等。 丰富的数据类型:s y s t e m c 有一套丰富的数据类型以支持多设计领域和抽 象级别。固定精度数据类型用于快速仿真,任意精度数据类型用于大数值计算, 对于任意精度数据类型没有大小的限制。 2 1 2 进程 在一般的软件设计语言中,程序是顺序执行的。但是硬件本质上是并行执行 上海大学硕士学位论文 的,大量的并行行为不断发生。用顺序执行的语言对这些并行行为进行建模是比 较困难的。通常解决这一问题的方法是使用硬件描述语言。s y s t e m c 使用进程对 并行进行建模。某些进程执行起来像函数一样,被调用者调用,执行完成后返回。 另一些进程在仿真开始时只被调用一次,在仿真过程的其它时刻,进程要么处于 活动状态执行,要么处于挂起状态,等待某个条件变为真之后再继续执行。该条 件可能是一个时钟的上升沿、一个信号值的表达式或者是这二者的组合。 进程不是层次化实体,所以一个进程不能直接调用其他进程,但是可以调用 其他不是进程类型的方法和函数。 进程有一个敏感列表,也就是可以触发进程使其开始运行的一系列的信号。 任何时候当敏感列表里面的任意一个信号的值发生改变时,进程就会被触发。为 了触发一个进程,它敏感列表里面的信号必须产生一个事件( e v e n t ) 。s y s t e m c 的 调度内核就是通过这个事件来激活进程的。信号事件是指信号值的改变,比如说 信号前一个时刻的值为1 ,当前时刻值更新为0 ,就可以说信号上发生了一个事 件。一个进程可以通过对另一个进程的敏感列表里的信号赋新值的这种方式,使 得它被触发执行。 根据s y s t e m c 仿真内核调用和运行方式的不同,p r o c e s s 分为三类。 ( 1 ) m e t h o dp r o c e s s ( s cm e t h o d ) :只要敏感列表其中某个信号的值发生 了改变,该p r o c e s s 将被执行。一旦开始执行,它将不能被挂起直到它运行完成 后把程序控制权返回给仿真内核。 f 2 1t h r e a dp r o e e s s ( s ot h r e a d ) :和s cm e t h o d 一样,它也有一个控 制触发的敏感列表。不同的是在执行过程中,如果加入相关的语句( 如w a i t ( ) ) , 它可以挂起,然后重新触发。当进程被挂起后,一直等到当它敏感列表中信号的 值发生改变,它从被挂起的地方恢复执行,直到下一个挂起进程的语句。 ( 3 ) c l o c k e dt h r e a dp r o e e s s ( s c _ c t h r e a d ) :这类p r o c e s s 是s c t h r e a d 的一种特例,它是为了使设计者获得更好的综合结果。它的敏感列表中只有一个 信号( 通常是时钟信号) ,当信号的上升沿或者下降沿到达时,它将被触发。 2 1 3 仿真内核 s y s t e m c 自带了一个仿真内核用来对模型进行仿真。在仿真过程中,用户自 1 0 上海大学碾士学位论文 定义的进程互相独立地执行。仿真通过调用s c 函数开始,所有的进程都被_start0 初始化,并准备被仿真内核调度运行。 被调度运行的进程开始执行后,进入活跃状态,直到它执行到w a i t 语句( 对 于s c _ t h r e a d 或s c c t h r e a d 类型的进程) 或者全部被执行完( 对于s c m e t h o d 类型的进程) 后,该进程被挂起,进入挂起状态。当所有进程都被挂起 后,仿真内核更新信号的值,进入到下一个仿真周期,这个过程可以用图2 1 来 说明。 图2 1s y s t e m c 进程调度示意图 为准确的建模硬件,s y s t e m c 跟v h d l 和v e r i l o g 硬件描述语言一样,支持 了周期的概念。一个周期可以被认为是在仿真过程中很微小的一步,多个 周期可能在同一个时间点发生,信号的值在一个周期内的改变对其他进程和信 号来说是不可见的,在一个时钟的末尾所有进程执行完后,信号的值才被确定下 来,它的新值一直到下一个时钟周期到来才生效,所以如果多个线程在个时钟 周期内读取同一个信号,它们将得到同一个值,这样仿真过程才是精确的。 图2 2 所示为s y s t e m c 的运行示意图。在标准c + + 环境中,用户编写的模块 及t e s t b e n c h 源文件和s y s t e m c 类库通过在标准c + 十环境中编译连接可以得到可 执行文件。使用s y s t e m c 的波形跟踪功能,还可以观察信号的波形。该语言不需 要调用任何硬件仿真器,只需要一个标准c + 十编译器【7 l 。 e 海大学硕士学位论文 2 1 4 对综合的支持 图2 2c + + 开发环境中的s y s t e m c 运行示意图 为了进行实际的应用,s y s t e m c 必须支持综合。最初得到的可执行的功能规 约常常是不能用来综合的,必须通过细化( r e f i n e m e n t ) 加入足够的细节和约束,使 可执行的功能规约成为一个可实现的模型。对这个可综合模型的综合可以得到较 好的结果。 目前s y s t e m c 的商业化综合工具己经投入了使用。如s y n o p s y s 公司的 c o c e n t r i cs y s t e m cc o m p i l e r 和c o w a r e 公司的n 2 c 。 c o c e n t r i cs y s t e m cc o m p i l e r 可以把用s y s t e m c 可综合子集编写的行为级硬 件模型综合为可迸一步综合的r t l 级h d l 模型或者门级网表( g a t e - l e v e ln e t l i s t l 。 也可以把s y s t e m c 的r t l 级模型综合为门级网表【加】。 2 2 基于s y s t e m c 的系统设计流程 基于s y s t e m c 的系统设计流程如图2 3 所示,按照抽象程度不同,系统模型 总的分为功能级,事务级和r t l 级。由于都构建于s y s t e m c 的平台上,不同抽 象级之间的模型可以重叠,混合存在。自顶向下,随着精度不断地增加,模块逐 渐细化,设计复杂度上升,需要的仿真时间变多,仿真速度会变慢。 上海大学硕士学位论文 仿 真 速 度 变 慢 抽 象 程 度 增 加 图2 3 基于s y s t c m c 的系统设计流程 ( 1 1 功能级模型 功能建模包括功能和算法的设计与验证( 验证是基于仿真的) 。系统功能模型 由一定数量的相互通信的进程( p r o c e s s ) 或者任务( t a s k ) 组成,它们之间的通信是点 对点的通信,没有公共的通信通道,进程之间的通信通道一般使用f i f o 实现, 模型可以顺序执行也可以并行执行,或者既有顺序执行,又有并行执行。根据是 否包含延时信息,该级的模型可以分为非时间功能( u n t i m e df u n c t i o n a l ,u t f ) 年! i 时间功能( t i m e df u n c t i o n a l ,t f ) 模型。非时间功能模型中的进程和相互之间的通 信是直接运行的,不考虑运行时间的信息。时间功能模型中,每个进程的执行以 及通信链路被赋予了一个估算的运行时间,该运行时间可以是实际时间,也可以 是时钟周期数,在s y s t e m c 中用w a i t ( ) 语句来实现。这些进程代表的模块最后可 以由硬件来实现也可以由软件来实现,所以这一级的模型没有软硬件的概念。 功能描述之后,可以定义一系列基于系统功能描述的软、硬件结构模型,该 模型可能包括微处理器、微控制器、d s p 、总线、存储单元、外围设计、r t o s 、 和其他一些专用的硬件处理单元。这些元件应是可重用的v c 模块。 上海大学硕士学位论文 结合结构库,通过映射,系统被分为软硬件两大部份。这一阶段将功能进行 划分并映射到不同的结构模型上去,即将不同的功能映射为不同的软、硬件资源, 对于硬件应将一种功能映射为一个精确的硬件模块,对于软件应将一种功能映射 为一个针对于特定进程的任务。映射之后对不同的结构建模方案进行仿真比较, 以便于选择最优的方案,同时,也可以对结构建模的结果进行细化。 ( 2 ) 事务级模型 事务级模型( t r a n s a c t i o nl e v e lm o d e l s ,t l m ) 中的各个模块代表了最终要实 现的硬件设备( 如存储器、a s i c 、系统总线等等) ,或者是将要运行在处理器上的 软件。通信通过片上总线进行。模块没有管脚,模块间的通信通过函数调用来进 行。由于此阶段的软件部分模块是在本地的c p u 上运行的,其运行时间是不精 确的。当加入指令集仿真器( i n s t r u c t i o ns e ts i m u l a t o r ,i s s ) 1 8 ,软件在i s s 上运 行,可以获得较准确的软件运行时间。 模块之间加入总线功能模型( b u sf u n c t i o n a lm o d e l ,b f m ) ( 或者叫做转换器 a d a p t e o 后,可以得到总线周期精确( b u s c y c l ea c c u r a t e ) 的事务级模型。作用是把 函数调用转化为管脚行为。事务级模型与转换器之间的通信通过函数调用进行。 转换器与转换器之间的通信通过管脚和信号来进行,它们之间可以实现所采用的 总线协议的精确周期。s y s t e m c 的事务级建模将在本文中单列一节加以讨论。 ( 3 ) 寄存器传输级模型 在寄存器传输级( r e g i s t e r t r a n s f e r l e v e l ,r t l ) ,系统由寄存器和寄存器之间 的组合逻辑构成。寄存器依照时钟的节拍动作,模块在内部和外部的接口上都是 周期精确的,模块的每个管脚被明确的定义,模块间通信通过管脚和信号进行。 该级的相关技术现在已相当成熟。 从上面的介绍可以看出,整个过程是逐步细化,逐步求精的,而且由于都采 用同建模语言和平台,不同抽象级的模块可以同时存在。也就是说,抽象级之 间的转化不用一步完成,而是逐步完成,就大大降低了产生错误的可能性。 2 3s y s t e m c 的事务级建模 目前设计流程中,硬件从r t l 级开始开发,软件用c c + + 进行描述使得复 用和系统升级困难陋1 。在r

温馨提示

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

评论

0/150

提交评论