《計(jì)算機(jī)組成原理》實(shí)驗(yàn)1實(shí)驗(yàn)環(huán)境的使用_第1頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)1實(shí)驗(yàn)環(huán)境的使用_第2頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)1實(shí)驗(yàn)環(huán)境的使用_第3頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)1實(shí)驗(yàn)環(huán)境的使用_第4頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)1實(shí)驗(yàn)環(huán)境的使用_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)一實(shí)驗(yàn)環(huán)境的使用

姓名梁及一成績實(shí)驗(yàn)時(shí)間__________

指導(dǎo)教師(簽章)張歡歡

注:本次實(shí)驗(yàn)重在熟悉實(shí)驗(yàn)平臺(tái),微程序控制器尚未講解,不必刻意要求自

己全部理解,DM1000(類intel8086)匯編要明白這些指令的作用和大致格

式,如加法等

一.實(shí)驗(yàn)?zāi)康?/p>

?掌握DreamLogic軟件的基本使用方法。

?了解DM1000模型機(jī)匯編程序的編寫方法,并學(xué)習(xí)將匯編源程序編譯為機(jī)器指令

的方法。

?了解DM1000模型機(jī)的微指令,并學(xué)習(xí)將微指令程序編譯為微程序的方法。

?掌握DM1000模型機(jī)加載指令程序和微指令程序的方法。

?熟練掌握原理圖中使用網(wǎng)絡(luò)、端口、總線等在器件、模塊間建立連接的方法,

掌握模塊化電路的設(shè)計(jì)方法。

?熟練掌握DM1000模型機(jī)進(jìn)行單周期仿真的方法,并了解各個(gè)工具窗口以及它們

的作用

二.實(shí)驗(yàn)內(nèi)容

1.環(huán)境部署與安裝

從CodeCode.net平臺(tái)領(lǐng)取任務(wù)CodeCode.net平臺(tái)是用于教師在線布置實(shí)驗(yàn)任務(wù),并

統(tǒng)一管理學(xué)生提交的作業(yè)的平臺(tái)。如果沒有使用到CodeCode.net平臺(tái),可以跳過此部分。

1.讀者通過瀏覽器訪問https:〃www.codccodc.net,可以打開CodeCode.net平臺(tái)的登

錄頁面。

2.在登錄頁面中,讀者輸入帳號(hào)和密碼,點(diǎn)擊“登錄”按鈕,可以登錄CodeCode.「et平

臺(tái)。

3.登錄成功后,在“課程”列表頁面中,可以找到數(shù)字電路相關(guān)的實(shí)驗(yàn)課程。點(diǎn)擊此

課程的鏈接,可以進(jìn)入該課程的詳細(xì)信息頁面。

4.在課程的詳細(xì)信息頁面中,可以查看“課程描述”,該信息對(duì)于完成實(shí)驗(yàn)十分重要,

建議讀者認(rèn)真閱讀。點(diǎn)擊左側(cè)導(dǎo)航中的“任務(wù)”鏈接,可以打開任務(wù)列表頁面。

5.在任務(wù)列表中找到本次實(shí)驗(yàn)對(duì)應(yīng)的任務(wù),點(diǎn)擊右側(cè)的“領(lǐng)取任務(wù)”按鈕,可以進(jìn)入

“領(lǐng)取任務(wù)”頁面。

6.在“領(lǐng)取任務(wù)”頁面中,“新建項(xiàng)目名稱”、“新建項(xiàng)目路徑”、“項(xiàng)目所在的群

組”一般使用默認(rèn)值即可。點(diǎn)擊“領(lǐng)取任務(wù)”按鈕后,可以創(chuàng)建一個(gè)個(gè)人項(xiàng)目用于完成

本次實(shí)驗(yàn),并自動(dòng)跳轉(zhuǎn)到該項(xiàng)目的詳情頁面。

7.個(gè)人項(xiàng)目的詳情頁面主要包括左側(cè)的導(dǎo)航欄、項(xiàng)目信息、文件列表、readme.md文件

內(nèi)容等,如圖1T所示。

