【正文】
wire fb_gen_ldinit,fb_gen_enable。 wire[63:0]reg64_odata2。 //聲明一個 wire型的全局時鐘信號和清零信號 wire[31:0]mem_data。 inout[31:0]up_reg32_odata,lo_reg32_odata。 output[6:0]fb_addr。 //輸入全局時鐘信號和全局復位清零信號 input dma_enable,load_store,rc_fb_select??梢钥吹?,在以上行為描述中使用了多種數(shù)據(jù)類型,而不需顧及他們的電路實現(xiàn)。 reg64_enable1=0。 byte_gen_ldinit=0。 clear_data_regs=0。 reg64_enable1=0。 byte_gen_ldinit=0。 clear_data_regs=1。 endmodule// 狀態(tài)控制器模塊的行為級設計描述 狀態(tài)控制器是 DMA 的核心,它從 RISC 處理器獲得信息,從而處理到 FB 或 RC的數(shù)據(jù)傳輸 。 else if(rc_gen_ldinit==1) rc_gen_oaddr=latch_tr_addresses[7:0]。b00000000。 reg[5:0]fb_gen_oaddr。 wire[3:0]latch_tr_control。 //輸入處理器控制 input mem_gen_ldinit,mem_gen_enable,byte_gen_ldinit。 else if(reg64_enable2==1) reg64_odata2=reg64_odata1。 lo_reg32_odata[i]=0。 wire reg64_enable1。 wire[63:0]fb_data。 //輸入 DRU的清零復位信號 input up_reg32_enable,lo_reg32_enable。存儲器的數(shù)據(jù)寬度是 32 位,但是 I/O 傳向 FB 的數(shù)據(jù)是 64 位。 SDRAM 將 CPU與 RAM 通過一個相同的時鐘鎖在一起,使 RAM 和CPU 能夠共享一個時鐘周期,以相同的速度同步工作,與 EDO 內(nèi)存相比速度 能提高 50%,是目前最快的內(nèi)存芯片。由于 RISC 處理器的指令集是精簡的,它的內(nèi)存管理單元、浮點單元等都能設計在同一塊芯片上。本文設計的是同步 DMAC 電路,同步時鐘頻率為 100MHz[4]。 (2) 設計語言:硬件描述語言是硬件設計人員和 EDA 工具之間的接口,其主要目的是用來編寫設計文件、建立電子系統(tǒng)行為級的仿真模型。比如在 AM186CC 系列微處理器中 DMA 采用了鏈式傳輸方式完成 HDLC(高級數(shù)據(jù)鏈路控制器,一種高性能同步串口控制器 )與存儲器之間的數(shù)據(jù)交換,由于 DMA 直接讀取存儲器中鏈表得知下 一個傳輸任務,就不存在 CPU 中斷反應的環(huán)節(jié),保證了數(shù)據(jù)安全地被接收到存儲器 [24][25]。 DSP的 DMA控制器可以在沒有 CPU參與的情況下完成存儲器映射區(qū)之間的數(shù)據(jù)傳輸。 CPU 根據(jù)中斷請求進入中斷服務程序,判斷 DMA 通 道完成任務的情況,并決定是否設置新的通道任務。 I/O 通道具備執(zhí)行 I/O 指令來完成對 I/O 操作控制的能力。任務鏈表存放在存儲器中, DMA 從存儲器中讀取任務鏈表,根據(jù)鏈表中的內(nèi)容完成相應的操作。 以上是一個 DMA 請求的過程,在一批數(shù)據(jù)傳送過程中,要多次重復上述過程,直到外圍設備表示一個數(shù)據(jù)塊已傳送完畢,或該設備的長度控制器判定傳送長度已滿。 選擇型 DMA 控制器只增加了少量的硬件就達到為多個外圍設備提供服務的目的,它特別適合于數(shù)據(jù)傳輸率很高甚至接近于主存存取速度的設備,在高速傳送完一個數(shù)據(jù)塊后,控制器又可為其他設備提供服務 [11][12]。 選擇型和多路型 DMA 控制器 選擇型 DMA 控制器 選擇型 DMA 控制器在物理上可以連接多個設備,而在邏輯上只允許連接一個設備。這種傳送方式的時間圖如下: 圖 DMA 與 CPU 交替訪問 這種方式不需要總線使用權的申請、歸還過程,總線使用權是通過 C1 和 C2 分時進行的。 其缺點是:在 DMA 控制器訪內(nèi)階段,內(nèi)存的效能沒有充分發(fā)揮,相當一部分內(nèi)存工作周期是空閑的。經(jīng)總線仲裁器裁決, CPU 完成總線周期后進入總線保持狀態(tài),使 CPU 對總線的控制失效,并發(fā)出總線回答信號通知 DMAC, CPU已交出系統(tǒng)總線控制權。 (1)主動態(tài):是指 DMA 具有接管和控制微機系統(tǒng)總線的功能,即取代 CPU而成為系統(tǒng)的控制者,向存儲器與外設發(fā)號施令。 理工大學學士學位論文 9 圖 DMAC 工作電路圖 (4)DMAC 將規(guī)定的數(shù)據(jù)字節(jié)傳送完之后,通過向 CPU 發(fā) HOLD 信號,撤銷對CPU的 DMA 請求。換句話說,采用猝發(fā)傳送方式,通過控制 DMA 請求信號的有效或無效,可以把一個數(shù)據(jù)塊分幾次傳送,而允許接口的數(shù)據(jù)沒準備好時,暫時停止傳送。此方式的結束,可由 DMAC 中設置的字節(jié)計數(shù)器的計數(shù)結果決定 (每操作一個字節(jié),計數(shù)器減 1,直到產(chǎn)生終止計數(shù)信號 ),也可以由外部輸入的過程結束信號決定。反之,輸出時,由內(nèi)存通過數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到設備。在 DMA 傳送前, 須通過程序?qū)?shù)據(jù)在內(nèi)存中的起始位置 (首地址 )送到內(nèi)存地址計數(shù)器。 DMA 內(nèi)部必須有能自動減 1 的字計數(shù)寄存器,計數(shù)結束產(chǎn)生終止計數(shù)信號; (5)能發(fā)出 DMA 結 束信號,釋放總線,使 CPU恢復總線控制權; (6)能發(fā)出讀、寫控制信號,包括存儲器訪問信號和 I/O 訪問信號。全文的主要工作及內(nèi)容是對 DMA 控制器的的基本概念進行了闡述,介紹了DMA 控制器的基本功能、組成,傳送的方式、過程、狀態(tài)等,同時確立 DMA 控制器的設計方案,對其源代碼進行編寫,最后對其模型進行仿真并得出結論。該 DMA 控制器也支持多通道傳輸,一個通道對應一個 I/O 口或外設口緩沖區(qū)。可配置使得 DMA 不僅可以按照總線協(xié)議進行數(shù)據(jù)交換,而且可以編程設置多種功能。 為此,提出了 DMA(直接存儲器存取 )傳輸方式。 60 理工大學學士學位論文 1 1 緒論 DMA 控制器的研究意義及背景 外設與計算機內(nèi)存之間的信息交換,可通過程序查詢方式和中斷方式進行。 40 SCU模塊的 Sti 及仿真 34 DMAC 各模塊設計的功能仿真 14 3 DMA 控制器的行為級設計 12 選擇型 DMA 控制器 8 DMA 控制器的傳送狀態(tài) 4 DMA 控制器的基本功能 1 DMA 控制器的研究意義及背景 DMA 控制器電路系統(tǒng)是由數(shù)據(jù)寄存器、地址產(chǎn)生器、狀態(tài)控制器三個子模塊組成,并且整個 DMA 控制器電路系統(tǒng)的編譯、仿真是在對三個子模塊分別進行編譯、仿真的基礎上完成的。理工大學學士學位論文 I 摘 要 DMA 是直接存儲器存取方式,即 (Direct Memory Access)方式的縮寫,存儲器與I/O 設備之間的數(shù)據(jù)傳送在 DMA 控制器 (又稱 DMAC)的管理下直接進行,而不經(jīng)過CPU。 關鍵詞: DMA 控制器 ; Verilog; Modelsim;仿真 理工大學學士學位論文 II Abstract DMA is a direct memory access mode, namely (Direct Memory Access) the abbreviation, between the memory and I/O devices transmit 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 report 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 development, the direct production of DMA controller LSI many manufacturers, although the DMA controller plexity 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 TopDown the design method. The DMA controller circuit system is posed of data register, address generator, state a controller posed of three modules, and the piler, simulation of the entire DMA controller circuit system and are piled, based on the simulation and synthesis of three submodules. Keywords: DMA controller ; Verilog; Modelsim; simulation 理工大學學士學位論文 III 目 錄 1 緒論 4 基本的 DMA 控制器 10 DMA 操作的基本方法 20 數(shù)據(jù)寄存器的行為級描述 20 地址產(chǎn)生器模塊的行為級設計描述 26 理工大學學士學位論文 IV 全電路的行為級描述 這兩種方式都是在 CPU 的控制下,通過 CPU 執(zhí)行指令來完成的。這種傳送方式是不經(jīng)過 CPU 干預,直接在外設與內(nèi)存儲器之間進行數(shù)據(jù)傳送的方式。根據(jù)體系結構的變化以及系統(tǒng)應用的需求, DMA控制器設計時在必備的目標起始地址、單元計數(shù)和變址模式基礎上可添加額外 的參數(shù)設置,使得數(shù)據(jù)傳輸更加靈活。一個 DMA 通道的建立是由寫入一組內(nèi)存緩沖區(qū)參數(shù) 寄存器 來完成的。 篇章結構 本文共分為 四 個部分,內(nèi)容如下: 第一章主要分析了 DMA 的研究的背景以及課題的重要意義,并簡要介紹了 DMA控制器的發(fā)展歷程和趨勢,同時闡明了 DMA 的原理,最后介紹了本文所做的工作和理工大學學士學位論文 3 主要內(nèi)容。 DMAC 內(nèi)部必須有時序和讀寫控制邏輯 [7][8]。而當 DMA 傳送時,每交換一次數(shù)據(jù),將地址計數(shù)器加 “1”,從而以增量方式給出內(nèi)存中要交換的一批數(shù)據(jù)的地址。 (4)“DMA請求 ”標志:每當設備準備好一個數(shù)據(jù)字后給出一個控制信號,使 “DMA 理工大學學士學位論文 6 請求 ”標志置 “1”。其原理如圖 所示。其原