2008-10-23 25 views
4

對於大學中期項目,我必須設計一個可配置處理器,以VHDL編寫代碼,然後在Digilent的Spartan 3E FPGA板上進行綜合。我是一個初學者,所以你可以指點我一些關於可配置處理器的信息,以及與這個概念相關的一些想法?在FPGA板上實現的可配置處理器

回答

2

這只是一個樣機,所以請注意,我將它清理乾淨

取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架構。

2

我做了一個類似的項目,用VHDL實現了一個帶有5級流水線的處理器。首先,您必須瞭解處理器的工作原理。如果不明白每一種方法在做什麼以及需要什麼樣的控制信號,那麼你就沒有希望用VHDL寫一個。其次,開始繪製指令和數據如何流過處理器(即通過每個階段)的圖表。每個階段如何相互聯繫?控制信號去哪裏了?我的投入從哪裏來,我的產出在哪裏?

一旦你有了一個堅實的圖表,VHDL中的實際應用應該是相對直接的。您可以使用VHDL的行爲建模來從本質上解釋您在圖表中看到的內容。