基于modelsim的DMA控制器的設(shè)計(jì)論文_第1頁(yè)
基于modelsim的DMA控制器的設(shè)計(jì)論文_第2頁(yè)
基于modelsim的DMA控制器的設(shè)計(jì)論文_第3頁(yè)
基于modelsim的DMA控制器的設(shè)計(jì)論文_第4頁(yè)
基于modelsim的DMA控制器的設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 PAGE64 / NUMPAGES68摘 要DMA是直接存儲(chǔ)器存取方式,即(Direct Memory Access)方式的縮寫(xiě),存儲(chǔ)器與I/O設(shè)備之間的數(shù)據(jù)傳送在DMA控制器(又稱DMAC)的管理下直接進(jìn)行,而不經(jīng)過(guò)CPU。DMA方式適用于高速傳送成組數(shù)據(jù)。DMA控制器將向存發(fā)出地址和控制信號(hào),修改地址,對(duì)傳送的字的個(gè)數(shù)計(jì)數(shù),并且以中斷方式向CPU報(bào)告?zhèn)魉筒僮鞯慕Y(jié)束。DMA方式的主要優(yōu)點(diǎn)是傳輸速度快。由于CPU根本不參加傳送操作,因此就省去了CPC取指令、取數(shù)、送數(shù)等操作。目前由于大規(guī)模集成電路工藝發(fā)展,很多廠家直接生產(chǎn)大規(guī)模集成電路的DMA控制器,雖然DMA控制器復(fù)雜程度差不多接近于CP

2、U,但是用起來(lái)非常方便。 本文在基于Verilog HDL設(shè)計(jì)DMA控制器時(shí),采用的是Top-Down的設(shè)計(jì)方法。DMA控制器電路系統(tǒng)是由數(shù)據(jù)寄存器、地址產(chǎn)生器、狀態(tài)控制器三個(gè)子模塊組成,并且整個(gè)DMA控制器電路系統(tǒng)的編譯、仿真是在對(duì)三個(gè)子模塊分別進(jìn)行編譯、仿真的基礎(chǔ)上完成的。關(guān)鍵詞: DMA控制器 ;Verilog;Modelsim;仿真AbstractDMA is a direct memory access mode, namely (Direct Memory Access) the abbreviation, between the memory and I/O devices tr

3、ansmit data over the 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 re

4、port to CPU transfer 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 dev

5、elopment, the direct 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 i

6、s composed of data 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目 錄

7、 TOC o 1-3 h z u HYPERLINK l _Toc3591716961 緒論 PAGEREF _Toc359171696 h 1HYPERLINK l _Toc3591716971.1 DMA控制器的研究意義與背景 PAGEREF _Toc359171697 h 1HYPERLINK l _Toc3591716981.2 DMA控制器國(guó)外發(fā)展?fàn)顩r PAGEREF _Toc359171698 h 1HYPERLINK l _Toc3591716991.3 本文所做的工作與主要容 PAGEREF _Toc359171699 h 2HYPERLINK l _Toc3591717001

8、.4 篇章結(jié)構(gòu) PAGEREF _Toc359171700 h 2HYPERLINK l _Toc3591717012 DMA控制器的基本理論 PAGEREF _Toc359171701 h 4HYPERLINK l _Toc3591717022.1 基本的DMA控制器 PAGEREF _Toc359171702 h 4HYPERLINK l _Toc3591717032.1.1DMA控制器的基本功能 PAGEREF _Toc359171703 h 4HYPERLINK l _Toc3591717042.1.2 DMA控制器的基本組成 PAGEREF _Toc359171704 h 5HYPE

9、RLINK l _Toc3591717052.1.3 DMA控制器的傳送方式 PAGEREF _Toc359171705 h 6HYPERLINK l _Toc3591717062.1.4 DMA控制器的傳送過(guò)程 PAGEREF _Toc359171706 h 8HYPERLINK l _Toc3591717072.1.5 DMA控制器的傳送狀態(tài)10HYPERLINK l _Toc3591717082.1.6 DMA操作的基本方法 PAGEREF _Toc359171708 h 10HYPERLINK l _Toc3591717092.2選擇型和多路型DMA控制器 PAGEREF _Toc35

10、9171709 h 12HYPERLINK l _Toc3591717102.2.1選擇型DMA控制器 PAGEREF _Toc359171710 h 12HYPERLINK l _Toc3591717112.2.2多路型DMA控制器 PAGEREF _Toc359171711 h 13HYPERLINK l _Toc3591717122.3 DMA控制器在現(xiàn)實(shí)中的應(yīng)用 PAGEREF _Toc359171712 h 14HYPERLINK l _Toc3591717133 DMA控制器的行為級(jí)設(shè)計(jì) PAGEREF _Toc359171713 h 17HYPERLINK l _Toc35917

11、17143.1 設(shè)計(jì)方案 PAGEREF _Toc359171714 h 17HYPERLINK l _Toc3591717153.1.1 設(shè)計(jì)說(shuō)明 PAGEREF _Toc359171715 h 17HYPERLINK l _Toc3591717163.1.2 運(yùn)行環(huán)境與設(shè)計(jì)功能要求 PAGEREF _Toc359171716 h 18HYPERLINK l _Toc3591717173.1.3 DMA控制器設(shè)計(jì)的相關(guān)組件 PAGEREF _Toc359171717 h 18HYPERLINK l _Toc3591717183.2 DMA控制器功能模塊劃分 PAGEREF _Toc35917

12、1718 h 19HYPERLINK l _Toc3591717193.3 功能模塊的行為級(jí)設(shè)計(jì)與VERILOG HDL描述 PAGEREF _Toc359171719 h 20HYPERLINK l _Toc3591717203.3.1 數(shù)據(jù)寄存器的行為級(jí)描述 PAGEREF _Toc359171720 h 20HYPERLINK l _Toc3591717213.3.2 地址產(chǎn)生器模塊的行為級(jí)設(shè)計(jì)描述 PAGEREF _Toc359171721 h 23HYPERLINK l _Toc3591717223.3.3狀態(tài)控制器模塊的行為級(jí)設(shè)計(jì)描述 PAGEREF _Toc359171722 h

13、 26HYPERLINK l _Toc3591717233.3.4全電路的行為級(jí)描述 PAGEREF _Toc359171723 h 29HYPERLINK l _Toc3591717254 DMAC設(shè)計(jì)的編譯和功能仿真 PAGEREF _Toc359171725 h 34HYPERLINK l _Toc3591717264.1 DMAC設(shè)計(jì)的VERILOG HDL程序編譯 PAGEREF _Toc359171726 h 34HYPERLINK l _Toc3591717274.2 DMAC各模塊設(shè)計(jì)的功能仿真 PAGEREF _Toc359171727 h 37HYPERLINK l _To

14、c3591717284.2.1 DRU模塊的Sti與仿真 PAGEREF _Toc359171728 h 37HYPERLINK l _Toc3591717294.2.2 AGU模塊的Sti與仿真 PAGEREF _Toc359171729 h 40HYPERLINK l _Toc3591717304.2.3 SCU模塊的Sti與仿真 PAGEREF _Toc359171730 h 42HYPERLINK l _Toc3591717314.3 DMAC全電路的仿真結(jié)果與分析 PAGEREF _Toc359171731 h 45HYPERLINK l _Toc3591717324.3.1 DMA

