基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc

上传人:laozhun 文档编号:2880855 上传时间:2023-03-01 格式:DOC 页数:67 大小:1.08MB
返回 下载 相关 举报
基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc_第1页
第1页 / 共67页
基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc_第2页
第2页 / 共67页
基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc_第3页
第3页 / 共67页
基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc_第4页
第4页 / 共67页
基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc》由会员分享,可在线阅读,更多相关《基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc(67页珍藏版)》请在三一办公上搜索。

1、摘 要DMA是直接存储器存取方式,即(Direct Memory Access)方式的缩写,存储器与I/O设备之间的数据传送在DMA控制器(又称DMAC)的管理下直接进行,而不经过CPU。DMA方式适用于高速传送成组数据。DMA控制器将向内存发出地址和控制信号,修改地址,对传送的字的个数计数,并且以中断方式向CPU报告传送操作的结束。DMA方式的主要优点是传输速度快。由于CPU根本不参加传送操作,因此就省去了CPC取指令、取数、送数等操作。目前由于大规模集成电路工艺发展,很多厂家直接生产大规模集成电路的DMA控制器,虽然DMA控制器复杂程度差不多接近于CPU,但是用起来非常方便。 本文在基于V

2、erilog HDL设计DMA控制器时,采用的是Top-Down的设计方法。DMA控制器电路系统是由数据寄存器、地址产生器、状态控制器三个子模块组成,并且整个DMA控制器电路系统的编译、仿真是在对三个子模块分别进行编译、仿真的基础上完成的。关键词: DMA控制器 ;Verilog;Modelsim;仿真AbstractDMA is a direct memory access mode, namely (Direct Memory Access) the abbreviation, between the memory and I/O devices transmit data over th

3、e DMA controller (DMAC) under management directly, without passing through the CPU. DMA is suitable for high speed to transmit data. The DMA controller to the memory address and control signals, modify address, counting on the transfer of the word, and in order to interrupt the report to CPU transfe

4、r operation. The main advantages of the DMA method is fast transmission speed. Because CPU does not participate in the transfer operation, thus eliminating the CPC instruction fetch, access, send a few operation. At present, due to the large scale integrated circuit technology development, the direc

5、t production of DMA controller LSI many manufacturers, although the DMA controller complexity almost close to CPU, but it is very easy to use.In this paper, the design of DMA controller based on Verilog HDL, using the Top-Down the design method. The DMA controller circuit system is composed of data

6、register, address generator, state a controller composed of three modules, and the compiler, simulation of the entire DMA controller circuit system and are compiled, based on the simulation and synthesis of three sub-modules.Keywords: DMA controller ;Verilog;Modelsim;simulation目 录1 绪论11.1 DMA控制器的研究意

7、义及背景11.2 DMA控制器国内外发展状况11.3 本文所做的工作及主要内容21.4 篇章结构22 DMA控制器的基本理论42.1 基本的DMA控制器4 2.1.1 DMA控制器的基本功能4 2.1.2 DMA控制器的基本组成5 2.1.3 DMA控制器的传送方式6 2.1.4 DMA控制器的传送过程8 2.1.5 DMA控制器的传送状态10 2.1.6 DMA操作的基本方法102.2 选择型和多路型DMA控制器12 2.2.1 选择型DMA控制器12 2.2.2 多路型DMA控制器132.3 DMA控制器在现实中的应用143 DMA控制器的行为级设计173.1 设计方案17 3.1.1 设

8、计说明17 3.1.2 运行环境及设计功能要求18 3.1.3 DMA控制器设计的相关组件183.2 DMA控制器功能模块划分193.3 功能模块的行为级设计及VERILOG HDL描述20 3.3.1 数据寄存器的行为级描述20 3.3.2 地址产生器模块的行为级设计描述23 3.3.3 状态控制器模块的行为级设计描述26 3.3.4 全电路的行为级描述294 DMAC设计的编译和功能仿真344.1 DMAC设计的VERILOG HDL程序编译344.2 DMAC各模块设计的功能仿真37 4.2.1 DRU模块的Sti及仿真37 4.2.2 AGU模块的Sti及仿真40 4.2.3 SCU模

