chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

軟硬件協(xié)同仿真原理及主要組成部分概述

冬至子 ? 來源:Datenlord ? 作者:Datenlord ? 2023-10-16 11:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

軟硬件聯(lián)合仿真在確保高效云解決方案的質(zhì)量、降低風險、節(jié)省時間和成本方面發(fā)揮著關鍵作用。達坦科技致力于打通云間壁壘、實現(xiàn)數(shù)據(jù)高效跨云訪問,為云上應用提供高性能安全存儲支持。在研發(fā)過程中,軟硬件聯(lián)合仿真顯得尤為重要。這一綜合仿真方法有助于驗證系統(tǒng)的一致性,分析和修復潛在故障,評估性能并優(yōu)化資源分配。同時,它也用于評估系統(tǒng)的安全性,確保數(shù)據(jù)在跨云環(huán)境中得到充分的保護。我們將這一理論與實踐心得集結成: 軟硬件協(xié)同仿真系列 。本文是該系列的第一篇文章,著重介紹 原理及概述各部分的主要概念 。

01、為什么要仿真

在芯片設計領域,仿真驗證是保證設計正確的關鍵步驟。芯片生產(chǎn)成本高昂,因此需要在生產(chǎn)前盡可能對其進行仿真驗證以確保其功能和性能符合預期。另外,在芯片上運行的軟件也需要與芯片同步進行設計和測試,以縮短整個系統(tǒng)的生產(chǎn)和迭代周期,因此其載體只能是仿真的芯片。

02、硬件仿真方法

軟件仿真

傳統(tǒng)的仿真方法包括基于軟件的仿真和基于硬件的仿真?;谲浖姆抡胬密浖抡骐娐愤壿?。例如,QEMU可以模擬真實CPU的指令執(zhí)行,兩者在執(zhí)行同一條指令后寄存器發(fā)生同樣的變化,運行在CPU上的軟件不會分辨出其差別。這種使用高級語言編寫的模擬硬件行為的軟件一般也被用作硬件實現(xiàn)的參考模型,兩者可交叉驗證。

此外,描述硬件邏輯的RTL(Register Transfer Level)代碼也可以轉化高級軟件語言代碼,并最終生成可執(zhí)行的仿真程序。這賦予了設計者在不需要真實硬件的情況下快速驗證硬件邏輯的能力。

硬件仿真

基于硬件的仿真則使用可編程的硬件平臺來模擬硬件邏輯。常見的如FPGA(Field Programmable Gate Array)板卡,其內(nèi)部為可編程的硬件結構,允許設計者將電路邏輯燒錄進去,成為一個接近真實芯片的硬件原型,可實時模擬并觀察硬件邏輯的運行狀態(tài)。

相比于基于軟件的仿真,基于硬件的仿真速度更快,可以提供更接近真實硬件的性能,但在調(diào)試和修改時的靈活性較低。其能模擬的硬件規(guī)模受自身規(guī)模限制,仿真成本隨規(guī)模上升速度也遠高于軟件方法。

03、軟硬件協(xié)同仿真

軟硬件協(xié)同仿真指同時模擬硬件和軟件集成在一起的整個系統(tǒng)。其中硬件的仿真可能是在硬件仿真器中,或由軟件模擬。軟件模擬又可分為直接由RTL轉譯,或是另外開發(fā)的事務級參考模型,亦或是兩者的結合。

例如,當我們仿真驗證一塊采用PCIe接口的網(wǎng)卡時,在使用軟件仿真時,可以將PCIe部分的硬件邏輯由軟件模型代替,將網(wǎng)卡的RTL代碼轉譯為可執(zhí)行程序進行仿真,再將兩者結合后接入到運行網(wǎng)卡驅動程序的QEMU虛擬機中,即完成了整個系統(tǒng)的仿真。

以上例子中,PCIe部分不是我們的驗證重點,因此用事務級軟件模型仿真。由于省略了對具體電路行為的仿真,提高了仿真抽象水平,軟件模型相較由RTL轉譯的仿真程序執(zhí)行速度更快。使用硬件仿真時,PCIe部分邏輯可由硬核實現(xiàn),網(wǎng)卡邏輯燒錄在可編程門陣列中,以提高仿真速度,降低仿真器占用。QEMU中的應用軟件和驅動程序可不感知以上硬件仿真的具體實現(xiàn)。