8.在圖1T中,點(diǎn)擊紅色方框中的按鈕,可以復(fù)制當(dāng)前項(xiàng)目的URL,在本實(shí)驗(yàn)后面的練

習(xí)中會(huì)使用這個(gè)URL將此項(xiàng)目克隆到讀者計(jì)算機(jī)的本地磁盤中,從而供讀者進(jìn)行修改。

下載

gitclone,然后本地添加

-zip打包

-在gui界面打開遠(yuǎn)程,本質(zhì)和git一樣

注意環(huán)境路徑不能是中文

可供參考內(nèi)容

-視頻

-手冊(cè)pdf

2.仿真環(huán)境圖形用戶界面簡(jiǎn)介

1)圖形用戶界面總體介紹

這里還需要對(duì)DM1OOC的原理圖DM1000.dlsche進(jìn)行一些說明:

1.此原理圖是DU1OCO的頂層原理圖,其通過總線將各個(gè)模塊連接起來,這樣大大簡(jiǎn)化

了頂層原理圖的復(fù)雜度,可以使讀者很清晰的掌握各個(gè)模塊間的連接關(guān)系,快速掌握

DM1000的整體結(jié)構(gòu)。

2.在此原理圖中遵守左囿輸入,右面輸出的約定。模塊左側(cè)的總線表示輸入;模塊右

側(cè)的總線表示輸出;模塊頂部或底部的總線,表示模塊既能從總線接收數(shù)據(jù),又能向總

線發(fā)送數(shù)據(jù)。

3.在此原理圖中提供了時(shí)鐘和復(fù)位兩個(gè)控制信號(hào)。其中,復(fù)位信號(hào)可以使用鍵盤上的R

鍵控制,每次復(fù)位都能使21000模型機(jī)從第一條指令開始執(zhí)行程序。時(shí)鐘提供了單步時(shí)

鐘和自動(dòng)時(shí)鐘,可以使用鍵盤上的S鍵進(jìn)行切換。單步時(shí)鐘可以使用鍵盤上的C鍵控制,

默認(rèn)是高電平,也就是說每次按下C鍵,都會(huì)讓單步時(shí)鐘變?yōu)榈碗娖?,并產(chǎn)生一個(gè)下降

沿,抬起C鍵會(huì)讓單步時(shí)鐘恢復(fù)為高電平,并產(chǎn)生一個(gè)上升沿。

4.除了使用總線連接各個(gè)模塊的接口外,各個(gè)模塊的接I」還通過使用相同的名稱表示

它們具有連接關(guān)系。為了確保原理圖簡(jiǎn)潔清晰,PC/ALU/REG等模塊的輸入信號(hào)都是通過

這種方式與CU模塊輸出的控制信號(hào)進(jìn)行連接的。

5.總圖中的模塊是通過子模塊文件的名稱與之對(duì)應(yīng)的,例如讀者使用鼠標(biāo)左鍵點(diǎn)擊選

中REG模塊后,在右側(cè)的“屬性”窗口中就會(huì)顯示此模塊的所有屬性,其中“模塊原理圖文

件”的屬性值為"REG.dlsche”,說明此模塊是與原理圖文件REG.dlsche對(duì)應(yīng)的。

提示:用鼠標(biāo)左鍵雙擊總圖中的模塊,就會(huì)自動(dòng)跳轉(zhuǎn)到對(duì)應(yīng)的子模塊原理圖文件,在子模塊原理圖文件

中的空白處雙擊鼠標(biāo)左鍵,就會(huì)返回到總圖中,這樣操作起來十分方便。

2)模型機(jī)簡(jiǎn)介

文件夾或文件名稱說明

子模塊文件夾

ALU.dlsche算術(shù)邏輯運(yùn)算模塊原理圖文件

PC.dlsche程序計(jì)數(shù)器模塊原理圖文件

REG.dlsche寄存器模塊原理圖文件

CU.dlsche控制模塊原理圖文件

MEM.dlsche主存儲(chǔ)器模塊原理圖文件

uPC_XEXT.dlsche微程序計(jì)數(shù)器模塊原理圖文件

匯編源程序文件夾

此文件中默認(rèn)包含了?個(gè)簡(jiǎn)單的匯編語言源程序,作為示例