9、块的Sti及仿真424.3 DMAC全电路的仿真结果及分析45 4.3.1 DMAC全电路设计中的Sti及代码45 4.3.2 DMAC全电路的仿真结果及分析49结 论50致 谢51参考文献52附录A 英文原文54附录B 汉语翻译601 绪论1.1 DMA控制器的研究意义及背景外设与计算机内存之间的信息交换,可通过程序查询方式和中断方式进行。这两种方式都是在CPU的控制下,通过CPU执行指令来完成的。数据传送方向为外设CPU内存。这两种方式每传送一个字节都需要耗用较长时间。在程序查询方式时,CPU要反复测试外设状态,在外设未准备好时,CPU就处于等待状态,直到外设准备好,才进行数据传送。在中断

10、方式下,每次实现一次数据传送,CPU都要进行转入中断服务子程序、保护断点、现场保护、恢复现场、返回主程序等操作。显然对于高速的I/O设备以及大量数据交换的场合(如软、硬磁盘等),这两种传送方式就不能满足速度的要求了。对于这些高速外设,如果传送速度太慢,不仅降低传送效率,还会造成数据丢失,导致传送出错。为此,提出了DMA(直接存储器存取)传输方式。这种传送方式是不经过CPU干预,直接在外设与内存储器之间进行数据传送的方式。实现DMA传送,需要一个专用硬件DMA控制器(DMAC),在DMA传送期间,CPU要让出对系统总线的控制权,交给DMA控制。总线在DMA的控制下,数据直接在存储器和外设之间传送

11、,而不经过CPU干预,其传送速度大大提高,可接近于存储器的最快存取速度 12。这种传送方式适用于图像显示、磁盘存取、磁盘间数据传送和高速的数据采集等系统。1.2 DMA控制器国内外发展状况自DMA技术出现以来,DMA控制器在计算机系统中获得了极大的应用。为了适应系统总线速度的不断加快,其工作速度和灵活性也不断提高。目前的DMA控制器设计一般采用可配置的通道化技术。可配置使得DMA不仅可以按照总线协议进行数据交换,而且可以编程设置多种功能。根据体系结构的变化以及系统应用的需求,DMA控制器设计时在必备的目标起始地址、单元计数和变址模式基础上可添加额外的参数设置,使得数据传输更加灵活。TI公司TM

12、S320C54x系列DSP中DMA控制器有6个通道可以跟踪6个独立的块传输。每个通道含有5个通道寄存器,还有10个全局寄存器。CPU通过寄存器子寻址方式配置这些寄存器,通过这些寄存器的配置,可以实现多帧传输、自动缓冲传输、可编程的优先级、可编程的地址、时间同步以及中断生成等功能25。TI公司TMSC6000系列DSP中DMA控制器有4个通道和一个支持HPI访问的辅助通道,每个通道都有5个通道寄存器还有一个全局辅助控制寄存器。该DMA控制器支持多帧传输、可编程地址、可编程的字长、自动初始化、单通道分割操作等26。ADI公司ADSP-2106X系列DSP中DMA控制器能够执行内部存储器和外部数据源

13、或片外存储器之间的数据传输。该DMA控制器也支持多通道传输,一个通道对应一个I/O口或外设口缓冲区。一个DMA通道的建立是由写入一组内存缓冲区参数寄存器来完成的。每次DMA传递需要一个时钟周期,而通道之间的切换没有总传输量的损失26。Motoroal公司DSP56362支持需要数字音频压缩和解压缩、声场处理和其他数字音频算法的数字音频应用。DSP56362的内部DMA控制器包含六个独立的DMA通道,支持片内与片外的存取,1、2、3维的数据传输,块传输结束时中断,DMA触发来自于中断线和所有外围器件27。1.3 本文所做的工作及主要内容本文根据当前电子系统要求数据传输量大,性能要求高等特点,以V

