<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > SoC原型驗證技術(shù)的研究

SoC原型驗證技術(shù)的研究

——
作者: 時(shí)間:2007-02-06 來(lái)源:電子技術(shù)應用 收藏

技術(shù)的研究
北京清華大學(xué)微電子所(100084) 馬鳳翔 孫義和
 
  摘 要:快速系統技術(shù)已成為(片上系統)的主要手段之一,但大多數的描述仍使用Verilog/VHDL語(yǔ)言,描述效率低。以(SCSD)為基礎,提出了的原型流程,用語(yǔ)言描述SoC原型,并直接實(shí)現在原型驗證硬件上;用SCSD的軟件工具、RC1000和RC200硬件平臺搭建了一個(gè)SoC原型驗證系統的樣機,并在樣機上完成了Lena圖像處理SoC的原型驗證;在反復試驗的基礎上,改進(jìn)了SoC原型驗證流程,并設計出了新的原型電路板。
  關(guān)鍵詞:原型 SoC 驗證

  由于SoC設計復雜度不斷增加,使得縮短面市時(shí)間的壓力越來(lái)越重。雖然充分利用IP核大大減少了SoC的設計時(shí)間,但SoC驗證仍然非常復雜耗時(shí)。SoC和的最大不同之處在于它的系統特性,除了大量硬件模塊之外,SoC還需要大量的固件和軟件,如操作系統、驅動(dòng)程序、通訊協(xié)議以及應用程序等。SoC硬件模塊數目眾多、內嵌軟件復雜,傳統的基于邏輯模擬的驗證方式已不再可行。尤其是軟硬協(xié)同驗證時(shí),模擬時(shí)間之長(cháng)令人難以忍受。為了縮短SoC驗證時(shí)間,快速系統原型(Rapid System Prototype)驗證,即硬件原型和軟件原型結合驗證,已經(jīng)成為SoC設計流程前期階段的常用手段[1]。
  快速系統原型驗證的本質(zhì)在于快速地實(shí)現SoC設計中的硬件模塊,讓軟件模塊在真正的硬件上高速運行,實(shí)現SoC設計的軟硬件協(xié)同驗證。該技術(shù)實(shí)現的基礎是強大的FPGA和有力的設計描述及編譯工具。原型驗證系統由三個(gè)部分組成:系統硬件、軟件編譯器和運行程序。系統硬件設計的核心部分是定制的FPGA并行系統,用來(lái)實(shí)現SoC設計中的關(guān)鍵模塊如Mpeg編碼器,系統硬件的常規模塊可由商用芯片實(shí)現。軟件編譯器則把寄存器級或門(mén)級設計及其驗證環(huán)境扁平化,映射到系統硬件。運行程序控制原型系統的運行、設計調試,一般采用C-API編程,并且有開(kāi)放的軟件結構,便于后期緊密集成。
  快速系統原型驗證采用商用芯片實(shí)現設計中的常用模塊,只有核心模塊才用FPGA實(shí)現,因此提高了原型系統的速度,減少了原型描述及其實(shí)現的工作量,降低了原型驗證系統的成本,更適合于開(kāi)發(fā)出針對某個(gè)領(lǐng)域的驗證平臺。但目前的SoC原型的描述主要使用Verilog或者VHDL,描述的級別低、復雜度高、容易出錯,因此不能很快地實(shí)現SoC的原型。本文的目的就是找出一種方法,用高級語(yǔ)言(如C語(yǔ)言)來(lái)描述SoC的原型,并實(shí)現在設計的原型驗證硬件上。
1 SoC原型的描述及其實(shí)現流程
  Celoxica公司提出的(Software-Compiled System Design,SCSD)把軟件設計技術(shù)引入硬件設計,直接用Handel-C語(yǔ)言描述硬件設計,大大改善了硬件設計效率。SCSD的軟件工具包括集成開(kāi)發(fā)環(huán)境(DK)、平臺開(kāi)發(fā)工具(PDK)以及系統級硬件描述語(yǔ)言Handel-C等。DK可以編輯、模擬、調試并編譯Handel-C源代碼,生成EDIF、Verilog或VHDL代碼,并能夠與ModelSim一起協(xié)同模擬Handel-C和Verilog設計[2]。PDK由數據流管理器(DSM)、平臺抽象層(PAL)和平臺支持庫(PSL)三個(gè)層面構成[3]。通過(guò)DSM,可以很方便地在軟件和硬件之間實(shí)現轉移設計的功能,便于快速地劃分設計,找到最優(yōu)的劃分方案;PAL提供與API方式訪(fǎng)問(wèn)原型電路板一致的硬件資源,實(shí)現Handel-C設計的可移植性;PSL為DK和Handel-C設計提供與電路板、可編程器件或開(kāi)發(fā)工具有關(guān)的支持,更接近驅動(dòng)程序的概念。
  SCSD的整套軟件工具能夠把Handel-C描述的設計直接實(shí)現到FPGA上,因此非常適合SoC原型的描述及其實(shí)現。本文以SCSD為基礎,提出了SoC/IP的原型驗證流程,如圖1所示。