15、C全電路設(shè)計(jì)中的Sti與代碼 PAGEREF _Toc359171732 h 45HYPERLINK l _Toc3591717334.3.2 DMAC全電路的仿真結(jié)果與分析 PAGEREF _Toc359171733 h 49HYPERLINK l _Toc359171734結(jié) 論 PAGEREF _Toc359171734 h 50HYPERLINK l _Toc359171735致 PAGEREF _Toc359171735 h 51HYPERLINK l _Toc359171736參考文獻(xiàn) PAGEREF _Toc359171736 h 52HYPERLINK l _Toc359171

16、737附錄A 英文原文 PAGEREF _Toc359171737 h 54HYPERLINK l _Toc359171738附錄B 漢語(yǔ)翻譯 PAGEREF _Toc359171738 h 601 緒論1.1 DMA控制器的研究意義與背景外設(shè)與計(jì)算機(jī)存之間的信息交換,可通過(guò)程序查詢方式和中斷方式進(jìn)行。這兩種方式都是在CPU的控制下,通過(guò)CPU執(zhí)行指令來(lái)完成的。數(shù)據(jù)傳送方向?yàn)橥庠O(shè)CPU存。這兩種方式每傳送一個(gè)字節(jié)都需要耗用較長(zhǎng)時(shí)間。在程序查詢方式時(shí),CPU要反復(fù)測(cè)試外設(shè)狀態(tài),在外設(shè)未準(zhǔn)備好時(shí),CPU就處于等待狀態(tài),直到外設(shè)準(zhǔn)備好,才進(jìn)行數(shù)據(jù)傳送。在中斷方式下,每次實(shí)現(xiàn)一次數(shù)據(jù)傳送,CPU都要進(jìn)

17、行轉(zhuǎn)入中斷服務(wù)子程序、保護(hù)斷點(diǎn)、現(xiàn)場(chǎng)保護(hù)、恢復(fù)現(xiàn)場(chǎng)、返回主程序等操作。顯然對(duì)于高速的I/O設(shè)備以與大量數(shù)據(jù)交換的場(chǎng)合(如軟、硬磁盤(pán)等),這兩種傳送方式就不能滿足速度的要求了。對(duì)于這些高速外設(shè),如果傳送速度太慢,不僅降低傳送效率,還會(huì)造成數(shù)據(jù)丟失,導(dǎo)致傳送出錯(cuò)。為此,提出了DMA(直接存儲(chǔ)器存取)傳輸方式。這種傳送方式是不經(jīng)過(guò)CPU干預(yù),直接在外設(shè)與存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳送的方式。實(shí)現(xiàn)DMA傳送,需要一個(gè)專用硬件DMA控制器(DMAC),在DMA傳送期間,CPU要讓出對(duì)系統(tǒng)總線的控制權(quán),交給DMA控制??偩€在DMA的控制下,數(shù)據(jù)直接在存儲(chǔ)器和外設(shè)之間傳送,而不經(jīng)過(guò)CPU干預(yù),其傳送速度大大提高,可

18、接近于存儲(chǔ)器的最快存取速度 12。這種傳送方式適用于圖像顯示、磁盤(pán)存取、磁盤(pán)間數(shù)據(jù)傳送和高速的數(shù)據(jù)采集等系統(tǒng)。1.2 DMA控制器國(guó)外發(fā)展?fàn)顩r自DMA技術(shù)出現(xiàn)以來(lái),DMA控制器在計(jì)算機(jī)系統(tǒng)中獲得了極大的應(yīng)用。為了適應(yīng)系統(tǒng)總線速度的不斷加快,其工作速度和靈活性也不斷提高。目前的DMA控制器設(shè)計(jì)一般采用可配置的通道化技術(shù)??膳渲檬沟肈MA不僅可以按照總線協(xié)議進(jìn)行數(shù)據(jù)交換,而且可以編程設(shè)置多種功能。根據(jù)體系結(jié)構(gòu)的變化以與系統(tǒng)應(yīng)用的需求,DMA控制器設(shè)計(jì)時(shí)在必備的目標(biāo)起始地址、單元計(jì)數(shù)和變址模式基礎(chǔ)上可添加額外的參數(shù)設(shè)置,使得數(shù)據(jù)傳輸更加靈活。TI公司TMS320C54x系列DSP中DMA控制器有6個(gè)

19、通道可以跟蹤6個(gè)獨(dú)立的塊傳輸。每個(gè)通道含有5個(gè)通道寄存器,還有10個(gè)全局寄存器。CPU通過(guò)寄存器子尋址方式配置這些寄存器,通過(guò)這些寄存器的配置,可以實(shí)現(xiàn)多幀傳輸、自動(dòng)緩沖傳輸、可編程的優(yōu)先級(jí)、可編程的地址、時(shí)間同步以與中斷生成等功能25。TI公司TMSC6000系列DSP中DMA控制器有4個(gè)通道和一個(gè)支持HPI訪問(wèn)的輔助通道,每個(gè)通道都有5個(gè)通道寄存器還有一個(gè)全局輔助控制寄存器。該DMA控制器支持多幀傳輸、可編程地址、可編程的字長(zhǎng)、自動(dòng)初始化、單通道分割操作等26。ADI公司ADSP-2106X系列DSP中DMA控制器能夠執(zhí)行部存儲(chǔ)器和外部數(shù)據(jù)源或片外存儲(chǔ)器之間的數(shù)據(jù)傳輸。該DMA控制器也支持

20、多通道傳輸,一個(gè)通道對(duì)應(yīng)一個(gè)I/O口或外設(shè)口緩沖區(qū)。一個(gè)DMA通道的建立是由寫(xiě)入一組存緩沖區(qū)參數(shù)寄存器來(lái)完成的。每次DMA傳遞需要一個(gè)時(shí)鐘周期,而通道之間的切換沒(méi)有總傳輸量的損失26。Motoroal公司DSP56362支持需要數(shù)字音頻壓縮和解壓縮、聲場(chǎng)處理和其他數(shù)字音頻算法的數(shù)字音頻應(yīng)用。DSP56362的部DMA控制器包含六個(gè)獨(dú)立的DMA通道,支持片與片外的存取,1、2、3維的數(shù)據(jù)傳輸,塊傳輸結(jié)束時(shí)中斷,DMA觸發(fā)來(lái)自于中斷線和所有外圍器件27。1.3 本文所做的工作與主要容本文根據(jù)當(dāng)前電子系統(tǒng)要求數(shù)據(jù)傳輸量大,性能要求高等特點(diǎn),以Verilog為硬件描述語(yǔ)言和可編程邏輯器件(FPGA)為

21、技術(shù)支撐,設(shè)計(jì)了一個(gè)基于Verilog語(yǔ)言的DMA控制器,并對(duì)其相應(yīng)程序進(jìn)行仿真。DMA傳輸方式無(wú)需經(jīng)過(guò)CPU,而是在DMA控制器的管理下,存儲(chǔ)器與I/O設(shè)備之間進(jìn)行數(shù)據(jù)交換,使傳輸速率大大提高,具有相當(dāng)?shù)募夹g(shù)優(yōu)勢(shì)4。仿真的結(jié)果表明,本設(shè)計(jì)工作穩(wěn)定,工作速度快,且實(shí)際模擬運(yùn)行較好。全文的主要工作與容是對(duì)DMA控制器的的基本概念進(jìn)行了闡述,介紹了DMA控制器的基本功能、組成,傳送的方式、過(guò)程、狀態(tài)等,同時(shí)確立DMA控制器的設(shè)計(jì)方案,對(duì)其源代碼進(jìn)行編寫(xiě),最后對(duì)其模型進(jìn)行仿真并得出結(jié)論。1.4篇章結(jié)構(gòu)本文共分為四個(gè)部分,容如下:第一章主要分析了DMA的研究的背景以與課題的重要意義,并簡(jiǎn)要介紹了DMA

