999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

“計算機組成原理”實驗CPU設計方法研究

2018-06-05 03:49:25王力生余智銘張冬冬
實驗技術與管理 2018年5期
關鍵詞:指令功能設計

王力生, 余智銘, 張冬冬

(同濟大學 電子與信息工程學院, 上海 201800)

“計算機組成原理”是計算機專業基礎課程,其課程內容與計算機多門專業課程聯系緊密,學生對其內容的理解直接或間接地影響到對其他專業課程的學習,并關系到學生對計算機系統的整體認識[1-5]。

在教授這門課程時加入CPU設計實驗可以幫助學生理解計算機的組成結構[6],但是,由于CPU設計實驗本身具有較高的難度,致使許多學生不能很好地完成課程實驗。主要問題在于學生設計CPU時,數據通路設計不清[7]、信號傳輸錯誤﹑各部件連接混亂等。針對這些實驗教學問題[8],本文提出了一種幫助學生更好地設計出單周期CPU的方法[9]。

1 設計方法

本文所設計的CPU是基于MIPS32構架,由31條指令集組成。使用的設計語言為Verilog,采用的集成工具為Xilinx公司的Vivado。31條指令分別為[9]:

R型指令:add,addu,sub,subu,and,or,xor,nor,slt,sltu,sll,srl,sra,sllv,srlv,srav,jr;

I型指令:addi,addiu,andi,ori,xori,lw,sw,beq,bne,slti,sltiu,lui;

J型指令:j,jal。

本文所提出的CPU設計思路由以下步驟組成。

1.1 根據指令功能及格式設計CPU數據通路

根據指令功能和格式列出完成指令功能所需的部件,用部件關系表將每個部件的數據來源列出,根據關系表用連線將每個部件連接起來,設計該指令的數據通路[10]。每條指令的數據通路單獨設計完后,再將所有數據通路合并成總的數據通路。

1.2 根據指令功能和數據通路設計CU

(1) 繪制指令流程圖。根據初步設計好的數據通路,把每一條機器指令分解為一系列微操作,并排列為有先后次序、互相銜接的指令流程圖。

(2) 編排指令操作時間表。依據各條機器指令的操作流程圖,編排指令取指到執行的操作時間表。

(3) 進行微操作綜合。按照所有機器指令的操作時間表,把相同的微操作綜合起來,得到每個微操作的邏輯表達式。

(4) 畫出控制器CU邏輯電路。根據各微操作的邏輯表達式設計CPU控制單元。

2 設計舉例

由于31條指令集中的一些指令的數據通路和指令流程具有相似性,只是在指令拓展之后,需要加上相應的數據選擇器,以確保數據能正確傳輸。因此在本文中,僅以部分具有代表性的指令進行分析設計,起到以小見大的作用。

2.1 根據指令功能及格式設計CPU數據通路

取R類型的Addu指令、I類型的lw指令、J類型的j指令進行分析:

2.1.1 Addu指令格式

Addu指令功能:rd←rs+rt , PC←NPC(PC+4)

該指令所涉及到的部件有PC,NPC(完成PC+4),IMEM(指令存儲器),RegFile以及ALU。各部件之間數據輸入輸出關系如表1所示。

表1 Addu指令部件數據輸入輸出關系

通過對指令功能的分析和數據的傳輸關系,可以畫出如圖1所示的Addu指令數據通路:

圖1 Addu指令數據通路

2.1.2 Lw指令格式

lw指令功能:rt ← memory[base+offset],PC←NPC(PC+4)

該指令所涉及的部件有PC,NPC(完成PC+4),IMEM(指令存儲器)、RegFile、ALU、S_Ext16(將16位二進制符號擴展到32位)和DMEM(數據存儲器),部件之間數據輸入輸出關系如表2所示,數據通路如圖2所示。

表2 Lw指令部件數據輸入輸出關系

圖2 Lw指令數據通路

2.1.3 J指令格式

J指令功能:該指令無條件跳轉到一個絕對地址,instr_index長度26位,在左移2位后為28位,再與PC的最高4位(PC31-28)并接成32位轉移地址。

該指令所涉及的部件有PC、NPC(完成PC+4)、IMEM(指令存儲器)和 ||(并接器),部件之間數據輸入輸出關系如表3所示,數據通路如圖3所示。

表3 J指令部件數據輸入輸出關系

圖3 J指令數據通路

然后合并3條指令的數據通路,先將3條指令的部件關系表合并,如表4所示。某個部件有來自不同部件的輸入就用多路選擇器,合并的數據通路如圖4所示。

表4 3條指令部件數據輸入輸出關系

圖4 3條指令數據通路

2.2 根據指令功能和數據通路設計CU

2.2.1 繪制指令流程圖

獲得指令的數據通路圖后,可根據指令的運行流程,繪制出指令流程圖。在指令流程圖中,應標明每一步所需要的信號,這樣有助于理清各個信號的作用階段。圖5給出了Addu,Lw以及J指令的指令流程圖。

圖5 Addu、Lw、J指令流程圖

2.2.2 編排指令操作時間表