14、erilog为硬件描述语言和可编程逻辑器件(FPGA)为技术支撑,设计了一个基于Verilog语言的DMA控制器,并对其相应程序进行仿真。DMA传输方式无需经过CPU,而是在DMA控制器的管理下,存储器与I/O设备之间进行数据交换,使传输速率大大提高,具有相当的技术优势4。仿真的结果表明,本设计工作稳定,工作速度快,且实际模拟运行较好。全文的主要工作及内容是对DMA控制器的的基本概念进行了阐述,介绍了DMA控制器的基本功能、组成,传送的方式、过程、状态等,同时确立DMA控制器的设计方案,对其源代码进行编写,最后对其模型进行仿真并得出结论。1.4 篇章结构本文共分为四个部分,内容如下:第一章主要

15、分析了DMA的研究的背景以及课题的重要意义,并简要介绍了DMA控制器的发展历程和趋势,同时阐明了DMA的原理,最后介绍了本文所做的工作和主要内容。第二章介绍了基本DMA控制器实现数据直接存取的工作原理,包括DMA控制器的基本功能、基本组成、传送方式、传送过程和DMA操作的基本方法等,同时也对两种同步DMA控制器进行了简单的介绍。并对DMA控制器在现实中的应用进行了介绍。第三章是本文的核心部分,在这一章中概述了DMA控制器的运行环境,及DMA控制器与周边环境之间的相互作用,并在此基础上提出了设计DMA控制器的相关技术要求。同时,根据技术要求确定 DMA控制器的设计方案(顶层设计),借助于硬件描述

16、语言Verilog HDL建立DMA控制器的行为模型。第四章为行为模型编写Sti程序代码,利用ModelSim对所建模型进行编译和仿真测试,检验是否达到设计要求。 2 DMA控制器的基本理论2.1 基本的DMA控制器2.1.1 DMA控制器的基本功能DMA控制器是内存储器同外设之间进行高速数据传送时的硬件控制电路,是一种实现直接数据传送的专用处理器,它必须能取代在程序控制传送中由CPU和软件所完成的各项功能;它的主要功能是:(1)DMAC同外设之间有一对联络信号线外设的DMA请求信号DREQ以及 DMAC向外设发出的DMA响应信号DACK;(2)DMAC在接收到DREQ后,同CPU之间也有一对

17、联络信号线DMAC向CPU 发出总线请求信号(HOLD或BUSRQ),CPU在当前总线周期结束后向DMAC发出总线响应信号(HLDA或BUSAK),DMAC接管对总线的控制权,进入DMA操作方式; (3)能发出地址信息,对存储器寻址,并修改地址指针,DMAC内部必须有能自动加1或减1的地址寄存器;(4)能决定传送的字节数,并能判断DMA传送是否结束。DMA内部必须有能自动减1的字计数寄存器,计数结束产生终止计数信号;(5)能发出DMA结束信号,释放总线,使CPU恢复总线控制权;(6)能发出读、写控制信号,包括存储器访问信号和I/O访问信号。DMAC内部必须有时序和读写控制逻辑78。有些DMAC

18、芯片和模块在这些基本功能的基础上还增加了一些新的功能。如:在DMA传送结束时产生中断请求信号;在传送完一个字节数后输出一个脉冲信号,用于记录已传送的字节数、为外部提供周期性的脉冲序列;在一个数据块传送完后能自动装入新的起始地址和字节数,以便重复传送一个数据块或将几个数据块链接起来传送;产生两个存储器地址,从而实现存储器与存储器之间的传送以及能够对I/O设备寻址,实现I/O设备与I/O设备之间的传送以及能够在传送过程中检索某一特定字节或者进行数据检验等等13。2.1.2 DMA控制器的基本组成一个DMA控制器,实际上是采用DMA方式的外围设备与系统总线之间的接口电路,这个接口电路是在中断接口的基

19、础上再加DMA机构组成。习惯上将DMA方式的接口电路称为DMA控制器。图 2.1 给出了一个最简单的DMA控制器组成示意图6。图2.1 控制器的组成(1)内存地址计数器:用于存放内存中要交换的数据的地址。在 DMA传送前,须通过程序将数据在内存中的起始位置(首地址)送到内存地址计数器。而当 DMA 传送时,每交换一次数据,将地址计数器加“1”,从而以增量方式给出内存中要交换的一批数据的地址。(2)字计数器:用于记录传送数据块的长度(多少字数)。其内容也是在数据传送之前由程序预置,交换的字数通常以补码形式表示。在DMA传送时,每传送一个字,字计数器就加“1”。当计数器溢出即最高位产生进位时,表示