22、控制器的發(fā)展歷程和趨勢(shì),同時(shí)闡明了DMA的原理,最后介紹了本文所做的工作和主要容。第二章介紹了基本DMA控制器實(shí)現(xiàn)數(shù)據(jù)直接存取的工作原理,包括DMA控制器的基本功能、基本組成、傳送方式、傳送過(guò)程和DMA操作的基本方法等,同時(shí)也對(duì)兩種同步DMA控制器進(jìn)行了簡(jiǎn)單的介紹。并對(duì)DMA控制器在現(xiàn)實(shí)中的應(yīng)用進(jìn)行了介紹。第三章是本文的核心部分,在這一章中概述了DMA控制器的運(yùn)行環(huán)境,與DMA控制器與周邊環(huán)境之間的相互作用,并在此基礎(chǔ)上提出了設(shè)計(jì)DMA控制器的相關(guān)技術(shù)要求。同時(shí),根據(jù)技術(shù)要求確定 DMA控制器的設(shè)計(jì)方案(頂層設(shè)計(jì)),借助于硬件描述語(yǔ)言Verilog HDL建立DMA控制器的行為模型。第四章為行

23、為模型編寫(xiě)Sti程序代碼,利用ModelSim對(duì)所建模型進(jìn)行編譯和仿真測(cè)試,檢驗(yàn)是否達(dá)到設(shè)計(jì)要求。2 DMA控制器的基本理論2.1 基本的DMA控制器2.1.1DMA控制器的基本功能DMA控制器是存儲(chǔ)器同外設(shè)之間進(jìn)行高速數(shù)據(jù)傳送時(shí)的硬件控制電路,是一種實(shí)現(xiàn)直接數(shù)據(jù)傳送的專用處理器,它必須能取代在程序控制傳送中由CPU和軟件所完成的各項(xiàng)功能;它的主要功能是:(1)DMAC同外設(shè)之間有一對(duì)聯(lián)絡(luò)信號(hào)線外設(shè)的DMA請(qǐng)求信號(hào)DREQ以與 DMAC向外設(shè)發(fā)出的DMA響應(yīng)信號(hào)DACK;(2)DMAC在接收到DREQ后,同CPU之間也有一對(duì)聯(lián)絡(luò)信號(hào)線DMAC向CPU 發(fā)出總線請(qǐng)求信號(hào)(HOLD或BUSRQ),

24、CPU在當(dāng)前總線周期結(jié)束后向DMAC發(fā)出總線響應(yīng)信號(hào)(HLDA或BUSAK),DMAC接管對(duì)總線的控制權(quán),進(jìn)入DMA操作方式;(3)能發(fā)出地址信息,對(duì)存儲(chǔ)器尋址,并修改地址指針,DMAC部必須有能自動(dòng)加1或減1的地址寄存器;(4)能決定傳送的字節(jié)數(shù),并能判斷DMA傳送是否結(jié)束。DMA部必須有能自動(dòng)減1的字計(jì)數(shù)寄存器,計(jì)數(shù)結(jié)束產(chǎn)生終止計(jì)數(shù)信號(hào);(5)能發(fā)出DMA結(jié)束信號(hào),釋放總線,使CPU恢復(fù)總線控制權(quán);(6)能發(fā)出讀、寫(xiě)控制信號(hào),包括存儲(chǔ)器訪問(wèn)信號(hào)和I/O訪問(wèn)信號(hào)。DMAC部必須有時(shí)序和讀寫(xiě)控制邏輯78。有些DMAC芯片和模塊在這些基本功能的基礎(chǔ)上還增加了一些新的功能。如:在DMA傳送結(jié)束時(shí)產(chǎn)

25、生中斷請(qǐng)求信號(hào);在傳送完一個(gè)字節(jié)數(shù)后輸出一個(gè)脈沖信號(hào),用于記錄已傳送的字節(jié)數(shù)、為外部提供周期性的脈沖序列;在一個(gè)數(shù)據(jù)塊傳送完后能自動(dòng)裝入新的起始地址和字節(jié)數(shù),以便重復(fù)傳送一個(gè)數(shù)據(jù)塊或?qū)讉€(gè)數(shù)據(jù)塊起來(lái)傳送;產(chǎn)生兩個(gè)存儲(chǔ)器地址,從而實(shí)現(xiàn)存儲(chǔ)器與存儲(chǔ)器之間的傳送以與能夠?qū)/O設(shè)備尋址,實(shí)現(xiàn)I/O設(shè)備與I/O設(shè)備之間的傳送以與能夠在傳送過(guò)程中檢索某一特定字節(jié)或者進(jìn)行數(shù)據(jù)檢驗(yàn)等等13。2.1.2 DMA控制器的基本組成一個(gè)DMA控制器,實(shí)際上是采用DMA方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成。習(xí)慣上將DMA方式的接口電路稱為DMA控制器。圖 2.1

26、給出了一個(gè)最簡(jiǎn)單的DMA控制器組成示意圖6。圖2.1 控制器的組成(1)存地址計(jì)數(shù)器:用于存放存中要交換的數(shù)據(jù)的地址。在 DMA傳送前,須通過(guò)程序?qū)?shù)據(jù)在存中的起始位置(首地址)送到存地址計(jì)數(shù)器。而當(dāng) DMA 傳送時(shí),每交換一次數(shù)據(jù),將地址計(jì)數(shù)器加“1”,從而以增量方式給出存中要交換的一批數(shù)據(jù)的地址。(2)字計(jì)數(shù)器:用于記錄傳送數(shù)據(jù)塊的長(zhǎng)度(多少字?jǐn)?shù))。其容也是在數(shù)據(jù)傳送之前由程序預(yù)置,交換的字?jǐn)?shù)通常以補(bǔ)碼形式表示。在DMA傳送時(shí),每傳送一個(gè)字,字計(jì)數(shù)器就加“1”。當(dāng)計(jì)數(shù)器溢出即最高位產(chǎn)生進(jìn)位時(shí),表示這批數(shù)據(jù)傳送完畢,于是引起DMA控制器向CPU發(fā)出中斷信號(hào)。(3)數(shù)據(jù)緩沖寄存器:用于暫存每次

27、傳送的數(shù)據(jù)(一個(gè)字)。當(dāng)輸入時(shí),由設(shè)備(如磁盤(pán))送往數(shù)據(jù)緩沖寄存器,再由緩沖寄存器通過(guò)數(shù)據(jù)總線送到存。反之,輸出時(shí),由存通過(guò)數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到設(shè)備。(4)“DMA請(qǐng)求”標(biāo)志:每當(dāng)設(shè)備準(zhǔn)備好一個(gè)數(shù)據(jù)字后給出一個(gè)控制信號(hào),使“DMA 請(qǐng)求”標(biāo)志置“1”。該標(biāo)志置位后向“控制/狀態(tài)”邏輯發(fā)出DMA請(qǐng)求,后者又向CPU發(fā)出總線使用權(quán)的請(qǐng)求(HOLD),CPU響應(yīng)此請(qǐng)求后發(fā)回響應(yīng)信號(hào)HLDA,“控制/狀態(tài)”邏輯接收此信號(hào)后發(fā)出DMA響應(yīng)信號(hào),使“DMA 請(qǐng)求”標(biāo)志復(fù)位,為交換下一個(gè)字做好準(zhǔn)備。(5)“控制/狀態(tài)”邏輯:由控制和時(shí)序電路以與狀態(tài)標(biāo)志等組成,用于修改存地址計(jì)數(shù)器和字計(jì)數(shù)器