圖1 SoC/IP原型實(shí)現的基本流程及其EDA工具

  在SoC原型驗證中,不同的硬件模塊用不同的方式實(shí)現。處理器用主機CPU或者原型硬件中的嵌入式處理器實(shí)現;存儲器用原型硬件中與FPGA直接相連的存儲器排實(shí)現;Verilog描述的核心模塊在FPGA中實(shí)現;各種外設模塊用原型硬件中的外設資源實(shí)現;模塊之間的互連實(shí)現在FPGA和原型硬件的互連總線(xiàn)上。IP原型驗證需要確定它的外圍邏輯環(huán)境、驗證向量生成機制和驗證結果分析檢查策略。本文把SoC和IP驗證中所有需要描述的模塊及其互連與原型硬件的映射關(guān)系以及原型驗證的硬件支持統稱(chēng)為設計的驗證環(huán)境。被驗證的設計用Verilog/VHDL語(yǔ)言描述,驗證環(huán)境用Handel-C語(yǔ)言描述。
  Handel-C描述完成后,用模擬器ModelSim和Handel-C開(kāi)發(fā)工具DK協(xié)同模擬、調試設計和驗證環(huán)境,這樣可用較少的驗證向量檢查驗證環(huán)境的正確性。模擬成功后,DK把驗證環(huán)境的Handel-C描述編譯為Verilog描述。然后調用綜合工具(Synplify)對設計及其驗證環(huán)境的Verilog描述進(jìn)行編譯優(yōu)化。接著(zhù)調用Xilinx的布局布線(xiàn)工具(ISE),把優(yōu)化的Verilog描述轉換為原型系統硬件的配置數據。原型系統配置完畢后,就可以啟動(dòng)系統執行原型驗證了。如果模塊設計的RTL優(yōu)化已經(jīng)完成,就無(wú)需調用Synplify進(jìn)行優(yōu)化,直接輸入ISE即可。
  在SoC軟硬件協(xié)同驗證中,首先通過(guò)DK,協(xié)同模擬C/C++描述的軟件、Handel-C描述的驗證環(huán)境和Verilog描述的模塊;然后把軟件編譯成SoC處理器的目標代碼,讓軟件在原型系統中高速運行,執行驗證。主機PC上運行的診斷軟件與SoC的軟件模塊的描述實(shí)現流程基本一致,只是最終實(shí)現運行在主機的處理器上。
2 SoC原型驗證系統樣機
  本文利用可配置計算電路板RC1000和SoC設計展示評估平臺RC200搭建了一個(gè)原型驗證系統的樣機,以充分體驗SCSD的優(yōu)缺點(diǎn),為以后SoC原型驗證系統的設計做一些基礎性研究工作。
  原型驗證系統的樣機由PC主機、RC1000和RC200構成,如圖2所示。在功能定位上,PC主機是主控子系統,RC1000和RC200共同組成原型子系統。RC1000插在PC主機的PCI插槽中。RC200和PC主機之間用并口總線(xiàn)連接。RC1000和RC200之間用自制的34位總線(xiàn)連接。