20、这批数据传送完毕,于是引起DMA控制器向CPU发出中断信号。(3)数据缓冲寄存器:用于暂存每次传送的数据(一个字)。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。(4)“DMA请求”标志:每当设备准备好一个数据字后给出一个控制信号,使“DMA 请求”标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后发出DMA响应信号,使“DMA 请求”标志复位,为交换下一个字做好

21、准备。(5)“控制/状态”逻辑:由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。(6)中断机构:当字计数器溢出时,意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告2224。2.1.3 DMA控制器的传送方式(1)连续传送(块传送):DMAC申请到总线后,将一块数据传送完后才释放总线,而不管中间DREQ是否有效。在连续操作方式中,DMAC 在获得总线控制权后连续传送数据字节,可以获得比单字节操作方式更高的数据传输率。但在此间DMAC 一直占用总线,CPU无法进行任何需要系统

22、总线的操作,只能保持空闲。此方式的结束,可由DMAC中设置的字节计数器的计数结果决定(每操作一个字节,计数器减1,直到产生终止计数信号),也可以由外部输入的过程结束信号决定。其原理如图2.2所示。(2)单次传送(每次传送一个字节):每个DMA周期只传送一个字节就立即释放总线。这样CPU至少可以得到一个总线周期,并可进行有关的操作。如果需要进行下一个字节的传送,需要重新进行DMA的申请。其原理如图2.3所示。(3)按需传送(猝发传送):只要I/O接口的数据缓冲可用,就进行传送。(I/O接口需要有一定大小的FIFO缓冲)。换句话说,采用猝发传送方式,通过控制DMA请求信号的有效或无效,可以把一个数

23、据块分几次传送,而允许接口的数据没准备好时,暂时停止传送。其原理如图2.4所示1315。图2.2 连续操作方式图2.3 单字节操作方式图2.4 请求操作方式2.1.4 DMA控制器的传送过程DMAC的传送过程主要是: (1)外设向DMAC发DMA传送请求。DMAC通过连接到CPU的HOLD信号向 CPU提出DMA请求。CPU在完成当前总线操作后立即对DMA请求做出响应。CPU的响应包括两个方面:一方面,CPU将控制总线、数据总线和地址总线浮空,即放弃对这些总线的控制权;另一方面,CPU将有效的HLDA信号加到DMAC上,用此来通知DMAC,CPU已经放弃了总线的控制权。(2)待CPU将总线浮空

24、,即放弃了总线的控制权后,由DMAC接管系统总线的控制权,并向外设送出DMA的应答信号。(3)由DMAC送出地址信号和控制信号,实现外设与内存或内存不同区域之间大量数据的快速传送。图2.5 DMAC工作电路图(4)DMAC将规定的数据字节传送完之后,通过向CPU发HOLD信号,撤销对CPU的DMA请求。CPU收到此信号,一方面使HLDA无效,另一方面又重新开始控制总线,实现正常取指令、分析指令、执行指令的操作。下面图2.6是DMA的工作流程示意图17。图2.6 DMA的工作流程示意图2.1.5 DMA控制器的传送状态DMAC是作为两种存储实体之间实现高速数据传送而设计的专用处理器。它与其他外围

25、接口控制器件不同,它具有接管和控制计算机系统总线(包括数据、地址和控制总线)的能力,即它能取代CPU而成为系统的主控者。但在它取得总线控制权之前,又与其他I/O接口芯片一样受CPU的控制。因此,DMA控制器在系统中有两种工作状态:主动态与被动态.。其对应的两种地位:主控器和受控器。(1)主动态:是指DMA具有接管和控制微机系统总线的功能,即取代CPU而成为系统的控制者,向存储器与外设发号施令。此时,它通过总线向存储或外设发出地址和读写信号,以控制两存储实体(存储器与外设)间的数据传送。DMA操作期间,控制系统总线,控制M与I/O的数据传送(通过总线向M或I/O发出地址和读写信号:DMA写操作:

26、DMAC发出IOR和MEMW信号,存储器外设;DMA读操作:DMAC发出IOW和MEMR信号,存储器外设。)(2)被动态:指DMA控制器在冲线控制权取得前同其他I/O接口芯片一样,受CPU的控制。非DMA操作期间,受CPU控制检测CS和DREQ信号(一般当DMAC上电或者复位时,DMAC自动处于被动状态)。由CPU对DMAC编程,确定通道选择、DMA操作类型及方式、内存首址、地址传送方向、传送字节数;传送完毕读DMAC的状态1821。通过对DMAC在系统中的两种工作状态的分析可知:在DMA操作过程中,总线控制权在DMAC与CPU之间转移。当DMAC收到从外部设备发出的请求信号时,DMAC经判优