ram.asm程序提供給讀者,讀者可以修改此文件中的源代碼,根據(jù)需

要編寫自己的匯編程序。

這是?個(gè)Windows批處理文件,運(yùn)行此文件可以執(zhí)行其中的

命令讓dmasm.exe編譯器將ram.asm中的匯編代碼編譯為機(jī)

ram.bat

皤碼,并寫入存儲(chǔ)器映射文件ram」工m中,同時(shí)還會(huì)生成列

及文件ram.1st和調(diào)試信息文件ram.dbg.

微指令源程序文件夾

此文件中包含了DM1000的全部微指令源程序。讀者可以根

rom.masm

據(jù)需要修改此文件,添加新的微指令。

這是一個(gè)Windows批處理文件,運(yùn)行此文件可以執(zhí)行其中的

命令讓microasm.exe編譯器將rom.masm中的微指令源程序

rom.bat

編譯為機(jī)器碼,并寫入存儲(chǔ)器映射文件rom.rxni中,同時(shí)還

會(huì)生成列表文件rom.1st和調(diào)試信息文件rom.dbg.

存儲(chǔ)器映射文件文件夾

主存儲(chǔ)器映射文件,其中包含/匯編程序生成的機(jī)器碼。當(dāng)

ram.rxmDM1000開始運(yùn)行時(shí),此文件中的內(nèi)容會(huì)被加我到MEMf模

塊的RAM中,從而允許DM1000執(zhí)行月中的機(jī)器碼.

微指令存儲(chǔ)器映射文件,其中包含了微指令源程序生成的機(jī)

借碼。當(dāng)DM1000開始運(yùn)行時(shí),此文件中的內(nèi)容會(huì)被加我到

rom.rxm

CU子模塊的ROM中,從而允許DM1000將指令的機(jī)器碼翻譯

為微指令的機(jī)器碼并執(zhí)行。

DM1000八位模型機(jī)的總圖,由各個(gè)廣?模塊、時(shí)鐘和凌位控

DM1000.dlsche

制通過總線或網(wǎng)絡(luò)連接,組成可運(yùn)行程序的計(jì)算機(jī)系統(tǒng)。

3)DM1000(類lntel8086)指令集自學(xué)筆記

程序分為代碼段和數(shù)據(jù)段。代碼段的開始位置用關(guān)鍵字.texl標(biāo)出,而數(shù)據(jù)段的開始

位置用關(guān)鍵字.data標(biāo)出。

.text;代碼段

movr0,16;將立即數(shù)16賦值給通用寄存器r0

mova,num;將標(biāo)號(hào)num指定的主存儲(chǔ)器單元內(nèi)容復(fù)制到累加器a中

adda,r0;將累加器a的值與通用寄存器r0的值相加,結(jié)果寫回累加器a中

?data;數(shù)據(jù)段

num:-1

DM1000在執(zhí)行一條指令時(shí),會(huì)將其分為多個(gè)步驟即多條微指令,一個(gè)時(shí)鐘周期執(zhí)行一條

微指令。以指令“adda,rO”為例,可以分為以下步驟:

1.取指。取指是所有指令執(zhí)行的第一步,該步驟將程序計(jì)數(shù)器PC在存儲(chǔ)器中指向的一

個(gè)字節(jié)取出,并將其寫入指令寄存器IR中。與此同時(shí),CU模塊將指令機(jī)器碼中的高6位

擴(kuò)展為16位,作為微程序計(jì)數(shù)器uPC的值,使uPC轉(zhuǎn)去執(zhí)行該指令對(duì)應(yīng)的微程序。

2.將寄存器rO的值送到工作寄存器\丫中。

3.ALU將累加器a與工作寄存器W的值相加,并將結(jié)果寫回累加器a中。

4.指令執(zhí)行完畢,程序計(jì)數(shù)器PC加1,指向下一條指令。

三.實(shí)驗(yàn)結(jié)果

簡(jiǎn)述實(shí)驗(yàn)步驟(領(lǐng)取任務(wù),啟動(dòng)dreamlogic,模型機(jī)克隆,新建項(xiàng)目,

運(yùn)行簡(jiǎn)單匯編修改,推送作業(yè)步驟等)