28、,指定傳送類型(輸入或輸出),并對(duì)“DMA請(qǐng)求”信號(hào)和CPU響應(yīng)信號(hào)進(jìn)行協(xié)調(diào)和同步。(6)中斷機(jī)構(gòu):當(dāng)字計(jì)數(shù)器溢出時(shí),意味著一組數(shù)據(jù)交換完畢,由溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷報(bào)告2224。2.1.3DMA控制器的傳送方式(1)連續(xù)傳送(塊傳送):DMAC申請(qǐng)到總線后,將一塊數(shù)據(jù)傳送完后才釋放總線,而不管中間DREQ是否有效。在連續(xù)操作方式中,DMAC 在獲得總線控制權(quán)后連續(xù)傳送數(shù)據(jù)字節(jié),可以獲得比單字節(jié)操作方式更高的數(shù)據(jù)傳輸率。但在此間DMAC 一直占用總線,CPU無(wú)法進(jìn)行任何需要系統(tǒng)總線的操作,只能保持空閑。此方式的結(jié)束,可由DMAC中設(shè)置的字節(jié)計(jì)數(shù)器的計(jì)數(shù)結(jié)果決定(每操作一個(gè)字節(jié),

29、計(jì)數(shù)器減1,直到產(chǎn)生終止計(jì)數(shù)信號(hào)),也可以由外部輸入的過(guò)程結(jié)束信號(hào)決定。其原理如圖2.2所示。(2)單次傳送(每次傳送一個(gè)字節(jié)):每個(gè)DMA周期只傳送一個(gè)字節(jié)就立即釋放總線。這樣CPU至少可以得到一個(gè)總線周期,并可進(jìn)行有關(guān)的操作。如果需要進(jìn)行下一個(gè)字節(jié)的傳送,需要重新進(jìn)行DMA的申請(qǐng)。其原理如圖2.3所示。(3)按需傳送(猝發(fā)傳送):只要I/O接口的數(shù)據(jù)緩沖可用,就進(jìn)行傳送。(I/O接口需要有一定大小的FIFO緩沖)。換句話說(shuō),采用猝發(fā)傳送方式,通過(guò)控制DMA請(qǐng)求信號(hào)的有效或無(wú)效,可以把一個(gè)數(shù)據(jù)塊分幾次傳送,而允許接口的數(shù)據(jù)沒(méi)準(zhǔn)備好時(shí),暫時(shí)停止傳送。其原理如圖2.4所示1315。圖2.2 連續(xù)

30、操作方式圖2.3 單字節(jié)操作方式圖2.4 請(qǐng)求操作方式2.1.4 DMA控制器的傳送過(guò)程DMAC的傳送過(guò)程主要是:(1)外設(shè)向DMAC發(fā)DMA傳送請(qǐng)求。DMAC通過(guò)連接到CPU的HOLD信號(hào)向 CPU提出DMA請(qǐng)求。CPU在完成當(dāng)前總線操作后立即對(duì)DMA請(qǐng)求做出響應(yīng)。CPU的響應(yīng)包括兩個(gè)方面:一方面,CPU將控制總線、數(shù)據(jù)總線和地址總線浮空,即放棄對(duì)這些總線的控制權(quán);另一方面,CPU將有效的HLDA信號(hào)加到DMAC上,用此來(lái)通知DMAC,CPU已經(jīng)放棄了總線的控制權(quán)。(2)待CPU將總線浮空,即放棄了總線的控制權(quán)后,由DMAC接管系統(tǒng)總線的控制權(quán),并向外設(shè)送出DMA的應(yīng)答信號(hào)。(3)由DMAC

31、送出地址信號(hào)和控制信號(hào),實(shí)現(xiàn)外設(shè)與存或存不同區(qū)域之間大量數(shù)據(jù)的快速傳送。圖2.5 DMAC工作電路圖(4)DMAC將規(guī)定的數(shù)據(jù)字節(jié)傳送完之后,通過(guò)向CPU發(fā)HOLD信號(hào),撤銷對(duì)CPU的DMA請(qǐng)求。CPU收到此信號(hào),一方面使HLDA無(wú)效,另一方面又重新開(kāi)始控制總線,實(shí)現(xiàn)正常取指令、分析指令、執(zhí)行指令的操作。下面圖2.6是DMA的工作流程示意圖17。圖2.6 DMA的工作流程示意圖2.1.5DMA控制器的傳送狀態(tài)DMAC是作為兩種存儲(chǔ)實(shí)體之間實(shí)現(xiàn)高速數(shù)據(jù)傳送而設(shè)計(jì)的專用處理器。它與其他外圍接口控制器件不同,它具有接管和控制計(jì)算機(jī)系統(tǒng)總線(包括數(shù)據(jù)、地址和控制總線)的能力,即它能取代CPU而成為系統(tǒng)

32、的主控者。但在它取得總線控制權(quán)之前,又與其他I/O接口芯片一樣受CPU的控制。因此,DMA控制器在系統(tǒng)中有兩種工作狀態(tài):主動(dòng)態(tài)與被動(dòng)態(tài).。其對(duì)應(yīng)的兩種地位:主控器和受控器。(1)主動(dòng)態(tài):是指DMA具有接管和控制微機(jī)系統(tǒng)總線的功能,即取代CPU而成為系統(tǒng)的控制者,向存儲(chǔ)器與外設(shè)發(fā)號(hào)施令。此時(shí),它通過(guò)總線向存儲(chǔ)或外設(shè)發(fā)出地址和讀寫(xiě)信號(hào),以控制兩存儲(chǔ)實(shí)體(存儲(chǔ)器與外設(shè))間的數(shù)據(jù)傳送。DMA操作期間,控制系統(tǒng)總線,控制M與I/O的數(shù)據(jù)傳送(通過(guò)總線向M或I/O發(fā)出地址和讀寫(xiě)信號(hào):DMA寫(xiě)操作:DMAC發(fā)出IOR和MEMW信號(hào),存儲(chǔ)器外設(shè);DMA讀操作:DMAC發(fā)出IOW和MEMR信號(hào),存儲(chǔ)器外設(shè)。)(

33、2)被動(dòng)態(tài):指DMA控制器在沖線控制權(quán)取得前同其他I/O接口芯片一樣,受CPU的控制。非DMA操作期間,受CPU控制檢測(cè)CS和DREQ信號(hào)(一般當(dāng)DMAC上電或者復(fù)位時(shí),DMAC自動(dòng)處于被動(dòng)狀態(tài))。由CPU對(duì)DMAC編程,確定通道選擇、DMA操作類型與方式、存首址、地址傳送方向、傳送字節(jié)數(shù);傳送完畢讀DMAC的狀態(tài)1821。通過(guò)對(duì)DMAC在系統(tǒng)中的兩種工作狀態(tài)的分析可知:在DMA操作過(guò)程中,總線控制權(quán)在DMAC與CPU之間轉(zhuǎn)移。當(dāng)DMAC收到從外部設(shè)備發(fā)出的請(qǐng)求信號(hào)時(shí),DMAC經(jīng)判優(yōu)與屏蔽處理后向總線仲裁器送出總線請(qǐng)求信號(hào)要求占用總線。經(jīng)總線仲裁器裁決,CPU完成總線周期后進(jìn)入總線保持狀態(tài),使