27、及屏蔽处理后向总线仲裁器送出总线请求信号要求占用总线。经总线仲裁器裁决,CPU完成总线周期后进入总线保持状态,使CPU对总线的控制失效,并发出总线回答信号通知DMAC,CPU已交出系统总线控制权。此时DMAC接管总线控制权,然后由它向I/O设备发出DMA应答信号。2.1.6 DMA操作的基本方法DMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序。DMA控制器与CPU分时使用内存通常采用一下三种方法:(1)停止CPU访问内存:当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关的控制总线的使用权

28、。DMA控制器获得总线控制权以后,开始进行数据传送。在一批数据传送完毕后,DMA控制器通知CPU可以使用内存,并把总线控制权交还给CPU。在这种DMA传送过程中,CPU基本处于不工作状态或者说保持状态。这种传送方式的时间图如下:内存工作时间CPU控制并使用内存DMA工作并使用内存图2.7 停止CPU访问其优点是:控制简单,它适用于数据传输率很高的设备进行成组传送。其缺点是:在DMA控制器访内阶段,内存的效能没有充分发挥,相当一部分内存工作周期是空闲的。这是因为,外围设备传送两个数据之间的间隔一般总是大于内存存储周期,即使高速I/O设备也是如此16。(2)周期挪用:当I/O设备没有DMA请求时,

29、CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或者几个内存周期。这种传送方式的时间图如下图所示:内存工作时间CPU控制并使用内存DMA工作并使用内存图2.8 周期挪用与停止CPU访问的DMA方法相比较,周期挪用的方法既实现了I/O传送,又较好的发挥了内存和CPU的效率,是一种广泛采用的方法。但是I/O设备每一次周期挪用都有申请总线控制权和归还总线控制权的过程,所以传送一个字对内存来说要占用一个周期,但对DMA控制器来说一般要25个内存周期(视逻辑线路的延迟而定)。因此,周期挪用的方法适用于I/O设备读写周期大于内存存储周期的情况16。(3)DMA与CPU交替访问:

30、如果CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率。假设CPU工作周期为1.2s,内存存取周期小于0.6s,那么一个CPU周期可分为C1和C2两个分周期,其中C1供DMA控制器访内,C2供CPU访内。这种传送方式的时间图如下:内存工作时间CPU控制并使用内存DMA工作并使用内存图2.9 DMA与CPU交替访问这种方式不需要总线使用权的申请、归还过程,总线使用权是通过C1和C2分时进行的。CPU和DMA控制器各自有自己的访内地址寄存器、数据寄存器和读/写信号等控制寄存器。在C1周期中,如果DMA控制器有访内请求,可将地址、数据等信号送到总线

31、上。在C2周期中,如CPU有访内请求,同样将传送地址、数据等信号。事实上,对于总线,这是用C1,C2控制的一个多路转换器,掌握中总线控制权的转移几乎不需要什么时间,所以对DMA传送来讲效率是很高的。这种传送方式又称为“通行的DMA”方式,其来由是这种DMA传送对CPU来说,如同透明的玻璃一般,没有任何感觉或者影响。在透明的DMA方式下工作,CPU既不停止主程序的运行,也不进入等待状态,是一种高效率的工作方式。当然,相应的硬件逻辑就更加复杂1617。2.2 选择型和多路型DMA控制器2.2.1 选择型DMA控制器选择型DMA控制器在物理上可以连接多个设备,而在逻辑上只允许连接一个设备。换句话说,