領(lǐng)取任務(wù)

從CodeC平臺(tái)領(lǐng)取任務(wù)CodeC平臺(tái)是用于

教師在線布置實(shí)驗(yàn)任務(wù),并統(tǒng)一管理學(xué)生提交的作業(yè)的平臺(tái)。如果沒有使用

至iJCodeC平臺(tái),可以跳過此部分。

1.讀者通過瀏覽器訪問https:〃,可

以打開CodeC平臺(tái)的登錄頁面。

2.在登錄頁面中,讀者輸入帳號(hào)和密碼,點(diǎn)擊''登錄〃

按鈕,可以登錄CodeC平臺(tái)。

3.登錄成功后,在''課程〃列表頁面中,可以找到數(shù)字電

路相關(guān)的實(shí)驗(yàn)課程。點(diǎn)擊此課程的鏈接,可以進(jìn)入該課程的詳細(xì)信息頁

面。

4.在課程的詳細(xì)信息頁面中,可以查看''課程描述〃,該

信息對(duì)于完成實(shí)驗(yàn)十分重要,建議讀者認(rèn)真閱讀。點(diǎn)擊左側(cè)導(dǎo)航中的''任

務(wù)〃鏈接,可以打開任務(wù)列表頁面。

5.在任務(wù)列表中找到本次實(shí)驗(yàn)對(duì)應(yīng)的任務(wù),點(diǎn)擊右側(cè)的

''領(lǐng)取任務(wù)”按鈕,可以進(jìn)入''領(lǐng)取任務(wù)〃頁面。

6.在''領(lǐng)取任務(wù)〃頁面中,''新建項(xiàng)目名稱〃、''新建項(xiàng)目路

徑〃、''項(xiàng)目所在的群組〃一般使用默認(rèn)值即可。點(diǎn)擊''領(lǐng)取任務(wù)〃按鈕后,

可以創(chuàng)建一個(gè)個(gè)人項(xiàng)目用于完成本次實(shí)驗(yàn),并自動(dòng)跳轉(zhuǎn)到該項(xiàng)目的詳情

頁面。

7.個(gè)人項(xiàng)目的詳情頁面主要包括左側(cè)的導(dǎo)航欄、項(xiàng)目信

息、文件列表、readme.md文件內(nèi)容等,如圖1-1所示。

8.在圖1-1中,點(diǎn)擊紅色方框中的按鈕,可以復(fù)制當(dāng)前

項(xiàng)目的URL,在本實(shí)驗(yàn)后面的練習(xí)中會(huì)使用這個(gè)URL將此項(xiàng)目克隆到讀

者計(jì)算機(jī)的本地磁盤中,從而供讀者進(jìn)行修改。

啟動(dòng)dreamlogic

下載

-gitclone,然后本地添加

-zip打包

-在gui界面打開遠(yuǎn)程,本質(zhì)和git一樣

注意環(huán)境路徑不能是中文

然后雙擊點(diǎn)擊圖標(biāo),新建項(xiàng)目,選擇gitclone的路徑下的可執(zhí)行文件

運(yùn)行簡(jiǎn)單匯編修改

K傕公”鍛■簫H做凡:at?onproductpoweredbyAl.

ing.aMSdegre?inBiophysicsin

A」上平UjJTuX

Favivai▼Jx

DMIOOO9<sttizttuwnotooooh8010730710AC05rr

jjAlUAcfw

LSKJhche

2RCGW.

pMEMdxht

&CU4?Kh?

g匕厚

Q

rommwa*.

&OMIMCAKM

0陋6<一

模擬

DLEngintimeDreamLogic2019-梁天一?tianyilt