34、CPU對(duì)總線的控制失效,并發(fā)出總線回答信號(hào)通知DMAC,CPU已交出系統(tǒng)總線控制權(quán)。此時(shí)DMAC接管總線控制權(quán),然后由它向I/O設(shè)備發(fā)出DMA應(yīng)答信號(hào)。2.1.6DMA操作的基本方法DMA技術(shù)的出現(xiàn),使得外圍設(shè)備可以通過(guò)DMA控制器直接訪問(wèn)存,與此同時(shí),CPU可以繼續(xù)執(zhí)行程序。DMA控制器與CPU分時(shí)使用存通常采用一下三種方法:(1)停止CPU訪問(wèn)存:當(dāng)外圍設(shè)備要求傳送一批數(shù)據(jù)時(shí),由DMA控制器發(fā)一個(gè)停止信號(hào)給CPU,要求CPU放棄對(duì)地址總線、數(shù)據(jù)總線和有關(guān)的控制總線的使用權(quán)。DMA控制器獲得總線控制權(quán)以后,開(kāi)始進(jìn)行數(shù)據(jù)傳送。在一批數(shù)據(jù)傳送完畢后,DMA控制器通知CPU可以使用存,并把總線控制

35、權(quán)交還給CPU。在這種DMA傳送過(guò)程中,CPU基本處于不工作狀態(tài)或者說(shuō)保持狀態(tài)。這種傳送方式的時(shí)間圖如下:內(nèi)存工作時(shí)間CPU控制并使用內(nèi)存DMA工作并使用內(nèi)存圖2.7 停止CPU訪問(wèn)其優(yōu)點(diǎn)是:控制簡(jiǎn)單,它適用于數(shù)據(jù)傳輸率很高的設(shè)備進(jìn)行成組傳送。其缺點(diǎn)是:在DMA控制器訪階段,存的效能沒(méi)有充分發(fā)揮,相當(dāng)一部分存工作周期是空閑的。這是因?yàn)椋鈬O(shè)備傳送兩個(gè)數(shù)據(jù)之間的間隔一般總是大于存存儲(chǔ)周期,即使高速I/O設(shè)備也是如此16。(2)周期挪用:當(dāng)I/O設(shè)備沒(méi)有DMA請(qǐng)求時(shí),CPU按程序要求訪問(wèn)存;一旦I/O設(shè)備有DMA請(qǐng)求,則由I/O設(shè)備挪用一個(gè)或者幾個(gè)存周期。這種傳送方式的時(shí)間圖如下圖所示:內(nèi)存工作

36、時(shí)間CPU控制并使用內(nèi)存DMA工作并使用內(nèi)存圖2.8 周期挪用與停止CPU訪問(wèn)的DMA方法相比較,周期挪用的方法既實(shí)現(xiàn)了I/O傳送,又較好的發(fā)揮了存和CPU的效率,是一種廣泛采用的方法。但是I/O設(shè)備每一次周期挪用都有申請(qǐng)總線控制權(quán)和歸還總線控制權(quán)的過(guò)程,所以傳送一個(gè)字對(duì)存來(lái)說(shuō)要占用一個(gè)周期,但對(duì)DMA控制器來(lái)說(shuō)一般要25個(gè)存周期(視邏輯線路的延遲而定)。因此,周期挪用的方法適用于I/O設(shè)備讀寫(xiě)周期大于存存儲(chǔ)周期的情況16。(3)DMA與CPU交替訪問(wèn):如果CPU的工作周期比存存取周期長(zhǎng)很多,此時(shí)采用交替訪的方法可以使DMA傳送和CPU同時(shí)發(fā)揮最高的效率。假設(shè)CPU工作周期為1.2s,存存取周

37、期小于0.6s,那么一個(gè)CPU周期可分為C1和C2兩個(gè)分周期,其中C1供DMA控制器訪,C2供CPU訪。這種傳送方式的時(shí)間圖如下:內(nèi)存工作時(shí)間CPU控制并使用內(nèi)存DMA工作并使用內(nèi)存圖2.9 DMA與CPU交替訪問(wèn)這種方式不需要總線使用權(quán)的申請(qǐng)、歸還過(guò)程,總線使用權(quán)是通過(guò)C1和C2分時(shí)進(jìn)行的。CPU和DMA控制器各自有自己的訪地址寄存器、數(shù)據(jù)寄存器和讀/寫(xiě)信號(hào)等控制寄存器。在C1周期中,如果DMA控制器有訪請(qǐng)求,可將地址、數(shù)據(jù)等信號(hào)送到總線上。在C2周期中,如CPU有訪請(qǐng)求,同樣將傳送地址、數(shù)據(jù)等信號(hào)。事實(shí)上,對(duì)于總線,這是用C1,C2控制的一個(gè)多路轉(zhuǎn)換器,掌握中總線控制權(quán)的轉(zhuǎn)移幾乎不需要什么

38、時(shí)間,所以對(duì)DMA傳送來(lái)講效率是很高的。這種傳送方式又稱為“通行的DMA”方式,其來(lái)由是這種DMA傳送對(duì)CPU來(lái)說(shuō),如同透明的玻璃一般,沒(méi)有任何感覺(jué)或者影響。在透明的DMA方式下工作,CPU既不停止主程序的運(yùn)行,也不進(jìn)入等待狀態(tài),是一種高效率的工作方式。當(dāng)然,相應(yīng)的硬件邏輯就更加復(fù)雜1617。2.2 選擇型和多路型DMA控制器2.2.1選擇型DMA控制器選擇型DMA控制器在物理上可以連接多個(gè)設(shè)備,而在邏輯上只允許連接一個(gè)設(shè)備。換句話說(shuō),在某一個(gè)時(shí)間段只能為一個(gè)設(shè)備提供服務(wù)。選擇型DMA控制器的工作原理與基本DMA控制器大致一樣。除了前面提到的基本邏輯部件外,還有一個(gè)設(shè)備號(hào)寄存器。數(shù)據(jù)傳送是以數(shù)

39、據(jù)塊為單位進(jìn)行的,在每個(gè)數(shù)據(jù)塊傳送之前的預(yù)置階段,除了用程序中的I/O指令給出數(shù)據(jù)塊的傳送個(gè)數(shù)、起始地址、操作命令外,還要給出所選擇的設(shè)備號(hào)。從預(yù)置開(kāi)始,一直到這個(gè)數(shù)據(jù)塊傳送結(jié)束,DMA控制器只為所選的設(shè)備提供服務(wù)。下一次預(yù)置時(shí)再根據(jù)I/O指令指出的設(shè)備號(hào),為所選擇的另一設(shè)備提供服務(wù)。顯然,選擇型DMA控制器相當(dāng)于一個(gè)邏輯開(kāi)關(guān),根據(jù)I/O指令來(lái)控制此開(kāi)關(guān)與某個(gè)設(shè)備連接。選擇型DMA控制器只增加了少量的硬件就達(dá)到為多個(gè)外圍設(shè)備提供服務(wù)的目的,它特別適合于數(shù)據(jù)傳輸率很高甚至接近于主存存取速度的設(shè)備,在高速傳送完一個(gè)數(shù)據(jù)塊后,控制器又可為其他設(shè)備提供服務(wù)1112。圖2.10 選擇型DMA控制器的邏輯

