【Logisim實驗】構建立即數-隨機儲存器-暫存器的傳送
關於Logisim
Logisim在模擬軟體行列中算是比較直觀的軟體了,它能做的事情有很多,唯一不足的是硬體描述語言的支援,總體上來說適合比較底層的模擬,依賴於Hex值,通過線路邏輯設計能夠較好的
關於本實驗
計算機指令的執行過程設計是相對複雜的,指令的形式也是多種多樣,按照格式可分為有二三單地址指令,根據訪問部件的不同可分為立即數,RR,SS,RS等指令
本實驗通過Logisim實現:
1.暫存器->儲存器
2.儲存器->暫存器
3.立即數->儲存器
4.立即數->暫存器
的四種控制結構
正文
1)實現暫存器組
暫存器組能夠組合成一個快取序列,並按照每個暫存器的地址進行更改和訪問,一次只能改寫或讀取一個暫存器內容。
2)立即數與主儲存器
主儲存器與暫存器都是儲存部件能作為輸入輸出使用,立即數只能作為輸入
3)通路設計
控制資料通路實際是通過資料選擇器不斷的控制輸入地址達到選擇通路的效果。
兩處data作為同一線路,同時為Memory輸入端提供可選地址
為暫存器入口提供選擇入口
儲存器->暫存器
暫存器->儲存器
是一對互斥操作可將兩者讀寫控制訊號合併為一個
0->儲存器寫
1->暫存器寫
4)將控制通路的二路選擇器訊號合併一處形成指令埠
這裡有兩種佈局方式a)硬佈線b)微程式控制器
兩者各有優缺點
需要有指令週期這裡就是簡單的讀寫週期用clock+譯碼器就可構成
採用方案b將讀寫,li/Memory,li/Regs埠進行分析
指令 | 讀寫r/w | li/memory | li/regs | 指令序號 |
立即數->memory | 0 | 0 | 0 | 1 |
立即數->regis | 1 | 0 | 0 | 2 |
memory->regis | 1 | 1 | 0 | 3 |
regis->memory | 0 | 0 | 1 | 4 |
三位二進位制控制訊號可以指定8種操作其中很多操作相互重疊只取其中一個就好
5)編寫微指令控制器
ROM中儲存微指令
這樣就完成了資料傳送了
後續
可以發現圖中還有很多地址訊號可以壓縮成一定長(S_R,w_a,address,data),度需要根據指令型別進行指令各個位置的資料的通路判斷。
&n