軟硬件協(xié)同仿真試圖結合軟件仿真和硬件仿真,使開發(fā)者可以同時驗證和調(diào)試系統(tǒng)的軟件和硬件部分。對硬件邏輯實現(xiàn)復雜的、非驗證重點的部分使用事務級模型仿真,對性能有要求或需要重點驗證的部分則采用基于硬件的仿真,亦可結合對成本和工期的要求進行配置。通過這種混合仿真的方式,設計者可以以較低的成本和較高的性能驗證整個系統(tǒng)。

04、主要組成部分

軟硬件協(xié)同仿真涉及多個關鍵組件和工具,其中最核心的有QEMU、SystemC/TLM、RTL Simulation和Bridge。在此簡要介紹一下組件的基本概念和它們之間的關系。

QEMU

QEMU是一個廣泛應用的開源機器模擬器和虛擬化工具。QEMU能夠模擬整個系統(tǒng)級別的操作,如模擬一臺計算機,包括硬件部件操作系統(tǒng)以及驅動等。其可以模擬任意硬件,或為硬件提供一個真實的軟件運行環(huán)境。

SystemC/TLM

SystemC是用于系統(tǒng)級建模的開源C++庫,而TLM(Transaction Level Modeling)是一個在SystemC環(huán)境下描述與仿真硬件行為的模型。相比于傳統(tǒng)的RTL設計,TLM能夠更高層次地描述硬件行為,從而提供更快的仿真速度。使用SystemC/TLM構建的模型通常作為“膠水”連接QEMU和RTL。例如,在上述網(wǎng)卡仿真例子中,PCIe部分由一個事務級的TLM模型描述,兩端分別連接軟件和仿真的硬件。

RTL Simulation

RTL仿真可以基于軟件或硬件進行。軟件如Verilator,一個開源的Verilog仿真器,它可以將Verilog代碼轉換為C++模型,然后通過C++進行快速仿真。硬件如FPGA,其中包含可編程的硬件邏輯,可用于仿真硬件原型。

Bridge

要將軟件與硬件集成,還需要各類橋接器連接軟硬件邏輯。例如TLM到PCIe等各類硬件接口到軟件接口互聯(lián)橋。這部分需要根據(jù)具體的軟硬件平臺開發(fā),或使用開源項目LibSystemCTLM-SoC提供的常見接口轉換橋。

下圖展示了一種組件之間的連接關系。假設我們模擬一個PCIe設備(如網(wǎng)卡),QEMU模擬了一臺計算機,承載操作系統(tǒng)和設備驅動程序。TLM模型和RTL仿真共同實現(xiàn)了設備邏輯,并通過Socket連接到QEMU中,表現(xiàn)為一個PCIe設備。

下圖展示了TLM級仿真和RTL級仿真的橋接細節(jié)。其中TLM GP(Generic Payload)指一個一般的總線讀/寫操作。Bridge的作用就是將TLM事務級的操作轉化為RTL級的信號。例如,TLM的一個讀事務可能會被轉換為在RTL級別的一個地址信號、一個讀使能信號等。由于TLM模型通常是與時間無關的或粗粒度的,所以在轉換為RTL信號時,橋必須考慮時序問題。這可能涉及到模型之間的時間同步,以確保所有事務和信號都在正確的模擬時間內(nèi)發(fā)生。

05、仿真案例

下面以一個例子介紹SystemC/TLM軟件模型與仿真的硬件設備的對接流程和實現(xiàn)原理。

在Xilinx的libsystemctlm-soc倉庫中包含一個AXI4從設備與SystemC/TLM模型交互的樣例程序(example-rtl-axi4)。其中axifull_dev_s00_AXI.v是由 Xilinx IP Integrator自動生成的Verilog模塊,其功能是一塊可通過AXI4總線讀寫的存儲器。axifull_dev.v對其進行了一層封裝,并預留了用戶增加額外邏輯的空間。以上即為硬件部分。

http://example-rtl-axi4.cc中描述了TLM模型與AXI設備的連接和交互邏輯。主要包括將axifull_dev設備實例化為DUT(Device Under Test),并通過軟件生成的仿真測試激勵,對硬件進行讀寫操作測試。

如下是http://example-rtl-axi4.cc部分代碼。首先是通過TrafficDesc transactions定義了一組要在仿真環(huán)境中執(zhí)行的事務,分別是寫,讀,以及期望讀到的值。TrafficDesc在此用于簡化生成TLM GP的操作。激勵生成器 (TLMTrafficGenerator tg) 根據(jù)transactions對事務的描述生成TLM GP。再通過TLM到AXI的橋接器 (tlm2axi_bridge bridge) 被轉換為AXI信號,最后由被測設備 (Vaxifull_dev dut) 處理。