40、框圖2.2.2多路型DMA控制器與選擇型DMA方式相比,多路型DMA不僅在物理上可以連接多個(gè)外圍設(shè)備,而且在邏輯上也允許這些外圍設(shè)備同時(shí)工作,各個(gè)設(shè)備以字節(jié)交叉方式通過(guò)DMA控制器進(jìn)行數(shù)據(jù)傳送。多路型DMA控制器適合于同時(shí)為多個(gè)慢速外圍設(shè)備提供服務(wù)。多路型DMA控制器可以對(duì)多個(gè)獨(dú)立的DMA通路進(jìn)行控制。當(dāng)某個(gè)外圍設(shè)備請(qǐng)求DMA服務(wù)時(shí),操作過(guò)程如下:(1)DMA控制器接到設(shè)備發(fā)出的DMA請(qǐng)求,將請(qǐng)求轉(zhuǎn)送到CPU。(2)CPU在適當(dāng)?shù)臅r(shí)刻響應(yīng)DMA請(qǐng)求。若CPU不需要占用總線則繼續(xù)執(zhí)行指令;若CPU需要占用總線則進(jìn)入等待狀態(tài)。(3)DMA控制器接到CPU的響應(yīng)信號(hào)后,進(jìn)行以下工作:對(duì)現(xiàn)有DMA請(qǐng)求

41、中優(yōu)先權(quán)最高的請(qǐng)求予以響應(yīng);選擇相應(yīng)的地址寄存器的容來(lái)驅(qū)動(dòng)地址總線;根據(jù)所選設(shè)備操作寄存器的容,向總線發(fā)出讀、寫(xiě)信號(hào);外圍設(shè)備向數(shù)據(jù)總線傳送數(shù)據(jù),或從數(shù)據(jù)總線接收數(shù)據(jù);每個(gè)字節(jié)傳送完畢后,DMA控制器使相應(yīng)的地址寄存器和長(zhǎng)度寄存器加“1”或減“1”。以上是一個(gè)DMA請(qǐng)求的過(guò)程,在一批數(shù)據(jù)傳送過(guò)程中,要多次重復(fù)上述過(guò)程,直到外圍設(shè)備表示一個(gè)數(shù)據(jù)塊已傳送完畢,或該設(shè)備的長(zhǎng)度控制器判定傳送長(zhǎng)度已滿。多路型DMA控制器分為鏈?zhǔn)蕉嗦沸虳MA控制器與獨(dú)立請(qǐng)求方式多路型DMA控制器。圖2.11(a)為鏈?zhǔn)蕉嗦沸虳MA控制器的原理框圖,圖2.11(b)為獨(dú)立請(qǐng)求方式型DMA控制器的原理框圖1112。圖2.11

42、(a) 鏈?zhǔn)蕉嗦沸虳MA控制器的原理框圖圖2.11(b) 獨(dú)立請(qǐng)求方式型DMA控制器的原理框圖2.3 DMA控制器在現(xiàn)實(shí)中的應(yīng)用DMA控制器的主要用途是在CPU不干涉的情況下,負(fù)責(zé)存儲(chǔ)器之間或存儲(chǔ)器和外圍設(shè)備之間的數(shù)據(jù)交換。這種用途不僅僅可以加快存儲(chǔ)器之間大數(shù)據(jù)量的交換,更重要的是,CPU可以從大數(shù)據(jù)量交換、分散數(shù)據(jù)收集、慢速設(shè)備的訪問(wèn)中解放出來(lái),從而提高CPU的利用效率。目前國(guó)外的DMA技術(shù)己經(jīng)逐漸實(shí)現(xiàn)數(shù)據(jù)交換的智能化和通道化。DMA不僅可以按照總線協(xié)議進(jìn)行數(shù)據(jù)交換,而且可以編程設(shè)置多種功能。一種智能化表現(xiàn)就是DMA采用鏈表形式,完成多任務(wù)數(shù)據(jù)傳輸。任務(wù)鏈表存放在存儲(chǔ)器中,DMA從存儲(chǔ)器中讀

43、取任務(wù)鏈表,根據(jù)鏈表中的容完成相應(yīng)的操作。DMA也可以操作鏈表,實(shí)現(xiàn)和鏈表生成者的交互。采用鏈表形式,一個(gè)DMA就可以自動(dòng)地為多個(gè)有序設(shè)備服務(wù)。另一種智能化表現(xiàn)為DMA對(duì)特定協(xié)議的識(shí)別,比對(duì)某種串行通訊協(xié)議的識(shí)別,從而可以完成串行數(shù)據(jù)的基本解包、打包任務(wù)。這種衍生功能和DMA的通道化技術(shù)聯(lián)系比較緊密19。DMA通道化技術(shù)就是讓 DMA為某個(gè)或某些特定的設(shè)備服務(wù),提高這些設(shè)備(往往是高速串行設(shè)備、存儲(chǔ)器)的智能化,減少CPU的干涉。在大型計(jì)算機(jī)系統(tǒng)中,為了輔助CPU對(duì)大量外圍設(shè)備進(jìn)行管理,普遍采用了I/O通道技術(shù)。I/O通道技術(shù)是DMA概念的擴(kuò)展。I/O通道具備執(zhí)行I/O指令來(lái)完成對(duì)I/O操作控

44、制的能力。由通道技術(shù)發(fā)展起來(lái)的通道處理機(jī)可以看作是一臺(tái)能夠執(zhí)行有限輸入輸出指令,并且能被多臺(tái)外圍設(shè)備共享的小型DMA專用處理機(jī)。DMA通道由于可以執(zhí)行簡(jiǎn)單的微指令,因此可以很方便地完成對(duì)一個(gè)或多個(gè)設(shè)備的控制。用戶程序首先根據(jù)不同的設(shè)備號(hào)和數(shù)據(jù)傳輸任務(wù)生成設(shè)備管理程序。在管理程序里定義DMA通道程序(比如鏈?zhǔn)紻MA中的任務(wù)鏈表),并在初始化DMA通道后啟動(dòng)I/O設(shè)備。DMA通道接收到I/O設(shè)備提出的請(qǐng)求或管理程序提供的部請(qǐng)求后,開(kāi)始讀取通道程序。DMA通道從通道程序中知道目標(biāo)設(shè)備(目標(biāo)地址)、源設(shè)備(源地址)、數(shù)據(jù)大小(數(shù)據(jù)量),并根據(jù)微控制指令得到更詳細(xì)的控制信息,然后根據(jù)通道程序定義的數(shù)據(jù)傳

45、輸(和簡(jiǎn)單處理)任務(wù)開(kāi)始工作。在完成通道程序定義的所有任務(wù)后,DMA通道提出中斷請(qǐng)求。CPU根據(jù)中斷請(qǐng)求進(jìn)入中斷服務(wù)程序,判斷DMA通道完成任務(wù)的情況,并決定是否設(shè)置新的通道任務(wù)。由于通道程序可以設(shè)置多個(gè)有序任務(wù),DMA通道可以很方便地實(shí)現(xiàn)對(duì)多個(gè)設(shè)備的控制20。目前,DMA在高速數(shù)據(jù)傳輸、慢速設(shè)備管理、零散數(shù)據(jù)收集等方面得到廣泛應(yīng)用。采用通道程序可以很方便地實(shí)現(xiàn)不同地址段之間的數(shù)據(jù)傳輸,因此DMA在存儲(chǔ)器分頁(yè)操作、虛擬地址映射等非連續(xù)性地址的數(shù)據(jù)傳輸中得到應(yīng)用。在一些Cache訪問(wèn)中,為了提高數(shù)據(jù)傳輸速度,也采用DMA來(lái)實(shí)現(xiàn)數(shù)據(jù)在總線上的直接交換。國(guó)有人研究利用DMA芯片或DMA接口電路進(jìn)行高