32、在某一个时间段内只能为一个设备提供服务。选择型DMA控制器的工作原理与基本DMA控制器大致相同。除了前面提到的基本逻辑部件外,还有一个设备号寄存器。数据传送是以数据块为单位进行的,在每个数据块传送之前的预置阶段,除了用程序中的I/O指令给出数据块的传送个数、起始地址、操作命令外,还要给出所选择的设备号。从预置开始,一直到这个数据块传送结束,DMA控制器只为所选的设备提供服务。下一次预置时再根据I/O指令指出的设备号,为所选择的另一设备提供服务。显然,选择型DMA控制器相当于一个逻辑开关,根据I/O指令来控制此开关与某个设备连接。选择型DMA控制器只增加了少量的硬件就达到为多个外围设备提供服务的

33、目的,它特别适合于数据传输率很高甚至接近于主存存取速度的设备,在高速传送完一个数据块后,控制器又可为其他设备提供服务1112。图2.10 选择型DMA控制器的逻辑框图2.2.2 多路型DMA控制器与选择型DMA方式相比,多路型DMA不仅在物理上可以连接多个外围设备,而且在逻辑上也允许这些外围设备同时工作,各个设备以字节交叉方式通过DMA控制器进行数据传送。多路型DMA控制器适合于同时为多个慢速外围设备提供服务。多路型DMA控制器可以对多个独立的DMA通路进行控制。当某个外围设备请求DMA服务时,操作过程如下:(1)DMA控制器接到设备发出的DMA请求,将请求转送到CPU。(2)CPU在适当的时

34、刻响应DMA请求。若CPU不需要占用总线则继续执行指令;若CPU需要占用总线则进入等待状态。(3)DMA控制器接到CPU的响应信号后,进行以下工作:对现有DMA请求中优先权最高的请求予以响应;选择相应的地址寄存器的内容来驱动地址总线;根据所选设备操作寄存器的内容,向总线发出读、写信号;外围设备向数据总线传送数据,或从数据总线接收数据;每个字节传送完毕后,DMA控制器使相应的地址寄存器和长度寄存器加“1”或减“1”。以上是一个DMA请求的过程,在一批数据传送过程中,要多次重复上述过程,直到外围设备表示一个数据块已传送完毕,或该设备的长度控制器判定传送长度已满。多路型DMA控制器分为链式多路型DM

35、A控制器及独立请求方式多路型DMA控制器。图2.11(a)为链式多路型DMA控制器的原理框图,图2.11(b)为独立请求方式型DMA控制器的原理框图1112。图2.11(a) 链式多路型DMA控制器的原理框图图2.11(b) 独立请求方式型DMA控制器的原理框图2.3 DMA控制器在现实中的应用DMA控制器的主要用途是在CPU不干涉的情况下,负责存储器之间或存储器和外围设备之间的数据交换。这种用途不仅仅可以加快存储器之间大数据量的交换,更重要的是,CPU可以从大数据量交换、分散数据收集、慢速设备的访问中解放出来,从而提高CPU的利用效率。目前国外的DMA技术己经逐渐实现数据交换的智能化和通道化

36、。DMA不仅可以按照总线协议进行数据交换,而且可以编程设置多种功能。一种智能化表现就是DMA采用链表形式,完成多任务数据传输。任务链表存放在存储器中,DMA从存储器中读取任务链表,根据链表中的内容完成相应的操作。DMA也可以操作链表,实现和链表生成者的交互。采用链表形式,一个DMA就可以自动地为多个有序设备服务。另一种智能化表现为DMA对特定协议的识别,比对某种串行通讯协议的识别,从而可以完成串行数据的基本解包、打包任务。这种衍生功能和DMA的通道化技术联系比较紧密19。DMA通道化技术就是让 DMA为某个或某些特定的设备服务,提高这些设备(往往是高速串行设备、存储器)的智能化,减少CPU的干