圖2 RC1000的功能框圖

  PC主機與原型子系統之間通信的方式有三種:單數位、字節和DMA。單數位方式使用GPI和GPO兩根信號線(xiàn)進(jìn)行一位的數據通信,可用來(lái)傳遞一個(gè)狀態(tài)。字節方式使用RC1000控制/狀態(tài)端口進(jìn)行單字節數據傳輸,可用來(lái)傳遞控制命令或狀態(tài)信息;兩者采用握手協(xié)議,只有在操作完成之后才能返回。前兩種方式一般用來(lái)對存儲器所有權的交換進(jìn)行同步,DMA方式一般用于大量數據的傳輸。首先主機以DMA方式在SRAM中寫(xiě)入數據;然后FPGA獲得SRAM所有權后,讀取數據并進(jìn)行處理,將結果寫(xiě)入SRAM;最后主機又以DMA方式取回結果。
  RC1000的FPGA外接四排SRAM,其中任何一排都可以賦給FPGA或者主機。SRAM是主機和原型子系統交換數據的緩沖區。
  把RC1000和RC200連接起來(lái),共同構成原型子系統彌補了兩者的缺點(diǎn):首先,為RC1000提供多種接口標準支持,如音視頻輸入輸出、Internet和Bluetooth、觸摸屏、串/并口等;其次,增強RC200的調試診斷能力,運行過(guò)程中的數據可以通過(guò)RC1000傳輸到主機,因此可以和模擬環(huán)境中一樣觀(guān)察分析信號;另外,還擴展了系統的邏輯容量:RC1000的FPGA有2.5M系統門(mén),RC200的FPGA有1M系統門(mén),所以整個(gè)子系統的邏輯容量為3.5M系統門(mén),可以實(shí)現更大設計的原型驗證。
  并口總線(xiàn)是PC主機和RC200之間唯一的通信渠道。PC主機只能通過(guò)并口總線(xiàn)下載RC200配置數據,或者讀寫(xiě)RC200上SmartMedia卡中內容。而RC1000配置可通過(guò)PCI總線(xiàn)實(shí)現,有多種靈活的配置方式[4]。
  RC1000的可編程時(shí)鐘可以提供400kHz~100MHz的時(shí)鐘頻率[5]。它的輸出時(shí)鐘從"OUT"端口輸出,經(jīng)由連接總線(xiàn)驅動(dòng)RC200,實(shí)現RC1000和RC200的時(shí)鐘同步。
3 Lena圖像處理SoC的原型驗證
  為了檢驗系統樣機進(jìn)行原型驗證的有效性,試驗了一個(gè)實(shí)例:Lena圖像處理SoC原型驗證,如圖3所示。主機處理器代表SoC處理器的原型;RC1000實(shí)現圖像扭曲算法,是專(zhuān)用圖像處理模塊;RC200是顯示驅動(dòng)模塊及顯示裝置。

圖3 SoC原型示意圖

  Lena圖像數據以靜態(tài)庫文件的方式嵌入程序源代碼。主機程序啟動(dòng)后,首先對原型子系統進(jìn)行配置,然后用DMA方式把圖像數據送入RC1000的存儲器中。數據傳輸結束后,主機用控制端口通知RC1000進(jìn)行處理。RC1000對Lena圖像進(jìn)行扭曲處理,處理完一幀后,用狀態(tài)端口通知主機取回結果,并在主機顯示器上顯示。主機拿到結果后,通知RC1000繼續處理。如此反復。也就是說(shuō),主機以DMA方式傳輸一幀靜態(tài)圖像,然后再以DMA方式逐幀取回處理結果,在主機顯示器上得到扭曲變幻的動(dòng)態(tài)圖像。
  在RC1000對每幀圖像的處理過(guò)程中,是以像素為單位把圖像數據傳遞給RC200的。像素數據的傳送使用三條信號線(xiàn),分別是Data、Write和RC200Rdy。Data是16位的數據總線(xiàn),用來(lái)發(fā)送像素數據。Write是RC1000發(fā)送數據的標志信號線(xiàn)。RC200Rdy表明RC200是否準備好接收像素數據Data。像素數據的發(fā)送協(xié)議與握手協(xié)議類(lèi)似。在RC1000處理像素的過(guò)程中,Write為0,像素處理完成后,如果RC200Rdy為1,則開(kāi)始發(fā)送數據Data,同時(shí)把Write置為1通知RC200接收數據;如果RC200Rdy為0,RC1000就進(jìn)入等待狀態(tài),直至RC200Rdy跳變?yōu)?。在RC200接收、處理數據的過(guò)程中,RC200Rdy被置為0。
  RC200接收到的數據是16位的,但它只支持24位或者30位的顯示數據。因此,對16位的像素數據應加以處理,把它擴展到24位。動(dòng)態(tài)圖像的顯示借助FrameBufferdb實(shí)現,這是Celoxica的視頻顯示核。它用兩個(gè)存儲器排作為視頻緩沖器,交替接收數據和驅動(dòng)顯示。
