第五章 實作電路與結果
5.1 現場可規劃邏輯閘陣列(FPGA)介紹
現場可規劃邏輯閘陣列(Field Programmable Gate Array,FPGA)是一種可規劃 邏輯陣列 IC,它提供了「邏輯閘陣列」(Gate Array,GA)元件的特性與「可程式 陣列邏輯」(Programmable Array Logic,PAL)元件的規劃彈性,具有以下幾個特 點:一、使用者可以規劃任意邏輯電路;二、FPGA 元件可以重複使用燒錄;三、
可以快速合成使用者的電路;四、具有完善的軟體可以配合使用。
利用 FPGA 來實現控制系統有著不少優勢在,除了有較高的運算時脈外,其 平行運算的能力也相當高。除此之外,利用 FPGA 實現的控制器,其行為亦非常 接近 等 效之類比 控 制 器, 而 且不但 能 保 留 其 優 點,如 無計算 上 的延遲(No Calculation Delay)、更高的頻寬(Higher Bandwidth)等;更能將其缺點排除,如參 數漂移(Parameter Drifting)、較低的積分層級(Poor Level of Integration)。除此之 外,FPGA 與其類似功能之 CPLD 做比較亦存在不少優點,在編程上 FPGA 比 CPLD 具有更大的靈活性,且 FPGA 非常適合複雜邏輯結構,這些優勢也讓 FPGA 更適合使用在控制系統上。
FPGA 元 件 內 部 主 要 包 含 了 三 大 部 分 , 數 萬 個 標 準 的 可 程 式 邏 輯 單 元 (Configurable Logic Blocks,CLBs),排列形成N×N 的電路矩陣;每個邏輯單元 均連接至縱向網路及橫向網路,外部在圍繞一圈輸入輸出單元,如圖 5.1 所示。
當電路完成設計後,便可以把產生之電路架構編譯檔下載至 FPGA 中進行連線規 劃,成為一顆具有特定功能之 IC。這樣不但縮短了研發時間,同時又擁有多次 燒錄等功能,而且也大大增加設計方法上之彈性。
接下來將介紹 FPGA 的設計流程。首先 FPGA 的設計方法有二種,分別為 圖形化流程(Schematic Flow)以及硬體描述語言編輯(HDL Editor),然而近年來電
錯誤,因此利用硬體描述語言的設計方式成為主流,一般常見的硬體描述語言有 VHDL、Verilog 等,而本論文所使用的為 Verilog。
圖 5.1 FPGA 元件基本結構
將所希望設計的電路利用上述方法完成後,接下來則可以做行為模擬 (Behavior Simulation)及合成後的函數模擬(Function Simulation),藉此可以了解所 設計的電路功能是否正確。驗證功能正確後,就可以進行時序模擬(Timing Simulation),模擬電路在燒入 FPGA 後,所造成延遲是否符合需求。
本論文所使用之現場可規劃邏輯閘陣列發展版,型號為 UBD-Spartan3E- ST3E。該發展版之核心為 Xilinx 公司所研製,其型號為 Spartan-3E XC3S250E,
並且是使用 Xilinx ISE 10.1i 之軟體進行編譯。此核心內部擁有 4896 個 4-input 的 LUT(Look-Up Table)以及 Slice 正反器(Slice Flip-Flop),封裝為 PQFP 208 隻腳 位,其中可以供使用者自由使用之腳位共有 158 隻。此外尚包含 12 個 18K-bits 的 Block RAMs,12 個 18 乘以 18 的硬體乘法器。而在發展板上也提供 8 個指撥 開關、8 個按鍵、8 個 LED 訊號燈以及 40MHz 之石英震盪器。
晶片設計之目的,除了可以達成所需之規格要求,更希望可以達到最小的電 路面積,降低晶片製作成本,本篇論文以 FPGA 實線電流源供電之無位置感測速 度控制,可藉由 Logic Elements(LEs)使用的多寡,間接表示電路設計的面積。表 5.1 為 FPGA 之使用率分析表。
表 5.1 FPGA 之使用率
Logic Elements 可使用 已使用(使用率) 4 Input LUTs 4896 1552(31%) Slice Flip-Flops 4896 596(12%)
IOBs 158 42(26%)
MULT 18X18s 12 7(58%)