TrafficDesc transactions(merge({
    // 寫數(shù)據(jù)到地址8
    Write(8, DATA(0x1, 0x2, 0x3, 0x4)),
    // 讀回并判斷讀到的是否是預期數(shù)據(jù)
    Read(8, 4),
    Expect(DATA(0x1, 0x2, 0x3, 0x4), 4)
}));
         
SC_MODULE(Top)
{
    sc_clock clk;
    sc_signal

TLM GP定義了一個總線讀寫事務的抽象,包括讀寫命令、響應狀態(tài)、地址和數(shù)據(jù)相關信息。以下截取了定義的一部分,完整代碼可見tlm_gp.h。當然,TLM GP只包含最一般的信息,沒有攜帶與AXI協(xié)議相關的一些具體概念。為了建模此類與硬件總線協(xié)議相關的具體行為,庫中還包含了可選的拓展屬性Generic Attributes,用以更細致地建模,在此就不展開了。

class SC_API tlm_generic_payload {      
···           
private:
    /* --------------------------------------------------------------------- */
    /* Generic Payload attributes:                                           */
    /* --------------------------------------------------------------------- */
    /* - m_command         : Type of transaction. Three values supported:    */
    /*                       - TLM_WRITE_COMMAND                             */
    /*                       - TLM_READ_COMMAND                              */
    /*                       - TLM_IGNORE_COMMAND                            */
    /* - m_address         : Transaction base address (byte-addressing).     */
    /* - m_data            : When m_command = TLM_WRITE_COMMAND contains a   */
    /*                       pointer to the data to be written in the target.*/
    /*                       When m_command = TLM_READ_COMMAND contains a    */
    /*                       pointer where to copy the data read from the    */
    /*                       target.                                         */
    /* - m_length          : Total number of bytes of the transaction.       */
    /* - m_response_status : This attribute indicates whether an error has   */
    /*                       occurred during the transaction.                */
    sc_dt::uint64        m_address;
    tlm_command          m_command;
    unsigned char*       m_data;
    unsigned int         m_length;
    tlm_response_status  m_response_status;
    ···
}

從TLM GP到AXI信號的轉換邏輯在Bridge中完成,具體實現(xiàn)在文件tlm2axi_bridge.h中。概括其內(nèi)容,就是根據(jù)總線協(xié)議手冊,將TLM GP對一個事務的抽象描述翻譯為一個時間序列上硬件信號線上的高低電平。以寫數(shù)據(jù)的實現(xiàn)為例,如下是截取的一個代碼片段,描述的內(nèi)容是將wready位置高,等待wvalid變?yōu)楦?,遇到reset信號則需要等到其被釋放,然后是向一組wdata信號線填充數(shù)據(jù)位等等。

void write_data_phase()
{
    while (true) {
        ···
        wready.write(true);
        wait_abort_on_reset(wvalid);
        if (reset_asserted()) {
            wait_for_reset_release();
            continue;
        }
        ···
    }
    wt- >FillData(wdata, wstrb);
    ···
}

在軟件仿真環(huán)境中,如SystemC和Verilator,軟件定義的信號狀態(tài)會周期性地更新同步到仿真的硬件描述語言中的信號線上。由于硬件被仿真器轉譯為軟件,因此信號間的同步實質(zhì)是軟件變量間的賦值。

在硬件仿真環(huán)境下,軟件定義的信號到硬件信號的映射需要更多橋接工作。例如當采用PCIe接口的FPGA進行仿真時,上述DUT運行在FPGA上,TLM模型在CPU中運行,PCIe作為通信媒介。TLM模型需要通過PCIe,間接控制FPGA上的AXI設備。這中間涉及到對PCIe設備的控制,以及PCIe到AXI的映射等橋接工作,libsystemctlm-soc也封裝了此硬件橋,如tlm2axi_hw_bridge。在這些橋接工具庫的幫助下,開發(fā)者可以方便地在純軟件和軟硬件混合的仿真平臺之間切換,而不用對程序做大幅修改。

