在嵌入式系統(tǒng)中,很容易在系統(tǒng)核心找到 FPGA。這是因為 FPGA 能同時并行執(zhí)行多個功能,并具有確定性的響應(yīng)。很多嵌入式系統(tǒng)還包含一個處理器,用來處理通信任務(wù)、內(nèi)務(wù)管理、調(diào)度任務(wù)以及通常在軟件中執(zhí)行的其他任務(wù)。
這種 FPGA 與處理器的組合會增加系統(tǒng)的 SWAP-C。SWAP-C 是指解決方案的尺寸、重量、功耗和成本。顯然,同時使用處理器和 FPGA 不僅會增加材料成本,同時還會增加偶生工程成本(NRE)。此外,設(shè)計與驗證工作變得更加復(fù)雜。兩個器件還需要更多板級空間,這會增大解決方案的尺寸和重量。電源結(jié)構(gòu)也比只用一個器件時復(fù)雜,這進一步影響 SWAP-C。
盡管難以用軟件驅(qū)動的處理器來實現(xiàn)通常由 FPGA 執(zhí)行的功能,但在 FPGA 內(nèi)部實現(xiàn)處理器,通常能讓設(shè)計大受裨益。
對于在賽靈思 FPGA 中實現(xiàn)處理器,我們有多個選擇:
PicoBlaze– 8 位高確定性微控制器(見賽靈思中國通訊 54 期,“充分發(fā)揮 PicoBlaze 微控制器的優(yōu)勢。”)
MicroBlaze– 32 位 RISC(精簡指令集計算機)處理器,可針對眾多應(yīng)用在性能和面積方面進行定制。
Zynq UltraScale MPSoC 和 Zynq-7000 SoC將硬化的嵌入式 ARM 處理器和可編程邏輯完美集成在單個芯片上。(如需了解有關(guān) Zynq-7000 SoC 使用方面的信息,敬請查閱MicroZed Chronicles)
本文中,我們將深入了解如何在 FPGA 設(shè)計中實現(xiàn)賽靈思 MicroBlaze 處理器以減小 SWAP-C。
什么是 MicroBlaze
MicroBlaze 是 32 位軟核處理器。這意味著它是一款可先定制,然后綜合,最后布局布線到目標 FPGA 的邏輯資源中的軟 IP 核。每個 MicroBlaze 處理器實例都是自定義的,包含 FPU(浮點單元)、MMU(存儲器管理單元)以及指令與數(shù)據(jù)緩存這樣的高級特性。
用戶可在 MicroBlaze 處理器上運行一系列操作系統(tǒng),包括 FreeRTOS、Micrium uc/OSiii 和 Linux。用戶還可以運行裸機代碼。實例的軟特性可確保不存在過時問題。簡而言之,MicroBlaze 處理器是一款功能非常強大的嵌入式系統(tǒng)開發(fā)工具。
創(chuàng)建 MicroBlaze 系統(tǒng)
在設(shè)計中實現(xiàn) MicroBlaze 處理器是賽靈思 Vivado HL WebPACK 版本的一項標準功能。
首先要做的是在 Vivado 中創(chuàng)建新項目,并添加一個新的方框圖。然后,我們可以從 IP Catalog 中選擇添加 MicroBlaze 處理器核。一旦我們將 MicroBlaze 處理器放在方框圖中,應(yīng)針對所需的性能對其進行自定義。打開要自定義的 MicroBlaze 處理器后,會出現(xiàn)五個處理器自定義頁面中的第一個。在第一頁中,我們可以為處理器核選擇所需的性能,如圖 1 所示。本例中,我們將開發(fā)一個高性能 MicroBlaze 處理器。
?
圖 1:選擇 MicroBlaze 的配置。
要創(chuàng)建一個基礎(chǔ)的系統(tǒng),我們需要以下 IP 核:
AXI UART lite – 雙擊它可設(shè)置 RS232 選項。默認設(shè)置是 9600bps,無奇偶校驗位,一個停止位。
AXI 定時器
AXI 中斷控制器 – 需要一個連接模塊驅(qū)動來自定時器和 AXI UART lite 的中斷。
用于 AXI 數(shù)據(jù)和指令緩存的 AXI BRAM 控制器和 BRAM
用于輸出 166.667MHz 時鐘和 333MHz 時鐘的時鐘向?qū)?/p>
MicroBlaze 調(diào)試模塊
用于連接定時器和 UART 的 AXI 外設(shè)互連
用于連接 MIG (DDR) 和 AXI BRAM 控制器的 AXI 存儲器互連
針對 MicroBlaze 時鐘域的處理器復(fù)位系統(tǒng)
針對存儲器接口生成器時鐘域的處理器復(fù)位系統(tǒng)
這些模塊的連接架構(gòu)如以下的圖 2 所示:
?
圖 2:高級方框圖
我們將 100MHz 時鐘作為時鐘向?qū)У妮斎耄撓驅(qū)Ю?MMCM(混合模式時鐘管理器)生成 100MHz、166.667MHz 和 200MHz 的時鐘。MicroBlaze 處理器將采用 MMCM 的 100MHz 輸出來運行,而其他時鐘將被用于存儲器接口生成器。下面的表 1 和表 2 給出了 AXI 互連的配置:
?
表 1:外設(shè) AXI 互連,時鐘和復(fù)位配置
?
?
表 2:存儲器 AXI 互連,時鐘和復(fù)位配置
配置 DDR 存儲器
評論
查看更多