管線處理

計算機結構

電腦的歷史

電腦硬體概論

設計的層次

算術單元

暫存器

控制單元

中央處理器

輸出入

記憶體

速度與效能

管線處理

平行處理

電腦系統

投影片下載

家庭作業

Verilog

全加器

加法器

加減器

快速加法器

乘法器

ALU

閂鎖器

脈衝偵測

計數器

多工器

暫存器群

記憶體

延遲問題

浮點數

狀態機

程式計數器

CPU0-Mini

CPU0

CPU0 處理器

程式計數模組

記憶體

指令提取單元

跳躍指令

控制單元

CPU0-Mini

CPU0-Block

相關課程

數位邏輯

計算機結構

Quartus II

Verilog

系統程式

訊息

相關網站

參考文獻

最新修改

簡體版

English

構想:如何以 Verilog 設計 Pipeline CPU

每個 tick 都寫成一個 module,然後串接起來,應可形成同時執行不同 tick 的效果。

module tick1()
always @(posedge clock) begin
mar = `PC; // MAR = PC
m_rw = 1; // m_rw=1 is read mode, read(m[MAR]) => read(m[PC])
m_en = 1;
ipc = `PC;
`PC = `PC+4; // PC = PC + 4
end
endmodule

module tick2()

endmodule

module cpu0r()
tick1(….)
tick2(….)
tick3(….)
tick4(….)
tick5(….)
tick6(….)
endmodule

但這樣必須先把 RegBank, ALU 等單元模組化比較好,因此必須先做出 cpu0b() 的版本,再來考慮製作 cpu0r() 的版本。

Facebook

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License