當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]對(duì)基于SoC系統(tǒng)設(shè)計(jì)的探查

調(diào)試復(fù)雜電子系統(tǒng)從來都不是一項(xiàng)簡(jiǎn)單的工作,但至少是可以實(shí)現(xiàn)的。您要找到問題所在。采用您最相信的“示波器”,通過模擬電路到數(shù)字轉(zhuǎn)換,您可以追溯到問題的源頭。然后,編寫測(cè)試小程序,檢查驅(qū)動(dòng)和外設(shè),增加一些邏輯探針,再回到外設(shè)控制器和CPU總線上,最終解決問題。當(dāng)然,這需要利用別人的一些代碼。

而芯片系統(tǒng)(SoC)集成從根本上改變了這一切。今天,微處理器、總線、外設(shè)控制器以及大部分存儲(chǔ)器和模擬電路都被包封在一個(gè)封裝中。它可以是ASSP、高級(jí)微控制器、FPGA,或者您自己設(shè)計(jì)的ASIC。不論SoC是什么,事實(shí)上是,除非芯片設(shè)計(jì)團(tuán)隊(duì)愿意幫助您,否則,您不可能深入了解芯片內(nèi)部。

在嵌入式CPU中調(diào)試硬件,為您提供斷點(diǎn)和準(zhǔn)實(shí)時(shí)跟蹤等傳統(tǒng)調(diào)試功能,從而幫助您完成調(diào)試工作。但是,對(duì)于他們自己,調(diào)試內(nèi)核也只是給出了您系統(tǒng)的CPU外觀視圖。如果不能針對(duì)系統(tǒng)總體狀態(tài)來更廣泛的定義某一事件,那么,當(dāng)事件發(fā)生后,您可能需要編寫診斷短代碼,使系統(tǒng)暫時(shí)停止工作,將相應(yīng)的數(shù)據(jù)寫回CPU。這一過程最好的情況是僅僅耗費(fèi)了您的時(shí)間,而最差的情況是,耗費(fèi)了時(shí)間卻不一定能解決問題,效率非常低。

硅片知識(shí)產(chǎn)權(quán)(IP)供應(yīng)商提供越來越精細(xì)的SoC儀表調(diào)試手段,從而解決了這一難題。但是,當(dāng)今的產(chǎn)品是個(gè)性化的,而不是標(biāo)準(zhǔn)化的。系統(tǒng)設(shè)計(jì)人員需要在芯片設(shè)計(jì)早期階段獨(dú)立作出選擇,而另一公司的其他團(tuán)隊(duì)則根據(jù)產(chǎn)品能否及時(shí)面市、管芯面積等來確定自己的目標(biāo),并不關(guān)心能否方便的進(jìn)行系統(tǒng)調(diào)試。而芯片設(shè)計(jì)人員、軟件開發(fā)人員和系統(tǒng)設(shè)計(jì)人員等參與者還是有一個(gè)共同點(diǎn)——互相協(xié)作,在系統(tǒng)級(jí)找到問題所在。

從一開始就做好規(guī)劃

實(shí)際上早已決定了您是否能夠成功的找到系統(tǒng)中的問題——兩年前,在您目前正在使用的SoC的開發(fā)階段。Brad Quinton是泰克公司嵌入式驗(yàn)證的首席規(guī)劃師,他認(rèn)為在芯片設(shè)計(jì)早期階段進(jìn)行規(guī)劃非常關(guān)鍵,不僅僅是能夠充分探查芯片,而且還涉及到采用什么樣的調(diào)試硬件。然而,這并不常見。

芯片設(shè)計(jì)團(tuán)隊(duì)的確在測(cè)試結(jié)構(gòu)中開展了前端工作,但卻是出于其他原因。芯片中置入了測(cè)試設(shè)計(jì)和內(nèi)置自測(cè)試硬件來支持IC測(cè)試。但是,這些資源并不是用于調(diào)試,一般只提供很少的診斷信息。芯片設(shè)計(jì)人員會(huì)專門針對(duì)硅片開發(fā)團(tuán)隊(duì)而內(nèi)置工具,但是,這些工具可能只有內(nèi)部文檔,硅片一旦發(fā)布后,就會(huì)禁用這些工具。高速串行端口上會(huì)有邊界掃描,甚至是非常復(fù)雜的儀表功能,必須在系統(tǒng)中對(duì)其進(jìn)行調(diào)整。但是,這些手段是為了在電路板級(jí)建立并驗(yàn)證連接能力,而不是用于系統(tǒng)調(diào)試。

Quinton質(zhì)疑,雖然這些結(jié)構(gòu)非常有用,但是芯片設(shè)計(jì)人員會(huì)有更多的問題。Quinton認(rèn)為,“從系統(tǒng)級(jí)進(jìn)行考慮。關(guān)鍵接口、高級(jí)狀態(tài)機(jī)在哪里?通過掌握哪些信息您能夠知道哪一子系統(tǒng)正在工作?”

