基于模型的Zynq SoC軟硬件協同設計工作流程及其案例研究 - 全文
基于模型的設計工作流程讓工程師不必進入實驗室,在桌面上就能完成設計權衡。
2011 年賽靈思 Zynq?-7000 All Programmable SoC 的推出為 FPGA 行業帶來了突破性創新。這些器件通過將雙核 ARM?CortexTM-A9MPCoreTM 處理器和豐富的可編程邏輯完美結合在一起,為大量應用提供了諸多優勢。采用 Zynq SoC,設計人員既可享受在行業最常用的處理器上開發軟件應用的好處,還能獲得通過高速可編程邏輯架構上的硬件加速所提供的靈活性和吞吐量。
借助MathWorks ? 提供的 MATLAB? 和Simulink?,今天的創新者能夠運用高度集成的軟硬件工作流程創建高度優化的系統。本文提供的案例研究將講述這一基于模型的工作流程。
賽靈思于 2011 年 12 月推出業界首款Zynq SoC時,設計人員就意識到他們可以將其傳統的用分立處理器和 FPGA 構建的多芯片解決方案移植到單芯片平臺上。他們可以在新平臺上創建基于 FPGA 的加速器,掃除軟件執行障礙,利用賽靈思及其 IP 合作伙伴提供的一系列的現成的生產就緒型 IP,滿足數字信號處理、網絡、通信等應用需求。
?
尚待解決的問題是他們如何為這款新器件編程。憧憬軟硬件聯合設計潛力的設計人員尋求的是能夠在 ARM 處理器和可編程邏輯間對設計進行智能分區的集成工作流程。但他們找到的卻是各自為陣的軟硬件工作流程:一面是針對 ARM 內核的常規嵌入式軟件開發流程;另一面是針對可編程邏輯的IP 組裝、傳統RTL 和新興高層次綜合工具組合在一起的硬件工作流程。
集成工作流程
2013 年 9 月,MathWorks 使用基于模型的設計推出了一種 Zynq-7000 SoC 軟硬件工作流程。在這個工作流程(圖 1)中,設計人員可在 Simulink 中創建用于表達完整動態系統的模型(含用于針對 ZynqSoC 的算法的 Simulink 模型),還可直接從算法迅速創建針對 Zynq SoC 的軟硬件設計。
系統設計人員和算法開發人員在 Simulink 中使用仿真為完整系統(通信、機電組件等)創建模型,以評估設計概念、進行高層權衡并將算法分配給軟硬件。從 Simulink 生成 HDL 代碼便于在 Zynq SoC架構上創建 IP 核和高速 I/O 處理。從 Simulink 生成C/C++ 代碼便于為 Zynq SoC 的 Cortex-A9 內核編程,從而支持快速嵌入式軟件迭代。
這種方法能夠自動生成鏈接 ARM 處理系統和可編程邏輯的 AMBA? AXI4 接口,為 Zynq SoC 提供支持。通過與 C/C++ 編譯、為 ARM 處理系統構建可執行文件、使用賽靈思設計工具生成比特流、下載到 Zynq 開發板等下游任務集成,實現了高速原型設計流程。
該工作流程的兩大核心分別是:Embedded Coder? 和 HDL CoderTM 技術。Embedded Coder 負責從 MATLAB、Simulink 和 Stateflow 生成量產質量級的 C 和 C++ 代碼,并對嵌入式系統進行針對性的優化。Embedded Coder 的應用已經相當廣泛,當您駕駛現代乘用車、乘坐高速列車或搭乘商業航班時,這些交通工具極有可能就處于 Embedded Coder 實時生成的代碼的控制之下。HDL Coder 與 Embedded Coder 對應,負責為 FPGA 和 ASIC 生成 VHDL 或 Verilog 并已緊密集成到賽靈思工作流程中。這種成熟的 C 和 HDL 代碼生成技術是可編程 SoC 的基于模型的設計工作流程的基礎。在通信、圖像處理、智能電源和電機控制等領域中使用基于模型的設計的設計團隊已經采用這一工作流程。
它是算法開發人員與硬件設計人員和嵌入式開發人員密切協作,加快算法在可編程 SoC 上實現的途徑。當生成的 HDL 和 C 語言代碼在硬件中完成原型設計,設計團隊就可以使用賽靈思 Vivado? IP 集成器把該代碼與其他生產所需的設計組件集成在一起。
案例研究:三相電機控制
出于多種原因,具有高效電源轉換能力的定制電機控制器是可編程 SoC 領域最常見的應用之一。更高性能、更高效率的方案是一個因素。在電機驅動系統占全球耗電總量 46% 的情況下,運用新穎控制算法實現更高效率是一個電機驅動設計追求的永無止境的共同目標。賽靈思 Zynq 可編程邏輯能實現精確的時序,是設計低時延高效率驅動器的理想平臺。
另一個促進因素是多軸向控制。可編程 SoC 上豐富的可編程邏輯和 DSP 資源為在單個可編程 SoC 上實現多個電機控制器開辟了無限可能。不論電機是單獨運行還是組合運行,都可受控于集成動作控制系統之下。
工業網絡 IP 集成是又一大因素。賽靈思及其 IP 合作伙伴提供的 IP 用于與 EtherCAT、PROFINET 和其他能方便地集成到可編程 SoC 中的工業網絡協議集成。
由于電機驅動系統占全球耗電量的 46%,用新穎的控制算法取得更高效率是電機驅動設計追求的永無止境的共同目標。
為說明這一工作流程在通用電機控制案例上的運用,將以實現在 Zynq-7020 SoC 上的三相電機磁場定向控制算法為例(有關該硬件原型設計平臺的詳情,該電機控制系統模型包含兩個主要的子系統(圖 2):一個是針對已經在 Zynq 處理系統和可編程邏輯間完成分區的 Zynq SoC 的電機控制器;另一個是連接到配有測量軸角度的編碼器的無刷直流電機的電機控制 FPGA 夾層卡 (FMC)。
可以從數據流的角度觀察軟硬件分區:
? 速度控制 (Velocity Control) 模塊和模式選擇 (Mode Select) 模塊被分配給 ARM Cortex-A9 處理系統,因為這兩個模塊與模型的其余部分相比運行在較低速度下,也因為它們是設計在開發過程中最有可能修改和重新編譯的部分。
? 運行在 ARM 內核上的模式選擇 (Mode Select) 狀態機負責判斷電機控制器的運行模式(開環運行還是閉環調節)。該狀態機負責管理在切換到閉環控制模式之前的啟動、開環控制和編碼器校準模式之間的切換工作。
? 編碼器傳感器信號通過外部端口傳遞給可編程邏輯中的編碼器外設 (Encoder Peripheral),然后傳遞給位置/速度估算 (Position/Velocity Estimate) 模塊,計算電機的狀態(軸位置和速度)。
? 一個ΣΔADC 感知電機電流,隨即由手動編碼 ADC 外設模塊處理該電流。
? 電流控制器負責獲取電機狀態與電流、工作狀態以及 ARM 內核通過 AXI4 接口傳遞的速度控制命令,據此計算電流控制器命令。在處于閉環模式下時,電流控制器使用比例積分 (PI) 控制原理,其增益可使用仿真和原型設計加以微調。
? 電流控制器命令穿越電壓轉換模塊,通過 PWM 外設輸出給電機控制 FMC,最終用于驅動電機。
設計人員能在 Simulink 中為完整系統建立模型(圖 3)。
在基于模型的設計中,系統的頂層 Simulink 模型的組件數量增加到四個:
? 輸入模型:負責向控制器提供受控軸速度和開/關命令,用作激勵信號;
? 電機控制算法模型:主要用于 Zynq SoC;
? 設備模型:包括 FMC 驅動電子電路、無刷直流電機的永磁同步電機 (PMSM) 模型、電機軸上的慣性負載模型和編碼器傳感器模型;以及
? 輸出驗證模型:包含后處理和圖形功能,有助于算法開發人員優化和驗證模型。
在 Simulink 中可以在遠早于開始硬件測試的時候就借助仿真徹底檢驗該算法。可以細調 PI 控制器的增益,嘗試多種激勵配置,檢驗不同處理速度的結果。在使用仿真的時候需要面對一個根本性問題:由于電機控制中一般存在著好幾種千差萬別的速度,即 1-10Hz 的總體機械響應速度、1-25 KHz 的內核控制器算法速度、10-50 MHz 的可編程邏輯運行速度,仿真運行時間從數分鐘到數小時不等。我們可以借助一種對外設(PWM、電流感應和編碼器處理)使用行為模型的控制環路模型解決這一問題,生成如圖 3 所示的時間響應。
仿真與硬件環境之間的持續驗證讓設計人員在設計流程中盡早發現并解決問題。
在使用控制環路模型微調控制器之后,下一步是使用包含外設的高保真度模型在仿真中證明控制器的合格性。方法是加入用于控制器的 C 和 HDL 組件的時序精度規格模型。這些規格模型擁有生成 C 和 HDL 代碼所需的語義。通過仿真隨后驗證配備規格模型的系統能極為精確地追蹤控制環路模型。
一旦性能使用高保真度模型驗證完畢,接著在硬件中對控制器進行原型設計。根據圖 1 所示的工作流程,首先從生成 IP 核入手。IP 核生成工作流程指導選擇目標開發板,引導完成映射內核的輸入和輸出端口到目標接口的流程,包括 AXI4 接口和外部端口。
通過與 Vivado Design Suite 集成,該工作流程能完成比特流構建和 Zynq-7020 SoC 的架構編程。
現在 IP 核已經加載到目標器件上,下一步是從針對 ARM 內核的 Simulink 模型上生成嵌入式 C 語言代碼。從生成 C 語言代碼、編譯 C 語言代碼和用嵌入式 Linux 構建可執行文件整個過程完全自動化,然后原型即可投入運行。
為了運行原型硬件并驗證其結果是否與仿真模型一致,我們構建了一個用作高級控制面板的修改版 Simulink 模型(圖 4a)。在這個模型中刪除了設備使用的仿真模型(即驅動電子電路、電機、負載和傳感器部分),用連接到 ZedBoard 的 I/O 替代。
在 Simulink 會話中使用該模型可以啟動電機,選擇不同激勵配置,監測相關信號,獲取供在 MATLAB 中后續處理的數據,不過現在可以重復的是脈沖測試(圖 3)。
圖 4a 顯示了硬件原型的軸轉速和相流結果與仿真結果的對比情況。硬件原型的啟動順序與兩個仿真模型的啟動順序有明顯差別。不過這種情況的原因預計是硬件測試中電機的轉子和定子的初始角與仿真中使用的初始角不同,導致電流控制算法在通過自己的編碼器校準模式驅動電機時的響應不同。從施加脈沖第 2 秒開始,仿真和原型硬件的結果就基本完全吻合。
以這些結果為基礎,可以繼續進一步不同負載和運行條件下的測試,也可以開展進一步的 C 語言和 HDL 優化。
工程師正在轉為使用基于模型的設計工作流程,在賽靈思 Zynq SoC 上實現算法的軟硬件設計。Simulink 仿真能盡早評估算法,方便設計人員評估算法的有效性。無需實驗室,在桌面上就能完成設計的權衡,顯著提升生產力。業經驗證的 C 語言和 HDL 代碼生成技術,結合對賽靈思 All Programmable SoC 的硬件支持,為算法在真實硬件上運行提供快速且可重復的流程。仿真和硬件環境間的持續驗證讓設計人員能夠在開發流程中盡早發現并解決問題。
MathWorks 為基于 Zynq 的開發板、軟件定義無線電套件和電機控制套件提供工作流程支持。
MATLAB 和 Simulink 均為The MathWorks公司的注冊商標,詳見: marks 列出的其他商標。其他產品或品牌名稱均為其各自所有者的商標或注冊商標。
- 第 1 頁:基于模型的Zynq SoC軟硬件協同設計工作流程及其案例研究
- 第 2 頁:三相電機控制
- 第 3 頁:模型驗證
本文導航
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關閱讀:
- [電子說] 直播就在明天!Fidelity 風機高質量網格仿真一體化解決方案——Cadence CFD 極速前 2023-10-24
- [電子說] 模擬電子蠟燭電路原理圖講解 2023-10-24
- [電子說] N8957APV光伏列陣仿真器功率模塊故障維修 2023-10-23
- [電子說] 時鐘精度PPM設置仿真錯誤簡析 2023-10-23
- [機器視覺] 機器視覺之圖像增強和圖像處理 2023-10-23
- [電子說] 關于Matlab的三種加密方式 2023-10-23
- [電子說] 內置式永磁同步電機復矢量電流調節器設計 2023-10-23
- [電子說] 51單片機溫度控制調速風扇仿真設計 2023-10-22
( 發表人:黃昊宇 )