獲得數據通路圖和指令流程圖后,將所需要的所有信號和寄存器列出,再根據每條指令需要的信號,編排指令操作時間表(假設所有控制信號高電平有效),如表5所示。從表中看到Rdc4-0來自2個輸入,所以加1個多路選擇器MUX4。3條指令完整的數據通路如圖6所示。

表5 指令操作時間表

2.2.3 進行綜合微操作

根據第三步(2.2.2節)的操作時間表,可將相同的微操作綜合起來,得到每個微操作的邏輯表達式。Addu,Lw,J這3條指令的微操作綜合邏輯表達式結果為:

PC_CLK=CLK;

IM_R=1;

M1=Addu+Lw

Rsc4-0= IM25-21;

Rtc4-0= IM20-16;

M3=Lw

Add=Addu+Lw;

M2=Addu

Rdc4-0= IM15-11(Addu)+ IM20-16(Lw);

RF_W=Addu+Lw;

RF_CLK=(Addu+Lw)CLK;

DM_CS=Lw;

DM_R=Lw;

DM_W=0。

M4=Addu

圖6 三條指令完整數據通路

2.2.4 畫出CPU的CU邏輯電路

根據微操作邏輯表達式可以畫出對應的邏輯電路圖(邏輯圖省略)。

3 CPU驗證

通過前述的設計流程,得到了一個CPU的基本框架。通過Verilog語言實現CPU設計,并使用ModelSim仿真工具進行驗證CPU的正確性并下板。

3.1 前仿真測試

3.1.1 單條指令功能驗證

在此步驟中,需要對設計好的CPU進行每條指令功能的驗證。將匯編語言編寫每一條指令的測試代碼,導入CPU的指令存儲器,在ModelSim下仿真運行,通過輸出波形判斷指令執行是否正確。以下舉一個簡單的例子來說明:

sll $0, $0, 0

ori $1, 0x00000001

ori $2, 0x00000002

addu $3, $2, $1

此匯編指令用于測試Addu指令(假設所用到的Sll指令和Ori指令已經測試通過)。將該指令放入CPU中運行,并使用ModelSim進行仿真后,結果如圖7所示,通過輸出波形判斷指令執行是否正確。

圖7 單條指令測試波形

3.1.2 指令邊界數據驗證

在單指令驗證都正確的情況下,還需要對各指令的邊界數據進行測試,對CPU進行指令的完備性測試[10]。例如,對Addu指令進行測試時,選取邊界數據:0x00000000,0xffffffff,0x0000ffff,0xffff0000,0x0f0f0f0f,0xf0f0f0f0,0x55555555,0xaaaaaaaa等。

多個測試單元可以作為多個測試程序執行,也可以放在一個測試程序中順序執行。然后將這些指令放入CPU中運行,并用ModelSim仿真,觀察波形驗證結果的正確性。

3.1.3 隨機指令序列驗證

在此步驟中,可以自行編寫一些符合MIPS規范的指令序列。為了方便結果驗證與比較,可先將這些指令序列放入MIPS仿真工具中運行[11],如MARS,獲得仿真結果后,再將指令序列放入CPU中運行,將其運行結果與MIPS仿真器中運行的結果進行比較,從而驗證CPU功能的正確性。

3.1.4 程序驗證

在完成了上面3步驗證后,就可以運行一個有意義的程序,觀察其運行結果,檢測自己的CPU是否正確運行。例如可以使用類似快速排序和斐波拉契數列的程序來驗證。

3.2 后仿真測試

時序仿真不同于功能仿真,時序仿真使用布局布線后器件給出的模塊和連線的延時信息,在最壞的情況下對電路的行為作出實際的評價[12]。兩者的差別在于時序仿真加載到仿真器的設計,包括基于實際布局布線設計的最壞情況的布局布線延時,并且在仿真結果波形圖中,時序仿真后的信號加載了時延,而功能仿真沒有。

后仿真分為2個步驟,先做指令序列測試,再做程序測試。但是要注意initial塊不可綜合,后仿真和下板時需要使用ip核初始化iram。如在后仿真出現時序問題時,先采取降低CPU主頻的方法來解決,如果不行的話,就必須分析問題所在,修改或優化CPU數據通路或部件。

3.3 下板驗證

當仿真驗證都通過后,便可使用Vivado工具生成bitstream文件,進行下板驗證。使用的開發板為XILINX公司的NEXYS4板。下板前,根據需要設計的功能,在Vivado工程中添加相應的外設代碼,N4板可以提供led和7端數碼管等外設功能。之后再編寫相應的匯編代碼通過CPU對外設進行控制,從而驗證下板CPU的設計是否正確。

4 結語

本文提出了一種教學用的CPU設計過程,通過對指令功能的分析,設計數據通路圖,再到使用集成開發工具編寫CPU設計代碼,最后進行仿真驗證和下

