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