已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 d s p 芯片是一种具有特殊结构的微处理器,常用来快速地实现各种数字信号 处理算法。自2 0 世纪8 0 年代以来,随着集成电路设计方法的不断进步,电路的复 杂度越来越高,d s p 芯片也得到了飞速的发展,现在已经广泛地应用于通信,信 息处理,自动控制,航空航天等各个领域。本篇论文讨论了一个通用定点d s p 核 心单元的设计,同时在设计方法上作了一些新的探索。 本文的设计选用德州仪器公司的t m s 3 2 0 c 5 4 x 系列作为参考。所设计的d s p 处理器核心单元的指令集和功能都与标准的t m s 3 2 0 c 5 4 x 兼容。在利用v e r i l o g h d l 语言对系统进行r t l 级描述之外,还尝试了有别于传统设计途径的基于 s y s t e m c 的方法,并对两种方法作了比较。设计通过q u a r t u r s 软件的综合和优化, 最后生成的网表文件下载到a l t e r a 的器件中进行测试和调试,验证了设计的正确 性。 本论文最终实现了一个正向设计的1 6 位定点d s p 核心单元,具有嵌入式功能 且能完成大量的运算。设计具有同t m s 3 2 0 c 5 4 x 系列d s p 芯片相同的6 级流水线 结构,选取了1 8 3 条指令中的1 2 5 条来实现,在保证对大量运算的基础上,适当减 少了硬件复杂度。在a l t e r as t r a t i xe p l $ 8 0 8 9 5 6 c 6 平台上进行了f p g a 验证,时钟 频率为1 0 m ,规模为3 万门。 本课题除了对1 6 位定点d s p 的结构进行研究,对运算单元的结构进行探索之 外,也对设计方法进行了有益的尝试。利用s y s t e m c 设计了部分模块,并且实验 了用s y s t e m c 进行验证的方法。 最后测试的结果表明设计基本达到了预期的要求。 关键词:d s p ,软硬件协同设计,流水线,s y s t e m c 中图分类号:t n 4 a b s t r a c t d s pp r o c e s s o ri sak i n d o fm i c r o p r o c e s s o rw i t hs p e c i a la r c h i l e c t u r e , w h i c h i s u s u a l l y u s e dt od e a lw i t hk i n d so f d i g i t a ls i g n a lp r o c e s s a l g o r i t h m s s i n c et h e1 9 8 0 s ,w i t ht h e d e v e l o p m e n t o f s i c d e s i g n m e t h o d o l o g y 。t h ec i r e u i t b e c o m e sm o r ea n dm o r ec o m p l i e a t e d a tt h es a m e t i m e ,t h ed s pc h i pa c h i e v e dg r e a td e v e l o p m e n t a n d n o wd s p p r o c e s s o r s h a v e b e e nu s e di n m a n yf i e i d s , s u c ha sc o m i l l u n i c a t i o n t e c h n o l o g y , i n f o r m a l i o np r o c e s s ,a u t o m a t i cc o n t r o la n da v i a t i o nt e c h n 0 1 0 9 y i nt h i s p a p e r ,w ed i s c u s s t h ed e s i g no fag e n e r a l f i x e d p o i n t d s pc o r e a i s ow e d os o m er e s e a r c ho nt h ed e s i g nm e t h o d o o g y t h es t r u c t u r eo ft h ec o r eu n i tw e d e s i g n e d i so nt h eb a s i so ft h e s t r u c t u r eo ft m s 3 2 0 c 5 4 x b y t i c o m p a n y t h e i n s t r u c ti o ns e ta n dt h e f u n c t i o na r ea 1 1 c o m p a t i b l e w i t h s t a n d a r dt m s 3 2 0 c 5 4 x ,b e s i d e s u s i n g v e r i i o gh d lt of i n i s hr t ld e s c r i p t i o n ,w et r i e dt h em e t h o d o l o g yb a s e do n 8 y s t e m ca n dc o m p a r e dt h et w om e t h o d o l o g i e s t h ec o d e i s s y n t h s i s e da n d o p t i m i z e db yq u a r t u s t h en e t l i s ti sd o w n l o a d e dt ot h ed e v i c eo fa 1 t e r a t ot e s ta n dd e b u gt ov e r i f yt h ed e s i g n i nt h i s p a p e r w ed e s i g n e da1 6 b i tf i x e d d o i n td s pc o r eu n itw h i c h c a nd e a lw i t hg r e a tm o u n to fc a l c h f a t i o nw o r k t h es t r u c t u r eo ft h eu n i t i n c l u d e sa6 一l e v e l p i p e l i n e w h i c hi s a c c o r d i n g t h es t r u c t u r eo f t m s 3 2 0 c 5 4 x a n di th a s1 2 5i n s t r u c t i o n sw h i c ha r es e l e c t e df r o m1 8 3 i n s t r u c t i o n so ft h ei n i t i a lt m s 3 2 0 c 5 4 x t h i ss e l e c t i o ni sb a s e do nt h e c o n s i d e r a t i o nt h a tt h ec o r ec a nd e a lw i t ha1 0 to f c a l c u l a t i o nw o r k a t t h es a m et i m et h e c o m p l e x i t v o ft h eu n i tc a rb e r e d u c e d a f t e r s y n t h e s i z e do nt h ea l t e r ad e vi c e ,t h ef r e q u e n c yo ft h ec l o c kc a na t t a i n 1 0 ma n dt h es c a l ei sa b o u t3 0 ,0 0 0g a t e s b e s i d e ss o m er e s e a r c ho nt h es t r u c t u r eo f1 6 b i t f i x e d p o i n t d s pa n d t h es t r u c t u r eo ft h e c a l c u l a t i o n m o d u l e s ,w e a l s od os o m eu s e f u l e x p l o r a t i o no nt h ed e s i g nm e t h o d o l o g y w et r i e dt h er t ld e s c r i p t i o nw i t h s y s t e m ca n dt h eb e h a v i o rl e v e lv e r i f i c a t i o nb a s e do ns y s t e m c g o a l t h er e s u l to ft h et e s ts h o w st h a tt h e d e s i g na c h i e v e dt h ea n t i c i p a t e 第一章前言 本章的主要内容包括数字信号处理芯片概述,基于s y s t e m c 的软硬件协同 设计方法基本情况和背景、以及论文的结构和课题的意义。 1 1 数字信号处理芯片概述 数字信号处理是一门涉及许多学科而又广泛应用于许多领域的新兴科学。随着 计算机技术和信息技术的飞速发展,数字信号处理技术也随之得到了迅速的发展, 目前数字信号处理技术已经在通信等领域得到了极为广泛的应用。 数字信号处理就是利用计算机或者专用处理设备,以数字形式对信号进行采 集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形 式。近来新兴的一些学科,如人工智能、模式识别、神经网络等,也都于数字信号 处理密不可分。数字信号处理的实现方法一般有以下几种: ( 1 ) 在通用计算机上用软件( 如c 语言) 实现; ( 2 ) 在通用计算机系统中加上专用的加速处理机实现: ( 3 ) 用通用的单片机实现,这种方法可用于一些比较简单的数字信号 处理: ( 4 ) 用通用d s p 芯片实现。d s p 芯片有适合于数字信号处理的软硬件 资源。可用于复杂的数字信号处理: ( 5 ) 用专用的o s p 芯片实现。这种芯片将相应的数字信号处理算法在 芯片内部用硬件实现,无需进行编程。 上述的方法中,第一种方法的缺点是速度较慢,一般用来作算法的模拟;方法 2 和方法5 专用性强,应用范围受到很大限制,而且方法2 也不便于系统的独立运 行:方法3 只适用于实现简单的d s p 算法:方法4 的应用最广泛,效果也比较好。 虽然数字信号处理的理论发展迅速,但是在上世纪8 0 年代之前,由于实现方法的 限制,数字信号处理的理论得不到广泛的应用。一直到d s p 芯片诞生,数字信号处 理的理论研究成果才广泛应用到低成本的实际系统中。因此对d s p 芯片的研究对数 字信号处理理论的发展也有着重要的现实意义。 目前市场上最大的d s p 芯片供应商是美国的德州仪器( t e x a si n s t r u m e n t s , 简称t i ) 公司,其d s p 市场份额占全世界份额约百分之五十,其主要产品归为三 3 大系列:t m s 3 2 0 c 2 0 0 0 系列,t m $ 3 2 0 c 5 0 0 0 系列和t m s 3 2 0 c 6 0 0 0 系列。其他比较有 影响的d s p 芯片供应商还有美国模拟器件公司( a n a l o gd e v i c e ) 、m o t o r o l a 等。 1 2 基于s y s t e m c 的软硬件协同设计方法 随着集成电路制造技术的发展,电子系统变得越来越复杂,人们可以把复杂的 电子系统集成到一个芯片上,就形成了一个片上系统s o c 。为了提高集成电路的设 计效率,人们迫切需要一种语言单一地完成全部设计。这种语言必须能够用于描述 各种不同地抽象级别,能够胜任软硬件协同设计和验证,并且仿真速度快。这种设 计要求使得当前的设计语言向两个方向发展,一是扩展传统的硬件描述语言,使它 们具有系统描述的能力;二是扩展传统的高级语言c 和c 什,使它们支持硬件描 述。s y s t e m c 属于后者,并且发展前景良好。 s y s t e m c 本质上是在c + + 的基础上添加的硬件扩展库和仿真核,这使得 s y s t e m c 可以建模不同抽象级别的复杂电子系统一一既可以描述纯功能模型和系统 体系结构,也可以描述软硬件的具体实现。 s y s t e m c 源代码可以使用任何标准c + + 编译环境进行编译,生成可执行文件; 运行可执行文件可以生成v c d 、w i f 和i s d 8 格式的波形文件。可以使用综合工具将 s y s t e m c 的寄存器传输级描述综合为v e r i l o gh d l 代码用于f p g a 设计,也可以综 合为门电路用于a s i c 设计。 因此,基于s y s t e m c 的设计流程与传统的基于h d l 的设计流程的本质区别在 于,新的基于s y s t e m c 的设计流程在设计过程中使用一种语言就可以完成从系统到 r t l ,从软件到硬件的全部设计。整个设计的软硬件可以协同设计和仿真,大大提 高了设计的效率 5 。 1 3 论文结构说明 本课题的目标是设计一个以t i 公司的t m s 3 2 0 c 5 4 x 系列d s p 芯片为参考,并且 指令集与之兼容的d s p 核心单元。设计单元最后下载到a l t e r a 的f p g a 上进行功能 验证。 本文就是对上述课题的描述与总结,一共可以分为七章。 4 第二章主要介绍了当前数字信号处理芯片的发展状况,并且简要介绍了课题设 计的参考芯片t m s 3 2 0 c 5 4 x :第三章主要介绍了核心单元的结构,对于个模块进行 逐一介绍,并且介绍了流水线,以及冲突的解决方法:第四章介绍了寻址方式:第 五章介绍了所设计的指令系统,以及指令的条件执行这一特点;第六章介绍核心单 元的硬件实现;第七章介绍核心单元的验证和综合,包括系统验证和f p g a 验证的 介绍以及a s i c 综合的结果;第八章是全文的总结。 1 4 课题的意义与应用 本课题采用正向设计的方法进行了一个1 6 位定点d s p 核心单元的设计,该设 计以t m s 3 2 0 c 5 4 x 为参考,具有一定的实用意义。同时对d s p 核心单元的结构及一 些运算单元进行了研究。此外还在设计流程上尝试基于s y s t e m c 的设计方法,在设 计方法上作了一些有益的探索。 5 第二章数字信号处理器概述 本章简单说明了d s p 芯片的特点,对数字信号处理芯片和通用微处理器的芯片 进行了比较,简要介绍了d s p 芯片发展的历史以及t m s 3 2 0 c x x 系列d s p 芯片的性能 与优点,给出了课题选定参考芯片为t m s 3 2 0 c 5 4 x 系列芯片的理由。 2 1 数字信号处理器的特点 数字信号处理器一般具有以下特点 6 。 首先,数字信号处理芯片一般采用改进的哈佛结构( h a v a r ds t r u c t u r e ) 。不 同于传统的把程序和数据放在一个存储空间的冯诺依曼结构,哈佛结构主要特点 是程序和数据空间相对独立。显然,这样的结构比较复杂,但是由于可以同时对数 据和程序进行寻址,数据处理的能力被大大提高,因此非常适合于数字信号的实时 处理。 其次,数字信号处理芯片的指令系统采用流水线操作。在流水线操作中,个 任务被分解为若干个子任务来执行,各个子任务在执行的时候可以相互重叠。d s p 指令系统的流水线操作是和哙佛结构相配合的,增加了处理器的处理能力,把指令 周期减小到最小值,同时也就增加了信号处理器的吞吐量。以t i 公司的t m s 3 2 0 系 列产品为例,第一代t m s 3 2 0 处理器采用了二级流水;第二代产品采用了三级流 水:而t m s 3 2 0 c 5 4 x 系列芯片更是采用了六级流水。在流水线操作中,处理器可以 同时处理数条指令,每条指令处于其执行过程的不同阶段。 第三,数字信号处理芯片一般采用专用的硬件乘法器。在一般的计算机中,算 术逻辑单元只能完成两个数的加、减利逻辑运算。所有的乘法都是通过移位和加法 来完成的,因此实现乘法的速度就比较慢。但是在数字信号处理的算法中,一般有 大量的乘法运算存在,因此在d s p 芯片里面必需有一个专用的硬件乘法单元,使得 乘法运算能保证在一个周期里面被完成。 此外,数字信号处理芯片一般还拥有一套专门为数字信号处理而设计的指令系 统。芯片的集成化程度很高。整个体系结构一般采用并行方式。 6 数字信号处理器通用微处理器 丰要应用固定有限重复运算各种运算 存储器结构大多数采用哈佛结构,速度冯诺依曼结构,访问速度较 快慢 对密集乘法运算的专用硬件单元,单周期完成要求多个指令周期做一次乘法 支持乘加运算 数据运算溢出处理保护位、饱和处理异常中断处理 主要运算乘、加数据搬移 数据寻址专用的地址形成单元层次化地址形成 总线内部多总线层次化的总线 转移处理简单,无预测分支预测机制 开发工具的要求大多数d s p 厂商提供一些开通用微处理厂商一般不提供开 发工具发工具 2 2 数字信号处理器的发展 1 9 7 9 年i n t e l 公司推出了i n t e l 2 9 2 0 单片机。该单片机专门微处理模拟信号 而设计,它试图将数据采集与信号处理结合在一起。虽然它利用了一般微处理器的 硬件设计,但是它的体系结构与般的微处理器十分不同,如它的输入输出都是模 拟信号,指令长度固定,不设条件转移指令等。这些都是为实现早期的数字信号处 理做出选择,因此被看成第一块d s p 芯片。 1 9 8 2t i 推出了首款可编程通用数字信号处理器( d s p ) t m s 3 2 0 1 0d s p 。由 于t m s 系列数字信号处理器性能优越,开发系统完善,因而成为数字信号处理器中 的丰流产品。 随着大规模集成电路的发展,数字器件的体积和成本不断下降,运算速度不断 提高。这些成就促使数字信号处理技术进步发展,也推动了数字信号处理芯片的 发展。t i 公司是所有的数字信号处理器生产厂商中表现最突出的,该公司在d s p 芯片上取得的成就基本上代表了整个行业发展的趋势。 以下是t i 公司在第一代t m s 系列d s p 之后一些重要产品的推出年表。 1 9 8 4t m s 3 2 0 c 2 x 的面市使t i 成为推出第二代d s p 的第一家制造商。 7 1 9 8 5t i 采用c m o s 工艺技术制造了首款d s p 。 1 9 8 8t i 推出业界首款浮点d s p _ t m s 3 2 0 c 3 x 。 1 9 8 9t i 推出业界性能最高的固定点d s p 产品t m s 3 2 0 c 5 x ,它能以2 8 m i p s 的速率运行。该c 5 x 所提供的性能比其它任何固定点d s p 所能提供的都要高出二 到四倍。 1 9 9 0t i 推出第一款d s p 架构,即第二代浮点d s p 产品t m s 3 2 0 c 4 x ,它是 专门为采用并行数字信号处理、具有更高性能结构的系统而精心设计。t i 开发了 业界首款d s p 入门套件c 2 xd s k ,它是一种可使设计人员无需进行较大投资 便可利用实时数字信号处理进行实验,并将d s p 用于实时数字信号处理方面的 d s p 工具。 1 9 9 5t i 是第一家利用t m s 3 2 0 c 3 2 弥补了固定点与浮点d s p 性价比之间差距 的公司。t m s 3 2 0 c 3 2 运行速率为每秒4 ,0 0 0 万次浮点运算( m f l o p s ) 。t i 针对诸如 多功能电话、电力线监控器、调制解调器以及安全性系统等应用的高性能、低成本 固定点设计,推出了t m s 3 2 0 c 2 x x 。 1 9 9 6t i 宣布将向大众市场推出具有6 6 、8 0 及i o o m i p s 性能的 t m s 3 2 0 c 5 4 xd s p 。 1 9 9 7t i 推出全球功能最强大的d s p t m s 3 2 0 c 6 xd s p ,它能以 1 6 0 咖i p s 2 0 0 m h z 运行,性能是一般d s p 的l o 倍。 1 9 9 8 推出c o d ec o m p o s e rs t u d i o ,业界第一款集成化、开放式d s p 软件开 发环境,可将d s p 的编码时间缩短5 0 以上。 1 9 9 9 推出首款浮点d s p t m s 3 2 0 c 6 7 1 1 ,从而实现了卓越的浮点性价比。 推出业界速度最快的d s p t m s 3 2 0 c 6 2 0 3 ,其运行频率为3 0 0m h z ,执行速率 为2 4 0 0m i p s ,并可将最大量的内存封装到任何单核d s p 中。 2 0 0 3t i 再次打破自己创造的d s p 性能记录,推出业界第一款1 g h zd s p 。 2 2t m s 3 2 0 c 5 4 x 系列d s p 简介 t m s 3 2 0 c 5 4 x 系列d s p 芯片是t i 公司为了实现低功耗、高性能而专门设计的定 点d s p 芯片,适应远程通信等实时嵌入式应用的需要。c 5 4 x 有高度的操作灵活性 和运行速度。 8 芯片使用改进的啥佛结构,一共使用了8 条1 6 位的总线:1 条程序总线p b 用 来传送由程序存储器取出的指令操作码和立即数;3 条数据总线c b 、d b 和e b 用来 传输数据;4 条地址总线p a b 、c a b 、d a b 、e a b 用来传送执行指令所需的地址。芯 片还具有专用硬件逻辑的c p u 、片内存储器。片内外设以及高度专业化的指令集。 我们在下一章对芯片的结构进行详细的介绍。 t s m 3 2 0 c 5 4 x 的独特设计使得其拥有下列优点: ( 1 ) 围绕一组程序总线、三组数据总线和四组地址总线建立的改进的哈佛结 构,使得性能和多功能性得以提高: ( 2 ) 具有高度并行性和专用硬件逻辑的c p u 设计,使芯片性能大大提高: ( 3 ) 高度专业化的指令集,更适用于快速算法的实现; ( 4 ) 模块化的结构设计,使派生器件得到了更快的发展: ( 5 ) 最新的i c 制造工艺,提高了芯片性能,降低了功耗; ( 6 ) 芯片具有非常低的功耗。 目前。t m s 3 2 0 c 5 4 x 的应用非常广泛,因此是一款非常实用的定点d s p 。与t i 的c 6 0 0 0 系列d s p 相比,虽然在性能上略微逊色,但是结构简单合理。所以我们的 课题把它作为整个设计的参考依据。 9 第三章结构设计 本章主要对整个单元的结构作出描述,包括设计单元的总体结构概述、系统控 制单元的介绍、算术逻辑单元介绍、以及流水线的介绍介绍 3 。 3 1 总体结构概述 本课题设计的d s p 核心单元以t m s 3 2 0 c 5 4 x 系列d s p 芯片为参考,因此无论在 系统结构还是在指令集设计上都尽量和参考芯片吻合。 t m s 3 2 0 c 5 4 x 系列d s p 芯片是1 6 b i t 定点d s p 芯片,采用先进的修正的哈佛结 构。这种结构的指令和数据空间分开,具有很高的灵活性,便于进行数据的并行处 理和传送,为实现流水线作业提供了方便。 t m s 3 2 0 c 5 4 x 片内包含一组程序总线和三组数据总线。程序总线p b 、数据总线 d b 和c b 、以及写存储器总线e b 是分开的。程序总线用于传送指令码以及操作码; 数据总线传送从存储器读出的数据;写存储器总线则是传送准备写入存储器的数 据。对应的地址总线:程序地址总线p a 、数据地址总线d a 和c a 、以及写存储器数 据总线e a 用来传送指令执行所需的地址数据。 片内还包含有下列主要的运算单元:一个4 0 b i t 的算术逻辑单元( a l u ) :一 个4 0 b i t 的桶形移位器:两个独立的4 0 b i t 的累加器;个1 7x1 7 b i t 的并行乘法 器,连接一个4 0 b i t 的专用加法器组成一个单周期的乘如运算单元;一个比较、选 择和存储单元( c s s u ) ;一个用于计算指数值的指数编码发生器。此外,还包括八 个辅助寄存器( a r o a r 7 ) 和两个辅助寄存器算术单元。 另外,t m s 3 2 0 c 5 4 x 的存储器分程序区、数据区和i o 空间三个部分。 l o 下图为整个核心单元的功能框图: 图3 1 2 1 核心单元的功能框图 3 2 系统控制单元 3 2 1 状态寄存器 课题设计的核心单元有两个状态寄存器s t o 和s t l 。这两个寄存器中位的值可 以通过指令s s b x 和r s b x 进行修改,例如,可以通过指令s s b x1 ,s x m 来对s t l 中 的位扩展位进行置位,也可以通过指令r s b x1 ,s x m 对位扩展位进行复位清0 。状 态寄存器中的a r p 、d p 、和a s m 的位可以通过l d 指令和短立即数来置入需要的数 据。a s m 和d p 还可以通过l d 指令和数据寄存器里的数据来迸行修改。 下图是对状态寄存器s t o 的说明。 图3 2 1 1 状态寄存器s t o 下面我们对状态寄存器s t o 的各个位进行详细说明。 位 名复作用 称位 值 1 5a r po辅助寄存器指针。 这个3 b i t 的指针用来在单操作数间接寻址方式中用来选择寻址 1 3 所需的辅助寄存器。当c m p t 的值为0 时,即d s p 在标准模式, a r p 总是被置0 。 1 2t cl测试控制标志。 t c 用来存储算术逻辑单元a l u 的位测试操作的结果。t c 会受到 指令b i t 、b i t f 、b i t t 、c m p m 、c m p r 、c m p s 和$ f t c 指令的影 响。t c 也可以用来做条件执行的一种条件。 当下列情况有其中之一发生时,t c 置l 。 1 2 1 、b i t 或者b i t t 指令测试的位为l 2 、指令c m p m 、c m p r 或者c m p s 比较的条件存在 3 、s f t c 测试的累加器第3 0 和第3 l 位有不同的值 1 1c1进位。 在加法产生进位的时候被置l :在减法产生借位的时候被清成 0 。所有影响c 位的操作都在算术逻辑单元a l u 里面操作,除了 加法和减法之外,还有m i n 、m a x 、a b s 、n e g 指令以及移位指 令。 1 0o v a0累加器a 的溢出标志位。 当a l u 或者计算结果存入累加器a 的乘加单元产生溢出时,该标 志位被置成l 。一旦被置1 ,该位一直要到复位信号或者相关条 件执行指令出现才被清除。当然,指令r s b x 指令可以清除这个 位。 9o v bo 累加器b 的溢出标志位。 当a l u 或者计算结果存入累加器b 的乘加单元产生溢出时,该标 志位被置成1 。一旦被置1 ,该位一直要到复位信号或者相关条 件执行指令出现才被清除。当然,指令r s b x 指令可以清除这个 位。 8 一d po 数据存储单元页指针。 o 这个9 b i t 的指针在直接寻址方式中和指令码的低7 位结合形成 一个1 6 位的地址对数据存储单元进行寻址。d p 值可以通过l d 指 令来进行修改。 下图是对状态寄存器s t l 的说明。 b i t1 51 41 31 2l l1 0987 654 一o 图3 2 1 2 状态寄存器s t i 下面我们对状态寄存器s t l 的各个位进行详细说明。 | 位 名称复功能 位 值 1 5b r a fo块重复激活标志。 b r a f 用来标志块重复运算现在是否处于激活状态。 b r a f = o 表示块重复目前没有激活。在快重复计数器b r c 减到o 或 者小于0 的时候,b r a f 被清零。 b r a f = i 表示块重复处于激活状态。当r p t b 指令被执行,b r a f 就 被置1 。 1 4c p lo编译方式位。 c p l 用来决定在相关的寻址方式中使用的指针。 c p l = o 相关的直接寻址方式中,使用数据页指针d p 来进行寻址。 c p l = i 相关的直接寻址方式中,使用堆栈指针s p 来进行寻址。 1 3x f1 x f 状态。 x f 用来表示外部标志管脚的状态。s s b x 可以将其置l ,r s b x 可以 将其清0 。 1 2h mo保持模式。 h m 用来决定在外部收到h o l d 信号的时候,处理器是否继续执行 内部的程序。 h m = o 处理器继续执行内部程序存储器里的程序,把外部借口置为 高阻状态。 h m = i 处理器暂停内部程序的执行。 l li n t ml中断模式。 i n t m 用来屏蔽中断或者打开中断。 i n t m = o 所有未屏蔽的中断被打开。 i n t m = i 所有可屏蔽中断都被关闭。 s s b x 指令可以将i n t m 置l ;r s b x 指令可以将i n t m 清0 。在复位 指令或者可屏蔽中断( 比如i n t r 或者外部中断) 发生时,i n t m 被置l 。当从中断返回时,i n t m 被清0 。 1 0oo 保留 9o v m0 溢出模式。 溢出模式决定在溢出发生时数据结果存入目标累加器的模式。 o v m = o 从a l u 或者乘加单元产生的结果被不加修改地放入目标累 加器。 o v m = i 在溢出发生的时候,目标累加器要么被置成最大正值 1 4 0 0 7 f f f f f f f h ,要么被置成最小负值f f 8 0 0 0 0 0 0 0 h 。 s s b x 可以将其置l ,r s b x 可以将其清0 。 8s x m1位扩展模式。 s x m 决定是否进行位扩展。 s x m = o 位扩展不执行。 s x m = i 数据在被a l u 进行处理之前先进行位扩展。 有一部分运算指令不受s x m 位的影响。例如a d d s ,l d u ,m a c ,s u b s 无论s x m 的值是什么都不进行位扩展。 s s b x 指令和r s b x 指令可以对该位进行修改。 7c 1 6o 双1 6 位双精度算术模式。 c 1 6 决定a l u 算术运算的模式。 c 1 6 = 0a l u 运算采用双精度算术模式。 c 1 6 :1a l u 运算采用双1 6 位模式。 6f r c to 小数模式。 当f r c t 位为l 时,乘法器的输出左移一位补偿额外的一个符号 位。 5c m p to 兼容模式。 c m p t 决定a r p 的兼容模式。 c m p t = oa r p 在单操作数间接寻址方式中不被更新,而是始终为 o 。 c m p t = ia r p 在单操作数间接寻址方式中被更新。 4a s m0 累加器移位模式。 5 b i t 的a s m 决定一个范围从一1 6 到1 5 的一个值,并且被看成是一 o 卜二进制 b 码的数据。部分移位存储指令使用a s 惦作为移位数的 输入,例如s t h ,s t l ,a d d ,s u b 和l d 。a s m 可以通过l d 指令和 短立即数进行修改。 3 , 2 2 中断 一般说来,处理器的中断可以分为软件中断和硬件中断。中断发生的时候,处 理器暂停主程序的执行,跳入到中断服务程序当中。课题设计的核心单元以c 5 4 x 1 5 为依据,因此既支持软件中断也支持硬件中断。 软件中断是由程序指令产生的,例如i n t r ,t r a p 和r e s e t 。 硬件中断则是由设备的一个信号产生,例如硬件复位。 中断还可以根据是否可以被屏蔽的特性分为可屏蔽中断和不可屏蔽中断。可屏 蔽中断可以被设置成禁止中断或者允许中断,例如i n t o 。不可屏蔽中断在中断请 求发出后总是被响应,这类中断包括所有的软件中断利硬件复位。 一次中断的发生可以分为三个阶段,即请求中断,响应中断和执行中断服务程 序。硬件中断请求可以通过信号i n t 3 一i n t o 请求,也可以通过复位信号以及其他 外设来请求。软件中断请求可以来源于下列指令: i n t r ,可执行任何中断服务程序,入口的地址由指令操作字决定。在响应 i n t r 中断的时候,s t l 中的中断模式字置1 ,用以屏蔽掉可屏蔽中断。 t r a p ,与i n t r 类似,只是不设置中断模式字。 r e s e t ,这条指令执行不可屏蔽软件复位。 在c p u 接收到硬件或软件的申请后,对是否响应该中断作出判断。如果要响应 中断,系统要进行以下工作: 1 、把程序计数器p c 的值压入堆栈; 2 、把中断矢量的地址装入p c ; 3 、执行中断服务程序: 4 、遇到返回指令,从堆栈弹回地址并装入p c ; 5 、继续执行主程序。 值得一提的是复位中断没有中断服务程序要执行,只是对系统的寄存器进行操 作,使它们回到需要的复位状态。 3 2 3 片上r a m d s p 核心单元提供个片上数据r a m ,这个片上数据r a m 可以根据需要作为数 据存储器用,也可以作为程序存储器来用。 在设计过程中,片上数据r 心块的大小可以根据需要进行调整。在系统的设计 和仿真阶段,片上数据r a m 保留得比较大,以保证系统设计的正确性。在综合和 f p g a 仿真阶段,为了加速设计的进程,我们减小了片上数据r a m 的规格,仅用来 保证整个系统的验证能够顺利地完成。 1 6 系统可以通过各种寻址方式对片上r a m 进行寻址,我们在第四章对各种寻址方 式进行详细的描述。 3 2 4 主要寄存器 系统的主要寄存器除了前面章节已经叙述的状态寄存器外,还包括八个辅助寄 存器a r o - - a r 7 、程序计数器p c 、循环计数器r c 、块循环计数器b r c 、块循环开始 地址寄存器r s a 、块循环结束地址寄存器r e a 等。本小节将对这些寄存器作一个简 单的介绍。 辅助寄存器a r o a r 8 d s p 核心单元提供8 个辅助寄存器,即a r o a r 7 。辅助寄存器的主要功能可以 用来作为数据的存储寄存器,也可以用来进行间接寻址。辅助寄存器的数据存储功 能一般是用户在编程的时候作为数据的暂存来使用。辅助寄存器的间接寻址功能, 我们将在下面相关的章节进行阐述。 程序计数器p c p c 是一个1 6 位的寄存器。p c 内存储的是程序执行所需指令的内部或者外部程 序的地址。在寻址程序存储器前,相应的p c 值应该被放在程序地址总线p a b 上。 系统会在根据p c 值完成取指之后,自动增加p c 的值。但是如果遇到程序地址不连 续,比如跳转、返回、调用、中断等,就必须根据指令对p c 值进行修改。 下表列出了修改p c 值的几种情况: 操作载入的p c 值 复位 f f s o 跳转跳转地址,一般是跟在指令后的1 6 位立即数 块循环在一次循环结束,装入块循环开始地址寄存器r s a 存的块循环起始地 址 调用予程调用时,载入子程序入口地址 序返回时,载入堆栈中存储的调用前执行地址 中断中断向量指向的地址 1 7 循环计数器r c 循环计数器r c 是一个1 6 位的寄存器,用来保存单一指令循环的循环次数。r c 的值只能由重复指令r p t 来确定而不能对r c 寄存器进行直接的修改。一次给定最 大的单一指令循环次数是6 5 5 3 6 次。单一指令执行一次,r c 寄存器数值减l ,一直 减到0 为止,循环执行随即停止。 块循环计数器b r c 块循环计数器b r c 用来存储块循环的循环次数。其作用与循环计数器r c 类 似。块循环次数最大为6 5 5 3 6 次。在b r c 的值为0 时,块循环结束。 块循环起始地址寄存器r s a 和块循环结束地址寄存器r e a 块循环起始地址寄存器r s a 用来在块循环过程中记录循环块的起始地址。每次 执行到块的末尾时,如果b r c 不为0 ,即循环应该继续。块循环起始地址寄存器 r s a 的值就被置入p c 。 块循环结束地址寄存器r e a 用来在块循环过程中记录循环块的结束地址。一般 用来跟p c 值进行比对。以确定程序是否已经执行到循环块的末尾。 3 3 中央处理器单元 下面我们介绍一下课题设计的d s p 核心单元的中央处理器里的些主要算术逻 辑单元。 3 3 1 算术逻辑单元a l u 中央处理单元包含一个4 0 b i t 的算术逻辑单元a l u 。a l u 可以用来进行逻辑运 算,也可以用来进行算术运算,一般的运算都在一个c l o c k 里面完成,运算得到的 结果存放在累加器里面。 下图为a l u 的基本功能框图 1 8 图3 3 1 1a l u 的结构图 器输出 a l u 的运算需要两个操作数。其中一个操作数有两个输入来源:一是桶形移位 器的输出、另一个是数据总线d b 。另外一个操作数则有四个输入来源:累加器a 、 累加器b 、数据总线c b 和t 寄存器。由于数据总线只有1 6 位,当操作数从数据总 线载入时,要对其进行位扩展,位扩展的方式由位s x m 的值来决定。如果s x m 的值 为0 ,则在高位填0 进行扩展;如果s x m 的值为1 ,则对操作数的符号位进行展。 a 叫中还可以进行溢出的处理,即在结果溢出时输出最大值或者最小值。溢出 处理是否进行的依据是系统状态控制寄存器s t l 中的溢出模式位o v m 的值。当o v m 位的值为0 时,a l u 的输出不作任何修改即被装载到累加器里面:当o v m 位的值为 1 时,输出值根据计算结果被修改为最大正值0 0 7 f f f f f f f h 或最大的负值 o f f 8 0 0 0 0 0 0 h 。当溢出发生时,系统的另一个状态寄存器s t o 中的累加器溢出标志 位o v a 和o v b 将根据累加器的使用情况进行置位。置位后的状态将直保持,除非 有下列情况中的一种发生: 1 系统复位; 2 状态操作指令执行; 3 o v a o v b 位被强制复位: 1 9 a l u 的进位c 受大多数算术运算的影响,但是一般不受逻辑运算的影响,也 不受装载等指令的影响。进位c 的值可以被用来作为一个条件执行的依据。当系统 复微的时候,c 被置位。此外指令r s b x 和s s b x 可以直接对进位c 进行修改。 对于算术运算,a l u 还可以被设置成双t 6 b i t 的模式。在这种模式下,a l u 可 以在一个c y c l e 里面进行两个1 6 位的运算,比如同时进行两个加法或者同时进行 两个减法。这种模式执行的依据是系统状态寄存器s t l 中的c 1 6 位。一般说来,这 种模式对v it e t b i 算法特别有帮助。 3 3 。2 累加器 课题设计的d s p 核,心单元有两个4 0 b i t 的累加器。它们都可被用来作为乘加单 元或者a l u 运算结果的存放单元。此外,也可被用来执行m a x 利m i n 命令。 累加器可以分成三个部分:保护位( b i t s 3 9 - - 3 2 ) 、高位字( b i t s 3 1 1 6 ) 和低位 字( b i t s l 5 0 ) 。如下图所示。 3 9 3 23 卜1 6 1 5 一o l a g b g l a h b h l a l b l i 保护位高位字低位字 图3 3 2 1 累加器 其中,保护位用来作为计算的前部留空,防止在叠代运算( 比如自相关) 中产 生溢出。 我们可以通过s t h ,g t l 等指令把累加器里面的值存储到数据存储单元里面, 在存入之前还可以根据需要对数据进行左移或者右移。例如,我们用s h l 指令来存 储经过移位后的累加器低1 6 位数据。如果是左移的话,那么a l b l 移入a h b h , 低位补o ;如果是右移的话,那么a h b h 移入a l b l ,高位补0 ,低位被舍弃。由 于移位是在桶形移位器中进行的,因此累加器中的数值在移位前后并不发生改变。 下例给出关于移位的结果,我们假设一开始,累加器a 的值位o f f1 2 3 44 3 2 1 h 。 s t ha 8 ,t e m p :t e m p = 2 1 1 2 h s t ha ,一8 t e m p :t e i d p = f f 4 3 h s t la ,8 ,t e m p :t e m p = 3 4 0 0 h s t la ,一8 ,t e m p :t e k i p = 2 1 1 2 b 2 0 在移位后,累加器还对数据进行必要的饱和处理。饱和处理的方式根据系统状 态控制寄存器中的s x m 位来进行。当s x m 位的值为0 时,若4 0 累加器的值大于 7 f f ff f f f h ,则3 2 位输出值为7 f f ff f f f h ;当s x g 位的值为l 时,若4 0 位累加 器的值大于7 f f ff f f f h ,则3 2 位输出值为7 f f ff f f f h ;若4 0 位累加器的值小于 8 0 0 00 0 0 0 h ,则3 2 位输出值位8 0 0 00 0 0 0 h 。 此外,d s p 的移位和循环移位指令通过进位c 和累加器一起来完成。主要的指 令有这些:s f t a ( 算术移位) 、s f t l ( 逻辑移位) 、s f t c ( 条件移位) 、r o l ( 循环左 移) 、r o r ( 循环右移) 和r o l t c ( 带t c 的循环左移) 。 在指令s f t a 和s f t l 中,移位值s h i f t 定义为 一1 6 ,1 5 其中,s f t a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年特定项目融资保密协议范本
- 2024年顶管施工合作协议模板
- 2024年新汽车抵押借款协议示例
- 反担保借款协议模板:公司风险共担条款
- 2024年货车出租协议样本
- 2024年进口天然石材荒料销售协议
- 2024年创新型医疗器械研发合作协议
- 2024商业交易促成居间协议样本
- 2024年度跨国商业合作协议模板
- 2024年工业产品销售代理规范协议
- 安全使用家电和煤气课件
- 《GPS测量与数据处理》-第3讲 全球定位系统组成及信号结构
- 前置胎盘详解课件
- 达尔文的“进化论”课件
- 国开电大《建筑测量》实验报告1
- 《火灾自动报警系统设计规范》
- 南京市小学一年级语文上学期期中试卷
- 合肥工业大学-孙冠东-答辩通用PPT模板
- 国开作业《管理学基础》管理实训:第一章访问一个工商企业或一位管理者参考(含答案)280
- 膀胱过度活动症的诊断与治疗
- 幼儿园绘本故事:《神奇雨伞店》 课件
评论
0/150
提交评论