您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>主機(jī)配件>軟驅(qū)>

基于模型的Zynq SoC軟硬件協(xié)同設(shè)計工作流程及其案例研究 - 全文

2017年11月17日 09:43 MathWorks 公司 作者:Eric Cigan,Noam Levin 用戶評論(0
關(guān)鍵字:matlab(227703)仿真(130856)

基于模型的設(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)。

圖 3 - 用于電機(jī)控制系統(tǒng)的控制環(huán)路模型,仿真結(jié)果體現(xiàn)的是對速度脈沖命令的響應(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é)果就基本完全吻合。

圖 4(a) - 用于測試原型硬件的 Simulink 模型

圖4(b) - 硬件原型和仿真的結(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)。

上一頁123全文

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:黃昊宇 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?