37、涉。在大型计算机系统中,为了辅助CPU对大量外围设备进行管理,普遍采用了I/O通道技术。I/O通道技术是DMA概念的扩展。I/O通道具备执行I/O指令来完成对I/O操作控制的能力。由通道技术发展起来的通道处理机可以看作是一台能够执行有限输入输出指令,并且能被多台外围设备共享的小型DMA专用处理机。DMA通道由于可以执行简单的微指令,因此可以很方便地完成对一个或多个设备的控制。用户程序首先根据不同的设备号和数据传输任务生成设备管理程序。在管理程序里定义DMA通道程序(比如链式DMA中的任务链表),并在初始化DMA通道后启动I/O设备。DMA通道接收到I/O设备提出的请求或管理程序提供的内部请求后

38、,开始读取通道程序。DMA通道从通道程序中知道目标设备(目标地址)、源设备(源地址)、数据大小(数据量),并根据微控制指令得到更详细的控制信息,然后根据通道程序定义的数据传输(和简单处理)任务开始工作。在完成通道程序定义的所有任务后,DMA通道提出中断请求。CPU根据中断请求进入中断服务程序,判断DMA通道完成任务的情况,并决定是否设置新的通道任务。由于通道程序可以设置多个有序任务,DMA通道可以很方便地实现对多个设备的控制20。目前,DMA在高速数据传输、慢速设备管理、零散数据收集等方面得到广泛应用。采用通道程序可以很方便地实现不同地址段之间的数据传输,因此DMA在存储器分页操作、虚拟地址映

39、射等非连续性地址的数据传输中得到应用。在一些Cache访问中,为了提高数据传输速度,也采用DMA来实现数据在总线上的直接交换。国内有人研究利用DMA芯片或DMA接口电路进行高速数据采集。在图像处理系统中,DMA控制器也有广泛应用和前景。系统中采用DSP的片上 DMA控制器,以 DMA数据传输方式将图像数据从片外直接提取到片内。DSP的DMA控制器可以在没有CPU参与的情况下完成存储器映射区之间的数据传输。DMA允许在片内存储器、片内外设或外部器件之间进行数据传输。例如TI公司的TMS320VC5416 的DMA集成了6个相互独立的可编程的传输通道,允许进行6种不同内容的数据传送,具有快速、大批

40、量的特点。对于通讯微处理器而言,DMA的介入主要是为了提高处理器数据通讯的能力。MOTOROLA的MPC8240微处理器就安排了两个DMA通道负责串行设备的数据传输。AMD公司的AM186CC系列微处理器/微控制器设置了十多个DMA,负责串行设备的数据通讯。DMA处理串行数据的接收发送,可以减少串行设备中断CPU的次数,提高CPU的工作效率。在有些高速串行数据中,数据间隔可能很短,CPU的中断反应时间可能太慢,此时必需采用DMA提高数据传输的反应时间。比如在AM186CC系列微处理器中DMA采用了链式传输方式完成HDLC(高级数据链路控制器,一种高性能同步串口控制器)与存储器之间的数据交换,由

41、于DMA直接读取存储器中链表得知下一个传输任务,就不存在CPU中断反应的环节,保证了数据安全地被接收到存储器2425。3 DMA控制器的行为级设计本文所要设计的是一个同步DMA控制器电路系统,用来控制内存与外设之间的数据交流。本章结合对工作要求和环境的考虑,并依据前两章所介绍的DMA与DMA控制器的基本理论,制定了此电路系统的总体设计方案并完成了电路的行为级设计。3.1 设计方案3.1.1 设计说明(1) 设计方法:硬件电路的基本设计方法主要是指:传统的“Bottom-Up”的设计方法和新兴的“Top-Down”的EDA设计方法。由于Top-Down的设汁方法是首先从系统设计人手,从顶层进行功

42、能划分和结构设计。系统的总体仿真是顶层进行功能划分的重要环节,这时的设计是与工艺无关的。由于设计的主要仿真和调试过程是在高层次完成的,所以能够早期发现结构设计上的错误,同时也减少了逻辑仿真的工作量。本文采用Top-Down的设计方法。(2) 设计语言:硬件描述语言是硬件设计人员和 EDA工具之间的接口,其主要目的是用来编写设计文件、建立电子系统行为级的仿真模型。Verilog HDL 和 VHDL是目前最常用的两种硬件描述语言,同时也都是IEEE标准化的 HDL语言。Verilog HDL是从 C语言发展而来的,相比 VHDL而言其编程风格更加简洁明了,成熟的资源远比VHDL丰富。本文采用Ve