46、速數(shù)據(jù)采集。在圖像處理系統(tǒng)中,DMA控制器也有廣泛應(yīng)用和前景。系統(tǒng)中采用DSP的片上 DMA控制器,以 DMA數(shù)據(jù)傳輸方式將圖像數(shù)據(jù)從片外直接提取到片。DSP的DMA控制器可以在沒(méi)有CPU參與的情況下完成存儲(chǔ)器映射區(qū)之間的數(shù)據(jù)傳輸。DMA允許在片存儲(chǔ)器、片外設(shè)或外部器件之間進(jìn)行數(shù)據(jù)傳輸。例如TI公司的TMS320VC5416 的DMA集成了6個(gè)相互獨(dú)立的可編程的傳輸通道,允許進(jìn)行6種不同容的數(shù)據(jù)傳送,具有快速、大批量的特點(diǎn)。對(duì)于通訊微處理器而言,DMA的介入主要是為了提高處理器數(shù)據(jù)通訊的能力。MOTOROLA的MPC8240微處理器就安排了兩個(gè)DMA通道負(fù)責(zé)串行設(shè)備的數(shù)據(jù)傳輸。AMD公司的AM

47、186CC系列微處理器/微控制器設(shè)置了十多個(gè)DMA,負(fù)責(zé)串行設(shè)備的數(shù)據(jù)通訊。DMA處理串行數(shù)據(jù)的接收發(fā)送,可以減少串行設(shè)備中斷CPU的次數(shù),提高CPU的工作效率。在有些高速串行數(shù)據(jù)中,數(shù)據(jù)間隔可能很短,CPU的中斷反應(yīng)時(shí)間可能太慢,此時(shí)必需采用DMA提高數(shù)據(jù)傳輸?shù)姆磻?yīng)時(shí)間。比如在AM186CC系列微處理器中DMA采用了鏈?zhǔn)絺鬏敺绞酵瓿蒆DLC(高級(jí)數(shù)據(jù)鏈路控制器,一種高性能同步串口控制器)與存儲(chǔ)器之間的數(shù)據(jù)交換,由于DMA直接讀取存儲(chǔ)器中鏈表得知下一個(gè)傳輸任務(wù),就不存在CPU中斷反應(yīng)的環(huán)節(jié),保證了數(shù)據(jù)安全地被接收到存儲(chǔ)器2425。3 DMA控制器的行為級(jí)設(shè)計(jì)本文所要設(shè)計(jì)的是一個(gè)同步DMA控制器

48、電路系統(tǒng),用來(lái)控制存與外設(shè)之間的數(shù)據(jù)交流。本章結(jié)合對(duì)工作要求和環(huán)境的考慮,并依據(jù)前兩章所介紹的DMA與DMA控制器的基本理論,制定了此電路系統(tǒng)的總體設(shè)計(jì)方案并完成了電路的行為級(jí)設(shè)計(jì)。3.1設(shè)計(jì)方案3.1.1設(shè)計(jì)說(shuō)明(1) 設(shè)計(jì)方法:硬件電路的基本設(shè)計(jì)方法主要是指:傳統(tǒng)的“Bottom-Up”的設(shè)計(jì)方法和新興的“Top-Down”的EDA設(shè)計(jì)方法。由于Top-Down的設(shè)汁方法是首先從系統(tǒng)設(shè)計(jì)人手,從頂層進(jìn)行功能劃分和結(jié)構(gòu)設(shè)計(jì)。系統(tǒng)的總體仿真是頂層進(jìn)行功能劃分的重要環(huán)節(jié),這時(shí)的設(shè)計(jì)是與工藝無(wú)關(guān)的。由于設(shè)計(jì)的主要仿真和調(diào)試過(guò)程是在高層次完成的,所以能夠早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤,同時(shí)也減少了邏輯仿真

49、的工作量。本文采用Top-Down的設(shè)計(jì)方法。(2) 設(shè)計(jì)語(yǔ)言:硬件描述語(yǔ)言是硬件設(shè)計(jì)人員和 EDA工具之間的接口,其主要目的是用來(lái)編寫(xiě)設(shè)計(jì)文件、建立電子系統(tǒng)行為級(jí)的仿真模型。Verilog HDL 和 VHDL是目前最常用的兩種硬件描述語(yǔ)言,同時(shí)也都是IEEE標(biāo)準(zhǔn)化的 HDL語(yǔ)言。Verilog HDL是從 C語(yǔ)言發(fā)展而來(lái)的,相比 VHDL而言其編程風(fēng)格更加簡(jiǎn)潔明了,成熟的資源遠(yuǎn)比VHDL豐富。本文采用Verilog HDL作為設(shè)計(jì)語(yǔ)言。(3)設(shè)計(jì)工具:現(xiàn)在市場(chǎng)上的 Verilog HDL的仿真軟件很多種,如:Mentor公司的 Modelsim、Cadence公司的 Verilog-XL、

50、Synopsys公司的 VCS等。本設(shè)計(jì)所采用的仿真軟件是Mentor公司提供的ModelSim SE 10.1a。(4)系統(tǒng)的時(shí)鐘:在設(shè)計(jì)電路時(shí),可以有異步電路和同步電路兩種實(shí)現(xiàn)方法。異步電路使用組合邏輯電路實(shí)現(xiàn),沒(méi)有統(tǒng)一的時(shí)鐘信號(hào),容易產(chǎn)生毛刺和競(jìng)爭(zhēng)冒險(xiǎn);同步時(shí)序電路使用組合邏輯和觸發(fā)器實(shí)現(xiàn)電路功能,主要信號(hào)和輸出信號(hào)都由時(shí)鐘驅(qū)動(dòng)觸發(fā)器產(chǎn)生,能夠避免毛刺,信號(hào)穩(wěn)定。本文設(shè)計(jì)的是同步DMAC電路,同步時(shí)鐘頻率為 100MHz4。3.1.2運(yùn)行環(huán)境與設(shè)計(jì)功能要求(1)DMA控制器的運(yùn)行環(huán)境:32-bit RISC processor、88 RC Array、64bit Frame Buffer

51、、32-bit SDRAM。(2)功能要求:DMA 控制器在 RISC 處理器在調(diào)控下,應(yīng)該具有調(diào)控?cái)?shù)據(jù)傳輸?shù)墓δ?。主要具有以下功能:?SDRAM 裝載數(shù)據(jù)到 FB;從FB 儲(chǔ)存數(shù)據(jù)到 SDRAM;從 SDRAM 數(shù)據(jù)到 RC。3.1.3DMA控制器設(shè)計(jì)的相關(guān)組件本文所設(shè)計(jì)的DMA控制器是一個(gè)可選擇通道的DMA控制器,它受控于RISC處理器,處理SDRAM、FB、RC 之間的數(shù)據(jù)傳輸。DMA 控制器與其他模塊接口全景描述如圖 3.1 所示。RISC(Reduced Instruction Set Computers)即精密指令集計(jì)算機(jī),是為了提高處理器運(yùn)行的速度而設(shè)計(jì)的芯片體系。它的關(guān)鍵技術(shù)