這些思考導(dǎo)致某些IP供應(yīng)商開發(fā)了一類新模塊:在SoC中設(shè)計(jì)實(shí)現(xiàn)儀表和控制器,不僅供設(shè)計(jì)芯片的IC團(tuán)隊(duì)使用,而且還有使用它的系統(tǒng)設(shè)計(jì)團(tuán)隊(duì),如圖1所示。

 

 

圖1.片內(nèi)調(diào)試電路本身會(huì)成為實(shí)際的設(shè)計(jì)。

從不同的方向開始工作,兩類供應(yīng)商驗(yàn)證了這一發(fā)展趨勢(shì)。ARM擴(kuò)展了其CPU內(nèi)核調(diào)試內(nèi)核CoreSight,涵蓋了多核SoC的大部分工作,而現(xiàn)在是泰克一部分的Quinton Veridae從儀表模塊開始,集中開發(fā)觸發(fā)器/蹤跡控制器,包括了CPU調(diào)試內(nèi)核。這兩種方法對(duì)于系統(tǒng)調(diào)試人員都非常寶貴。這都為在SoC基礎(chǔ)上擴(kuò)展可探查性提供了重要的理念。

數(shù)據(jù)源

雖然您想立即開始在系統(tǒng)結(jié)構(gòu)圖中加入各種各樣的數(shù)據(jù)采集節(jié)點(diǎn),而Quinton首先提出了一些基本問題。誰會(huì)使用調(diào)試功能:應(yīng)用編程人員、模擬設(shè)計(jì)人員,還是機(jī)械工程師?他們會(huì)在哪一抽象等級(jí)上來定義事件;功能調(diào)用、信噪比、扭矩讀數(shù)?這些用戶會(huì)怎樣做:確定他們的代碼熱點(diǎn)、找到瞬變?cè)肼?,或者知道?qū)動(dòng)桿為什么失效?只有您理解了問題所在,才能夠找到解決問題的數(shù)據(jù)。

Quinton認(rèn)為,現(xiàn)在的技巧是確定在哪里收集數(shù)據(jù)。很明顯,首先是在源頭采集所有數(shù)據(jù):A/D轉(zhuǎn)換器(ADC)輸出、狀態(tài)寄存器、網(wǎng)絡(luò)接口等。當(dāng)然,您希望盡可能獲得接近源頭的一些信息,例如,受控物理器件的狀態(tài)等。

但是,在其他情況下,事先考慮好在哪里采集數(shù)據(jù)可以減少測(cè)量開銷,以及后分析所需要的數(shù)據(jù)量。Quinton建議,“找到關(guān)鍵地方來觀察系統(tǒng)。在一點(diǎn)上所通過的系統(tǒng)狀態(tài)量會(huì)讓人感到驚訝:例如,CPU與系統(tǒng)總線的接口。”

在哪里對(duì)數(shù)據(jù)進(jìn)行采樣也取決于用戶所希望的抽象級(jí)。例如,可能是通過PCI Express (PCIe)總線的系統(tǒng)交換信息等。探查串化器/解串器(SERDES)和PCIe控制器,使您能夠獲得底層協(xié)議層工作的詳細(xì)信息,這對(duì)于總線接口調(diào)試非常重要。但是,如果您希望總線接口能夠正常工作,觀察信息流,那么,您最好監(jiān)視主存儲(chǔ)器中的緩沖,而忽略總線控制器。

問題的相對(duì)性

一旦找到了您需要的數(shù)據(jù),確定了要在系統(tǒng)中的哪些地方來提取這些數(shù)據(jù),那么,您需要收集數(shù)據(jù),知道數(shù)據(jù)與時(shí)間的相關(guān)性,找到觸發(fā)模式,采集您希望保存的數(shù)據(jù),從系統(tǒng)中提取出這些數(shù)據(jù),送入分析工具中。在分立系統(tǒng)中,這一過程相對(duì)簡(jiǎn)單:所有工作都可以回到邏輯分析儀中完成,分析儀提供統(tǒng)一時(shí)間基礎(chǔ)。在基于SoC的系統(tǒng)中,您可能希望把所有數(shù)據(jù)送回SoC的中心模塊中,如圖2所示。好消息是,泰克和ARM的IP簡(jiǎn)化了這一過程。

 

 

圖2.完整的片內(nèi)調(diào)試系統(tǒng)結(jié)合了傳統(tǒng)的CPU內(nèi)核調(diào)試和數(shù)據(jù)采集站以及信息路由,提供將數(shù)據(jù)從芯片中輸出的方法。

但是,使用IP帶來了新問題。中心模塊和電路板另一側(cè)芯片之間的延時(shí)會(huì)有十幾個(gè)時(shí)鐘周期。即使在芯片內(nèi)部,也會(huì)有數(shù)十個(gè)時(shí)鐘域,當(dāng)您跨過時(shí)鐘域邊界時(shí),延時(shí)會(huì)增加很多CPU周期。您怎樣知道兩路數(shù)據(jù)是同時(shí)的呢?

