關於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),度需要根據指令類型進行指令各個位置的數據的通路判斷。

相關文章