52、在于流水線操作,在一個(gè)時(shí)鐘周期里完成多條指令。由于RISC處理器的指令集是精簡(jiǎn)的,它的存管理單元、浮點(diǎn)單元等都能設(shè)計(jì)在同一塊芯片上。RISC 處理器比CISC處理器設(shè)計(jì)更簡(jiǎn)單,所需要的處理時(shí)間將變得更短,并可以采用比CISC處理器更多先進(jìn)的技術(shù),便于開(kāi)發(fā)更快的下一代處理器。圖3.1 DMA控制器與接口模塊全景圖FB(Frame Buffer)即幀緩沖器,它是一個(gè)快速存儲(chǔ)緩沖器,運(yùn)行頻率高達(dá)100MHz。它是由靜態(tài)隨機(jī)存儲(chǔ)器組成的存儲(chǔ)器陣列,數(shù)據(jù)可以通過(guò)多路復(fù)用器和緩沖器直接傳送。它功能上作為SDRAM數(shù)據(jù)在DMAC和RC之間傳送的緩沖器。在它的部有兩個(gè)單獨(dú)的接收機(jī),每個(gè)接收機(jī)包含兩個(gè)儲(chǔ)藏體。D

53、MAC 每次只能訪問(wèn)一個(gè)儲(chǔ)藏體,而一個(gè)RC在讀取數(shù)據(jù)時(shí)要訪問(wèn)兩個(gè)儲(chǔ)藏體。SDRAM(Synchronous DRAM)即同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,這是目前使用最為廣泛一種存類型,也是目前奔騰計(jì)算機(jī)系統(tǒng)普遍使用的存形式。SDRAM 將CPU與RAM通過(guò)一個(gè)一樣的時(shí)鐘鎖在一起,使RAM和CPU能夠共享一個(gè)時(shí)鐘周期,以一樣的速度同步工作,與EDO存相比速度能提高 50%,是目前最快的存芯片。SDRAM不僅可用作主存,在顯示卡上的存方面也有廣泛應(yīng)用。作為主存,數(shù)據(jù)帶寬越寬,同時(shí)處理的數(shù)據(jù)就越多;作為顯存,顯示的信息越多,顯示品質(zhì)也就越高。RC(Re-configurable Cell array)即可配置單

54、元陣列,它有64個(gè)可配置單元,排列成88陣列的形式。每個(gè)單元有一個(gè)ALU/MAC和一個(gè)寄存器。此RC陣列通過(guò)context字來(lái)配置功能和網(wǎng)絡(luò)連接。Context字儲(chǔ)存在context memory的兩個(gè)塊中(分別儲(chǔ)存在行和列),每個(gè)塊有8組16字context。RC陣列部互連如圖 3.2 所示4:圖3.2 RC陣列部互連圖3.2 DMA控制器功能模塊劃分根據(jù)設(shè)計(jì)要求,將DMA控制器劃分為三個(gè)主要功能模塊:DataRegisters Unit(DRU)數(shù)據(jù)寄存器單元,Address GeneratorUnit(AGU)地址產(chǎn)生器單元,State Controller Unit(SCU)狀態(tài)控制器

55、單元,如圖 3.3 所示:圖3.3 DMA控制器部功能塊劃分3.3 功能模塊的行為級(jí)設(shè)計(jì)與Verilog HDL描述3.3.1數(shù)據(jù)寄存器的行為級(jí)描述數(shù)據(jù)寄存器的主要任務(wù)是從SDRAM獲取數(shù)據(jù),然后傳給FB或者RC。存儲(chǔ)器的數(shù)據(jù)寬度是32位,但是I/O傳向FB的數(shù)據(jù)是64位。所以數(shù)據(jù)寄存器還必須保證數(shù)據(jù)的正確分配。數(shù)據(jù)寄存器的部劃分如圖3.4所示。圖3.4 DMA控制器數(shù)據(jù)寄存器部結(jié)構(gòu)圖數(shù)據(jù)寄存器(DRU)的外部信號(hào):sys_clk為全局時(shí)鐘信號(hào),所有信號(hào)在時(shí)鐘的高電平有效;clear_data_regs為DRU的清零復(fù)位信號(hào),當(dāng)清零復(fù)位信號(hào)為高電平時(shí),所有寄存器都重新復(fù)位,即裝載數(shù)據(jù) 0;me

56、m_data和fb_data即SDRAM和FB的數(shù)據(jù)信號(hào);由于mem_data的數(shù)據(jù)寬度是32位,而fb_data的數(shù)據(jù)寬度是64位的,因此需要 up_reg32_enable、lo_reg32_enable、reg64_enable1 和 reg64_enable2四個(gè)使能信號(hào)來(lái)保證數(shù)據(jù)正確分布。當(dāng)使能信號(hào)up_reg32_enable為高電平時(shí),寄存器up_reg32_odata裝載數(shù)據(jù)mem_data;當(dāng)使能信號(hào)lo_reg_enabel 為高電平時(shí),寄存器lo_reg32_odata裝載數(shù)據(jù)mem_data;當(dāng)使能信號(hào) reg64_enable1 為高電平時(shí),寄存器reg64_odat

57、a1裝載數(shù)據(jù)fb_data;當(dāng)使能信號(hào)reg_enable2為高電平時(shí),將寄存器reg64_odata1的數(shù)據(jù)裝載到寄存器reg_odata2。數(shù)據(jù)寄存器模塊行為級(jí)設(shè)計(jì)的Verilog HDL描述如下4:Module /端口定義DRU(fb_data,up_reg32_odata,lo_reg32_odata,reg64_odata1,reg64_odata2,mem_data,up_reg32_enable,lo_reg32_enable,reg64_enable1,reg64_enable2,sys_clk,clear_data_regs);input sys_clk; /輸入全局時(shí)鐘信號(hào)

58、input clear_data_regs; /輸入DRU的清零復(fù)位信號(hào)input up_reg32_enable,lo_reg32_enable; /輸入四個(gè)使能信號(hào)input reg64_enable1,reg64_enable2;input31:0mem_data; /輸入32位同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器數(shù)據(jù)input63:0fb_data; /輸入64位幀緩沖器數(shù)據(jù)output31:0up_reg32_odata,lo_reg32_odata;output63:0reg64_odata1,reg64_odata2;wire sys_clk,clear_data_regs; /聲明一個(gè)wire型

59、的時(shí)鐘信號(hào)和清零復(fù)位信號(hào)wire31:0mem_data;wire63:0fb_data;reg31:0up_reg32_odata;reg31:0lo_reg32_odata;wire up_reg32_enable;wire lo_reg32_enable;wire ld_3st_cntrl;reg63:0reg64_odata1;reg63:0reg64_odata2;wire reg64_enable1;wire reg64_enable2;wire str_mux_sel;wire str_3st_cntrl;integer i;always(posedge sys_clk) /時(shí)序

60、邏輯if(clear_data_regs)beginfor(i=0;i32;i=i+1) /for循環(huán)語(yǔ)句beginup_reg32_odatai=0;lo_reg32_odatai=0;endfor(i=0;i64;i=i+1)beginreg64_odata1i=0;reg64_odata2i=0;endendelsebeginif(up_reg32_enable=1)up_reg32_odata=mem_data;else if(lo_reg32_enable=1)lo_reg32_odata=mem_data;else if(reg64_enable1=1)reg64_odata1=f

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論