如果您要開發(fā)自己的調(diào)試工具,那么,這會(huì)很難。您可以估算數(shù)據(jù)采集模塊和中心控制器之間的傳播延時(shí),然后,對(duì)數(shù)據(jù)流進(jìn)行后處理,使其對(duì)齊。但是,這一方法難以解決時(shí)鐘域交叉的非確定性延時(shí)問題。您可以分配一路主時(shí)鐘,使用它對(duì)您采集的數(shù)據(jù)進(jìn)行時(shí)間戳處理,但是,這需要很大的電路開銷。泰克等提供的商用解決方案同時(shí)使用了硬核IP和軟件算法,在底層自動(dòng)完成所有這些工作。通過這些算法,可以在一個(gè)與時(shí)間相關(guān)的視圖中看到SoC不同時(shí)鐘域和不同物理位置上的事件,通常會(huì)發(fā)現(xiàn)意外的系統(tǒng)行為。[!--empirenews.page--]

即使是自動(dòng)完成,仍然會(huì)有變化。如果把在系統(tǒng)中不同部分同時(shí)發(fā)生的小事件作為觸發(fā)器,只定義這類事件——例如,ADC輸出等于0,而一個(gè)CPU內(nèi)核進(jìn)入某一中斷服務(wù)例程,那么會(huì)出現(xiàn)什么情況?如果事件不僅僅涉及到不同的地方,而且還有不同的抽象級(jí)——例如,串行端口的接收眼圖閉上后,出現(xiàn)了堆棧上溢,又會(huì)怎樣呢?Quinton把這類跨域分配事件觸發(fā)描述為系統(tǒng)觸發(fā)的“圣杯”。正如這一隱喻所示,很難找到合適的解決方案。但是,采集了足夠的數(shù)據(jù),經(jīng)過認(rèn)真思考,構(gòu)建能夠采集這類復(fù)雜事件的本地觸發(fā)器,通常能夠?qū)崿F(xiàn)這些解決方案。

從芯片到系統(tǒng)

我們?cè)敿?xì)討論了芯片級(jí)調(diào)試功能,它比簡(jiǎn)單的CPU調(diào)試內(nèi)核有很大的進(jìn)步。對(duì)于開發(fā)自己的SoC的系統(tǒng)設(shè)計(jì)人員,這些數(shù)據(jù)非常有用。但是,其他人會(huì)怎樣,誰會(huì)使用他人的芯片設(shè)計(jì)?這里的很多理念仍然能發(fā)揮作用。

其中最首要的是重視提前做好規(guī)劃:確定用戶及其使用環(huán)境,制定測(cè)試策略,回答這些用戶可能提出的問題,規(guī)劃數(shù)據(jù)采集來支持這一策略。最大的不同是,芯片設(shè)計(jì)人員會(huì)提出這些問題,然后,在他們的SoC中開發(fā)結(jié)構(gòu)。系統(tǒng)設(shè)計(jì)人員也會(huì)提出問題,然后,通過SoC供應(yīng)商所提供的工具以及他們的支持來解答問題。

相應(yīng)的,系統(tǒng)設(shè)計(jì)團(tuán)隊(duì)至少會(huì)向他們的SoC供應(yīng)商提出三類很難的問題。第一,芯片供應(yīng)商會(huì)提供調(diào)試工作臺(tái)——例如,Tektronix或者ARM主軟件包,來控制SoC的調(diào)試硬件嗎?主軟件包能夠很好的適應(yīng)您現(xiàn)有的系統(tǒng)調(diào)試環(huán)境嗎?

第二,硬件實(shí)際接觸SoC中的哪一點(diǎn)?您只獲得了一個(gè)CPU內(nèi)核的觸發(fā)/跟蹤功能,或者芯片提供CPU、加速器、總線和外設(shè)控制器的擴(kuò)展采集,跟蹤以及交叉觸發(fā)功能嗎?第三,調(diào)試子系統(tǒng)會(huì)提供哪些方法來觀察系統(tǒng)中其他芯片和器件的狀態(tài)?

這些問題的答案會(huì)定義系統(tǒng)團(tuán)隊(duì)連接哪類外部測(cè)量設(shè)備工作臺(tái),在哪些工作臺(tái)上能夠?qū)崿F(xiàn)他們的系統(tǒng)調(diào)試計(jì)劃。在這么多的系統(tǒng)工程中,關(guān)鍵是盡早開始對(duì)調(diào)試進(jìn)行規(guī)劃——在工程的體系結(jié)構(gòu)設(shè)計(jì)階段。沒有足夠的數(shù)據(jù)呈現(xiàn),就開始調(diào)試基于SoC的系統(tǒng),這種場(chǎng)景很快就會(huì)很難維持下去。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