基于FPGA的微處理器內核設計與實現
發布時間:2007/8/24 0:00:00 訪問次數:583
宋學瑞,王英茂
與傳統投片實現ASIC相比,FPGA具有實現速度快、風險小、可編程、可隨時更改升級等一系列優點,因而得到了越米越廣泛的應用。MCS-51應用時間長、范圍廣,相關的軟硬件資源豐富,因而往往在FPGA應用中嵌人MCS-51內核作為微控制器。但是傳統MCS-51的指令效率太低,每個機器周期高達12時鐘周期,因此必須對內核加以改進,提高指令執行速度和效率,才能更好地滿足FPGA的應用。通過對傳統MCS-51單片機指令時序和體系結構的分析,使用VHDL語言采用自頂向下的設計方法重新設計了一個高效的微控制器內核。改進了的體系結構,可以兼容MCS-51所有指令,每個機器周期只需1個時鐘周期,同時增加了硬件看門狗和軟件復位功能,提高了指令執行效率和抗干擾能力。
1 系統設計
1.1 模塊劃分
本內核在劃分和設計模塊時,基于以下幾條原則:
(1)同步設計,提高系統穩定性和可移植性;(2)功能明確,功能接近的放在同一個模塊內以減少模塊的數量和模塊之間的互連線,同時利于綜合時的優化;(3)模塊之間的接口時序預先定義好,并嚴格按定義的時序要求編寫每個模塊;(4)模塊信號的輸出采用寄存器輸出的方式。這樣可以提高系統的可靠性,一旦出錯也容易確定問題所在。
本內核由以下幾個部分組成:中央控制單元(CPU),算術邏輯運算單元(ALU),寄存器組控制器(REGS_CTR),定時器/計數器(T/C),通用串行接口(UART),看門狗(WT_DOG),如圖1所示。
1.2 提高速度的方法
本內核采用以下幾種辦法來提高速度。
(1) 采用多數據通道:本內核取消了傳統MCS-51系列單片機的單一總線,采用直連結構,各模塊的數據傳輸使用單向專用數據線,尤其在數據交換頻繁的ALU與REGS_CTR之間采用四條單向數據線相互連接,提高了數據傳輸的并行度,從而加快了數據的傳輸。
(2) 采用雙相時鐘:如圖2所示。CLK時鐘上升沿CPU發出控制信號,I/O端口采樣外部信號即圖1中流入REGS_CTR的數據或控制信號;CLK1時鐘上升沿把數據寫入寄存器中并把刷新后的數據或控制信號發出,即圖1中虛箭頭表示的數據流向。這樣REGS_CTR的讀寫分別在兩個時鐘的上升沿,減少了一個時鐘周期的等待,時鐘頻率提高了一倍。
(3) 采用寄存器組:FPGA內部有極為豐富的寄存器資源,本內核取消了傳統的同一時間只能讀或者寫的RAM塊,代之以可同時進行不同地址讀寫操作的寄存器組。一些特殊功能寄存器有專用總線輸出,如圖3所示。
(4) 提高時鐘頻率:對電路的關鍵路徑進行了改造,以減少邏輯電路級數從而提高時鐘頻率。通過這些設計,保證了每個機器周期只需一個時鐘周期,提高了指令執行效率,同時也提高系統的時鐘頻率。
1.3 兼容性方面的考慮
MCS-51系列單片機有豐富的軟硬件資源,為充分利用這些資源,在本內核設計時盡量考慮增強其兼容性。除機器周期變為原來的1/12以及新增加一個特殊功能寄存器(地址F8H)用于控制看門狗和軟件復位外,其他沒有變化。因而單個內核應用時,以前的程序可完全移植;在與外界通信時因機器周期與MCS-51單片機有差別可能需對一些程序作相應改動。這樣可以使系統在提高性能的同時無需其他開銷,便于推廣使用。
2 功能模塊的設計
2.1 中央控制器(CPU)的設計
這是微控制器的核心,負責中斷處理及指令執行。中斷處理分為中斷取樣、中斷高低優先級的判斷及執行相應的處理過程。CPU對指令的執行分為四個階段:取指-譯碼、執行、執行-回寫、回寫-預取指。指令執行流程如圖4所示。
宋學瑞,王英茂 與傳統投片實現ASIC相比,FPGA具有實現速度快、風險小、可編程、可隨時更改升級等一系列優點,因而得到了越米越廣泛的應用。MCS-51應用時間長、范圍廣,相關的軟硬件資源豐富,因而往往在FPGA應用中嵌人MCS-51內核作為微控制器。但是傳統MCS-51的指令效率太低,每個機器周期高達12時鐘周期,因此必須對內核加以改進,提高指令執行速度和效率,才能更好地滿足FPGA的應用。通過對傳統MCS-51單片機指令時序和體系結構的分析,使用VHDL語言采用自頂向下的設計方法重新設計了一個高效的微控制器內核。改進了的體系結構,可以兼容MCS-51所有指令,每個機器周期只需1個時鐘周期,同時增加了硬件看門狗和軟件復位功能,提高了指令執行效率和抗干擾能力。 1 系統設計 1.1 模塊劃分 本內核在劃分和設計模塊時,基于以下幾條原則: (1)同步設計,提高系統穩定性和可移植性;(2)功能明確,功能接近的放在同一個模塊內以減少模塊的數量和模塊之間的互連線,同時利于綜合時的優化;(3)模塊之間的接口時序預先定義好,并嚴格按定義的時序要求編寫每個模塊;(4)模塊信號的輸出采用寄存器輸出的方式。這樣可以提高系統的可靠性,一旦出錯也容易確定問題所在。 本內核由以下幾個部分組成:中央控制單元(CPU),算術邏輯運算單元(ALU),寄存器組控制器(REGS_CTR),定時器/計數器(T/C),通用串行接口(UART),看門狗(WT_DOG),如圖1所示。 1.2 提高速度的方法 本內核采用以下幾種辦法來提高速度。 (1) 采用多數據通道:本內核取消了傳統MCS-51系列單片機的單一總線,采用直連結構,各模塊的數據傳輸使用單向專用數據線,尤其在數據交換頻繁的ALU與REGS_CTR之間采用四條單向數據線相互連接,提高了數據傳輸的并行度,從而加快了數據的傳輸。 (2) 采用雙相時鐘:如圖2所示。CLK時鐘上升沿CPU發出控制信號,I/O端口采樣外部信號即圖1中流入REGS_CTR的數據或控制信號;CLK1時鐘上升沿把數據寫入寄存器中并把刷新后的數據或控制信號發出,即圖1中虛箭頭表示的數據流向。這樣REGS_CTR的讀寫分別在兩個時鐘的上升沿,減少了一個時鐘周期的等待,時鐘頻率提高了一倍。 (3) 采用寄存器組:FPGA內部有極為豐富的寄存器資源,本內核取消了傳統的同一時間只能讀或者寫的RAM塊,代之以可同時進行不同地址讀寫操作的寄存器組。一些特殊功能寄存器有專用總線輸出,如圖3所示。 (4) 提高時鐘頻率:對電路的關鍵路徑進行了改造,以減少邏輯電路級數從而提高時鐘頻率。通過這些設計,保證了每個機器周期只需一個時鐘周期,提高了指令執行效率,同時也提高系統的時鐘頻率。 1.3 兼容性方面的考慮 MCS-51系列單片機有豐富的軟硬件資源,為充分利用這些資源,在本內核設計時盡量考慮增強其兼容性。除機器周期變為原來的1/12以及新增加一個特殊功能寄存器(地址F8H)用于控制看門狗和軟件復位外,其他沒有變化。因而單個內核應用時,以前的程序可完全移植;在與外界通信時因機器周期與MCS-51單片機有差別可能需對一些程序作相應改動。這樣可以使系統在提高性能的同時無需其他開銷,便于推廣使用。 2 功能模塊的設計 2.1 中央控制器(CPU)的設計 這是微控制器的核心,負責中斷處理及指令執行。中斷處理分為中斷取樣、中斷高低優先級的判斷及執行相應的處理過程。CPU對指令的執行分為四個階段:取指-譯碼、執行、執行-回寫、回寫-預取指。指令執行流程如圖4所示。
深圳服務熱線:13751165337 13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式