板。這一過程從簡單到復雜,從理論到實踐,循序漸進,逐步提高。學生通過完成CPU的設計過程,不僅鞏固了課本上的知識,還拓展了工程實踐視野。本文所提出的實驗設計方法,已經在我校數屆學生中進行了應用,通過對學生的問卷調查和實驗結果的驗收統計,學生CPU設計成功率從最開始的不到30%,逐漸提升到了50%,現今已經達到了76%以上。而設計CPU的累計時長,也從最初的34 h以上,下降到如今的25 h左右,取得了良好的效果。

參考文獻(References)

[1] 鄒惠,王建東. 以CPU設計為核心的“計算機組成原理”課程教學改革探討[J]. 福建電腦,2016(3):84-85.

[2] 袁春風,陳貴海,黃宜華,等. “計算機組織與系統結構”課程的教學現狀和改革思路[J].計算機教育,2009(16):153-156.

[3] 朱凌云. 對計算機組成原理教學的思考[J]. 計算機教育,2011(10):37-39.

[4] 鄒惠,王建東,劉坤起,等. “計算機組成原理”課程教學探討[J]. 工業和信息化教育,2014(12):45-48.

[5] 周剛,師維,陳潤,等.計算機組成原理實驗創新性改革探索與實踐[J].實驗技術與管理,2016,33(11):26-29.

[6] 徐愛萍,張玉萍,涂國慶. 基于VHDL之CPU設計與實踐[J]. 實驗室研究與探索,2014,33(5):120-124.

[7] 黃明,陳龍. 基于MIPS指令的CPU邏輯電路設計[J]. 科技展望,2014(18):100-101.

[8] 王力生,王煜. 計算機組成原理實驗教學方法改進[J]. 電腦知識與技術,2014(28):6704-6706

[9] MIPS Technologies, MIPS32TM Architecture For Programmers, Volume I[M]. Introduction to the MIPS32TM Architecture,Revision 0.95,2001.

[10] MIPS Technologies, Inc. MIPS32TMArchitecture For Programmers Volume II[M]. The MIPSTMInstruction Set, 2003.

[11] Lu S, Li G, Wang Y. CPU Design for Computer Integrated Experiment[J]. FECS12, 2012(8):594-600.

[12] 戚新宇. 基于FPGA設計的功能仿真和時序仿真[J]. 航空電子技術,2005,36(3):51-54.

猜你喜歡
指令功能設計
聽我指令:大催眠術
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
關于非首都功能疏解的幾點思考
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
中西醫結合治療甲狀腺功能亢進癥31例
辨證施護在輕度認知功能損害中的應用
主站蜘蛛池模板: 国产在线精品人成导航| 国产高清无码麻豆精品| 澳门av无码| 九九久久精品免费观看| 狠狠亚洲五月天| 亚洲AV无码乱码在线观看代蜜桃| 亚洲一区波多野结衣二区三区| 亚洲无码视频喷水| 成人国产精品网站在线看| 成年片色大黄全免费网站久久| 国产精品久久久久久影院| 亚洲av无码成人专区| 狠狠色综合网| 人人91人人澡人人妻人人爽 | 亚洲成人播放| 伊人大杳蕉中文无码| 91无码人妻精品一区二区蜜桃| 亚洲制服丝袜第一页| av在线手机播放| 97se亚洲综合在线天天 | 久久久波多野结衣av一区二区| 久久婷婷国产综合尤物精品| 国产福利一区视频| 国产91特黄特色A级毛片| 国产香蕉在线| 狠狠躁天天躁夜夜躁婷婷| 欧美国产精品拍自| 国产日韩丝袜一二三区| 久久人搡人人玩人妻精品| 久久精品人妻中文系列| 三级国产在线观看| 嫩草在线视频| a毛片在线| 女人爽到高潮免费视频大全| 亚洲综合欧美在线一区在线播放| 亚洲二区视频| 欧美黑人欧美精品刺激| 久久人人97超碰人人澡爱香蕉| 正在播放久久| 久久鸭综合久久国产| 国产主播在线一区| 免费av一区二区三区在线| 国产av剧情无码精品色午夜| 55夜色66夜色国产精品视频| av无码久久精品| 91九色最新地址| 黄色网址免费在线| 97超碰精品成人国产| 免费激情网址| 久视频免费精品6| 在线观看免费黄色网址| 重口调教一区二区视频| 国产成人精品男人的天堂下载| 丁香五月亚洲综合在线| 亚洲系列中文字幕一区二区| 亚洲色欲色欲www网| 亚洲成人在线免费| 亚洲欧美不卡视频| 999国内精品视频免费| 国产色伊人| 人妻21p大胆| 亚洲欧美另类久久久精品播放的| 国产毛片不卡| 国产性猛交XXXX免费看| 久久综合丝袜日本网| 色欲不卡无码一区二区| 青青青国产视频手机| 久久永久视频| 少妇极品熟妇人妻专区视频| 永久免费av网站可以直接看的| 波多野衣结在线精品二区| 最新国产网站| 免费一级毛片在线观看| 欧美日韩在线第一页| 日韩资源站| 国产av无码日韩av无码网站 | 97国内精品久久久久不卡| 国产成人福利在线| 国产亚洲现在一区二区中文| 午夜欧美在线| 久草性视频| 亚洲熟妇AV日韩熟妇在线|