吴忠躺衫网络科技有限公司

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

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

3天內不再提示

使用軟件查找硬件錯誤

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Russell Klein ? 2022-06-29 15:25 ? 次閱讀

有一個基本的自然法則適用于任何計算芯片,無論是處理器微控制器還是片上系統:軟件總是會發現硬件錯誤。在我的整個職業生涯中,我參與過的項目中沒有一個被證明是正確的。

如果你很不幸,在你制作芯片后軟件發現了一個錯誤,那么接下來會發生什么取決于問題的嚴重程度。

如果它不是致命的,并且如果你很幸運并且像一些知名處理器制造商那樣擁有市場力量,那么每個人都會圍繞這個 bug 編寫代碼,然后所有未來的版本都必須復制這個 bug 以實現向后兼容性。這不適用于我們大多數人。更傾向于:

您可能必須刪除不起作用的功能。

功率可能太高,或性能太慢,損害您的競爭力和獲得好價格的能力。

在最壞的情況下,您可能不得不花費大量時間并旋轉另一套面具。額外的延誤和費用。

最好的解決方案是在您投入芯片之前運行該軟件并捕獲這些錯誤。您將同時驗證軟件和硬件。但是怎么做呢?

模擬軟件非常慢。我們說的是幾年。除了瑣碎的代碼之外,根本不是一個選項。

相比之下,仿真被證明是解決這個問題的關鍵工具。您可以在模擬器上實例化硬件,然后讓它在合理的時間范圍內運行實際代碼。也許不是真正的系統速度,但足夠快以使其成為可行的解決方案。

但是,假設您要找到問題,您必須能夠追蹤這些問題的原因,而調試部分在歷史上一直是問題所在。事實上,許多工程師一直不愿意使用仿真,因為在過去,訪問內部處理器狀態的唯一途徑是通過 JTAG。仿真器以幾 MHz 的時鐘速度運行;仿真器上的 JTAG 只運行其中的一小部分。

那么,例如,如果你想單步執行指令?這意味著通過 JTAG 傳輸大約 400 萬個低級位。在仿真器上以 1 MHz 完成,這將需要 4 秒非常昂貴的實時仿真器時間。

而且,更糟糕的是,它是侵入性的:在這 4 秒內,時鐘正在走動。處理器狀態將保持不變,但處理器之外的世界將繼續。如果您只是在調試處理器代碼,這可以工作(即使速度很慢)。但是,如果您嘗試調試與非處理器硬件的交互,這將變得非常困難,因為在您完成該單個步驟時,處理器之外的所有內容都已更改狀態。

由于仿真器上的 JTAG 既緩慢又具有侵入性,調試——尤其是與性能和同步相關的問題——變得非常令人沮喪。因此,考慮到這一點,仿真在過去并不是首選解決方案——阻力仍然存在。

今天的模擬器調試速度很快

但是時代和模擬器已經改變。Mentor 有一種單獨的方法來捕獲不依賴于 JTAG 的處理器狀態,因此它可以快速發生 - 在 40-50 MHz 范圍內。這可能比 FPGA 原型上的 JTAG 更快。數據被饋送到我們的 CoModel 主機,狀態歷史可以在其中存儲和重新創建,一個周期一個周期。

鑒于已存儲的跟蹤,您現在可以針對該跟蹤重放任何有問題的軟件,它將遵循系統狀態,以便您可以看到哪里出了問題。可以單步執行;您可以探測寄存器和內存;你可以看公交車。一切都沒有入侵:您的調試工作不會改變系統狀態。這一切都可以離線完成——您無需使用實時仿真器,這使其更具成本效益。

因此,關于軟件調試在模擬器上是否實用的歷史擔憂不再適用。您可以在流片前徹底使用您的計算平臺。軟件開發人員可以在芯片可用甚至 FPGA 原型可用之前很久就開始軟件開發。可用于調試的工具旨在為軟件工程師所熟悉——即使您最終發現了硬件錯誤。

