新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 復雜系統級芯片的軟件/硬件協同驗證

        復雜系統級芯片的軟件/硬件協同驗證

        作者: 時間:2012-05-16 來源:網絡 收藏

        本文針對/協同驗證環境的多種方法進行了分析和比較, 并就各種方法在藍牙系統級設計中的應用為例對其進行了詳細地闡述。

        本文引用地址:http://www.104case.com/article/193866.htm

        隨著半導體技術的飛速發展,單個硅片上的集成度越來越高,如何更快、更有效的完成基于SoC設 計逐漸成為人們關注的焦點。目前,許多設計小組仍然沿用十萬門設計中用過的工具和方法來驗證龐大的和其嵌入,這些方法往往要占用50%以上的設計 周期, 而且已經達到極限。驗證最后設計的正確性被視為設計更大規模的系統級的重要瓶頸。本文針對級芯片的/協同驗證環境的多種方法進行了分 析和比較, 并就各種方法在藍牙系統級芯片設計中的應用為例對其進行了詳細地闡述。

        隨著近來日益明顯的靈活性需求,系統級芯片設計采用軟件來實現設計中的一部分硬件功能, 而不再采用單一用途的硬連接?,F今,在一個復雜的系統級芯片應用中,例如視頻解碼器,設計者將集成硬件模塊,應用軟件,RTOS,片上總線,可編程嵌入處 理器I/O外圍設備,內存模塊,即所謂嵌入式內核系統級芯片框架。

        協同驗證環境

        11.gif

        嵌入技術為基礎的SoC系統的設計周期,通常首先產生一個系統設計的抽象模型并對其進行模擬, 功能抽象被映射到一個詳細的系統結構,同時定義了系統框架的性能模型。系統結構映射把分解成多個層次獨立的硬件核子模塊和軟件核子模塊核。同時系 統需求被轉換為軟件和硬件規范。硬件設計團隊利用Verilog和VHDL完成硬件部分, 然后用硬件模擬器做驗證。軟件設計團隊利用匯編,C,C++語言完成SoC所需的RTOS內核軟件或其他功能軟件如通信協議軟件的設計,利用處理器模型和 ICE來測試軟件。傳統上,軟件團隊等到硬件原型完成才可進行最終的系統集成。很多問題會產生在系統集成的過程中。這些問題產生源于對規范的誤解,不適宜 的接口定義,和稍后的設計變化。通過軟件遞歸設計可以消除這些錯誤,但這樣可能會影響系統的性能。如果利用修改硬件的方法會十分耗費金錢和時間,特別是當 其中包含循環設計集成電路。把系統的集成階段移到設計周期的前期可以較早的消除系統集成的問題。這可以通過創建一個軟件/硬件協同驗證環境來解決這個問 題。

        在一個軟件/硬件協同驗證環境中有些方面十分重要:準確,環境中模型應該時鐘周期準確或者管腳準確而且必須準確地映射 SoC功能??焖?環境的速度應該足夠快得可以使由實時操作系統和應用程序組成的軟件運行。適用,軟件和硬件設計團隊都應該能夠運用這個環境來進行功能和 性能驗證??傻?,為了實現Time_to_Market(TTM)的目標, 并能夠完成硬件/軟件協同設計和協同驗證,環境應在設計周期的早期得到。經濟,較少的金錢耗費也是一個和準確性,性能同樣重要的考慮。

        一般的協同驗證環境會有一個源代碼調試器作為基本構成,為了讓用戶可以下載固件/軟件并連接系統。調試器可以幫助閱讀源代 碼,設立斷點,暫停和控制處理器的運行。依靠所選擇的環境的不同,處理器模塊就可以被一個模擬模型所代替,諸如指令集模擬器(ISS),總線功能模型,或 者RTL代碼。系統剩余的外圍設備可以用C代碼模型,正式芯片,RTL 碼,或在FPGA中的實現來代替。

        表1列舉了幾種協同驗證環境, 它們支持在設計周期中較早地集成軟硬件,可以克服由傳統驗證方法所帶來的缺陷,同時,基于以下協同驗證環境所開發的軟件可以直接移植到最終的硅片上。當選取一種驗證環境時,驗證目標,調試覆蓋,性能要求,可以利用的資源是必須考慮的要點。

        本文以后的部分將針對其中的軟體原型和原型系統進行詳細地闡述,并以各種方法在一款藍牙系統芯片的設計中應用為例。附圖 3 表示了舉例的藍牙系統芯片設計框圖, 該設計基于ARM7TDMI處理器核和AMBA片上總線。處理器運行在RTOS上完成所有任務的管理和調度,同時運行完整的藍牙協議棧。

        軟體原型

        22.gif

        一個軟件原型是被驗證的設計的軟件表現。 它可以檢查處理器的寄存器狀態,內存存取,和外圍設備。如果運行軟件原型主機的運行速度足夠快,它可以使實際應用軟件和固件在其上運行。利用軟件原型可以 使設計者在得到實際硅片之前使設計者平衡所修改的系統參數和檢查所得結果,測試中斷處理函數,開發和測試驅動程序,測試編譯器產生的代碼的正確性,使系統 和外圍設備的行為可視化和檢驗應用程序算法的正確性。

        在軟件原型中,處理器用一個ISS模擬,并和源代碼調試器接口。外圍設備用C模型表現。圖1為所舉例的藍牙系統級芯片一個 典型軟件原型的簡單框圖。它由一個CPU調試器(例如,ARM調試器)一個CPU ISS(例如ARM模擬器)和外圍設備C 模型。利用軟件原型開發的軟件和固件可以通過ICE下載到快速原型或目標硬件系統并為仿真作配置。

        建立一個基于微處理器的系統的軟件原型,需要以下軟件構件: 1. 處理器源代碼調試器,這個軟件模塊由調試核和用戶界面所集成,可以使使用者去控制目標系統在調試周期中所處的狀態。調試、編譯和(目標代碼)連接工具集位 于和調試核集成的調試宿主機器。調試器可以通過一個ICE連接到目標硬件系統。調試器可以被用作讀/寫寄存器和內存,控制和重啟系統和模擬器中的處理器。 2. 指令集模擬器(ISS),該軟件模塊在沒有考慮時延地前提下模擬處理器指令。特定的處理器生產商會提供相應的ISS。例如,ARM 提供的ARMulator模擬ARM處理器系列,提供和外圍設備C模型的接口,并幫助構成一個軟件原型。3. 外圍設備C模型,其中寄存器的所有細節,字節定義,外圍的中斷行為都應該包含在該C 模型中。這可以使固件和應用軟件僅做少量的改動或不改動就可在實際硅片中使用。

        在實際應用中,軟件原型有以下的局限性:a. 容量有限:軟件原型僅在早期接口和代碼段調試應用。B. 速度有限:在大多數情況,模擬速度是一個十分敏感的問題,因為模擬器總不能和實際的處理器一種快。C. 模型的準確性:外圍設備C模型僅是功能正確, 而不是時鐘周期正確和管腳正確。D. 同步性:對于像外圍設備數據同步性的需求一般難于解決。

        33.gif

        構成一個軟件原型必須遵行以下步驟:1. 分析為設計所選取的處理器的特征。2. 檢查所選處理器ISS是否能夠和所選外圍C模型接口。如果ISS無相應的接口,軟件原型就無法構成。3. 分析接口,內存地址,寄存器,字節定義,外圍設備中斷行為,并完成相應C模型。4. 完成需要利用軟件原型去驗證的應用程序。并將處理器ISS,外圍C模型,應用程序編譯成可在宿主機運行的可執行程序。5. 運行編譯程序和調試器并開始調試。如果有一些錯誤,其起因可能是因為外圍設備模型和應用程序的錯誤。如需要進行性能測試,則可在相應的仿真或快速原型環境 下進行,最終當實際硅片完成,軟件既可被用于最后軟件和硬件集成。在舉例的藍牙系統級芯片(如圖2所示)的軟件原型中,分別為UART,并行接口,中斷控 制器模塊構造C模型,ARM7TDMI處理器被ARMulator所代替。 其中ARMulator由一個ARM 處理器內核模型,內存接口, 執行環境中操作系統接口,和一個協處理器接口組成,同時和ARM調試器接口。

        快速原型系統

        快速原型系統(RPS)是設計的硬件設計的表現。成功快速原型的關鍵在于盡可能快的實現一個原型。這里將著重論述針對應用的 可重置系統原型系統(ARPS)。這種方法將目標設計映射到普遍可得的商用器件上而且具有一定的擴展能力和可重用特性。通常,這些原型的構成圍繞嵌入式處 理器的BSP,通過增加附加構件(內存,FPGA,IP核)。根據所選的IP,BSP可以在SoC完成前被用來開發和調試硬件和軟件。例如,很多IP供應 商,ARM,DSPGroup,MIPS,Motorola都提供基于他們處理器IP的BSP。這些BSP可劃分為兩種,一種基于微處理器,例如將在舉例 中的提到的ARM基于AMBA的BSP。這款組成包括一個ARM7TDMI處理器芯片,仲裁器,地址解碼器,內存,兩個時鐘,中斷控制器,兩個UART, 并口,兩個PC卡插槽,和(閃存/EPROM,SRAM,DARM)內存控制器。BSP有輔助軟件和一個ICE幫助開發和調試,它在20 MHz 時鐘下,并連接LA。另一種基于DSP。較典型例如DSP Group基于OkaDSP的BSP。它的構成包括一個DSP,地址解碼器,擴充內存,和膠合邏輯。它運行在40MHZ 時鐘速度,可以連接LA,通過一個PC附加模塊提供體調試特征。

        ARPS除了具有應用范圍大,性能高,支持模擬/混合信號器件(AMS)的集成等RPS的共性外。同時,ARPS具有如下 的特殊優點:首先,有助于快速理解IP功能,包括處理器和外圍設備。其次可以證明設計產品的特征。有能力連接ICE和LA設備做調試。能夠便利地探測和監 控系統內的管腳和信號。最后可以通過插入附加IP模塊來進行設計擴展。

        在實際應用中,ARPS有以下的局限性:首先將整個設計劃分到多個FPGA將是一個工程挑戰并占據大量的時間,這往往是因 為FPGA的最多管腳數(I/O接口)一般有限(通常400~450)。其次,除非未來的產品基于相同的平臺,否則ARPS的重用僅限于選定的應用領域。 最后,也是較重要的一點,如果需要額外的功能模塊,相應花費的開發時間將頗為可觀。其中將包括FPGA實現,PCB封裝等。

        基于以上的特點,通常運用ARPS方法時總假定系統設計已經完成,軟件和硬件劃分已經完成,所需的SoC的IP集合和 BSP以被確定和選取。構成一個ARPS驗證必須遵行以下步驟:1. 選擇并分析可用IP的BSP,并將其映射到目標SoC設計。2. 如缺乏所需的IP模塊,選取適當FPGA器件并完成相應RTL代碼綜合,模擬,和布線。3. 對相應BSP進行配置并和額外設計的模塊連接。4. 利用ICE和LA調試器件驅動和應用程序代碼,并分別修復軟/硬件錯誤。

        舉例的藍牙SoC的ARPS由ARM的基于AMBA的BSP構成。該BSP由架構(圖3)中除了USB, 編解碼器, 藍牙連接控制模塊以外的所有模塊組成。遺漏的這三個模塊可以集成到一個ASB模塊中,并插入BSP所提供的接口。藍牙連接控制器和編解碼器的數字部分可以 在一個FPGA中實現。AMS模塊(數模, 模數轉換, USB模擬部分器件)可以通過標準芯片連接到外部的FPGA。有關設計可參照www.arm.com 的設計準則來完成。隨BSP提供的軟件工具包含一個源代碼調試器、編譯器=匯編、(目標代碼)連接器,這些可以被用作軟件的開發和調試。應用軟件和固件可 以利用這個該ARPS來測試。

        SoC中的調試技巧

        44.gif

        因為沒有外接管腳可以連接ICE 和LA,SoC中的處理器內核對于調試和分析是不可見的。這就需要新的調試技巧和工具去解決嵌入式內核的調試和分析問題:BDM核,基于掃描鏈的調試方法(JTEG)和Nexus 5001 Forum:

        1. BDM 已經被融入Motorola 微處理器。這是通過增加一個小的調試邏輯和附加的微處理器代碼來實現。這種模型使用一個外在處理器來控制微處理器的目標系統并通過串口檢測內部寄存器和內 存,而目標系統和主系統的聯系通過一個BDM導線。BDM技術不需求任何目標處理器資源,例如片上內存和I/O管腳。

        2. JTAG (IEEE 1149.1) 標準源于邊界掃描,一開始為芯片制造的測試所設計。該標準同時可以執行器件內測試,例如ATPG和BIST。

        很多內核供應商和半導體公司利用JTAG 標準來實現仿真模擬,通過添加調試邏輯去測試處理器內部寄存器,指令,數據線內容,還可以通過設立斷點控制軟件的執行。處理器內核,例如ARM, MPIS和POWERPC 都有基于JTAG的仿真模擬特性。

        3. Nexus 5001 Forum 建立于1998, 定義了一個嵌入式處理器調試和接口標準。該標準為處理器和構架獨立而且支持多內核和多處理器的設計。 Forum 由處理器供應商,工具供應商,和器件制造商組成, 同時也稱為IEEE-ISTO 5001 標準, 有關可參照www.ieee-isto.org/Nexus5001。

        任何調試技巧都依賴于一定的工具。調試工具分兩種,硬件工具和軟件工具。硬件調試工具用于調試硬件目標系統。 它包括ROM模擬器(RE)、ICE和LA. 圖2顯示 ICE /RE,LA和硬件模塊之間的連接,其中ICE連接CPU,RE連接系統ROM。

        一個RE插入目標硬件原型上ROM/FLASH插口,映射目標ROM到內部ROM,這可以快捷地完成代碼修改,通過消除EPROM擦/寫周期加速調試過程。ICE是一個硬件設備,物理代替并模擬被測目標系統的處理器。而LA則被用作目標系統的高速數據采集。

        軟件調試工具則包括ISS 和cycle accurate simulator(CAS)。模擬器是一種軟件工具以用來仿真處理器的功能。它和外圍設備的C模型接口,在得到實際硅片前建立一個代表目標設計的系統。 這可以使開發者開始開發固件,驅動程序和應用程序。對于前者,順序執行程序指令并不考慮系統時鐘。而對于CAS, 處理器的行為以時鐘周期為基準,處理器內部細節,例如流水線,處理器接口,總線協議,都可以做詳細地模擬仿真。通常情況下,ISS的速度較CAS快。

        本文小結

        在復雜SoC器件中協同驗證硬件和軟件需要新的方法和工具。隨著軟件數量在即所謂基于嵌入式內核系統級芯片框架的系統級芯片 上的不斷增加,設計周期中較早地集成軟硬件是至關重要的。本文重點闡述了軟件/硬件協同驗證的基本特征,四種較為完善的協同驗證環境及其各自特點。并以藍 牙系統級芯片設計中的應用為例針對其中的軟體原型和原型系統進行詳細地闡述。提供一個完整的基于軟核和硬連線宏功能塊的硬/軟件驗證和調試的解決方案。

        c++相關文章:c++教程


        加速度計相關文章:加速度計原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 富民县| 吴桥县| 南康市| 白银市| 海淀区| 遂平县| 永德县| 清水河县| 方城县| 益阳市| 安平县| 永丰县| 肇庆市| 丹江口市| 凤凰县| 龙山县| 苍溪县| 西华县| 伊春市| 额敏县| 泸定县| 广昌县| 青铜峡市| 通江县| 黑山县| 浪卡子县| 全南县| 青神县| 庆安县| 乡城县| 乐亭县| 龙海市| 宜兰市| 新巴尔虎右旗| 钟祥市| 布拖县| 水富县| 贵德县| 安达市| 武陟县| 安庆市|