新聞中心

EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 如何在硅芯片制作完成前進(jìn)行軟件開發(fā)

如何在硅芯片制作完成前進(jìn)行軟件開發(fā)

作者: 時(shí)間:2018-08-31 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/201808/388186.htm

  運(yùn)行虛擬機(jī)和硬件加速器的組合,或一些供應(yīng)商所謂的“混合仿真(hybrid-emulation)”,可在精確硬件模型的一個(gè)時(shí)鐘周期中快捷、簡(jiǎn)便地運(yùn)行軟件。一般這種配置的性能為100 MHz,這并不是實(shí)時(shí)的,但是其速度足以運(yùn)行和調(diào)試完整的軟件堆棧。

  可對(duì)外圍設(shè)備進(jìn)行一些簡(jiǎn)單的測(cè)試,但要對(duì)驅(qū)動(dòng)程序進(jìn)行徹底的驗(yàn)證,外圍設(shè)備只進(jìn)行“環(huán)回(loop-back)”,還遠(yuǎn)遠(yuǎn)不夠。這意味著將其與外部世界相連接,無(wú)論是通過(guò)硬件加速器上的I/O電纜,還是虛擬模型或硬件加速器相連的主機(jī)的接口。Mentor的硬件加速器系統(tǒng)中,將其稱為co-model主機(jī)。co-model主機(jī)和硬件加速器之間快速有效的連接對(duì)于維持高水平的性能是至關(guān)重要的。

  

  圖3:重新為新驅(qū)動(dòng)程序定義讀/寫宏指令

  需要注意的是,在這個(gè)配置中完整的設(shè)計(jì)不是在RTL中。這意味著系統(tǒng)將正常工作,但不會(huì)表現(xiàn)出與最終產(chǎn)品相同的性能特征。從這個(gè)配置中你能看出某些方面的性能,如某些組件之間轉(zhuǎn)換的流量。但是詳細(xì)的性能分析則需要對(duì)系統(tǒng)進(jìn)行更準(zhǔn)確的表達(dá)。

  當(dāng)RTL代表整個(gè)設(shè)計(jì)時(shí),你將得到整個(gè)系統(tǒng)一個(gè)時(shí)鐘周期的準(zhǔn)確模型。這可以用來(lái)進(jìn)行詳細(xì)的時(shí)間分析并得出吞吐量、延遲以及響應(yīng)時(shí)間的具體數(shù)據(jù)。要使系統(tǒng)有效運(yùn)行,你需要將其放在一個(gè)硬件加速器或FPGA原型中。一個(gè)包括實(shí)際軟件的完整系統(tǒng),實(shí)際上是不可能基于軟件仿真進(jìn)行建模的。甚至在硬件加速器平臺(tái)上也只能運(yùn)行于一兆赫茲。這遠(yuǎn)遠(yuǎn)超過(guò)了基于軟件的仿真速度,但與實(shí)際時(shí)間相比,還是要慢得多。

  在硬件加速器上運(yùn)行設(shè)計(jì)時(shí),需要在嵌入式處理器中調(diào)試軟件。一般這種調(diào)試會(huì)使用系統(tǒng)可用的硬件接口(例如JTAG接口)連接硬件調(diào)試探針來(lái)完成。但是有一個(gè)問題:盡管JTAG很適合調(diào)試功能問題,但很難用它來(lái)調(diào)試性能和時(shí)序問題。因?yàn)?ldquo;混合”虛擬機(jī)和仿真的性能更高一籌,你會(huì)想在這上面調(diào)試所有的功能問題。因此,僅存的問題就是時(shí)序和性能相關(guān)的問題了。

  JTAG和類似的調(diào)試技術(shù)使處理器進(jìn)入調(diào)試模式,然后使用各種技術(shù)來(lái)從處理器和外圍寄存器中檢索數(shù)據(jù)。即使在最優(yōu)情況下,這些操作也至少需要耗費(fèi)成千上萬(wàn)個(gè)時(shí)鐘-通常是數(shù)以百萬(wàn)計(jì)的時(shí)鐘。而且這些調(diào)試時(shí)鐘通常只是處理器時(shí)鐘的一小部分。由于在調(diào)試時(shí)間點(diǎn)前后調(diào)試工具引入了數(shù)以百萬(wàn)計(jì)的操作時(shí)鐘的延遲,因此,調(diào)試性能和時(shí)序問題變得極為困難。開發(fā)人員一般通過(guò)處理器跟蹤來(lái)回溯調(diào)試,以避免延遲。但即使收集處理器跟蹤數(shù)據(jù)也會(huì)影響到你正在觀察的系統(tǒng)的運(yùn)行。

  Mentor Graphics有一款產(chǎn)品叫“Codelink”,通過(guò)它能收集在仿真中運(yùn)行設(shè)計(jì)時(shí)的回溯數(shù)據(jù),利用這些數(shù)據(jù)就能驅(qū)動(dòng)傳統(tǒng)的軟件調(diào)試。本質(zhì)上說(shuō),你可以獲得傳統(tǒng)軟件調(diào)試中的所有功能-代碼單步執(zhí)行、設(shè)立斷點(diǎn),查看內(nèi)存和變量。這樣做保留了仿真系統(tǒng)的時(shí)鐘周期的精確性,沒有任何副作用。你還具有完全的并行多核可見性和運(yùn)行與回退的能力。但許多性能問題很難在源代碼層面調(diào)試,通常還需要一幅對(duì)比硬件動(dòng)作的、在設(shè)計(jì)中運(yùn)行的處理器的動(dòng)作時(shí)間軸視圖。Codelink收集這些跟蹤數(shù)據(jù),并導(dǎo)入Mentor的系統(tǒng)分析工具,便能對(duì)照顯示性能數(shù)據(jù)和硬件數(shù)據(jù)。要在這一開發(fā)階段對(duì)整個(gè)設(shè)計(jì)進(jìn)行診斷,那么這可能是可視化性能問題和時(shí)序問題的最佳解決辦法。

  FPGA原型通常會(huì)比硬件加速器運(yùn)行得更快,因而更長(zhǎng)的軟件運(yùn)行時(shí)間是可以實(shí)現(xiàn)的,還可能會(huì)發(fā)現(xiàn)更多設(shè)計(jì)上的問題。軟件調(diào)試通常采用JTAG或者類似的技術(shù)來(lái)實(shí)現(xiàn),但都存在上述的各種問題。在硬件調(diào)試中,F(xiàn)PGA歷來(lái)都存在可視性有限的缺點(diǎn)。FPGA供應(yīng)商提供的嵌入式邏輯分析儀只能提供有限的跟蹤幅度和較淺的跟蹤深度以及頻繁的重新測(cè)量,最終導(dǎo)致漫長(zhǎng)、且經(jīng)常是突然的(“回到原點(diǎn)”)重新編譯(綜合的和PR)。這使得在FPGA中調(diào)試變得痛苦萬(wàn)分,枯燥不已。幸運(yùn)的是, 新的技術(shù)面市了,不僅能提供成千上萬(wàn)種信號(hào)的可見視圖,并具備深入跟蹤芯片及系統(tǒng)級(jí)動(dòng)作的能力,還能提供前所未有的易用性和強(qiáng)大的運(yùn)行時(shí)可配置性,通過(guò)消除大多數(shù)重新測(cè)量和回頭迭代的需求,能極大地提高調(diào)試效率。經(jīng)過(guò)改進(jìn)的調(diào)試將對(duì)使用FPGA原型的體驗(yàn)和效率產(chǎn)生積極的影響。

  

  圖4:硬件加速器正變得不僅僅只是加速仿真。

  從簡(jiǎn)單的存根代碼開始,通過(guò)一系列依次更詳細(xì)和完整的硬件模型來(lái)推進(jìn),可以在得到實(shí)際硬件芯片之前對(duì)軟件進(jìn)行驗(yàn)證。你可以長(zhǎng)時(shí)間保持最高性能能和最易用的調(diào)試環(huán)境,必要時(shí)使用詳細(xì)的模型驗(yàn)證系統(tǒng)的各個(gè)方面。你將需要一個(gè)通用的環(huán)境來(lái)生成、運(yùn)行和調(diào)試,以便和其他環(huán)境進(jìn)行無(wú)縫轉(zhuǎn)換。而且這也將擴(kuò)展到最終的芯片中,因?yàn)槟銜?huì)需要對(duì)實(shí)際產(chǎn)品做一個(gè)最終的測(cè)試。這意味著一旦你拿到了實(shí)體原型,需要做的就僅僅是確認(rèn)所有功能都正常運(yùn)行了。針對(duì)硬件的抽象模型和后期具有精確時(shí)鐘周期的RTL硬件模型,最難的軟硬件交互問題將在設(shè)計(jì)階段就能得以解決。一旦實(shí)體樣機(jī)就緒,就能大大減少軟件開發(fā)的時(shí)間。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