行使部分系統

我們要解決的下一個挑戰是影響單個 IP 塊的開發人員,這些 IP 塊最終將成為整個系統的一部分。今天的問題是,在完全系統集成之前,你真的不能用真正的軟件運行你的塊,因為系統需要你的部分和所有其他部分才能工作。因此,即使您提前完成了塊設計,也是“快點等待”。

在 Mentor,我們正在開發一個測試平臺增強功能,它將提供計算平臺的關鍵部分。鑒于 ARM 的流行,我們將從 ARM 架構和與 ARM 相關的總線開始。處理器將覆蓋 AndroidLinux。這將讓您在仿真器上實現您的模塊,并在完整系統設計可用之前將其“插入”抽象環境,讓您在驗??證方面領先一步。

總之,您必須在生成掩碼之前運行軟件,以證明您的計算硬件是正確的。仿真是做到這一點的唯一現實方法,而目前 Mentor 的 Veloce 仿真器上提供的工具使其成為非常實用、高效的練習。您可以用最少的實時仿真時間快速調試您的軟件和硬件。而且,在不久的將來,您將能夠在完全系統集成之前在 IP 塊上運行和調試該軟件。

您可以更早地編寫軟件,并且可以更快地驗證您的硬件。所有這些都使得您在真正的硅片中發現這些硬件錯誤的可能性大大降低。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231186
  • Android
    +關注

    關注

    12

    文章

    3945

    瀏覽量

    127934
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210395
收藏 人收藏

    評論

    相關推薦

    AD采樣硬件軟件濾波問題如何解決

    AD采樣硬件軟件濾波問題 ADS1115我用ADS1115采樣 原理上完全可以精確到1mV 可是實際上有10mV的波動 請問大家對采樣的硬件軟件都是怎樣濾波的啊 采集很簡單的直
    發表于 01-20 09:38

    GPIO錯誤排查與解決

    。輸入模式下,GPIO可以讀取外部信號;輸出模式下,GPIO可以控制外部設備。正確配置GPIO對于系統的正常運行至關重要。 2. 常見的GPIO錯誤 引腳配置錯誤 :GPIO引腳未正確配置為輸入或輸出。 電平錯誤 :輸出電平與預
    的頭像 發表于 01-09 09:46 ?327次閱讀

    RAID 5 硬件軟件 RAID 的區別

    RAID 5硬件RAID與軟件RAID之間存在顯著的差異,這些差異主要體現在實現方式、性能、數據安全性、靈活性以及成本等方面。 一、實現方式 硬件RAID : 依賴于專用的硬件RAID
    的頭像 發表于 12-27 18:05 ?436次閱讀

    單片機Debug與仿真區別

    是指在軟件硬件開發過程中,通過特定的工具和技術來查找、診斷和修復錯誤的過程。在單片機開發中,Debug通常涉及到以下幾個方面: 硬件調試
    的頭像 發表于 12-19 09:47 ?287次閱讀

    Linux文件查找

    Linux文件查找 1.find查找概述 為什么要有文件查找,因為很多時候我們可能會忘了某個文件所在的位置,此時就需要通過find來查找。 find命令可以根據不同的條件來進行
    的頭像 發表于 12-03 17:09 ?352次閱讀

    常見的GND連接錯誤及解決方案

    GND(接地)連接在電子設計和硬件開發中至關重要,錯誤的GND連接可能導致電路不穩定、信號干擾甚至設備損壞。以下是一些常見的GND連接錯誤及其解決方案: 一、GND網絡未連接 問題描述 : 在
    的頭像 發表于 11-29 16:02 ?2055次閱讀

    如何使用Ozone分析Cortex-M異常

    Ozone可以幫助用戶快速分析和查找導致CPU故障的軟件bug。本文解釋如何使用Ozone的調試功能,深入了解Cortex-M架構上的這些錯誤
    的頭像 發表于 11-29 11:14 ?922次閱讀
    如何使用Ozone分析Cortex-M異常

    如何查找線路漏電的方法和步驟

    線路漏電是電氣設備和線路中常見的故障之一,它不僅會導致設備損壞,還可能引發火災等安全事故。因此,查找和處理線路漏電問題至關重要。 確定漏電類型 首先,我們需要確定漏電的類型。漏電分為兩種:一種是接地
    的頭像 發表于 08-26 09:07 ?2526次閱讀

    服務器錯誤是怎么回事?常見錯誤原因及解決方法匯總

    服務器錯誤是怎么回事?最常見的原因分有六個,分別是:硬件問題、軟件問題、網絡問題、資源耗盡、數據庫、文件權限問題。可以根據以下具體錯誤原因進行辨別,并選擇適合的解決方法。關于常見服務器
    的頭像 發表于 08-12 10:11 ?1627次閱讀

    揭秘:單片機硬件軟件延時之大不同!

    在嵌入式項目中,軟件開發基本上都會使用到延時,那么,該用軟件延時還是硬件延時?它們又有什么區別呢?今天就來講講關于硬件延時和軟件延時的內容,
    的頭像 發表于 07-25 08:11 ?955次閱讀
    揭秘:單片機<b class='flag-5'>硬件</b>與<b class='flag-5'>軟件</b>延時之大不同!

    請問是什么決定了SPI閃存的特性,硬件還是軟件

    我想燒錄更大的軟件,我可以選擇 512 512 地圖,就像 1024 1024 一樣嗎?(或者地圖也是由硬件強加的?
    發表于 07-19 06:46

    說說硬件調試中發現的那些低級錯誤

    硬件調試中會經常遇到各種意想不到的問題,有些調試花了幾個月,各種能想到的辦法都嘗試了,最后發現卻是一個非常低級的錯誤,有多低級?請看今天的內文介紹。
    的頭像 發表于 07-03 12:00 ?426次閱讀
    說說<b class='flag-5'>硬件</b>調試中發現的那些低級<b class='flag-5'>錯誤</b>

    fpga是硬件還是軟件

    FPGA(現場可編程門陣列)本質上是一種硬件設備,但它在功能實現上結合了硬件軟件的特性。
    的頭像 發表于 03-27 14:14 ?993次閱讀

    fpga是硬件還是軟件

    FPGA(現場可編程門陣列)屬于硬件設備,而不是軟件。它是一種可編程的硬件設備,由大量的邏輯單元、存儲單元和互連資源組成,能夠實現復雜的數字電路和系統設計。
    的頭像 發表于 03-14 17:08 ?2003次閱讀
    阿图什市| 宜川县| 百家乐官网补牌规制| 百家乐官网押注方法| 澳门百家乐怎么玩| 网络赌博| 玩百家乐怎么能赢呢| 怎么玩百家乐官网网上赌博| 555棋牌游戏| 阴宅24山坟前放水口| 龙博娱乐| 裕昌太阳城业主论坛| 太阳城百家乐娱乐开户| 至尊百家乐官网娱乐网| 百家乐官网赢钱lv| 永利高现金网可信吗| 在线百家乐纸牌| 大玩家百家乐游戏| 百家乐官网纯技巧打| 百家乐官网二代皇冠博彩| 威尼斯人娱乐平台网上百家乐 | 网球比赛比分直播| 网络百家乐免费试玩| 金矿百家乐官网的玩法技巧和规则| 百家乐官网庄闲的分布| 在线百家乐| 棋牌赌博| 中国足球竞猜| 大发体育| 波音百家乐官网现金网投注平台排名导航 | 12bet备用| 大发888娱乐场下载lm0| 蓝宝石百家乐娱乐城| 多台百家乐的玩法技巧和规则| 伯爵百家乐娱乐网| 韩国百家乐的玩法技巧和规则| 百家乐娱乐下载| 百家乐注册送免费金| 粤港澳百家乐官网娱乐| 网上百家乐官网做假| 博天堂百家乐官网的玩法技巧和规则|