實驗2 運算器實驗(1)
一、 實驗目的
1.掌握開源數字電路模擬軟件Logisim的使用;
2.掌握有符號數加減運算溢出檢測的基本方法;
3.掌握運算器的組成及其工作原理;
4.驗證4位函數發生器74181的組合功能。
二、實驗設備
EL-JY-II型計算機組成原理實驗系統一套,排線若干。
三、實驗內容
1.利用Logisim軟件設計一個全加器;
2.利用Logisim軟件設計一個行波進位的補碼加法/減法器;
四、實驗步驟
- 全加器設計
(1) 在Logisim中畫出一位全加器的電路圖,電路圖如下:
(2) 在Logisim中測試該電路的正確性,並記錄測試數據與測試結果。
Ai |
Bi |
Ci |
Ci+1 |
Si |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
2.行波進位的補碼加法/減法器設計
(1) 學習Logisim中子電路(Subcircuit)的用法,然后將第1步中完成的全加器設計成成FA子電路單元;
(2) 參照下面的電路圖,並借助FA子電路單元在Logisim中畫出8位行波進位的補碼加法/減法器電路;
(3) 在Logisim中測試該電路的正確性,並記錄測試數據與測試結果。
A |
B |
M |
S |
溢出 |
|||
2進制 |
10進制 |
2進制 |
10進制 |
2進制 |
10進制 |
||
00000001 |
1 |
00000001 |
1 |
0 |
000000010 |
2 |
不溢出 |
00000011 |
3 |
00000010 |
2 |
1 |
000000001 |
1 |
不溢出 |
01111111 |
127 |
01111111 |
127 |
0 |
111111110 |
254 |
溢出 |
11111111 |
255 |
00111111 |
63 |
1 |
011000000 |
192 |
不溢出 |
- 74181功能驗證
(1) 參考EL-JY-II型實驗儀配套的實驗指導(實驗一),在EL-JY-II型實驗儀上完成運算器實驗的線路連接;
(2) 74181的功能表如下:
方式 |
M=1邏輯運算 |
M=0算術運算 |
|
S3 S2 S1 S0 |
邏輯運算 |
CN=1(無進位) |
CN=0(有進位) |
0 0 0 0 |
F=/A |
F=A |
F=A加1 |
0 0 0 1 |
F=/(A+B) |
F=A+B |
F=(A+B)加1 |
0 0 1 0 |
F=(/A)B |
F=A+/B |
F=(A+/B)加1 |
0 0 1 1 |
F=0 |
F=負1 |
F=0 |
0 1 0 0 |
F=/(AB) |
F=A加A(/B) |
F=A加A/B加1 |
0 1 0 1 |
F=/B |
F=(A+B)加A/B |
F=(A+B)加A/B加1 |
0 1 1 0 |
F=A⊕B |
F=A減B減1 |
F=A減B |
0 1 1 1 |
F=A/B |
F=A(/B)減1 |
F=A(/B) |
1 0 0 0 |
F=/A+B |
F=A加AB |
F=A加AB加1 |
1 0 0 1 |
F=/(A⊕B) |
F=A加B |
F=A加B加1 |
1 0 1 0 |
F=B |
F=(A+/B)加AB |
F=(A+/B)加AB加1 |
1 0 1 1 |
F=AB |
F=AB減1 |
F=AB |
1 1 0 0 |
F=1 |
F=A加A |
F=A加A加1 |
1 1 0 1 |
F=A+/B |
F=(A+B)加A |
F=(A+B)加A加1 |
1 1 1 0 |
F=A+B |
F=(A+/B)加A |
F=(A+/B)加A加1 |
1 1 1 1 |
F=A |
F=A減1 |
F=A |
(3) 參考EL-JY-II型實驗儀配套的實驗指導(實驗一),從74181功能表中選擇部分功能進行測試,同時記錄測試數據與測試結果。
A |
B |
S3 S2 S1 S0 M Cn |
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
實驗3 運算器實驗(2)
一、實驗目的
1.熟悉運算器的數據傳輸通路;
2.掌握移位控制的功能及其工作原理。
二、實驗設備
EL-JY-II型計算機組成原理實驗系統一套,排線若干。
三、實驗內容
1.利用Logisim軟件對運算器的數據傳輸通路進行模擬;
2.在EL-JY-II型實驗儀上驗證函數發生器74181的邏輯運算功能和算術運算功能。
四、實驗步驟
1.運算器數據傳輸通路分析與模擬;
(1) 在Logisim中打開已經給出的電路文件lab1-step3.circ,該文件包括兩個電路圖,即lab1-3與ALU-16;
(2) 加載上述電路所需的Logisim電路器件庫文件74x_library.circ;
(3) ALU-16是由4個74181級聯而成的16位運算器,其電路如下:
(4) 學習Logisim中分割器(Splitter)、通道(Tunnel)組件、寄存器(Rigister)等組件,分析電路圖lab1-3中運算器的數據通路;
(5) 設計一個操作流程,要求通過該流程能夠在電路圖lab1-3上模擬兩個16位數的算術或邏輯運算,並將運算結果顯示在輸出燈上。
運算 說明
|
測試F=A減B |
第1步 |
打開C-G,使其置於為1
|
第2步 |
DATE—INPUT輸入A=0000000000000101
|
第3步 |
打開LADR1,使其置於1,將A存入
|
第4步 |
關閉LADR1,使其置於0
|
第5步 |
DATE-INPUT輸入B=0000000000000010
|
第6步 |
打開LADR2,使其置於1,將B存入
|
第7步 |
關閉LADR2與C-G,使其置於0,打開S2,S1,ALU-G與AR,使其置於1
|
最終結果 (截圖) |
|
2.移位控制操作
(1) 參考EL-JY-II型實驗儀配套的實驗指導(實驗二),在實驗儀上進行移位操作實驗;
(2) 移位操作功能表如下:
299_G |
S1 |
S0 |
M |
T4 |
功能 |
0 |
0 |
0 |
X |
|
保持 |
0 |
1 |
0 |
0 |
|
循環右移 |
0 |
1 |
0 |
1 |
|
帶進位循環右移 |
0 |
0 |
1 |
0 |
|
循環左移 |
0 |
0 |
1 |
1 |
|
帶進位循環左移 |
1 |
1 |
1 |
X |
|
置數(進位保持) |
0 |
1 |
1 |
0 |
|
置數(進位清零) |
0 |
1 |
1 |
1 |
|
置數(進位置1) |
3.移位運算模擬與分析
(1) 在Logisim中打開已經給出的電路文件lab1-step6.circ,該文件包括兩個電路圖,即lab1-6與SHIFTER;
(2) SHIFTER是一個16位的移位寄存器子電路,其功能表與第2步中的功能表一致;
(3) 學習Logisim中時鍾(Clock)、探測器(Probe)等組件,分析電路圖lab1-6中移位器的數據通路;
(4)設計一個操作流程,要求通過該流程能夠在電路圖lab1-6上模擬移位寄存器的置數與移位操作,並將結果顯示在輸出燈上。
操作 說明
|
測試置數與循環左移 |
第1步 |
DATE-INPUT=0000000000000110
|
第2步 |
打開C-G,S1,S0與299-G使其置於1
|
第3步 |
打開T4,使其置於1
|
第4步 |
調f/8,使其上升
|
第5步 |
關閉C-G,使其置於0,打開SHF-G,使其置於1(完成置數操作,得到圖1)
|
第6步 |
關閉299-G與S1,使其置於0,調f/8,使其不上升 |
第7步 |
調f/8,使其上升(完成循環左移,得到圖2)
|
最終結果 (截圖) |
圖1:置數
圖2:循環左移
|
實驗總結:認識了運算器的數據傳輸通路以及了解了移位控制的工作原理,能對他們進行較為熟練地使用,自己動手操作結合上課所學對運算器、行波進位、74181芯片等等有了更加深入的理解,對他們的一切認知不再僅僅停留於理論,實驗過程中雖然出現了一些小差錯但都能較為順利的通過詢問他人來解決。
實驗四 存儲器讀寫和總線控制實驗
一、實驗目的
1.掌握存儲器的讀/寫周期;
2.掌握存儲器容量的擴展方法;
3.掌握總線的概念及其特性;
4.掌握總線的傳輸控制特性。
二、實驗設備
EL-JY-II型計算機組成原理實驗系統一套,排線若干。
三、實驗內容
1.利用Logisim軟件模擬存儲器的讀/寫周期;
2.在EL-JY-II型實驗儀上完成存儲器數據的讀寫;
3.利用Logisim軟件實現存儲器容量的擴展;
四、實驗步驟
1.存儲器的讀/寫周期模擬
(1) 在Logisim中畫出如下存儲器讀寫電路:
(2) 其中RAM的設置如下:
其中Data Interface設置為“One asynchronous load/store port”
(3) 請畫出對應於該圖的正確的存儲器讀/寫周期波形圖;
a) 讀周期波形
b) 寫周期波形
(4) 設計一個操作流程,該流程能夠先在存儲單元中存儲2個數據,然后再依次讀出。
操作流程 簡述
|
開CS,輸入一個地址以及對應的數據,再輸入第二個地址以及對應的數據,,開R/W',輸出第一個數以及第二個數 |
第1步 |
開CS讓它置於1,Address=00000001,Input=00000001,關CS,讓它置於0
|
第2步 |
開CS讓它置於1,Address=00000010,Input=00000010,關CS,讓它置於0
|
第3步 |
開R/W'與CS讓它們置於1,Address=00000001,輸出第一個數據
|
第4步 |
Address=00000010,輸出第二個數據
|
最終結果 (截圖) |
|
2.存儲器容量的擴展
請利用1K*8的芯片組成4K*16的存儲器,並畫出電路圖。
3.存儲器操作
參考EL-JY-II型實驗儀配套的實驗指導,在EL-JY-II型實驗儀上完成存儲器讀寫實驗。
4.存儲器與總線的連接
(1) 分析電路圖lab2-4中運算器的數據通路;
(2) 設計一個操作流程,要求通過該流程能夠在電路圖lab2-4上模擬兩個16位數的算術或邏輯運算,然后將運算結果寫入到存儲器的某個地址單元中,最后將存儲的結果讀取出來顯示在輸出燈上。
運算 說明
|
輸入數據A存入寄存器1,再輸入數據B存入寄存器2,將A與B相加置於一個新地址a中,將C中數據輸出 |
第1步 |
打開C-G,使其置於為1
|
第2步 |
DATE—INPUT輸入A=0000000000000101
|
第3步 |
打開LADR1,使其置於1,將A存入,關閉LADR1,使其置於0
|
第4步 |
DATE-INPUT輸入B=0000000000000010
|
第5步 |
打開LADR2,使其置於1,將B存入
|
第6步 |
關閉LADR2與C-G,使其置於0,打開S0,S3,CN,ALU-G,CE與WE,使其置於1
|
最終結果 (截圖) |
|
5.存儲器操作
參考EL-JY-II型實驗儀配套的實驗指導,在EL-JY-II型實驗儀上完成總線控制實驗。
總結:我對logism軟件中庫文件的使用有了更深刻的理解,並可以更為熟練運用其實現一些簡單的功能,這次試驗我從中了解到了存儲器讀寫的具體執行過程,對總線控制也有了一定的了解。
實驗5微程序控制器及微程序設計(1)
一、 實驗目的
1.掌握微程序控制器的原理;
2.掌握微程序控制器的工作過程。
二、實驗設備
EL-JY-II型計算機組成原理實驗系統一套,排線若干。
三、實驗內容
1利用Logisim軟件分析微程序控制器的組成與工作過程;
2.在EL-JY-II型實驗儀上完成微程序控制器原理實驗。
四、實驗步驟
1.微程序控制器原理
(1) 在Logisim中打開電路文件lab3-step1.circ中的子電路LAB3;
(2) 列舉電路圖中所有的微命令以及這些微命令之間的相容性與相斥性;
微命令:+、-、M、LDDR、LDR1’、LDR2’、LDR3’; 相容性:LDDR、LDR1’、LDR2’、LDR3’兩兩相容; 相斥性:+、-相斥
|
(3)分析電路圖中的時鍾電路並畫出CLK、T1與T4信號的波形圖;
|
(4)分析電路圖中的微控制器電路,說明電路中各個組成部分的作用。
uAR存儲當前數據地址,Cy,P2,ADDRESS連接三輸入與門,uIR保存傳輸指令 1:存儲當前訪問數據的地址 2:輸入地址的整合 3:接受輸入地址 4:傳輸地址
|
(5)請結合下面的電路,分析如何完成取指操作,並給出BCD數相加的完整微程序。
通過PC接受指令並存於指存當中。通過IR保存要取出的指令並取出進行譯碼同時PC+1准備下一個取指操作。 BCD數相加:控制三態門為+,先輸入一個數存於DR當中,再輸入第二個數存於R1,再輸入一個數存於DR2,啟動即可在R3看見結果。
|
2.實驗儀操作
參考EL-JY-II型實驗儀配套的實驗指導(實驗四),在EL-JY-II型實驗儀上完成微程序控制器原理實驗。
實驗總結:加強了對logisim的使用,掌握了微程序的控制原理,通過這次實驗發現了自己的許多不足,許多知識未能完全掌握,需要進一步加強掌握。