對於大學中期項目,我必須設計一個可配置處理器,以VHDL編寫代碼,然後在Digilent的Spartan 3E FPGA板上進行綜合。我是一個初學者,所以你可以指點我一些關於可配置處理器的信息,以及與這個概念相關的一些想法?在FPGA板上實現的可配置處理器
回答
您可以查看我的answer for a related question。我們做了幾乎相同的事情,用VHDL爲FPGA電路板構建了一個CPU。
這只是一個樣機,所以請注意,我將它清理乾淨
取instruct1,
取instruct2,取datas1
取instruct3,取datas2,過程datas1
取instruct4,取datas3,過程datas2,商店1 datas1
取instruct5,取datas4,過程datas3,商店2 datas1
取instruct6,取datas5,過程datas4,store3 datas1
取instruct7,取datas6,過程datas5,store4 datas1
取instruct8,取datas7,過程datas6,store5 datas1
基本上這些處理器 第1部分 ALU的主要部件:算術邏輯單元(這是draeing會派上用場) AN ALU具有2個輸入端口和一個輸出端口。 2個輸入端口進行操作並輸出結果。要知道ALU必須完成的指令是一個控制端口。 基本上這是命令的名稱。所以如果控制端口有4位,則有16條可能的指令。
第2部分 寄存器單元:這是一組存儲單元(高速緩衝存儲器)。該存儲器的內容通常被傳送到ALU的輸入端口。
第3部分 控制單元:這有點像cpu的管絃樂大師。它的工作是將數據發送到ALU輸入 2讀取指令寄存器中需要發生的指令,將這些指令發送到ALU控制端口
接口。這是RAM和其他外圍設備如何與CPU通信的方式。每次輸入結果都必須存儲。它可以存儲在RAM中,因此一旦結果準備就緒,RAM必須準備就緒。同時,可以發生下一條指令輸入的RAM讀取。同時,下一條指令可以從RAM中讀取。
生成1條指令通常需要超過1個時鐘週期。加工結構與工業生產相類似。因此,連鎖工作已經完成。
VLIW我們編寫的程序是線性的,意味着指令一個接一個地發生。但是今天的CPU(不是ARM)有多個ALU,所以同時處理多條指令。
所以,你必須處理單元鏈在同一時間(管道) 工作多條指令,你有很多的這些單位的(超標)
然後它變成什麼可以/需要做的泰勒一個問題你CPU架構。
我做了一個類似的項目,用VHDL實現了一個帶有5級流水線的處理器。首先,您必須瞭解處理器的工作原理。如果不明白每一種方法在做什麼以及需要什麼樣的控制信號,那麼你就沒有希望用VHDL寫一個。其次,開始繪製指令和數據如何流過處理器(即通過每個階段)的圖表。每個階段如何相互聯繫?控制信號去哪裏了?我的投入從哪裏來,我的產出在哪裏?
一旦你有了一個堅實的圖表,VHDL中的實際應用應該是相對直接的。您可以使用VHDL的行爲建模來從本質上解釋您在圖表中看到的內容。
- 1. 如何在zynq 7020上使用C/C++實現FPGA協處理?
- 2. FPGA設計的配置管理
- 3. EggOn FPGA實現在Android中
- 4. 多線程可以在單處理器系統上實現嗎?
- 5. Verilog中的DWT(FPGA實現)
- 6. 下載處理器實現
- 7. 推動型ABS FPGA實現
- 8. 蟒蛇鏈表FPGA實現
- 9. 蟒RSA FPGA實現與PKCS1
- 10. 實現可配置工廠
- 11. 實現Rails 3模板處理程序
- 12. 如何實現Java Image處理來做模板匹配?
- 13. 使用Azure資源管理器模板配置Azure批處理
- 14. 在select語句上實現批處理
- 15. 在Xcode 9中實現預處理器?
- 16. 在VHDL中使用fpga處理中斷
- 17. Sasebo GII virtex5 fpga配置
- 18. arm或mips核心在fpga中實現
- 19. 是否可以在FPGA上設計一個更小的FPGA?
- 20. nCache的通用型處理器實現
- 21. 實現一組處理的迭代器
- 22. C中的FPGA中斷處理
- 23. 上下文處理器與模板標籤的最佳實踐?
- 24. 實現自定義配置節處理程序
- 25. TASM簡單的循環FPGA實現
- 26. 在FPGA上開發圖像處理運算符
- 27. 可以實現並行處理嗎?
- 28. 使用FPGA板上的USB鍵盤(VHDL)
- 29. 如何實現待處理的上傳到服務器的android
- 30. 如何在weblogic服務器上配置批處理作業