Spoc CPU軟核 Part 2-主要特征
邏輯使用量小
本文引用地址:http://www.j9360.com/article/202401/454996.htm通用架構,可在 Xilinx 和 Altera FPGA 中輕松運行。也可以很容易地移植到ASIC。
RISC:
小指令集
多個累加器,多種數據大小
雙寄存器文件
每條指令中的條件執行
數據存儲器:使用(至少)一個模塊
代碼存儲器:使用串行閃存或塊
Spoc被設計為幾乎是免費的,即在FPGA中占用很少的空間,并從串行閃存中執行。 許多新的FPGA板卡都已使用串行閃存來配置FPGA。 Spoc 可以使用閃存中未使用的內存空間作為代碼內存。
Spoc0
Spoc 可以參數化。
目前,第一個實現“Spoc0”不是。
Spoc0 具有以下固定特征:
4 種數據大小/累加器:1、8、16 和 32 位
2 個寄存器文件,每個寄存器 32 個寄存器,每個寄存器寬度為 16 位
64Kbits的數據尋址空間
64Kbits的代碼尋址空間
至少使用 2 個塊函數(一個用于數據空間,一個用于代碼空間)
大約 300 行 Verilog
最大時鐘速度在 90-110MHz 范圍內(Spartan 3/Cyclone 2,最慢速度等級)
邏輯使用,約 175 個切片/300 個邏輯單元(Spartan 3/Cyclone 2)。
Spoc0 有多快?
當然,這取決于您的時鐘速度以及您正在運行的指令類型...... 但即使在 100MHz 時,Spoc0 也可能比其他可用的 CPU 慢。
(1) Xilinx Spartan 3 或 Altera Cyclone 2,速度最慢等級
注意:所提供的表格不保證準確性或公平性(很難公平地比較不同的 CPU)
在設計 Spoc0 時,我們的目標不是獲得盡可能快的 CPU,而是針對當今 FPGA(和 ASIC)的小型(低邏輯使用率)CPU。
在 CPU 世界中,速度和邏輯使用是成對的。 快速 CPU 使用固有的寬總線 - 這增加了它們的邏輯使用率。 Spoc0 采用相反的方法,將總線寬度與時鐘周期進行權衡。 換句話說,Spoc0 序列化了它的許多任務(它每條指令使用更多的時鐘周期),但仍然很纖薄。 將來,一些任務可以選擇并行化 - 代價是更高的邏輯使用率。
評論