43、rilog HDL作为设计语言。(3)设计工具:现在市场上的 Verilog HDL的仿真软件很多种,如:Mentor公司的 Modelsim、Cadence公司的 Verilog-XL、Synopsys公司的 VCS等。本设计所采用的仿真软件是Mentor公司提供的ModelSim SE 10.1a。(4)系统的时钟:在设计电路时,可以有异步电路和同步电路两种实现方法。异步电路使用组合逻辑电路实现,没有统一的时钟信号,容易产生毛刺和竞争冒险;同步时序电路使用组合逻辑和触发器实现电路功能,主要信号和输出信号都由时钟驱动触发器产生,能够避免毛刺,信号稳定。本文设计的是同步DMAC电路,同步时钟频

44、率为 100MHz4。3.1.2 运行环境及设计功能要求(1)DMA控制器的运行环境:32-bit RISC processor、88 RC Array、64bit Frame Buffer、32-bit SDRAM。(2)功能要求:DMA 控制器在 RISC 处理器在调控下,应该具有调控数据传输的功能。主要具有以下功能:从 SDRAM 装载数据到 FB;从FB 储存数据到 SDRAM;从 SDRAM 转载数据到 RC。3.1.3 DMA控制器设计的相关组件本文所设计的DMA控制器是一个可选择通道的DMA控制器,它受控于RISC处理器,处理SDRAM、FB、RC 之间的数据传输。DMA 控制器

45、与其他模块接口全景描述如图 3.1 所示。RISC(Reduced Instruction Set Computers)即精密指令集计算机,是为了提高处理器运行的速度而设计的芯片体系。它的关键技术在于流水线操作,在一个时钟周期里完成多条指令。由于RISC处理器的指令集是精简的,它的内存管理单元、浮点单元等都能设计在同一块芯片上。RISC 处理器比CISC处理器设计更简单,所需要的处理时间将变得更短,并可以采用比CISC处理器更多先进的技术,便于开发更快的下一代处理器。图3.1 DMA控制器及接口模块全景图FB(Frame Buffer)即帧缓冲器,它是一个快速存储缓冲器,运行频率高达100MH

46、z。它是由静态随机存储器组成的存储器阵列,数据可以通过多路复用器和缓冲器直接传送。它功能上作为SDRAM数据在DMAC和RC之间传送的缓冲器。在它的内部有两个单独的接收机,每个接收机包含两个储藏体。DMAC 每次只能访问一个储藏体,而一个RC在读取数据时要访问两个储藏体。SDRAM(Synchronous DRAM)即同步动态随机存储器,这是目前使用最为广泛一种内存类型,也是目前奔腾计算机系统普遍使用的内存形式。SDRAM 将CPU与RAM通过一个相同的时钟锁在一起,使RAM和CPU能够共享一个时钟周期,以相同的速度同步工作,与EDO内存相比速度能提高 50%,是目前最快的内存芯片。SDRAM

47、不仅可用作主存,在显示卡上的内存方面也有广泛应用。作为主存,数据带宽越宽,同时处理的数据就越多;作为显存,显示的信息越多,显示品质也就越高。RC(Re-configurable Cell array)即可配置单元阵列,它有64个可配置单元,排列成88阵列的形式。每个单元有一个ALU/MAC和一个寄存器。此RC阵列通过context字来配置功能和网络连接。Context字储存在context memory的两个块中(分别储存在行和列),每个块有8组16字context。RC阵列内部互连如图 3.2 所示4:图3.2 RC阵列内部互连图3.2 DMA控制器功能模块划分根据设计要求,将DMA控制器划分为三个主要功能模块:DataRegisters Unit(DRU)数据寄存器单元,Address GeneratorUnit(AGU)地址产生器单元,State Controller Unit(SCU)状态控制器单元,如图 3.3 所示:图3.3 DMA控制器内部功能块划分3.3 功能模块的行为级设计及Verilog HDL描述3.3.1 数据寄存器的行为级

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号