:文件(D編?;匾晥DM仿真⑻繪制⑼儀器(D窗口地)幫助(LD

:▼一一」Q3▼?[$:

源代碼14X

RAM(MEM.RAM)<-PCc5封

0001TWp!於

0002

00038C1O.text

*00040078O7movrO,16

0005021Omova,num

000604adda,rO

0007

00085O5Endless_Loop:

0009AcjinpEndless_Loop

0010

0011.data

00127

0013FFnum:-1

十六踹,c

名稱值i

ASR

CSP

IR?

V

<>

源代碼2▼4X

ROM(CU.ROM)<-uPC▼Q回

0001;(C)2008-2018:A

0002

0003;Eu0DOjiPAMtl0?j

RIN

0004;

4000500EF3FF9FFpath[pc],ir

0006

0007;ira^o0X0.A1uPC0x0000

000804FFFFFFFFdup31,null

0009

nninoAA°v,v

PC

U1

低電平,PnC加載新的地址,指令轉(zhuǎn)移

這樣可以通過右側(cè)都是低電位看出pc值是0x00

按鍵RC可以控制這兩個(gè)按下c指令可以執(zhí)行

一些小計(jì)算

JPC

?FCO

?FCl

.*K二B

?FCIO

--------^CI4

PCI<

這里面地址線AO-All12根數(shù)據(jù)線32根,所以下面數(shù)據(jù)都有4個(gè)字節(jié)

在發(fā)送時(shí)鐘上升沿執(zhí)行指令對(duì)應(yīng)微程序的入口微指令之前,請(qǐng)讀者再次

從工具窗口和原理圖窗口中確認(rèn)以下內(nèi)容:入PC寄存器的值0已經(jīng)傳送到

地址總線ABUS上;

RAM

ABUW

XRAM存儲(chǔ)器0地址處的值0x8C已經(jīng)通過了總線收發(fā)器MEM_gate(可

以在“總線收發(fā)器〃窗口中查看總線收發(fā)器的值和使能狀態(tài),雙擊可迅速在原

理圖中定位總線收發(fā)器的位置)傳送到數(shù)據(jù)總線DBUS匕

X數(shù)據(jù)總線上的數(shù)據(jù)己經(jīng)到達(dá)了IR寄存器輸入端,且IR寄存器使能端

EN為低電平,寫使能,當(dāng)下個(gè)時(shí)鐘上升沿到來時(shí),IR寄存器輸入端的指令

將被寫入IR寄存器中。

X指令字節(jié)0x8C的高6位擴(kuò)展為0x460(該指令對(duì)應(yīng)微程序的入口地

址,指向入口第一條微指令)并傳送到uPC寄存器的輸入端,uPC寄存器使

能(EN低電平表示使能)。當(dāng)下一個(gè)時(shí)鐘上升沿到來時(shí),0x460將寫入微程

序寄存器uPC中,這樣微程序就轉(zhuǎn)移到0x460處執(zhí)行。

10001100

010001100000

uPC

uPCO

uPC]

ugC2

uPC3

1JPC4

uPC5

uPC6

uPC7

dPC9

uPCIO

uPCll

uPC12

3>PC13

-dPC14

"^JPC15

5.現(xiàn)在,讀者可以使用單步時(shí)鐘發(fā)送一個(gè)上升沿來觸發(fā)DM1000執(zhí)行下一條微指

令了!方法是:在原理圖窗口中按卜單步時(shí)鐘對(duì)應(yīng)的鍵盤上的C鍵再抬起,該步

操作產(chǎn)生的時(shí)鐘上升沿使得微程序寄存器UPC將輸入端的地址寫入,微指令存儲(chǔ)

器ROM于是輸出新的微指令,控制處理器電路執(zhí)行相應(yīng)的操作。

5.觀察DM1000在第?個(gè)時(shí)鐘上升沿觸發(fā)后進(jìn)入的狀態(tài):IR寄存器的值已經(jīng)變?yōu)?/p>

0x8C(在寄存器窗口中由于IR寄存器剛剛發(fā)生寫操作,所以會(huì)用紅色高亮顯示);

寄存器▼TX總線收發(fā)器

十六進(jìn)制▼十六進(jìn)制▼。

w

名稱值說明名稱輸出值

ASR_gate

CSP棧頂?shù)刂酚?jì)數(shù)器CSP_gate

:一三一?—

FLAGDqate

IR0x8c指令寄囂

uPC寄存器的值變?yōu)?x0460,

▼口X

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論