以上例子只是簡單地展示了SystemC/TLM部分與硬件的連接方法,并使用兩個簡單的事務對硬件進行了測試。在此基礎上,我們可以使用軟件高級語言如C++模擬任意硬件行為,構建高抽象水平的模型,并通過SystemC提供的工具庫賦予模型與硬件邏輯交互的能力。軟件模型又可以通過Socket接入到QEMU,由QEMU中的應用軟件生成測試激勵,以完成從應用、驅動、到設備的整個軟硬件系統(tǒng)的集成測試。

06、總結

本文介紹了軟硬件協(xié)同仿真的原因,概念和方法。通過結合軟硬件仿真,TLM級仿真和RTL級仿真的優(yōu)勢,降低仿真成本,提高仿真速度。使得開發(fā)者可以在流片前驗證從硬件到軟件的整個系統(tǒng),確保軟硬件設計的正確性和性能滿足預期要求,縮短迭代周期。

軟硬件協(xié)同仿真的技術鏈條長,涉及多個技術組件和工具,混合了不同抽象級別的軟硬件系統(tǒng)。本文受篇幅所限,只概述了其主要組成部分,后續(xù)在“軟硬件協(xié)同仿真”系列里將結合實例,為大家分享鏈路每個環(huán)節(jié)背后的實現(xiàn)原理。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片設計
    +關注

    關注

    15

    文章

    1108

    瀏覽量

    56182
  • RTL
    RTL
    +關注

    關注

    1

    文章

    392

    瀏覽量

    62026
  • TLM
    TLM
    +關注

    關注

    1

    文章

    44

    瀏覽量

    25098
  • 虛擬機
    +關注

    關注

    1

    文章

    966

    瀏覽量

    29949
  • FPGA芯片
    +關注

    關注

    3

    文章

    249

    瀏覽量

    40688
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    兆芯加入基礎軟硬件產(chǎn)品漏洞生態(tài)聯(lián)盟

    近日,CCS 2025成都網(wǎng)絡安全技術交流系列活動——國家漏洞庫(CNNVD)基礎軟硬件產(chǎn)品漏洞治理生態(tài)大會在成都成功舉辦。來自國家關鍵基礎設施單位、基礎軟硬件企業(yè)、高??蒲袡C構的數(shù)百名代表齊聚一堂,共商網(wǎng)絡安全發(fā)展大計。
    的頭像 發(fā)表于 09-22 13:50 ?361次閱讀

    一種經(jīng)典的軟硬件結合+5V一鍵開關機電路 #MOS管 #電路原理 #半導體 #電子

    軟硬件
    微碧半導體VBsemi
    發(fā)布于 :2025年09月05日 16:38:40

    硬核加速,軟硬協(xié)同!混合仿真賦能RISC-V芯片敏捷開發(fā)

    RISC-V開放指令集架構(ISA)正為芯片產(chǎn)業(yè)帶來革命性機遇,其開源性與模塊化特性助力企業(yè)實現(xiàn)定制化、差異化創(chuàng)新,顯著加速產(chǎn)品迭代。隨著RISC-V向高性能多核架構演進,軟硬件協(xié)同驗證復雜度急劇
    的頭像 發(fā)表于 08-29 10:49 ?667次閱讀
    硬核加速,<b class='flag-5'>軟硬</b><b class='flag-5'>協(xié)同</b>!混合<b class='flag-5'>仿真</b>賦能RISC-V芯片敏捷開發(fā)

    電動工具EMC測試整改:軟硬件協(xié)同方案

    深圳南柯電子|電動工具EMC測試整改:軟硬件協(xié)同方案
    的頭像 發(fā)表于 08-12 17:02 ?611次閱讀
    電動工具EMC測試整改:<b class='flag-5'>軟硬件</b><b class='flag-5'>協(xié)同</b>方案

    在AMD Versal自適應SoC上使用QEMU+協(xié)同仿真示例

    在任意設計流程中,仿真都是不可或缺的關鍵組成部分。它允許用戶在無任何物理硬件的情況下對硬件系統(tǒng)進行確認。這篇簡短的博客將介紹如何使用 QEMU +
    的頭像 發(fā)表于 08-06 17:21 ?1312次閱讀
    在AMD Versal自適應SoC上使用QEMU+<b class='flag-5'>協(xié)同</b><b class='flag-5'>仿真</b>示例

    三相變壓器主要組成部分有哪些

    三相變壓器的主要組成部分包括以下幾個關鍵部分
    的頭像 發(fā)表于 05-20 13:35 ?723次閱讀
    三相變壓器<b class='flag-5'>主要</b><b class='flag-5'>組成部分</b>有哪些

    國產(chǎn)8通道24位ADC軟硬件兼容ADS131E08電能計量方案

    國產(chǎn)8通道24位ADC軟硬件兼容ADS131E08電能計量方案
    的頭像 發(fā)表于 04-29 10:09 ?623次閱讀
    國產(chǎn)8通道24位ADC<b class='flag-5'>軟硬件</b>兼容ADS131E08電能計量方案

    24位同步采樣ADC軟硬件替換ADS1274動態(tài)應變器應用方案

    24位同步采樣ADC軟硬件替換ADS1274動態(tài)應變器應用方案
    的頭像 發(fā)表于 04-28 09:52 ?625次閱讀
    24位同步采樣ADC<b class='flag-5'>軟硬件</b>替換ADS1274動態(tài)應變器應用方案

    16位6通道AFE軟硬件兼容ADS1120多參數(shù)監(jiān)護儀應用方案

    16位6通道AFE軟硬件兼容ADS1120多參數(shù)監(jiān)護儀應用方案
    的頭像 發(fā)表于 04-25 09:42 ?479次閱讀
    16位6通道AFE<b class='flag-5'>軟硬件</b>兼容ADS1120多參數(shù)監(jiān)護儀應用方案

    什么是物聯(lián)網(wǎng)智慧路燈?智慧路燈有哪些組成部分?

    什么是物聯(lián)網(wǎng)智慧路燈?智慧路燈有哪些組成部分?
    的頭像 發(fā)表于 03-20 13:07 ?928次閱讀
    什么是物聯(lián)網(wǎng)智慧路燈?智慧路燈有哪些<b class='flag-5'>組成部分</b>?

    CFD仿真與測試協(xié)同創(chuàng)新,構建“仿真 + 實測”閉環(huán)

    積鼎科技專注于多相流領域,憑借自主研發(fā)的多相流仿真軟件以及高精度測試設備,成功構建了“仿真 + 實測” 的閉環(huán)解決方案,助力企業(yè)在從設計優(yōu)化到生產(chǎn)驗證的整個過程中實現(xiàn)突破,為行業(yè)提供國產(chǎn)自主的軟硬件一體化服務,推動行業(yè)邁向新高度
    的頭像 發(fā)表于 02-20 11:04 ?797次閱讀
    CFD<b class='flag-5'>仿真</b>與測試<b class='flag-5'>協(xié)同</b>創(chuàng)新,構建“<b class='flag-5'>仿真</b> + 實測”閉環(huán)

    汽輪機的主要組成部分

    。汽輪機的設計和制造需要考慮蒸汽參數(shù)、功率等級、效率和可靠性等多個因素。 2. 主要組成部分 2.1 轉子 轉子是汽輪機的核心部件,它由一系列葉片和葉輪組成,負責將蒸汽的能量轉換為機械能。轉子通常由高強度合金鋼制成,以承受高溫、
    的頭像 發(fā)表于 02-06 16:31 ?1747次閱讀

    兆芯CPU近期軟硬件適配動態(tài)

    系統(tǒng)、應急廣播系統(tǒng)、網(wǎng)絡信息安全、低代碼流程管理、數(shù)字孿生、實驗室管理、協(xié)同辦公、礦山管控、電力調(diào)度、生產(chǎn)風險管理等軟硬件產(chǎn)品的適配認證,為關鍵基礎行業(yè)的創(chuàng)新發(fā)展和數(shù)字化轉型提供了更多有利條件。
    的頭像 發(fā)表于 01-15 15:33 ?818次閱讀

    恩智浦電機控制軟硬件解決方案

    。因此,設計一套結合軟硬件的高效電機控制解決方案,不僅能降低能耗,還能實現(xiàn)精準控制,滿足多樣化應用需求。本文將介紹電機控制技術的發(fā)展趨勢,以及NXP(恩智浦)與艾睿電子在電機控制技術上的優(yōu)勢與解決方案。
    的頭像 發(fā)表于 01-15 10:12 ?2241次閱讀
    恩智浦電機控制<b class='flag-5'>軟硬件</b>解決方案

    星融元與焱融科技AI分布式存儲軟硬件完成兼容性互認證

    星融元與焱融科技AI分布式存儲軟硬件完成兼容性互認證
    的頭像 發(fā)表于 11-20 16:36 ?735次閱讀
    星融元與焱融科技AI分布式存儲<b class='flag-5'>軟硬件</b>完成兼容性互認證