基于modelsim的DMA控制器的设计毕业设计(毕业论文).doc
《基于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将总线浮空
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 modelsim DMA 控制器 设计 毕业设计 毕业论文
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2880855.html