4 實(shí)驗結果及系統原型的性能分析
  Lena圖像處理及其試驗表明:SCSD能夠有效、快速地實(shí)現SoC的原型驗證和IP的仿真驗證。但用于SoC原型驗證,尚有不足之處。首先,它只支持設計的可配置邏輯實(shí)現,不支持診斷能力的實(shí)現;其次,它只能在單個(gè)FPGA上實(shí)現設計,不能把Handel-C設計劃分在多個(gè)FPGA上實(shí)現。而這兩點(diǎn)對于原型驗證來(lái)說(shuō)卻非常重要。
  診斷就是在原型運行過(guò)程中如何實(shí)現重要信號的收集和分析。診斷涉及到監測點(diǎn)的指定及其實(shí)現,以及監測點(diǎn)數據的處理分析。在Verilog中指定監測點(diǎn)相對簡(jiǎn)單,因為有現成的工具—Synplicity的Identify。在Handel-C中還沒(méi)有現成辦法指定監測點(diǎn),其指定和實(shí)現機制需要進(jìn)一步的研究??尚械霓k法就是,先用DK把Handel-C描述的驗證環(huán)境或設計編譯成Verilog描述,然后再在Identify中指定監測點(diǎn)。實(shí)現就是在硬件上獲得并表現這些監測點(diǎn)的信號,如把這些信號直接或者經(jīng)過(guò)某種處理后輸出到邏輯分析儀或PC主機。但這需要圓形硬件的支持。
  大規模設計需要多個(gè)FPGA實(shí)現。因此對于原型驗證,需要把設計劃分到多個(gè)FPGA上實(shí)現。比較快捷的方法是:先用DK把Handel-C設計編譯為Verilog描述,然后用Synplicity的設計劃分工具Certify劃分,最后用Xilinx公司的布局布線(xiàn)工具生成配置數據。也可以進(jìn)一步研究如何劃分Handel-C設計。改進(jìn)的SoC/IP原型驗證流程及所用的軟件工具如圖4所示。

圖4 改進(jìn)的SoC原型驗證流程

圖5 原型電路板上總線(xiàn)結構及主要資源

  為了支持原型驗證的診斷能力、實(shí)現大規模SoC設計的原型驗證,設計了一款全新的原型電路板,其功能示意圖如圖5所示。電路板使用三個(gè)FPGA,采用環(huán)形互連結構。原型FPGA之間的互連便于設計在兩者之間劃分。而接口FPGA與兩者之間的連接則用于對設計內部接點(diǎn)實(shí)現監督,對配置數據進(jìn)行下載。接口FPGA外接六排存儲器(32位SRAM),因此每周期最多可以并行監督192個(gè)內部信號。運行過(guò)程中,監測點(diǎn)的信號值直接存入SRAM。主機以DMA方式讀取SRAM中的信號值,從而實(shí)現軟件讀取原型硬件運行過(guò)程中的數據,開(kāi)發(fā)工程師可以像在模擬環(huán)境中一樣觀(guān)察分析自己感興趣的信號。這就部分解決了長(cháng)久以來(lái)困擾硬件仿真或原型的問(wèn)題(診斷能力很差)。如果監測點(diǎn)的信號數據量很大,無(wú)法通過(guò)PCI總線(xiàn)實(shí)時(shí)傳送到PC主機或分析困難時(shí),可在接口FPGA中進(jìn)行處理,數據處理之后再傳送過(guò)去。但有時(shí)用邏輯分析儀分析信號更適合也更方便,因此電路板上還設計了一個(gè)邏輯分析儀與接口FPGA連接的插槽。該原型電路板支持兩種擴展方式:電路板擴展和插件擴展。電路板擴展就是在系統的PCI總線(xiàn)中加入更多原型電路板,以驗證更大規模的電路。此時(shí),電路板之間可采用速度可高至射頻的高速連接總線(xiàn),PCI總線(xiàn)只是用來(lái)實(shí)現控制和診斷。擴展插槽中可以插入不同的小尺寸外設以及數模/模數電路板,以擴展原型系統的原型能力。Rocket I/O接口支持射頻模塊的接入。原型驗證系統的設計細節可參見(jiàn)參考文獻[6]。
  SCSD可以加快SoC原型驗證的描述和實(shí)現,但無(wú)法實(shí)現診斷和設計的劃分。本文在數次試驗的基礎上,提出了改進(jìn)的原型實(shí)現流程,并重新設計原型電路板。然而,這只是為SoC原型驗證系統的開(kāi)發(fā)找到了一個(gè)很好的方向,并作了一些基礎性的研究工作。要實(shí)現它,還有很多工作要做。
參考文獻
1 Natalino Bus



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>