freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于modelsim的dma控制器的設(shè)計(jì)學(xué)士學(xué)位論文-預(yù)覽頁(yè)

 

【正文】 控制器與周邊環(huán)境之間的相互作用,并在此基礎(chǔ)上提出了設(shè)計(jì) DMA 控制器的相關(guān)技術(shù)要求。 DMA 內(nèi)部必須有能自動(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ā)出讀、寫控制信號(hào),包括存儲(chǔ)器訪問(wèn)信號(hào)和 I/O 訪問(wèn)信號(hào)。 理工大學(xué)學(xué)士學(xué)位論文 5 DMA 控制器的基本組成 一個(gè) DMA 控制器,實(shí)際上是采用 DMA 方式的外圍設(shè)備與系統(tǒng)總線之間的接口電路,這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加 DMA 機(jī)構(gòu)組成。在 DMA 傳送前, 須通過(guò)程序?qū)?shù)據(jù)在內(nèi)存中的起始位置 (首地址 )送到內(nèi)存地址計(jì)數(shù)器。在 DMA 傳送時(shí),每傳送一個(gè)字,字計(jì)數(shù)器就加 “1”。反之,輸出時(shí),由內(nèi)存通過(guò)數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到設(shè)備。 (6)中斷機(jī)構(gòu):當(dāng)字計(jì)數(shù)器溢出時(shí),意味著一組數(shù)據(jù)交換完畢,由溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向 CPU提出中斷報(bào)告 [22][24]。此方式的結(jié)束,可由 DMAC 中設(shè)置的字節(jié)計(jì)數(shù)器的計(jì)數(shù)結(jié)果決定 (每操作一個(gè)字節(jié),計(jì)數(shù)器減 1,直到產(chǎn)生終止計(jì)數(shù)信號(hào) ),也可以由外部輸入的過(guò)程結(jié)束信號(hào)決定。如果需要進(jìn)行下一個(gè)字節(jié)的傳送,需要重新進(jìn)行 DMA 的申請(qǐng)。換句話說(shuō),采用猝發(fā)傳送方式,通過(guò)控制 DMA 請(qǐng)求信號(hào)的有效或無(wú)效,可以把一個(gè)數(shù)據(jù)塊分幾次傳送,而允許接口的數(shù)據(jù)沒(méi)準(zhǔn)備好時(shí),暫時(shí)停止傳送。 CPU在完成當(dāng)前總線操作后立即對(duì) DMA 請(qǐng)求做出響應(yīng)。 理工大學(xué)學(xué)士學(xué)位論文 9 圖 DMAC 工作電路圖 (4)DMAC 將規(guī)定的數(shù)據(jù)字節(jié)傳送完之后,通過(guò)向 CPU 發(fā) HOLD 信號(hào),撤銷對(duì)CPU的 DMA 請(qǐng)求。它與其他外圍接口控制器件不同,它具有接管和控制計(jì)算機(jī)系統(tǒng)總線 (包括數(shù)據(jù)、地址和控制總線 )的能力,即它能取代 CPU 而成為系統(tǒng)的主控者。 (1)主動(dòng)態(tài):是指 DMA 具有接管和控制微機(jī)系統(tǒng)總線的功能,即取代 CPU而成為系統(tǒng)的控制者,向存儲(chǔ)器與外設(shè)發(fā)號(hào)施令。非 DMA 操作期間,受 CPU控制檢測(cè) CS 和 DREQ 信號(hào) (一般當(dāng) DMAC 上電或者復(fù)位時(shí), DMAC 自動(dòng)處于被動(dòng)狀態(tài) )。經(jīng)總線仲裁器裁決, CPU 完成總線周期后進(jìn)入總線保持狀態(tài),使 CPU 對(duì)總線的控制失效,并發(fā)出總線回答信號(hào)通知 DMAC, CPU已交出系統(tǒng)總線控制權(quán)。DMA 控制器獲得總線控制權(quán)以后,開(kāi)始進(jìn)行數(shù)據(jù)傳送。 其缺點(diǎn)是:在 DMA 控制器訪內(nèi)階段,內(nèi)存的效能沒(méi)有充分發(fā)揮,相當(dāng)一部分內(nèi)存工作周期是空閑的。但是 I/O 設(shè)備每一次周期挪用都有申請(qǐng)總線控制權(quán)和歸還總線控制權(quán)的過(guò)程,所以傳送一個(gè)字對(duì)內(nèi)存來(lái)說(shuō)要占用一個(gè)周期,但對(duì) DMA 控制器來(lái)說(shuō)一般要 2—5 個(gè)內(nèi)存周期 (視邏輯線路的延遲而定 )。這種傳送方式的時(shí)間圖如下: 圖 DMA 與 CPU 交替訪問(wèn) 這種方式不需要總線使用權(quán)的申請(qǐng)、歸還過(guò)程,總線使用權(quán)是通過(guò) C1 和 C2 分時(shí)進(jìn)行的。事實(shí)上,對(duì)于總線,這是用 C1, C2 控制的一個(gè)多路轉(zhuǎn)換器,掌握中總線控制權(quán)的轉(zhuǎn)移幾乎不需要什么時(shí)間,所以對(duì) DMA 傳送來(lái)講效率是很高的。 選擇型和多路型 DMA 控制器 選擇型 DMA 控制器 選擇型 DMA 控制器在物理上可以連接多個(gè)設(shè)備,而在邏輯上只允許連接一個(gè)設(shè)備。數(shù)據(jù)傳送是以數(shù)據(jù)塊為單位進(jìn)行的,在每個(gè)數(shù)據(jù)塊傳送之前的預(yù)置階段,除了用程序中的 I/O 指令給出數(shù)據(jù)塊的傳送個(gè)數(shù)、起始地址、操作命令外,還要給出所選擇的設(shè)備號(hào)。 選擇型 DMA 控制器只增加了少量的硬件就達(dá)到為多個(gè)外圍設(shè)備提供服務(wù)的目的,它特別適合于數(shù)據(jù)傳輸率很高甚至接近于主存存取速度的設(shè)備,在高速傳送完一個(gè)數(shù)據(jù)塊后,控制器又可為其他設(shè)備提供服務(wù) [11][12]。當(dāng)某個(gè)外圍設(shè)備請(qǐng)求 DMA 服務(wù)時(shí),操作過(guò)程如下: (1)DMA 控制器接到設(shè)備發(fā)出的 DMA 請(qǐng)求,將請(qǐng)求轉(zhuǎn)送到 CPU。 以上是一個(gè) DMA 請(qǐng)求的過(guò)程,在一批數(shù)據(jù)傳送過(guò)程中,要多次重復(fù)上述過(guò)程,直到外圍設(shè)備表示一個(gè)數(shù)據(jù)塊已傳送完畢,或該設(shè)備的長(zhǎng)度控制器判定傳送長(zhǎng)度已滿。這種用途不僅僅可以加快存儲(chǔ)器之間大數(shù)據(jù)量的交換,更重要的是, CPU可以從大數(shù)據(jù)量交換、分散數(shù)據(jù)收集、慢速設(shè)備的訪問(wèn)中解放出來(lái),從而提高 CPU的利用效率。任務(wù)鏈表存放在存儲(chǔ)器中, DMA 從存儲(chǔ)器中讀取任務(wù)鏈表,根據(jù)鏈表中的內(nèi)容完成相應(yīng)的操作。這種衍生功能和 DMA 的通道化技術(shù)聯(lián)系比較緊密 [19]。 I/O 通道具備執(zhí)行 I/O 指令來(lái)完成對(duì) I/O 操作控制的能力。在管理程序里定義 DMA 通道程序 (比如鏈?zhǔn)?DMA 中的任務(wù)鏈表 ),并在初始化 DMA 通道后啟動(dòng) I/O設(shè)備。 CPU 根據(jù)中斷請(qǐng)求進(jìn)入中斷服務(wù)程序,判斷 DMA 通 道完成任務(wù)的情況,并決定是否設(shè)置新的通道任務(wù)。在一些 Cache 訪問(wèn)中,為了提高數(shù)據(jù)傳輸速度,也采用 DMA 來(lái)實(shí)現(xiàn)數(shù)據(jù)在總線上的直接交換。 DSP的 DMA控制器可以在沒(méi)有 CPU參與的情況下完成存儲(chǔ)器映射區(qū)之間的數(shù)據(jù)傳輸。 MOTOROLA 的 MPC8240 微處理器就 安排了兩個(gè) DMA 通道負(fù)責(zé)串行設(shè)備的數(shù)據(jù)傳輸。比如在 AM186CC 系列微處理器中 DMA 采用了鏈?zhǔn)絺鬏敺绞酵瓿?HDLC(高級(jí)數(shù)據(jù)鏈路控制器,一種高性能同步串口控制器 )與存儲(chǔ)器之間的數(shù)據(jù)交換,由于 DMA 直接讀取存儲(chǔ)器中鏈表得知下 一個(gè)傳輸任務(wù),就不存在 CPU 中斷反應(yīng)的環(huán)節(jié),保證了數(shù)據(jù)安全地被接收到存儲(chǔ)器 [24][25]。由于 TopDown 的設(shè)汁方法是首先從系統(tǒng)設(shè)計(jì)人手,從頂層進(jìn)行功能劃分和結(jié)構(gòu)設(shè)計(jì)。 (2) 設(shè)計(jì)語(yǔ)言:硬件描述語(yǔ)言是硬件設(shè)計(jì)人員和 EDA 工具之間的接口,其主要目的是用來(lái)編寫設(shè)計(jì)文件、建立電子系統(tǒng)行為級(jí)的仿真模型。 (3)設(shè)計(jì)工具:現(xiàn)在市場(chǎng)上的 Verilog HDL 的仿真軟件很多種,如: Mentor 公司的 Modelsim、 Cadence 公司的 VerilogXL、 Synopsys 公司的 VCS 等。本文設(shè)計(jì)的是同步 DMAC 電路,同步時(shí)鐘頻率為 100MHz[4]。 DMA 控制器設(shè)計(jì)的相關(guān)組件 本文所設(shè)計(jì)的 DMA 控制器是一個(gè)可選擇通道的 DMA 控制器,它受控于 RISC 處理器,處理 SDRAM、 FB、 RC 之間的數(shù)據(jù)傳輸。由于 RISC 處理器的指令集是精簡(jiǎn)的,它的內(nèi)存管理單元、浮點(diǎn)單元等都能設(shè)計(jì)在同一塊芯片上。它功能上作為 SDRAM 數(shù)據(jù)在 DMAC 和 RC 之間傳送的緩沖器。 SDRAM 將 CPU與 RAM 通過(guò)一個(gè)相同的時(shí)鐘鎖在一起,使 RAM 和CPU 能夠共享一個(gè)時(shí)鐘周期,以相同的速度同步工作,與 EDO 內(nèi)存相比速度 能提高 50%,是目前最快的內(nèi)存芯片。每個(gè)單元有一個(gè) ALU/MAC 和一個(gè)寄存器。存儲(chǔ)器的數(shù)據(jù)寬度是 32 位,但是 I/O 傳向 FB 的數(shù)據(jù)是 64 位。當(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_odata1 裝載數(shù)據(jù) fb_data;當(dāng)使能信號(hào) reg_enable2 為高電平時(shí),將寄存器 reg64_odata1 的數(shù)據(jù)裝載到寄存器 reg_odata2。 //輸入 DRU的清零復(fù)位信號(hào) input up_reg32_enable,lo_reg32_enable。 //輸入 64 位幀緩沖器數(shù)據(jù) output[31:0]up_reg32_odata,lo_reg32_odata。 wire[63:0]fb_data。 wire lo_reg32_enable。 wire reg64_enable1。 integer i。 lo_reg32_odata[i]=0。 reg64_odata2[i]=0。 else if(reg64_enable2==1) reg64_odata2=reg64_odata1。 圖 DMA 控制器地址產(chǎn)生單元?jiǎng)澐? 理工大學(xué)學(xué)士學(xué)位論文 24 地址產(chǎn)生器模塊行為級(jí)設(shè)計(jì)的 Verilog HDL 描述如下: Module //端口定義 AGU(mem_gen_oaddr,byte_gen_oaddr,fb_gen_oaddr,rc_gen_oaddr, latch_tr_addresses,latch_tr_control,mem_gen_ldinit, mem_gen_enable,byte_gen_ldinit,byte_gen_enable, fb_gen_enable,rc_gen_ldinit,rc_gen_enable,sys_clk, clear_agu)。 //輸入處理器控制 input mem_gen_ldinit,mem_gen_enable,byte_gen_ldinit。 output[15:0]byte_gen_oaddr。 wire[3:0]latch_tr_control。 wire fb_gen_ldinit,fb_gen_enable。 reg[5:0]fb_gen_oaddr。i16。b00000000。 else byte_gen_oaddr[15:0]={latch_tr_addresses[21:8], 239。 else if(rc_gen_ldinit==1) rc_gen_oaddr=latch_tr_addresses[7:0]。 else if(mem_gen_enable==1)mem_gen_oaddr=mem_gen_oaddr +1539。 endmodule// 狀態(tài)控制器模塊的行為級(jí)設(shè)計(jì)描述 狀態(tài)控制器是 DMA 的核心,它從 RISC 處理器獲得信息,從而處理到 FB 或 RC的數(shù)據(jù)傳輸 。 狀態(tài)控制器模塊 行為級(jí)設(shè)計(jì)的 Verilog HDL 描述如下: always(posedge sys_clk or glb_reset) //輸入全局時(shí)鐘信號(hào)和全局復(fù)位清零信號(hào) begin if(glb_reset) curr_state=s0。 clear_data_regs=1。 mem_read=0。 byte_gen_ldinit=0。 rc_gen_enable=0。 reg64_enable1=0。 busy_done=1。 clear_data_regs=0。 mem_read=0。 byte_gen_ldinit=0。 rc_gen_enable=0。 reg64_enable1=0。 busy_done=1。可以看到,在以上行為描述中使用了多種數(shù)據(jù)類型,而不需顧及他們的電路實(shí)現(xiàn)。在本設(shè)計(jì)中,這個(gè)高層模塊即 DMAC 模塊。 //輸入全局時(shí)鐘信號(hào)和全局復(fù)位清零信號(hào) input dma_enable,load_store,rc_fb_select。 //輸入 RC 列陣行和列數(shù)信號(hào) 理工大學(xué)學(xué)士學(xué)位論文 30 input[15:0]init_mem_addr。 output[6:0]fb_addr。 output[7:0]rc_context_addr。 inout[31:0]up_reg32_odata,lo_reg32_odata。 inout[5:0]fb_gen_oaddr。 //聲明一個(gè) wire型的全局時(shí)鐘信號(hào)和清零信號(hào) wire[31:0]mem_data。 wire up_reg32_enable。 wire[63:0]reg64_odata2。 wire str_3st_trl。 wire fb_gen_ldinit,fb_gen_enable。 wire[5:0]fb_gen_oad
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1