




已阅读5页,还剩82页未读, 继续免费阅读
(微电子学与固体电子学专业论文)基于verilog语言的dma控制器的设计与仿真.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 d m a 是存储器直接存取( d i r e c tm e m o r ya c c e s s ) 方式的缩写,它是指 一种高速的数据传输操作方式,允许在外部设备和存储器之间直接读写 数据而不需要通过c p u 暂存。整个数据传输操作需要在d m a 控制器 f d m a c ) 控制下占用系统总线来完成。采用d m a 控制器来控制内存与外 设之间的数据交流,不需要c p u 的干预,减少了中间环节,所以可以大 大提高数据传送的速率。由于计算机技术的飞速发展,c p u 的运行速度 越来越快,使得d m a 控制器的研究与设计越来越受到关注。 本文首先介绍了d m a 技术的基本概念,而后介绍了d m a 控制器的 基本功能、基本结构和工作原理等。在此基础上,基于v e r i l o gh d l 语 言设计出一个同步d m a 控制器的电路系统,并利用m o d e l s i ms e5 6 b 对源程序进行了编译和功能仿真,最后利用s y n p l i f y7 3 4 对电路进行了 综合实现。 本文在基于v e r i l o gh d l 设计d m a 控制器时,采用的是t o p d o w n 的设计方法。d m a 控制器电路系统是由数据寄存器、地址产生器、状态 控制器三个子模块组成,并且整个d m a 控制器电路系统的编译、仿真 和综合是在对三个子模块分别进行编译、仿真和综合的基础上完成的。 关键词:d m ad m a 控制器 v e r i l o gh d l 仿真 综合 a b s t r a c t a bs t r a c t d m ai st h ea b b r e v i a t i o no fd i r e c tm e m o r ya c c e s s ,i ti saf a s td a t a t r a n s f e ro p e r a t i n gm o d et h r o u g hw h i c ho u t s i d ed e v i c ea n dm e m o r yc a n w r i t ea n dr e a dd a t ae a c ho t h e rd i r e c t l yw i t h o u tt h et e m p o r a r ys t o r eo fc p u t h ew h o l eo p e r a t i n gp r o c e s sm u s to c c u p yt h es y s t e mb u su n d e rt h ec o n t r o l o fd m ac o n t r o l l e r d m a cc o n t r o lt h ed a t ae x c h a n g eb e t w e e nt h eo u t s i d e d e v i c ea n dm e m o r y ,w h i c hd o n tn e e dt h ei n t e r v e n t i o no fc p u ,s oi tc a n r e d u c et h em i d d l eu n n e c e s s a r yp r o c e s sa n di m p r o v eg r e a t l yt h es p e e do ft h e d a t at r a n s f e r t o d a yt h ec o m p u t e rt e c h n o l o g yi sd e v e l o p i n gq u i c k l ya n dt h e w o r ks p e e do fc p ui sf a s t e ra n df a s t e r ,w h i c hm a k ep e o p l e p a ym o r e a t t e n t i o nt ot h er e s e a r c ha n dd e s i g no fd m a c i nt h i sd i s s e r t a t i o n ,ab r i e fv i e wo ft h et h e o r yb a s i co fd m a t e c h n i q u e s i sp r o v i d e d n e x tt h eb a s i cf u n c t i o na n ds t r u c t u r eo fd m a c 。t h ew o r k p r i n c i p l eo fd m a ca n ds oo na r ei n t r o d u c e d t h e nd e s i g n e das y n c h r o n o u s d m a cc i r c u i ts y s t e mb a s e do nv e r i l o gh d l ,c o m p l i e da n ds i m u l a t e dt h e c o d eu s i n gm o d e l s i ms e 5 6 b ,i m p l e m e n t e dt h es y n t h e s i so fd m a cc i r c u i t s y s t e mu s i n gs y n p l i f y i nt h i sd i s s e r t a t i o n ,t h ed e s i g nm e t h o do fd m a ci s t o p - d o w n t h e c i r c u i ts y s t e mi sm a d eo ft h r e em o d u l e si n c l u d e “d a t ar e g i s t e r ”,a d d r e s s e s g e n e r a t o r a n d s t a t ec o n t r o l l e r a tt h es a m et i m e ,t h r e em o d u l e sa r e c o m p i l e d ,s i m u l a t e da n ds y n t h e s i z e db e f o r et h ew h o l ed m a cc i r c u i ts y s t e m i sd o n e k e y w o r d :d m a d m ac o n t r o l l e r v e r i l o gh d l s i m u l a t i o n s y n t h e s i s 独创性( 或创新性) 声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:荡g 生日期匕22 :f :羔孓 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论 文在解密后遵守此规定) 本学位论文属于保密在一年解密后适用本授权书。 本人签名:聋堡垒日期羔当! ! ! 羔堇 导师签名:亭黔 日期j 上令二出 第一章绪论 第一章绪论 1 1 研究意义 计算机技术的发展,使数据交换的速度不断提高,外部设备需要与 内存进行高速大批量的数据传送。而一般的数据传送( 包括程序查询传 送、中断传送等) 是在c p u 的控制下进行的,即c p u 向地址总线和控制总 线发出双方的地址和控制信息,再将要传送的数据送到数据总线并经过 c p u 的累加器转送到存储单元或外部设备端口。且每次传送的位数有限 ( 最多不超过c p u 数据线宽度) ,其数据传送速度要比内存的存储速度低 得多。经c p u 进行大批量的数据传送是很不经济的,尤其是不适合要求实 时传送数据的场合。所以,对量大、高速的i o 数据可采用直接存储器方 式( d i r e c tm e m o r ya c c e s s ) ,简称d m a 方式【1 】【2 1 。目前,d m a 在高速数 据传输、慢速设备管理、零散数据收集等方面得到了广泛应用。智能化 和通道化是d m a 发展的趋势【l 引。 随着集成电路规模按照摩尔定律飞速提高,片上系统( s y s t e mo n c h i p ,简称s o c ) 技术成为超大规模集成电路的发展趋势。在s o c 系统 设计中,为了能够快速、稳定的形成产品,i p 核的积累和复用技术逐渐 成为各个芯片厂商的首选。在这样的背景下,i p 复用技术成为集成电路 设计的一个重要分支,很多设计厂商在购买其他公司的i p 核的同时,也 越来越重视公司的i p 核设计和积累。d m a 控制器是常见的总线设备之 一,国外很多厂商都有自己的d m a 控制器l p 核。比如嵌入式处理器的 龙头一a r m 公司就可以对客户提供d m a 控制器解决方案,另外 f r e e s c a l e ( 飞思卡尔) 、f u j i t s u ( 富士通) 等芯片制造厂商都有自己的 d m a 控制器解决方案 3 1 。 考虑到国内在d m a 控制器研究方面的不足,我们着手研究d m a 控 制器的功能、结构,最终设计出一个同步d m a 控制器的电路系统。 1 2 1d m a 传送的特点 1 2d m a 概述 d m a 传送的基本特点是不经过c p u ,用硬件实现存储器和存储器 2 基于v e r i l o g 语言的d m a 控制器的设计与仿真 之间、存储器和i o 设备之间的高速数据传送,减少了中间环节,而且 存储器地址的修改和传送完成的报告均由硬件自动完成,大大提高了传 送速度。 d m a 传送通常是采用d m a 控制器( d m ac o n t r o l l e r ,简称d m a c ) 来取代c p u ,由它负责d m a 传送的全过程控制。 1 2 2d m a 传送的阶段 从传送过程来看,d m a 传送方式和中断方式一样,从开始到结束的 全过程有几个阶段。在d m a 操作开始之前,用户应根据需要先对d m a c 编程,把要传送的数据字节数、数据在存储器的起始地址、数据的传送 方向、要使用的d m a c 通道号等信息送到d m a c ,这就是d m a c 的初 始化。初始化完成之后,就等待外部设备准备好来申请d m a 传送【2 1 1 。 d m a 传送系统示意图如图1 1 所示。 图1 1d m a 传送系统 ( 1 ) 申请阶段:在初始化工作完成之后,若外部设备要求系统以d m a 方式为之服务,则向d m a c 发出请求信号d r e q ;d m a c 如果允许外部 设备的请求,就进一步向c p u 发出总线请求信号h o l dr e q u e s t ( h r q ) ,申请占用总线。 ( 2 ) 响应阶段:c p u 在每个总线周期结束时检测h r q 是否有效,当 h r q 有效并且总线锁定信号l o c k 无效时,响应d m a c 的h r q 请求, 进入保持状态,使c p u 一侧的总线“浮空”,c p u 脱开总线,同时以总线 保持回答信号h o l d a c k ( h l d a ) :总线已让出;d m a c 一侧则接管总 线。此时,d m a c 正式成为系统的主控者。 ( 3 ) 数据传送阶段:d m a c 接管总线成为主控者之后,一方面以d m a 请求回答信号d a c k 通知发出请求的外部设备,使之成为被选中的d m a 传送设备;同时d m a c 行使总线控制权,向存储器发送地址信号、向存 第一章绪论 储器及外设发送读写控制信号,控制数据按初始化设定的方向传送。 ( 4 ) 传送结束阶段:当初始化规定的数据字节数传送完毕后,d m a c 就产生一个“计数已到”或“过程结束”的信号,并发送给外设。外设收到 此信号,认为它请求传送的数据己完毕,于是就撤销d m a 请求信号 d r e q ,从而使得总线请求信号h r q 和总线回答信号h l d a 相继变为无 效,d m a c 脱开总线,d m a c 一侧的总线“浮空”,c p u 一侧的总线“接 通”,c p u 又重新控制总线。至此,一次d m a 传送结束。如果需要,还 可以用“过程结束”信号引发一个中断请求,由c p u 去处理d m a 传送结 束后的事宜 2 1 。 1 2 3d m a 传送的应用 d m a 传送主要用于需要高速率、大批量的数据传送系统中,用以提 高数据的吞吐率,广泛应用于磁盘数据存取、静动态图像处理、高速数 据采集系统、同步数据通信等方面 2 1 】。但是d m a 传送方式增加了系统 硬件的复杂性和成本,因为d m a 方式和其他传送方式相比,d m a 方式 是用硬件控制代替了软件控制。另外,在d m a 传送期间,d m a c 占用 系统总线,使得c p u 失去了对系统总线的控制,这可能会影响c p u 对 某些重要中断请求的及时响应与处理。因此,在一些小系统或速度要求 不高、数据传输量不大的系统中,一般并不用d m a 方式j 。 1 3 内容编排 3 本论文的内容编排如下:第一章是绪论,概述了d m a 技术的基础知 识,包括其特点和应用;在第二章中介绍了基本d m a 控制器实现数据直 接存储器存取的工作原理,包括d m a 控制器的组成、基本功能、工作过 程、工作方式等,同时也对两种常用同步d m a 控制器进行了简单介绍; 第三章是本论文的核心部分,在这一章中概述了d m a 控制器的运行环境, 及d m a 控制器与周边环境之间的相互作用,并在此基础上提出了设计 d m a 控制器的相关技术要求。同时,根据技术要求确定d m a 控制器的设 计方案( 顶层设计) ,借助于硬件描述语言v e r i l o gh d l 建立d m a 控制器的 行为模型:在第四章中为行为模型编写t e s t b e n e h 程序代码,利用m o d e l s i m 对所建模型进行编译和仿真测试,检验是否达到设计要求;第五章是对 第三章和第四章的补充,利用e d a 综合工具s y n p l i f y 对电路进行综合实 4 基于v c r i l o g 语言的d m a 控制器的设计与仿真 现;最后在第六章对全文进行了总结。 第二章d m a 控制器的工作原理 第二章d m a 控制器的工作原理 要完成一个d m a 控制器电路系统的设计,就必须对d m a 控制器的 工作原理有清楚的认识和了解。本章就是对基本的d m a 控制器的工作 原理进行了介绍,包括d m a 控制器的基本组成、基本功能、工作状态、 工作过程、操作类型、基本方法、传送方式等。同时还对选择型和多路 型d m a 控制器进行了简单介绍。本章最后是对d m a 控制器的应用和发 展趋势的介绍。 2 1 基本的d m a 控制器 2 1 1d m a 控制器的基本组成 一个d m a 控制器,实际上是采用d m a 方式的外围设备与系统总线 之间的接口电路,这个接口电路是在中断接口的基础上再加d m a 机构 组成。习惯上将d m a 方式的接口电路称为d m a 控制器。图2 1 给出了 一个最简单的d m a 控制器组成示意图【16 1 。 图2 1d m a 控制器组成 ( 1 ) 内存地址计数器:用于存放内存中要交换的数据的地址。在d m a 传送前,须通过程序将数据在内存中的起始位置( 首地址) 送到内存地址 计数器。而当d m a 传送时,每交换一次数据,将地址计数器加“1 ”, 6 基于v e r i t o g 语言的d m a 控制器的设计与仿真 从而以增量方式给出内存中要交换的一批数据的地址。 ( 2 ) 字计数器:用于记录传送数据块的长度( 多少字数) 。其内容也是 在数据传送之前由程序预置,交换的字数通常以补码形式表示。在d m a 传送时,每传送一个字,字计数器就加“1 ”。当计数器溢出即最高位产 生进位时,表示这批数据传送完毕,于是引起d m a 控制器向c p u 发出 中断信号。 ( 3 ) 数据缓冲寄存器:用于暂存每次传送的数据( 一个字) 。当输入 时,由设备( 如磁盘) 送往数据缓冲寄存器,再由缓冲寄存器通过数据总 线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器, 然后再送到设备。 ( 4 ) “d m a 请求”标志:每当设备准备好一个数据字后给出一个控制 信号,使“d m a 请求”标志置“1 ”。该标志置位后向“控制状态”逻辑发出 d m a 请求,后者又向c p u 发出总线使用权的请求( h o l d ) ,c p u 响应 此请求后发回响应信号h l d a ,“控制状态”逻辑接收此信号后发出d m a 响应信号,使“d m a 请求”标志复位,为交换下一个字做好准备。 ( 5 ) “控n 状态”逻辑:由控制和时序电路以及状态标志等组成,用 于修改内存地址计数器和字计数器,指定传送类型( 输入或输出) ,并对 “d m a 请求”信号和c p u 响应信号进行协调和同步。 ( 6 ) 中断机构:当字计数器溢出时( 全0 ) ,意味着一组数据交换完毕, 由溢出信号触发中断机构,向c p u 提出中断报告。 2 1 2d m a 控制器的基本功能 一般的d m a 控制器应该具备下面的基本功能: ( 1 ) 能接收c p u 编程,以便进行功能设定。 ( 2 ) 能向c p u 发出d m a 请求信号。 ( 3 ) 在c p u 响应d m a 请求后能接管系统总线进入d m a 周期。 ( 4 ) 能向地址总线发出地址信号。 ( 5 ) 能向控制总线发出读写控制信号。 ( 6 ) 能控制所传送数据的字节数。 ( 7 ) 能判断d m a 操作是否结束,在结束时发出结束信号并释放总线。 有些d m a c 芯片和模块在这些基本功能的基础上还增加了一些新 的功能。如:在d m a 传送结束时产生中断请求信号;在传送有一个字 节数后输出一个脉冲信号,用于记录已传送的字节数、为外部提供周期 第二章d m a 控制器的工作原理 性的脉冲序列;在一个数据块传送完看能自动装入新的起始地址和字节 数,以便重复传送一个数据块或将几个数据块链接起来传送;产生两个 存储器地址,从而实现存储器与存储器之间的传送以及能够对i o 设备 寻址,实现i o 设备与i o 设备之间的传送以及能够在传送过程中检索 某一特定字节或者进行数据检验等等1 1 i 【1 2 1 。 2 1 3d m a 控制器的工作状态 d m a c 是作为两种存储实体之间实现高速数据传送而设计的专用处 理器。它与其他外围接口控制器件不同,它具有接管和控制计算机系统 总线( 包括数据、地址和控制总线) 的能力,即它能取代c p u 而成为系 统的主控者。但在它取得总线控制权之前,又与其他i o 接口芯片一样 受c p u 的控制。因此,d m a 控制器在系统中有两种工作状态:主动态 与被动态【2 j 。 ( 1 ) 主动态 在d m a c 获得总线控制权之后,d m a c 取代c p u 而成为系统的主 控者,系统在它的控制下,使i o 设备和存储器之间进行直接的数据传 送。d m a 的这种工作方式为主动态。在主动态下,d m a 读操作时,发 出存储器读信号及i o 写信号,数据从存储器传送到外部设备;d m a 写 操作时,发出i o 读信号及存储器写信号,数据从外部设备传送到存储 器【14 1 。 ( 2 ) 被动态 在d m a c 获得总线控制权之前,d m a c 受c p u 控制。此时,c p u 可对d m a c 进行初始化编程,以确定通道的选择、数据传送的方式和类 型、内存单元起始地址、地址是递增还是递减以及传送的总字节数,也 可以从d m a c 中读出状态。当d m a c 上电或复位时,d m a c 自动处于 被动态。 通过对d m a c 在系统中的两种工作状态的分析可知:在d m a 操作 过程中,总线控制权在d m a c 与c p u 之间转移。当d m a c 收到从外部 设备发出的请求信号时,d m a c 经判优及屏蔽处理后向总线仲裁器送出 总线请求信号要求占用总线。经总线仲裁器裁决,c p u 完成总线周期后 进入总线保持状态,使c p u 对总线的控制失效,并发出总线回答信号通 知d m a c ,c p u 已交出系统总线控制权。此时d m a c 接管总线控制权, 然后由它向i o 设备发出d m a 应答信号。 7 基于v e r i l o g 语言的d m a 控制器的设计与仿真 2 1 4d m a 控制器的工作过程 如图2 2 ,d m a c 的工作过程主要是: ( 1 ) 外设向d m a c 发d m a 传送请求。d m a c 通过连接到c p u 的 h o l d 信号向c p u 提出d m a 请求。c p u 在完成当前总线操作后立即对 d m a 请求做出响应。c p u 的响应包括两个方面:一方面,c p u 将控制 总线、数据总线和地址总线浮空,即放弃对这些总线的控制权;另一方 面,c p u 将有效的h l d a 信号加到d m a c 上,用此来通知d m a c ,c p u 已经放弃了总线的控制权。 ( 2 ) 待c p u 将总线浮空,即放弃了总线的控制权后,由d m a c 接管 系统总线的控制权,并向外设送出d m a 的应答信号。 ( 3 ) 由d m a c 送出地址信号和控制信号,实现外设与内存或内存不同 区域之间大量数据的快速传送。 鞴入设备 图2 2d m a c 工作电路图 ( 4 ) d m a c 将规定的数据字节传送完之后,通过向c p u 发h o l d 信 号,撤销对c p u 的d m a 请求。c p u 收到此信号,一方面使h l d a 无效, 另一方面又重新开始控制总线,实现正常取指令、分析指令、执行指令 的操作【2 1 1 。 下面的图2 3 是一个简单的d m a 工作流程示意图。 第二章d m a 控制器的工作原理 图2 3d m a - 1 - 作过程示意图 2 1 5d m a 的操作类型 d m a 传送主要是做数据传送操作,但也包括其他操作,如数据校验 和数据检索等。 ( 1 ) 数据传送:数据传送是把源地址的数据传送到目的地址中去( 源 地址和目的地址都可以是存储器,也可以是i o 设备,不同的芯片有不 同的要求) 。 ( 2 ) 数据校验:当数据传送完毕后( 如读操作完成后) ,可以进行校 验操作,以便校验所读数据是否有效。执行校验操作时d m a c 不向存储 器或外部设备发送读写控制信号,并且不进行数据传送,只进行数据校 验。但外部设备仍然要通过d m a c 向c p u 提出申请,获得响应后,进 入d m a 周期,对每一个字节进行校验。 ( 3 ) 数据检索:数据检索操作和数据校验操作一样,并不进行数据传 送,只是在指定的内存区内查找某个关键字或某几个关键数据是否存在, 如果查找到了,就停止检索操作。在d m a 编程时,先把要查找的关键 字节写入比较寄存器,然后从源地址单元的起始地址开始,逐一读出内 容来与比较寄存器内的关键字节进行比较,如果一致就停止检索。 ( 4 ) 数据传送与检索并举:在进行数据传送的过程中同时进行关键字 节检索。当找到和预先写入比较寄存器的内容相符合的数据字节时,就 停止传送。 2 1 6d m a 操作的基本方法 d m a 操作的基本方法主要包括:停止c p u 访问、内存周期挪用、交 替访问,当然三种方案各有利弊。 9 1 0 基于v e r i l o g 语言的d m a 控制器的设计与仿真 ( 1 ) 停止c p u 访问:当d m a c 获得总线控制权后,发一个停止信号 给c p u ,停止c p u 访问内存的权利,使c p u 处于不工作或保持状态。 这种传送方式的时间图如图2 4 所示。这种。0 案原理简单,但对于慢速 的外设,内存将有大量的时间处于空闲状态,c p u 也得不到充分的利用。 因此,这种方案仅在高速外设且有大量数据需成批传送时才有优势。 c i r 1 控制并 使用内存 d 卫压a 工作并d r i a ;:f : 1 - t , # 使用内存 d i a - 1 - 作 d m a 不工作 图2 4 停止c p u 访问 ( 2 ) 内存周期挪用:指i 0 设备挪用内存周期去执行数据传送工作, 主要有两种情形,一是c p u 在执行指令时需访问内存,而与此同时d m a 控制器也需访问内存,此时就延迟c p u 对指令的执行,先执行d m a 传 送,实质上在c p u 的访问内存周期中插入一个d m a 操作;二是在c p u 不需访问内存时,将内存周期挪用给i 0 设备,这种方案由于挪用的内 存周期数据比较少,因此可以长时间实现c p u 与i 0 设备的并行工作, 极大地发挥了内存和c p u 的工作效率,是比较理想的d m a 工作方式。 但是i 0 设备每一次周期挪用都有申请总线控制权、建立总线控制权和 归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期, 但对d m a 控制器来说一般要2 5 个内存周期( 视逻辑线路的延迟而 定) 。因此,周期挪用的方法适用于i 0 设备读写周期大于内存存储周期 的情况。这种传达方式的时间图如图2 5 所示。 内存工作时r 司 c 烈月熏制并 使用内存 d 卫疽a 工作并 使用内存 图2 5 周期挪用 ( 3 ) 交替访内:利用c p u 速度远远快于内存读写速度的特点,在c p u 工作周期较长于内存周期时,将c p u 周期分为若干个子周期,以子周期 为时间段,让c p u 与d m a c 交替访问内存。这种传送方式的时间图如 第二章d m a 控制器的工作原理 图2 6 所示。这种方案使总线在不同子周期内分时使用,d m a c 不需申 请、使用和归还总线控制权,而且如果分时控制得恰当,c p u 既可以不 停止程序的运行,也不会近似等待状态,同时d m a c 又完成数据的传送, 因此具有较高的d m a c 传送效率,是一种比较理想的控制方式。 t 内存工作时间- ; i ic :p u 周期: c p u 控制并r 1i 使用内存 ; ii;l ;l d m a 工作并l h 一 一使用内存 ;叫d m 每卜; i;周期; 图2 6d m a 与c p u 交替访问 2 1 7d m a 的传送方式 d m a 的传送方式主要有以下三种。 ( 1 ) 单字节操作方式 每次进行d m a 操作( 数据传送、数据校验和数据检索等) 只传送 一个字节。在这种操作方式下,d m a c 每完成一个字节操作,则应将总 线控制权交还给c p u ,这样c p u 至少可以得到一个总线周期,并可进行 有关的操作。如果需要进行下一个字节的传送,需要进行d m a 申请。 其原理如图2 7 所示。 图2 7 单字节操作方式 基于v e r i l o g 语言的d m a 控制器的设计与仿真 ( 2 ) 连续操作方式 只要d m a 操作一开始,d m a c 始终占用总线,直到d m a 操作完 成,才把总线控制权交还给c p u 。在d m a 操作期间,即使d m a 请求 变为无效,d m a c 仍然占用总线,此时暂停d m a 操作,直到d m a 请 求重新变为有效后,继续进行d m a 操作。 在连续操作方式中,d m a c 在获得总线控制权后连续传送数据字节, 可以获得比单字节操作方式更高的数据传输率。但在此间d m a c 一直占 用总线,c p u 无法进行任何需要系统总线的操作,只能保持空闲。 此方式的结束,可由d m a c 中设置的字节计数器的计数结果决定 ( 每操作一个字节,计数器减1 ,直到产生终止计数信号) ,也可以由外 部输入的过程结束信号决定。其原理如图2 8 所示。 图2 8 连续操作方式图2 9 请求操作方式 ( 3 ) 请求操作方式 此方式也叫字组操作方式或查询操作方式,它与连续操作方式基本 类似,不同的是每传送完一个字节,d m a c 都要检测由i o 接口发来的 d m a 请求信号是否仍然有效。如果有d m a 请求,则d m a c 就占用总 线;当d m a 请求无效,或d m a 操作完成,或有外部传送过程结束信号 时,d m a c 都会释放总线。换句话说,采用请求操作方式,通过控制d m a 请求信号的有效或无效,可以把一个数据块分几次传送,以允许接口的 数据没准备好时,暂时停止传送。其原理如图2 9 所示【3 2 。 第二章d m a 控制器的工作原理 2 2 选择型和多路型d m a 控制器 前面介绍的是最简单的d m a 控制器,一个控制器只控制一个i o 设 备。实际中经常采用的是选择型d m a 控制器和多路型d m a 控制器。 2 2 1 选择型d m a 控制器 图2 1 0 是选择型d m a 控制器的逻辑框图,它在物理上可以连接多 个设备,而在逻辑上只允许接一个设备。换句话说,在某段时间内只能 为一个设备服务。 选择型d m a 控制器的工作原理与简单d m a 控制器基本相同。除了 前面讲到的基本逻辑部件外,还有一个设备号寄存器。数据传送是以数 据块为单位进行的,在每个数据块传送之前的预置阶段,除了用程序中 i o 指令给出数据块的传送个数、起始地址、操作命令外,还要给出所选 择的设备号。从预置开始,一直到这个数据块传送结束,d m a 控制器只 为所选设备服务。下一次预置再根据i o 指令指出的设备号,为另一选 择的设备服务。 显然,选择型d m a 控制器相当于一个逻辑开关,根据i o 指令来控 制此开关与某个设备连接。选择型d m a 控制器只增加少量硬件达到了 为多个外围设备服务的目的,它特别适合数据传输串很高以至接近内存 存取速度的设备。在很快地传送完一个数据块后,控制器又可为其他设 备服务 1 5 1 。 图2 1 0 选择型d m a 控制器的逻辑框图 1 4 基于v e r i l o g 语言的d m a 控制器的设计与仿真 2 2 2 多路型d m a 控制器 选择型d m a 控制器不适用于慢速设备,但是多路型d m a 控制器却 适合于同时为多个慢速外围设备服务17 1 。图2 1 1 ( a ) 是链式多路型d m a 控制器示意图,而图2 1 1 ( b ) 是独立请求方式多路型d m a 控制器示意图。 图2 1 l ( a ) 链式多路型d m a 控制器 图2 11 ( b ) 独立请求方式多路型d m a 控制器 多路型d m a 不仅在物理上可以连接多个外围设备,在逻辑上也允 许这些外围设备同时工作,各设备以字节交叉方式通过d m a 控制器进 行数据传送。 2 3d m a 控制器的应用与发展趋势 d m a 控制器的主要用途是在c p u 不干涉的情况下,负责存储器之间 或存储器和外围设备之间的数据交换。这种用途不仅仅可以加快存储器 之间大数据量的交换,更重要的是,c p u 可以从大数据量交换、分散数据 收集、慢速设备的访问中解放出来,从而提高c p u 的利用效率。目前国外 的d m a 技术己经逐渐实现数据交换的智能化和通道化。d m a 不仅可以按 照总线协议进行数据交换,而且可以编程设置多种功能。一种智能化表 现就是d m a 采用链表形式,完成多任务数据传输。任务链表存放在存储 器中,d m a 从存储器中读取任务链表,根据链表中的内容完成相应的操 作。d m a 也可以操作链表,实现和链表生成者的交互。采用链表形式, 一个d m a 就可以自动地为多个有序设备服务。另一种智能化表现为d m a 第二章d m a 控制器的工作原理 对特定协议的识别,比对某种串行通讯协议的识别,从而可以完成串行 数据的基本解包、打包任务。这种衍生功能和d m a 的通道化技术联系比 较紧密。 d m a 通道化技术就是让d m a 为某个或某些特定的设备服务,提高这 些设备( 往往是高速串行设备、存储器) 的智能化,减少c p u 的干涉。在大 型计算机系统中,为了辅助c p u 对大量外围设备进行管理,普遍采用了i o 通道技术。i o 通道技术是d m a 概念的扩展。i o 通道具备执行i o 指令来 完成对i o 操作控制的能力。由通道技术发展起来的通道处理机可以看作 是一台能够执行有限输入输出指令,并且能被多台外围设备共享的小型 d m a 专用处理机p 。 d m a 通道由于可以执行简单的微指令,因此可以很方便地完成对一 个或多个设备的控制。图2 1 2 显示了d m a 通道进行数据传输的主要过程。 用户程序首先根据不同的设备号和数据传输任务生成设备管理程序。在 管理程序里定义d m a 通道程序( 比如链式d m a 中的任务链表) ,并在初始 化d m a 通道后启动i o 设备。d m a 通道接收到i o 设备提出的请求或管理 程序提供的内部请求后,开始读取通道程序。d m a 通道从通道程序中知 道目标设备( 目标地址) 、源设备( 源地址) 、数据大小( 数据量) ,并根据微 控制指令得到更详细的控制信息,然后根据通道程序定义的数据传输( 和 简单处理) 任务开始工作。在完成通道程序定义的所有任务后,d m a 通道 提出中断请求。c p u 根据中断请求进入中断服务程序,判断d m a 通道完 成任务的情况,并决定是否设置新的通道任务。由于通道程序可以设置 多个有序任务,d m a 通道可以很方便地实现对多个设备的控制1 1 3 j 。 用捏净 镣西狸謦 媛i 孽瞧庠 图2 1 2d m a 通道完成数据传送的主要过程 目前,d m a 在高速数据传输、慢速设备管理、零散数据收集等方面 得到广泛应用。采用通道程序可以很方便地实现不同地址段之间的数据 传输,因此d m a 在存储器分页操作、虚拟地址映射等非连续性地址的数 1 6 基于v e r i l o g 语言的d m a 控制器的设计与仿真 据传输中得到应用。在一些c a c h e 访问中,为了提高数据传输速度,也采 用d m a 来实现数据在总线上的直接交换 3 0 j 。国内有人研究利用d m a 芯片 或d m a 接口电路进行高速数据采集。 在图像处理系统中,d m a 控制器也有广泛应用和前景。系统中采用 d s p 的片上d m a 控制器,以d m a 数据传输方式将图像数据从片外直接提 取到片内。d s p 的d m a 控制器可以在没有c p u 参与的情况下完成存储器映 射区之间的数据传输。d m a 允许在片内存储器、片内外设或外部器件之 间进行数据传输。例如t i 公司的t m s 3 2 0 v c 5 4 16 的d m a 集成了6 个相互 独立的可编程的传输通道,允许进行6 种不同内容的数据传送,具有快速、 大批量的特点【7 】【9 】。 对于通讯微处理器而言,d m a 的介入主要是为了提高处理器数据通 讯的能力。m o t o r o l a 的m p c 8 2 4 0 微处理器就安排了两个d m a 通道负责 串行设备的数据传输。a m d 公司的a m l8 6 c c 系列微处理器微控制器设置 了十多个d m a ,负责串行设备的数据通讯。d m a 处理串行数据的接收发 送,可以减少串行设备中断c p u 的次数,提高c p u 的工作效率。在有些高 速串行数据中,数据间隔可能很短,c p u 的中断反应时间可能太慢,此时 必需采用d m a 提高数据传输的反应时间。比如在a m l8 6 c c 系列微处理器 中d m a 采用了链式传输方式完成h d l c ( 高级数据链路控制器,一种高性 能同步串口控制器) 与存储器之间的数据交换,由于d m a 直接读取存储器 中链表得知下一个传输任务,就不存在c p u 中断反应的环节,保证了数据 安全地被接收到存储器【1 0 】【1 8 】。 第三章d m a 控制器的行为级设计 第三章d m a 控制器的行为级设计 本文所要设计的是一个同步d m a 控制器电路系统,用来控制内存与 外设之间的数据交流。本章结合对工作要求和环境的考虑,并依据前两 章所介绍的d m a 与d m a 控制器的基本理论,制定了此电路系统的总体设 计方案并完成了电路的行为级设计。 3 1 1 设计说明 3 1 设计方案 ( 1 ) 设计方法:硬件电路的基本设计方法主要是指:传统的 “b o t t o m u p ”的设计方法和新兴的“t o p d o w n ”的e d a 设计方法。由于 t o p d o w n 的设汁方法是首先从系统设计人手,从项层进行功能划分和结 构设计。系统的总体仿真是项层进行功能划分的重要环节,这时的设计 是与工艺无关的。由于设计的主要仿真和调试过程是在高层次完成的, 所以能够早期发现结构设计上的错误,同时也减少了逻辑仿真的工作量。 本文采用t o p d o w n 的设计方法【2 2 1 。 ( 2 ) 设计语言:硬件描述语言是硬件设计人员和e d a 工具之间的接 口,其主要目的是用来编写设计文件、建立电子系统行为级的仿真模型。 v e r i l o gh d l 和v h d l 是目前最常用的两种硬件描述语言,同时也都是 i e e e 标准化的h d l 语言。v e r i l o gh d l 是从c 语言发展而来的,相比 v h d l 而言其编程风格更加简洁明了,成熟的资源远比v h d l 丰富。本 文采用v e r i l o gh d l 作为设计语言【4 j 【”j 。 ( 3 ) 设计工具:现在市场上的v e r i l o gh d l 的仿真软件很多种,如: m e n t o r 公司的m o d e l s i m 、c a d e n c e 公司的v e r i l o g x l 、s y n o p s y s 公司的 v c s 等。本设计所采用的仿真软件是m e n t o r 公司提供的m o d e l s i ms e 5 6 b 5 1 。 ( 4 ) 系统的时钟:在设计电路时,可以有异步电路和同步电路两种实 现方法。异步电路使用组合逻辑电路实现,没有统一的时钟信号,容易 产生毛刺和竞争冒险;同步时序电路使用组合逻辑和触发器实现电路功 能,主要信号和输出信号都由时钟驱动触发器产生,能够避免毛刺,信 号稳定【3 5 】。本文设计的是同步d m a c 电路,同步时钟频率为10 0 m h z 。 1 8 基于v e r i l o g 语言的d m a 控制器的设计与仿真 3 1 2 运行环境及设计功能要求 ( 1 ) d m a 控制器的运行环境:3 2 一b i tr i s cp r o c e s s o r 、8 x 8r ca r r a y 、 6 4 b i tf r a m eb u f f e r 、3 2 b i ts d r a m 。 ( 2 ) 功能要求:d m a 控制器在r i s c 处理器在调控下,应该具有调控 数据传输的功能。主要具有以下功能:从s d r a m 装载数据到f b ;从 f b 储存数据到s d r a m ;从s d r a m 转载数据到r c 。 3 1 3d m a 控制器设计相关组件 本文所设计的d m a 控制器是一个可选择通道的d m a 控制器,它受 控于r i s c 处理器,处理s d r a m 、f b 、r c 之间的数据传输。d m a 控 制器与其他模块接口全景描述如图3 1 所示。 r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p u t e r s ) 即精密指令集计算机,是为 了提高处理器运行的速度而设计的芯片体系。它的关键技术在于流水线 操作,在一个时钟周期里完成多条指令。由于r i s c 处理器的指令集是 精简的,它的内存管理单元、浮点单元等都能设计在同一块芯片上。一 般来说,r i s c 处理器比同等的c i s c 处理器要快5 0 7 5 ,同时r i s c 处理器更容易设计和纠错。r i s c 处理器比c i s c 处理器设计更简单,所 需要的处理时间将变得更短,并可以采用比c i s c 处理器更多先进的技 术,便于开发更快的下一代处理器。 3 2 图3 1d m a 控制器及接1 2 1 模块全景图 f b ( f r a m eb u f f e r ) 且p 帧缓冲器,它是一个快速存储缓冲器,运行频率 第三章d m a 控制器的行为级设计 1 9 高达10 0 m h z 。它是由静态随机存储器组成的存储器阵列,数据可以通 过多路复用器和缓冲器直接传送。它功能上作为s d r a m 数据在d m a c 和r c 之间传送的缓冲器。在它的内部有两个单独的接收机,每个接收 机包含两个储藏体。d m a c 每次只能访问一个储藏体,而一个r c 在读 取数据时要访问两个储藏体。 s d r a m ( s y n c h r o n o u sd r a m ) 即同步动态随机存储器,这是目前使 用最为广泛一种内存类型,也是目前奔腾计算机系统普遍使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开吊笼考试题及答案
- 玻璃制品机械成型工主管竞选考核试卷及答案
- 酒店保安考试题及答案
- 矿井制冷降温工转正考核试卷及答案
- 课件无响应问题解决
- 自行车与电动自行车装配工岗位操作技能考核试卷及答案
- 金山焊工考试题及答案
- 保险公估人工艺创新考核试卷及答案
- 医用消毒、低温设备组装调试工专项考核试卷及答案
- 教师调动考试题及答案
- 设施赔偿协议书范本
- 2025-2030中国镁合金行业市场深度调研及发展趋势与投资前景预测研究报告
- DB50∕T 632-2015 火灾高危单位消防安全评估规程
- 2025年上半年湖南湘西州龙山县事业单位招聘工作人员41人易考易错模拟试题(共500题)试卷后附参考答案
- 精神科进修汇报:专业护理实践与挑战
- 加油站员工绩效考核制度或加油站员工激励约束办法
- 食堂验货标准培训
- 电动叉车安全操作培训
- 浆砌石挡墙拆除施工技术方案
- 人教版九年级化学上册教学工作计划(及进度表)
- T-SEEPLA 09-2024 四川省功能区声环境质量监测站(点)布设技术规范
评论
0/150
提交评论