8位CPU龍少架構(gòu)-基于Multisim 11.0
CPU~~~
8位CPU龍少架構(gòu)-Multisim 11.0.rar
(5.91 MB, 下載次數(shù): 432)
2015-5-21 23:06 上傳
點擊文件名下載附件
打開文件就能仿真了,按照指令集在虛擬內(nèi)存里的ROM區(qū)撥上指令,手動或自動的給CPU輸入脈沖就會執(zhí)行指令,這個文件比較大,如果你的電腦性能差,打開會久一些,仿真也會很卡;有點累~就不打太多字了,有不懂的地方回帖問我就行了
下面是這個CPU的設(shè)計圖:





指令執(zhí)行時序:




這個是很簡單的串行CPU,估計200來片74系列IC,只要看幾節(jié)計算機原理的教程不難YY出它的工作原理;之前是想搞16位的,16位的指令空間很大,一個字的指令就可以源/目的寄存器同時尋址,后來發(fā)現(xiàn)Multisim 11.0電路大一些就慢了 可能我的電腦太垃圾, 這個8位的CPU畫到最后連一根線都要十來秒,本來兩天就能連接完成的,硬是弄了一個星期,工作效率啊啊~~~ 
尋址方式:
為了簡化控制器~ 這個8位機只做了3種尋址:立即數(shù)尋址、寄存器尋址、寄存器間接尋址。
除了立即數(shù)傳送為雙字節(jié)指令,其他都是單字節(jié)指令,內(nèi)存?zhèn)魉椭噶、轉(zhuǎn)移指令、調(diào)用指令的16位地址是用R3和R4寄存器分別作為高地址和低地址,也就是R3和R4默認組成的16位寄存器間接尋址,所以先要用立即數(shù)傳送指令把地址送上去。
源運算指令操作過程:
累加器(被加數(shù)) + 源寄存器(加數(shù)) 結(jié)果送回累加器
累加器(被減數(shù)) - 源寄存器(減數(shù)) 結(jié)果送回累加器
算術(shù)、邏輯的源運算指令操作和上面是一樣的就不一一列出了。
目的運算指令操作過程:
目的寄存器加1 結(jié)果送回目的寄存器
目的寄存器減1 結(jié)果送回目的寄存器
目的寄存器取反 結(jié)果送回目的寄存器
移位指令的操作過程和上面一樣,一條指令移一位,為了簡化電路~~~ 當然用立即數(shù)或寄存器指出移位次數(shù)一樣可以實現(xiàn),但是電路會復(fù)雜很多。
關(guān)于運算指令、移位指令、出入棧、對標志位的影響:
運算和移位參考8086。。~
出入棧操作的是標志寄存器和低7位。
還有中斷的入口地址~ 懶的搞什么屎量號查表,直接從外部讀16位程序地址
對。。忘了說了:
出入棧地址為 堆棧頁(高8位) 和堆棧指針(低8位)組成的。
程序地址為 代碼頁(高8位) 和程序指針(低8位)組成的。
還有那個堆棧深度是0~255個字節(jié),先入棧再加1,先減1再出棧;
程序指針也是0~255,所以在255的位置放一條代碼頁加1指令就OK了;
為什么不用計數(shù)器~~~太難用
CPU很好玩的 開關(guān)開關(guān)開關(guān)。。。。。。。。。。。就執(zhí)行指令,外國佬真是牛X , 發(fā)明了這么吊的東西
送LZ一東西:INTEL4004 電原理圖
下面是CPU現(xiàn)在周邊的配置:
CPU時鐘發(fā)生和復(fù)位板 正面:

CPU時鐘發(fā)生和復(fù)位板 背面:

ALU寄存器數(shù)據(jù)指示LED和撥碼開關(guān)(撥碼開關(guān)起初是用來調(diào)試指令的) 正面:

ALU寄存器數(shù)據(jù)指示LED和撥碼開關(guān) 背面:

SRAM加電容當ROM用(用3V的電池充電了電壓會變低的,后面我改成電容了) 正面:

SRAM加電容當ROM用 背面:

硬件SPI板 正面:

硬件SPI板 背面:
CPU板正面:

CPU板背面:
|
|

|