徐愛(ài)萍, 張玉萍, 涂國(guó)慶
(武漢大學(xué)計(jì)算機(jī)學(xué)院,湖北武漢 430072)
基于VHDL之CPU設(shè)計(jì)與實(shí)踐
徐愛(ài)萍, 張玉萍, 涂國(guó)慶
(武漢大學(xué)計(jì)算機(jī)學(xué)院,湖北武漢 430072)
隨著大規(guī)??删幊踢壿嬈骷陌l(fā)展,EDA技術(shù)已成為硬件系統(tǒng)電路設(shè)計(jì)的重要手段。基于EDA技術(shù)的計(jì)算機(jī)組成原理整機(jī)實(shí)習(xí)通常在Quartus II仿真平臺(tái)上實(shí)現(xiàn)。早期均采用Block Diagram的設(shè)計(jì)方式,雖然設(shè)計(jì)過(guò)程直觀,但仿真調(diào)試?yán)щy,難以完全調(diào)試成功。本文研究了基于VHDL的靈活方便的CPU設(shè)計(jì)過(guò)程,該設(shè)計(jì)由取指、指令譯碼、指令執(zhí)行、存儲(chǔ)器接口、通用寄存器組和寄存器輸出六個(gè)組成部分,最后通過(guò)調(diào)試軟件直接觀察寄存器的值來(lái)驗(yàn)證了設(shè)計(jì)的準(zhǔn)確性。本研究方法對(duì)改革該課程的整機(jī)實(shí)習(xí),發(fā)揮學(xué)生的主動(dòng)能動(dòng)性,提高學(xué)生的自主創(chuàng)造能力具有很好的指導(dǎo)意義和實(shí)際參考價(jià)值。
計(jì)算機(jī)組成原理;CPU設(shè)計(jì);整機(jī)實(shí)習(xí);VHDL
計(jì)算機(jī)組成原理課程是計(jì)算機(jī)專業(yè)的一門重要專業(yè)基礎(chǔ)課程,它在計(jì)算機(jī)類專業(yè)的課程中起著承上啟下、軟硬件兼容的重要作用[1]。本課程的基礎(chǔ)課程是“數(shù)字邏輯電路”,在該課程實(shí)驗(yàn)中學(xué)生受到過(guò)器件測(cè)試、單元電路設(shè)計(jì),分析等方面的訓(xùn)練,在本實(shí)驗(yàn)課的后續(xù)課程“微機(jī)系統(tǒng)與接口技術(shù)”中,學(xué)生將進(jìn)一步學(xué)習(xí)一些外圍電路芯片的開(kāi)發(fā)應(yīng)用。因此,計(jì)算機(jī)組成原理課程主要著眼于計(jì)算機(jī)硬件系統(tǒng)的設(shè)計(jì)方法,介紹計(jì)算機(jī)的基本組織以及內(nèi)部各組成部件如何協(xié)調(diào)工作。為了加強(qiáng)該課程的實(shí)踐性教學(xué)環(huán)節(jié),培養(yǎng)和訓(xùn)練學(xué)生在硬件方面的設(shè)計(jì)和動(dòng)手能力,本課程結(jié)束后為學(xué)生開(kāi)設(shè)整機(jī)實(shí)驗(yàn),要求設(shè)計(jì)一個(gè)能執(zhí)行一個(gè)指令系統(tǒng)的CPU,讓學(xué)生在理論與實(shí)踐相結(jié)合的基礎(chǔ)上,加深對(duì)整機(jī)概念的了解[2],掌握控制器設(shè)計(jì)的方法與技術(shù),從而提高學(xué)生自行設(shè)計(jì)、調(diào)試分析的獨(dú)立工作能力。隨著大規(guī)??删幊踢壿嬈骷陌l(fā)展,EDA技術(shù)已成為硬件系統(tǒng)電路設(shè)計(jì)的重要手段[3-8]?;贓DA技術(shù)的計(jì)算機(jī)組成原理整機(jī)實(shí)習(xí)通常在Quartus II仿真平臺(tái)上實(shí)現(xiàn)[9]。早期均采用Block Diagram的設(shè)計(jì)方式,雖然設(shè)計(jì)過(guò)程直觀,但CPU仿真調(diào)試?yán)щy。本文研究了一個(gè)8位CPU設(shè)計(jì)實(shí)例,揭示了基于VHDL的CPU設(shè)計(jì)的方法與技術(shù)并調(diào)試成功,對(duì)學(xué)生自主完成基于VHDL的CPU設(shè)計(jì)具有很好的指導(dǎo)意義。
中央處理器由控制器、運(yùn)算器和總線組成。運(yùn)算器由算術(shù)邏輯單元ALU、通用寄存器GR、程序狀態(tài)字寄存器PSW和ALU輸入端的選擇器組成。控制器是全機(jī)的指揮中心,由程序計(jì)數(shù)器PC、指令寄存器IR、地址寄存器MAR、數(shù)據(jù)寄存器MDR、指令譯碼器、時(shí)序系統(tǒng)和組合邏輯信號(hào)發(fā)生器組成。程序計(jì)數(shù)器PC用以指出下條指令在主存中的存放地址,每取一個(gè)指令字PC增1;指令寄存器IR用來(lái)保存當(dāng)前正在執(zhí)行的一條指令的代碼;地址寄存器MAR用來(lái)存放當(dāng)前CPU訪問(wèn)內(nèi)存單元的地址;數(shù)據(jù)寄存器MDR用來(lái)暫存由內(nèi)存儲(chǔ)器中讀出或?qū)懭雰?nèi)存的指令或數(shù)據(jù);指令譯碼器分別對(duì)操作碼字段、尋址方式字段、地址碼字段進(jìn)行譯碼,向控制器提供操作的特定信號(hào);時(shí)序部件用來(lái)產(chǎn)生各種時(shí)序信號(hào)節(jié)拍周期信號(hào),它由統(tǒng)一時(shí)鐘CLK分頻得到;組合邏輯控制器根據(jù)IR的指令、PSW中的狀態(tài)信息以及節(jié)拍,產(chǎn)生控制整個(gè)計(jì)算機(jī)系統(tǒng)所需的各種控制信號(hào)。它接收從控制器送來(lái)的命令并執(zhí)行響應(yīng)的動(dòng)作,負(fù)責(zé)對(duì)數(shù)據(jù)的加工和處理。系統(tǒng)總線是CPU與主存儲(chǔ)器MEM相聯(lián)的總線,它包括地址總線AB、數(shù)據(jù)總線DB和控制總線CB。本研究擬設(shè)計(jì)的CPU結(jié)構(gòu)圖如圖1所示[10]。
本研究設(shè)計(jì)的指令系統(tǒng)包含傳送類指令、算術(shù)運(yùn)算類指令、邏輯運(yùn)算類指令和轉(zhuǎn)移指令。本指令系統(tǒng)優(yōu)先選取使用頻率最高的一些簡(jiǎn)單指令,安排大多數(shù)指令在一個(gè)機(jī)器周期內(nèi)完成;采用LDRR/STRR結(jié)構(gòu),即:只有LDRR(取數(shù))和STRR(存數(shù))兩種指令可以訪存,其余指令只能對(duì)存放在寄存器中的操作數(shù)進(jìn)行處理;采用較少的尋址方式和單、雙字長(zhǎng)指令格式;控制部件采用可使速度提高的組合邏輯來(lái)實(shí)現(xiàn)。指令系統(tǒng)格式如表1所示,基本CPU指令集如表2所示。
圖1 RISC CPU結(jié)構(gòu)圖
表1 指令格式
表2 基本CPU指令集
實(shí)驗(yàn)CPU中控制器的時(shí)序設(shè)計(jì)為3個(gè)節(jié)拍t1、t2和t3,供實(shí)驗(yàn)CPU各部分使用。對(duì)單字長(zhǎng)指令,t1節(jié)拍取指,對(duì)雙字長(zhǎng)指令,通過(guò)做標(biāo)記在第二個(gè)t1節(jié)拍取指令的第2個(gè)字;t2節(jié)拍的上升沿將從存儲(chǔ)器取出的指令寫入指令寄存器IR中并根據(jù)指令寄存器IR的內(nèi)容進(jìn)行指令譯碼,然后根據(jù)譯碼得到的控制信號(hào)進(jìn)行運(yùn)算和其他操作;t3節(jié)拍對(duì)存儲(chǔ)器進(jìn)行讀、寫操作,在t3的下降沿將運(yùn)算結(jié)果寫入目的寄存器、改變標(biāo)志位并改變PC的值并為取下條指令做準(zhǔn)備。由于取指和存儲(chǔ)器讀寫階段都要訪問(wèn)存儲(chǔ)器,速度較慢;而指令譯碼和運(yùn)算都由CPU本身完成,因此取指階段和存儲(chǔ)器讀寫階段各占一拍時(shí)間,指令譯碼和運(yùn)算共占一拍時(shí)間。
本研究的CPU由取指部分instru_fetch、指令譯碼部分 decoder_unit、執(zhí)行部分 exe_unil、存儲(chǔ)器部分memory_unit、通用寄存器組 regfile和寄存器輸出regout 6個(gè)部分組成。程序包exe_cpu_components將各低層設(shè)計(jì)實(shí)體作為元件存儲(chǔ),供各設(shè)計(jì)實(shí)體使用。頂層設(shè)計(jì)實(shí)體exe_cpu完成6個(gè)組成部分的連接[11]。
(1)通用寄存器組(regfile)。通用寄存器組內(nèi)包含4個(gè)8位寄存器,它是一個(gè)具有1個(gè)寫入端口、2個(gè)讀出端口的通用寄存器組。寫入端口將指令執(zhí)行后得到的目的寄存器的值在t3下降沿寫入目的寄存器中。只有具有寫目的寄存器功能的指令執(zhí)行結(jié)束時(shí)才寫目的寄存器。通用寄存器組的兩個(gè)讀出端,一個(gè)是目的寄存器讀出端口,一個(gè)是源寄存器讀出端口,從這兩個(gè)端口讀出的內(nèi)容供執(zhí)行部分exe_unit和存儲(chǔ)器部分memory_unit使用。
(2)取指部分(instru_fetch)。取指部分首先在復(fù)位信號(hào)reset為低時(shí)將PC復(fù)位為0,在一條指令執(zhí)行結(jié)束后,根據(jù)指令執(zhí)行的結(jié)果在t3的下降沿改變PC的值;然后將從存儲(chǔ)器讀出的指令的第一個(gè)字在t2的上升沿送至指令寄存器IR;最后計(jì)算PC+1的值,為雙字指令取第二個(gè)指令字做準(zhǔn)備。
(3)指令譯碼部分(decoder_unit)。指令譯碼部分根據(jù)指令寄存器IR的值產(chǎn)生實(shí)驗(yàn)CPU所需要的各種控制信號(hào),其中規(guī)定:SR[1..0]為源寄存器號(hào);DR[1..0]為目的寄存器號(hào);op_code[2..0]為控制 ALU進(jìn)行8種運(yùn)算操作的3位編碼;zj_instruct為l表示本條指令是條“JZ ADR”指令;cj_instruct為1表示本條指令是條“JC ADR”指令;lj_instruct為1表示本條指令是條“JMP ADR”指令;DRWr為1表示在t3的下降沿將本條指令的執(zhí)行結(jié)果寫入目的寄存器;Mem_Write為l表示本條指令有存儲(chǔ)器寫操作,存儲(chǔ)器的地址是源寄存器的內(nèi)容;DW_instruct為1表示本條指令是雙字指令;change_z為1表示本條指令可能改變Z標(biāo)志;change_c為l表示本條指令可能改變C標(biāo)志;sel_memdata為1表示本條指令寫入目的寄存器的值來(lái)讀自存儲(chǔ)器;r_simp_addr為計(jì)算條件轉(zhuǎn)移指令轉(zhuǎn)移地址所需要的8位相對(duì)地址。它是從第2個(gè)指令字中讀出的轉(zhuǎn)移指令中的8位絕對(duì)或相對(duì)地址,在基于VHDL所設(shè)計(jì)的組臺(tái)邏輯型CPU中指令譯碼器主要由邏輯判斷語(yǔ)句來(lái)實(shí)現(xiàn)。
(4)執(zhí)行部分(exe_unit)。執(zhí)行部分完成:① 加法、減法、帶進(jìn)位加、帶進(jìn)位減、與、或、異或和數(shù)據(jù)傳送這8種算術(shù)邏輯運(yùn)算并臨時(shí)將運(yùn)算結(jié)果存放在result中;根據(jù)運(yùn)算結(jié)果產(chǎn)生進(jìn)位標(biāo)志,臨時(shí)存放在c_tmp中;根據(jù)運(yùn)算結(jié)果產(chǎn)生結(jié)果為0的標(biāo)志,臨時(shí)存放在z_tmp中。② 產(chǎn)生存儲(chǔ)器讀寫所需要的存儲(chǔ)器地址Mem_Addr,該存儲(chǔ)器地址在tl節(jié)拍時(shí)選擇pc,在雙字指令時(shí)選擇pc_inc,在LDRR指令時(shí)選擇SR內(nèi)容,在STRR指令時(shí)選擇DR內(nèi)容。③ 產(chǎn)生條件轉(zhuǎn)移指令(JC和JZ)所需要的轉(zhuǎn)移標(biāo)志c_z_j_flag(為l表示轉(zhuǎn)移)和轉(zhuǎn)移地址r_simp_addr。
(5)存儲(chǔ)器部分(memory_unit)。存儲(chǔ)器部分主要完成對(duì)存儲(chǔ)器的讀寫,它是CPU和TEC_CA實(shí)驗(yàn)臺(tái)上存儲(chǔ)器的接口部分,該部分向?qū)嶒?yàn)臺(tái)上的存儲(chǔ)器送出8位存儲(chǔ)器地址總線ar、8位雙向數(shù)據(jù)總線ob、讀寫信號(hào)rw,當(dāng)rw為l時(shí)對(duì)實(shí)驗(yàn)臺(tái)上的存儲(chǔ)器進(jìn)行讀操作;當(dāng)rw信號(hào)為0時(shí)對(duì)實(shí)驗(yàn)臺(tái)上的存儲(chǔ)器進(jìn)行寫操作。試驗(yàn)臺(tái)上的存儲(chǔ)器由兩片靜態(tài)存儲(chǔ)器6116和少量附加電路構(gòu)成。在TEC_CA實(shí)驗(yàn)臺(tái)上,兩片6116并聯(lián)構(gòu)成8位字長(zhǎng)的存儲(chǔ)器,6116所需的片選信號(hào)cs為低信號(hào),讀信號(hào)oe由rw反相產(chǎn)生,寫信號(hào)we直接選用rw。存儲(chǔ)器地址ar來(lái)自執(zhí)行部分,寫信號(hào)Mem_Write由指令譯碼部分產(chǎn)生,當(dāng)Mem_Write為1時(shí)在t3節(jié)拍完成寫操作,其余情況下均進(jìn)行讀操作。對(duì)于單或雙字長(zhǎng)指令在t1節(jié)拍完成讀指令的第1個(gè)字;對(duì)于雙字指令,在t3節(jié)拍完成讀指令的第2個(gè)字;對(duì)于JMP指令,在t3節(jié)拍讀出轉(zhuǎn)移地址放在data_read中;對(duì)于MVRD指令,在t3節(jié)拍讀出立即數(shù)DATA放在data_read中;對(duì)于LDR指令在t3節(jié)拍讀出存儲(chǔ)器的值,放在data_read中;對(duì)于STRR指令,在t3節(jié)拍將源寄存器的值寫入存儲(chǔ)器中;在t3下降沿寫入目的寄存器時(shí),若是LDRR指令寫入的數(shù)據(jù)來(lái)自存儲(chǔ)器,其他指令寫入的數(shù)據(jù)則來(lái)自執(zhí)行部分送來(lái)的運(yùn)算結(jié)果result。
(6)程序包(exp cpu compenents)。程序包exp_cpu_components把實(shí)驗(yàn)CPU中除頂層設(shè)計(jì)實(shí)體exp_cpu以外的設(shè)計(jì)實(shí)體作為元件(component)予以說(shuō)明,供實(shí)驗(yàn)CPU中的其他設(shè)計(jì)實(shí)體作為元件予以引用。
(7)頂層設(shè)計(jì)實(shí)體(exe_cpu)。頂層設(shè)計(jì)實(shí)體exe_cpu把6個(gè)二級(jí)設(shè)計(jì)實(shí)體memory_unit、instru_fetch、decoder_unit、exe_unit、regfile 和 regout作為元件引用,每個(gè)例化一次,用信號(hào)把它們連接起來(lái),構(gòu)成實(shí)驗(yàn)CPU。exp_cpu所定義的clk為外部輸入的時(shí)鐘、reset為外部輸入的CPU復(fù)位信號(hào)(低電平有效)、ar為向外部輸出的8 b存儲(chǔ)器地址總線;ob為8 b雙向存儲(chǔ)器數(shù)據(jù)總線;rw為向外部輸出的存儲(chǔ)器讀寫信號(hào),當(dāng)為高電平時(shí)對(duì)存儲(chǔ)器進(jìn)行讀操作,當(dāng)為低電平時(shí)對(duì)存儲(chǔ)器進(jìn)行寫操作。
在一個(gè)工程中,較低層的設(shè)計(jì)實(shí)體相當(dāng)于元件,與一塊印制板上的電路差不多,頂層設(shè)計(jì)實(shí)體對(duì)較低層設(shè)計(jì)實(shí)體每例化一次,相當(dāng)于在印制板上安放一個(gè)元件,而頂層設(shè)計(jì)實(shí)體中的信號(hào)相當(dāng)于印制板上的連線[12]。因此,在一個(gè)工程中,如果有一個(gè)非頂層設(shè)計(jì)實(shí)體從來(lái)沒(méi)有被其他設(shè)計(jì)實(shí)體例化過(guò),那么這個(gè)設(shè)計(jì)實(shí)體在這個(gè)工程中就是多余的。頂層設(shè)計(jì)實(shí)體中除了包括由較低層設(shè)計(jì)實(shí)體構(gòu)成的元件外,通常還有一些由process語(yǔ)句、信號(hào)賦值語(yǔ)句等構(gòu)成的其他獨(dú)立電路塊,通過(guò)信號(hào)把元件和獨(dú)立電路塊連接起來(lái),最后形成如圖2所示的CPU完整設(shè)計(jì)圖。
圖2 CPU完整設(shè)計(jì)圖
設(shè)計(jì)好 CPU工程并編譯成功后,直接點(diǎn)擊Quartus II工具欄的Programmer按鈕,在Mode框中選擇默認(rèn)的 JTAG下載方式,確保下載硬件為ByteBlasterII[LPT1],如果不是的話,就點(diǎn)擊Hardware Setup按鈕來(lái)設(shè)置,完成上述過(guò)程后,選中需要下載的sof文件,點(diǎn)擊Start開(kāi)始下載到“WT-1型計(jì)算機(jī)系統(tǒng)硬件綜合實(shí)驗(yàn)平臺(tái)”,下載后打開(kāi)調(diào)試軟件,然后分別加載測(cè)試程序和規(guī)則文件,與表2所定義的指令系統(tǒng)對(duì)應(yīng)的規(guī)則文件[13]如下:
在調(diào)試軟件中編譯成功后再下載到內(nèi)存,最后開(kāi)始調(diào)試,通過(guò)查看寄存器的值來(lái)檢測(cè)指令的功能是否成功,測(cè)試界面如圖3所示,左邊為測(cè)試程序在內(nèi)存中的編碼,中間是調(diào)試程序,右邊是每條指令執(zhí)行后的結(jié)果?!癕VRD R1,0x80”指令執(zhí)行完后,R1寄存器的內(nèi)容為“0080”;“MVRD R2,0xa5”指令執(zhí)行完后,R2 寄存器的內(nèi)容為“00a5”;測(cè)試程序正執(zhí)行到“ADD R1,R2”指令(見(jiàn)中間的綠色箭頭),相加結(jié)果在指令執(zhí)行完后將存入R1寄存器。
本文研究了一個(gè)開(kāi)放式CPU的設(shè)計(jì)過(guò)程,研究結(jié)果表明基于VHDL的計(jì)算機(jī)組成原理的整機(jī)實(shí)習(xí)為學(xué)生提供了一個(gè)靈活方便的計(jì)算機(jī)系統(tǒng)CPU設(shè)計(jì)的平臺(tái)[14],優(yōu)化了計(jì)算機(jī)整機(jī)實(shí)習(xí)設(shè)計(jì),本文所設(shè)計(jì)的CPU結(jié)構(gòu)、指令系統(tǒng)和指令格式都可以由學(xué)生進(jìn)行個(gè)性化定義[15],而在實(shí)現(xiàn)技術(shù)方面學(xué)生可以利用HardCopy技術(shù)來(lái)實(shí)現(xiàn),這一切在傳統(tǒng)的教學(xué)內(nèi)容、實(shí)驗(yàn)?zāi)J胶蛯?shí)驗(yàn)手段上是沒(méi)有的,是對(duì)傳統(tǒng)計(jì)算機(jī)組成原理整機(jī)實(shí)習(xí)的徹底改革,使學(xué)生在了解計(jì)算機(jī)組成原理和軟件設(shè)計(jì)技術(shù)的同時(shí),學(xué)會(huì)了計(jì)算機(jī)硬件設(shè)計(jì)技術(shù),這是一個(gè)合格的計(jì)算機(jī)專業(yè)學(xué)生本應(yīng)具備的基本知識(shí),離開(kāi)了硬件設(shè)計(jì),自主創(chuàng)新能力的培養(yǎng)便無(wú)從談起,本設(shè)計(jì)方法充分提高了學(xué)生自行設(shè)計(jì)、調(diào)試和分析解決的能力,實(shí)現(xiàn)了計(jì)算機(jī)組成原理課程整機(jī)實(shí)習(xí)的全新改革。
圖3 CPU測(cè)試界面
[1] 張 磊,鄭 榕,田軍峰.計(jì)算機(jī)組成原理理論實(shí)驗(yàn)教學(xué)無(wú)縫結(jié)合的新方法[J].實(shí)驗(yàn)室研究與探索,2013,32(5):168-171.
ZHANG Lei,ZHENG Rong,TIAN Jun-feng.Seamless Combination of Theoretical and Experimental Teaching for Computer Organization[J].Research and Exploration in Laboratory,2013,32(5):168-171.
[2] 馬漢達(dá),趙 蕙.計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)改革[J].計(jì)算機(jī)教育,2010,9(10):30-33.
MA Han-da, ZHAO Hui.Reform on Experiments Teaching of Computer Organization Principles[J].Computer Education,2010,9(10):30-33.
[3] 戚 梅,張 鵬.EDA技術(shù)在《計(jì)算機(jī)組成原理》實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].電子設(shè)計(jì)工程,2011,19(17):1-3.
QI Mei,ZHANG Peng.The Application of EDA Technology in Computer Principles Experiment Teaching[J].Electronic Design Engineering,2011,19(17):1-3.
[4] 李麗萍,盛琳陽(yáng).基于EDA技術(shù)的計(jì)算機(jī)組成原理實(shí)驗(yàn)課開(kāi)放性教學(xué)模式研究[J].計(jì)算機(jī)教育,2010.5(10):55-57.
LI Li-ping,SHENG Lin-yang.Research on Open Educational Model of Technology Computer Composition Principle Experiment Class Based on EDA[J].Computer Education,2010.5(10):55-57.
[5] 陳 媛,黃賢英.基于EDA技術(shù)的計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)探索,重慶工學(xué)院學(xué)報(bào)[J].2007,21(2):136-138.
CHEN Yuan, HUANG Xian-ying. Exploration on Experimental Teaching of“Principle of Computer Organization”Based on EDA Technology[J].Journal of Chongqing Institute of Technology,2007,21(2):136-138.
[6] 翟文正,管功湖.EDA在《計(jì)算機(jī)組成與結(jié)構(gòu)》課程設(shè)計(jì)中的實(shí)踐與探索[J].微型電腦應(yīng)用,2009,25(12):10-13.
ZHAI Wen-Zheng,GUANG Gong-hu.The Practice and Exploration of EDA in Curriculum Design of《Computer Organization &Architecture》[J].Microcomputer Applications,2009,25(12):10-13.
[7] 譚小蘭,莫海燕,陳 多.基于EDA的計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)方案[J].湖南工程學(xué)院學(xué)報(bào),2011,21(3):93-96.
TAN Xiao-lan,MO Hai-yan,CHEN Duo.Teaching Scheme of the Experiment on Principles of Computer Organization Based on EDA[J].Journal of Hu Nan Institute of Engineering,2011,21(3):93-96.
[8] 張 亮.應(yīng)用EDA技術(shù)改革“計(jì)算機(jī)組成原理”課程設(shè)計(jì)[J].計(jì)算機(jī)教育,2009(9):40-42.
ZHANG Liang.Applying EDA Technology to Reform Curriculum Design of“Principle of Computer Organization”[J].Computer Education,2009(9):40-42.
[9] 陸明洲.基于Quartus II的計(jì)算機(jī)組成原理實(shí)驗(yàn)改革探索[J].高校實(shí)驗(yàn)室工作研究,2010,12(4):16-17.
LU Ming-zhou.The Reform and Exploration of the Experiment on Principles of Computer Organization Based on Quartus II[J].GAO XIAO SHI YAN SHI GONG ZUO YAN JIU,2010,12(4):16-17.
[10] 王愛(ài)英.計(jì)算機(jī)組成與結(jié)構(gòu)[M].北京:清華大學(xué)出版社 2007:176-184.
[11] 潘 松,潘 明.現(xiàn)代計(jì)算機(jī)組成原理[M].北京:科學(xué)出版社,2007:112-138.
[12] 王艷萍,吳 兵.基于VHDL語(yǔ)言的CISC-CPU系統(tǒng)設(shè)計(jì)[J].山東理工大學(xué)學(xué)報(bào),2009,23(4):79-81.
WANG Yan-ping,WU Bing.Design for CISC-CPU based on VHDL[J].Journal of Shandong University of Technology(Natural Science Edition),2009,23(4):79-81.
[13] 湯志忠,楊春武.開(kāi)放式實(shí)驗(yàn)CPU設(shè)計(jì)[M].北京:清華大學(xué)出版社,2006:1-63.
[14] 湯書(shū)森,馬義德.現(xiàn)代計(jì)算機(jī)組成原理課程特點(diǎn)與實(shí)驗(yàn)教學(xué)新模式探索[J].高等理科教育,2012:146-149.
TANG Shu-sen,MA Yi-de.On the Characteristics of Curriculum of Modern Computer Organization Principle and its New Model of Experimental Teaching[J].Higher Education of Sciences,2012:146-149.
[15] 方愷晴,張洪杰,方 紅.關(guān)于提升“計(jì)算機(jī)組成原理實(shí)驗(yàn)"課程教學(xué)質(zhì)量的探討[J].實(shí)驗(yàn)室研究與探索,2008,27(3):97-100.
FANG Kai-qing,ZHANG Hong-jie,F(xiàn)ANG Hong.Discussion on Enhancing the Teaching Quality aboutComputerComposition Principle Experiment[J].Research and Exploration in Laboratory,2008,27(3):97-100.
The CPU Design and Practice Based on VHDL
XU Aiping,ZHANG Yuping,TU Guoqing
(School of Computer,Wuhan University,Wuhan 430072,China)
With the development of Large large scale programmable logic devices,the EDA technology has became the an important means of the design on hardware system circuit.In general,the whole internship of the computer composition principle based on EDA is realized on by the simulation platform of Quartus II.In the early,the design approach of Block block Diagram diagram was used in practice.The design process is intuitive,but the simulation and debugging is are difficult and can't succeed completely.In this paper,the a flexible and convenient design process on CPU is researched.The design is composed of six parts that are instruction fetch,instruction decode,instruction execution,memory interface,general register and register output.At last,the accuracy of design is validated through register observed directly by debug software.It possess very good guiding significance and actual reference value to reform the whole internship of this course,plays aan active initiative androle for improve improving the independent creative ability of students.
computer principle;central processing unit design;whole internship;VHDL(Vhsic Hardware Description Language )
TP 332
A
1006-7167(2014)05-0120-05
2013-07-26
武漢大學(xué)計(jì)算機(jī)學(xué)院教學(xué)實(shí)踐改革項(xiàng)目
徐愛(ài)萍(1962-),女,湖北武漢人,博士,教授,研究方向:組成原理課程教學(xué)與實(shí)踐、Web服務(wù)、時(shí)空統(tǒng)計(jì)。
Tel.:13971471468;E-mail:xap1464@126.com