<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è) > 嵌入式系統 > 設計應用 > FPGA入門(mén)者必讀寶典:詳述開(kāi)發(fā)流程每一環(huán)節的物理含義和實(shí)現目標

FPGA入門(mén)者必讀寶典:詳述開(kāi)發(fā)流程每一環(huán)節的物理含義和實(shí)現目標

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

  5.5.1測試平臺

本文引用地址:http://dyxdggzs.com/article/279347.htm

  所謂testbench,即測試平臺,詳細的說(shuō)就是給待驗證的設計添加激勵,同時(shí)觀(guān)察輸出響應是否符合設計要求。測試平臺,測試平臺在做功能仿真、靜態(tài)仿真和時(shí)序仿真的時(shí)候都需要用到。剛開(kāi)始的對于一些初學(xué)者,遇到的都是一些簡(jiǎn)單的東西,測試平臺相應的也很簡(jiǎn)單,用一個(gè)文件就可以很清晰的呈現測試結構。對于一些復雜的項目,測試就沒(méi)有那么簡(jiǎn)單了,由此還專(zhuān)門(mén)產(chǎn)生一個(gè)行業(yè)——測試行業(yè)。這個(gè)時(shí)候我們要用到一個(gè)概念就是結構化測試。

  一個(gè)完整的測試平臺如下圖10所示,它是分結構組成的,其中對設計測試結果的判斷不僅可以通過(guò)觀(guān)察對比波形得到,而且可以靈活使用腳本命令將有用的輸出信息打印到終端或者產(chǎn)生文本進(jìn)行觀(guān)察,也可以寫(xiě)一段代碼讓它們自動(dòng)比較輸出結果。

  

 

  圖10

  測試平臺的設計是多種多樣,可以使用靈活的Verilog的驗證腳本,但是它也是基于硬件語(yǔ)言但是又服務(wù)于軟件測試的語(yǔ)言,有時(shí)并行有時(shí)順序,只有掌握這些關(guān)鍵點(diǎn),才能很好服務(wù)測試。需要說(shuō)明的一點(diǎn)是,不管大家是已經(jīng)在用Verilog在寫(xiě)測試平臺還是剛學(xué)習寫(xiě)測試平臺,那么建議大家還是能用到System Verilog中相對Verilog新的語(yǔ)法還是嘗試的用,System Verilog是一種趨勢,它本身就是向下兼容的第三代的Verilog.

  5.5.2 級仿真

  這里級仿真屬于第一道檢測,有些場(chǎng)合稱(chēng)作功能仿真,為了突出和后面的靜態(tài)仿真的區別,以免在后面介紹靜態(tài)仿真的時(shí)候大家弄的很頭大,我們還是這樣稱(chēng)呼。它是對工程在寄存器轉送級進(jìn)行的描述時(shí)進(jìn)行測試,查看其在級描述的時(shí)候實(shí)現的功能的正確性。

  關(guān)于RTL級仿真,如果設計中設計到原理圖輸入的話(huà),在一些仿真工具中是不支持的,比如Modelsim,這個(gè)時(shí)候要進(jìn)行功能上的驗證,可以將原理圖轉換成HDL描述,或者直接把整個(gè)工程轉換成LUT門(mén)級網(wǎng)表后進(jìn)行后面要講到的靜態(tài)仿真完成。

  所有邏輯功能的驗證都希望在RTL級做,盡可能的將問(wèn)題發(fā)現在RTL級仿真過(guò)程中,減少后面發(fā)現問(wèn)題帶來(lái)的反復。

  5.5.3靜態(tài)仿真

  靜態(tài)仿真,有些地方給的外號叫門(mén)級仿真,確切的說(shuō)應該是綜合后的LUT門(mén)級網(wǎng)表。是在綜合過(guò)程后做的仿真。有些開(kāi)發(fā)平臺下將靜態(tài)仿真具體又分為編譯仿真和映射仿真,比如ISE就是這樣做的,但是個(gè)人覺(jué)得應該很少場(chǎng)合做這個(gè)編譯仿真。靜態(tài)仿真的目的就是驗證當工程到了用LUT門(mén)級網(wǎng)表描述的時(shí)候,從功能上檢查驗證工程的正確性。

  不管是Altera還是Xilinx的開(kāi)發(fā)平臺,都直接支持靜態(tài)仿真,但是由于各自廠(chǎng)家的仿真器專(zhuān)業(yè)性不強,我們還是用第三方仿真工具比較多。這時(shí)候在第三方工具下的輸入必須是經(jīng)過(guò)綜合工具綜合出來(lái)的涵蓋工程所有信息的LUT門(mén)級網(wǎng)表文件了。一般專(zhuān)業(yè)一點(diǎn)的第三方綜合工具是不具備綜合功能的,至少我們在使用Modelsim的時(shí)候,并沒(méi)有要求我們添加工程用到的具體的哪一款型號的信息。這也是靜態(tài)仿真的外號門(mén)級仿真指的是LUT門(mén)級網(wǎng)表仿真的依據。

  5.5.4時(shí)序仿真

  時(shí)序仿真是在布局布線(xiàn)之后做的,在前面介紹時(shí)序約束的時(shí)候講到,布線(xiàn)延時(shí)問(wèn)題影響到了電路的性能的時(shí)候可以做時(shí)序約束。那么這個(gè)延時(shí)問(wèn)題的獲得就可以通過(guò)時(shí)序仿真獲得,當然還有一種獲得延時(shí)出現超載情況,這個(gè)屬于下面小節介紹的靜態(tài)時(shí)序分析了。

  一般情況下,電路進(jìn)行完布線(xiàn)過(guò)程后,會(huì )生成一個(gè)延時(shí)信息文件,我們簡(jiǎn)稱(chēng)SDF(standrad dealy format)文件,Quartus平臺下是以。sdo文件形式存在的。里面含有三種延時(shí)信息,分別為最小值、典型值、最大值,存在的形式是最小值:典型值:最大值,一般縮寫(xiě)min:typ:max.這里也體現了,在里的延時(shí)信息是不能夠精確獲得的,只能是逼近,因為本身同一器件中,不同的區域的邏輯門(mén)也很有可能和其他的區域內同種的邏輯門(mén)的延時(shí)不一樣。我們這里舉一個(gè)例子來(lái)說(shuō)明一下這三種值的含義。

  

 

  圖11

  如上圖,這是一個(gè)描述一段延時(shí)線(xiàn)的延時(shí)信息,給的延時(shí)信息從in端點(diǎn)到out端點(diǎn),輸入發(fā)生跳變后,分別以最小值、典型值和最大值將信號跳變傳遞到out端點(diǎn)。我們這里只是一段延時(shí)線(xiàn),在延時(shí)信息文件里還有一類(lèi)延時(shí)信息,就是一些具有邏輯功能的cell延時(shí),這個(gè)時(shí)候信號跳變又分為由高變低和有低變高,因為這兩種跳變在這些器件里的三種延時(shí)值是不一樣的,得分別探討,具體分別以某一種情況類(lèi)推。

  在做后仿真的時(shí)候,只需要在做完靜態(tài)仿真后的基礎上添加布線(xiàn)的延時(shí)信息后,再分析邏輯功能是否滿(mǎn)足要求。后方針的平臺使用情況和前面一樣,一般采用第三方仿真工具,典型的是Modlesim,具體操作過(guò)程見(jiàn)軟件相關(guān)操作章節。

  5.6靜態(tài)時(shí)序分析

  靜態(tài)時(shí)序分析,簡(jiǎn)稱(chēng)STA(Static Timing Analysis),這個(gè)過(guò)程做的話(huà)一把是在是做后仿真前做的。在布局布線(xiàn)后,會(huì )生成時(shí)序分析報告,該報告是分析工具利用從布線(xiàn)的路勁上提取出寄生參數后精確計算出來(lái)的。該報告中會(huì )提示出一些關(guān)鍵路徑,所謂關(guān)鍵路勁就是指延時(shí)信息比較突出的信號節點(diǎn)流,通過(guò)分析可以得到不滿(mǎn)足時(shí)序要求的路徑,這個(gè)過(guò)程就是STA過(guò)程。

  靜態(tài)時(shí)序分析的特點(diǎn)就是不需要輸入向量就能窮盡所有的路徑,且運行速度很快、占用內存較少,不僅可以對芯片設計進(jìn)行全面的時(shí)序功能檢查,而且還可利用時(shí)序分析的結果來(lái)優(yōu)化設計。很多設計都可以在功能驗證的成功的基礎上,加上一個(gè)很好的靜態(tài)時(shí)序分析,就可以替代耗時(shí)非常長(cháng)的后仿真了,這是一種很有保障性的化簡(jiǎn)流程方式。后仿真相對靜態(tài)時(shí)序分析來(lái)說(shuō)還具有邏輯驗證,在加上延時(shí)信息的基礎上分析邏輯。

  5.7在線(xiàn)調試

  在線(xiàn)調試也稱(chēng)作板級調試,它是將工程下載到芯片上后分析代碼運行的情況。有人會(huì )以為,我們不是已經(jīng)做了仿真了,甚至是時(shí)序仿真都通過(guò)了,還會(huì )存在問(wèn)題么?在實(shí)際中,存在這么些情況我們需要用到在線(xiàn)調試:

  

 

  圖12

  仿真不全面而沒(méi)有發(fā)現的FPGA設計錯誤。很多情況下,由于太復雜,無(wú)法做到100%的代碼覆蓋率;

  在板級交互中,存在異步事件,很難做仿真,或者仿真起來(lái)時(shí)間很長(cháng),無(wú)法運行;

  除了本身FPGA外,還可能存在板上互連可靠性問(wèn)題、電源問(wèn)題和IC之間的信號干擾問(wèn)題,都可能導致系統運行出錯;

  其他潛在問(wèn)題。

  在線(xiàn)調試的方式主要有兩種,一種是利用外部測試設備,把內部信號傳送到FPGA針腳上,然后用示波器或者邏輯分析儀觀(guān)察信號;另一種就是利用嵌入式邏輯分析儀,在設計中插入邏輯分析儀,利用JTAG邊緣數據掃描和開(kāi)發(fā)工具完成數據交互。

  嵌入式邏輯分析儀的原理相當與在FPGA中開(kāi)辟一個(gè)環(huán)形存儲器,存儲器的大小決定了能夠查看的數據的深度,是可以人為設定的,但是不得超出資源。在FPGA內部,根據設置的需要查看的信號節點(diǎn)信息和驅動(dòng)的采樣時(shí)鐘,對信息進(jìn)行采樣,并放置到設定的存儲空間里,存儲空間是環(huán)形的,內容隨時(shí)間更新。然后通過(guò)判斷觸發(fā)點(diǎn)來(lái)檢查采集數據,一旦滿(mǎn)足觸發(fā)條件,這個(gè)時(shí)候會(huì )停止掃描,然后將觸發(fā)點(diǎn)前后的一些數據返回給PC端的測試工具進(jìn)行波形顯示,供開(kāi)發(fā)者進(jìn)行調試。

  目前的調試工具都是和本身的FPGA開(kāi)發(fā)平臺掛鉤的,不同FPGA廠(chǎng)商都會(huì )有開(kāi)發(fā)軟件平臺,嵌入式邏輯分析儀也就不同。Altera廠(chǎng)家提供的是SignalTapII,而Xilinx廠(chǎng)家提供的是ChipScope,這些工具的具體使用在后面工具中詳解。

  當然這里除了嵌入式邏輯分析儀外,各廠(chǎng)家還提供了一些其他的在線(xiàn)調試工具,例如SignalProbe等等,但是或多或少的用的人不是很多,有興趣的可以找到該功能使用的說(shuō)明手冊。

  5.8配置及固化

  好了,到了我們最后一個(gè)環(huán)節就可以完成FPGA的流程了。這一部分我們分四個(gè)小節來(lái)講,首先是針對大家很多人不是太清楚的FPGA配置過(guò)程安排的,隨后一節為了更加深理解,舉了altera的FPGA敘述配置全過(guò)程,第三小節是探討FPGA主要的配置模式,最后一節就是正對這些配置模式展開(kāi)的對比選擇探討。

  5.8.1 FPGA配置過(guò)程

  在FPGA正常工作時(shí),配置數據存儲在SRAM中,這個(gè)SRAM單元也被稱(chēng)為配置存儲器(configure RAM)。由于SRAM是易失性存儲器,因此在FPGA上電之后,外部電路需要將配置數據重新載入到芯片內的配置RAM中。在芯片配置完成之后,內部的寄存器以及I/O管腳必須進(jìn)行初始化(initialization),等到初始化完成以后,芯片才會(huì )按照用戶(hù)設計的功能正常工作,即進(jìn)入用戶(hù)模式。

  FPGA上電以后首先進(jìn)入配置模式(configuration),在最后一個(gè)配置數據載入到FPGA以后,進(jìn)入初始化模式(initialization),在初始化完成后進(jìn)入用戶(hù)模式(user-mode)。在配置模式和初始化模式下,FPGA的用戶(hù)I/O處于高阻態(tài)(或內部弱上拉狀態(tài)),當進(jìn)入用戶(hù)模式下,用戶(hù)I/O就按照用戶(hù)設計的功能工作。

  5.8.2舉例——altera FPGA配置全過(guò)程

  一個(gè)器件完整的配置過(guò)程將經(jīng)歷復位、配置和初始化等3個(gè)過(guò)程。FPGA正常上電后,當其nCONFIG管腳被拉低時(shí),器件處于復位狀態(tài),這時(shí)所有的配置RAM內容被清空,并且所有I/O處于高阻態(tài),FPGA的狀態(tài)管腳nSTATUS和CONFIG_DONE管腳也將輸出為低。當FPGA的nCONFIG管腳上出現一個(gè)從低到高的跳變以后,配置就開(kāi)始了,同時(shí)芯片還會(huì )去采樣配置模式(MSEL)管腳的信號狀態(tài),決定接受何種配置模式。隨之,芯片將釋放漏極開(kāi)路(open-drain)輸出的nSTATUS管腳,使其由片外的上拉電阻拉高,這樣,就表示FPGA可以接收配置數據了。在配置之前和配置過(guò)程中,FPGA的用戶(hù)I/O均處于高阻態(tài)。

  在接收配置數據的過(guò)程中,配置數據由DATA管腳送入,而配置時(shí)鐘信號由DCLK管腳送入,配置數據在DCLK的上升沿被鎖存到FPGA中,當配置數據被全部載入到FPGA中以后,FPGA上的CONF_DONE信號就會(huì )被釋放,而漏極開(kāi)路輸出的CONF_DONE信號同樣將由外部的上拉電阻拉高。因此,CONF_DONE管腳的從低到高的跳變意味著(zhù)配置的完成,初始化過(guò)程的開(kāi)始,而并不是芯片開(kāi)始正常工作。

  INIT_DONE是初始化完成的指示信號,它是FPGA中可選的信號,需要通過(guò)Quartus II工具中的設置決定是否使用該管腳。在初始化過(guò)程中,內部邏輯、內部寄存器和I/O寄存器將被初始化,I/O驅動(dòng)器將被使能。當初始化完成以后,器件上漏極開(kāi)始輸出的INIT_DONE管腳被釋放,同時(shí)被外部的上拉電阻拉高。這時(shí),FPGA完全進(jìn)入用戶(hù)模式,所有的內部邏輯以及I/O都按照用戶(hù)的設計運行,這時(shí),那些FPGA配置過(guò)程中的I/O弱上拉將不復存在。不過(guò),還有一些器件在用戶(hù)模式下I/O也有可編程的弱上拉電阻。在完成配置以后,DCLK信號和DATA管腳不應該被浮空(floating),而應該被拉成固定電平,高或低都可以。

  如果需要重新配置FPGA,就需要在外部將nCONFIG重新拉低一段時(shí)間,然后再拉高。當nCONFIG被拉低吼,nSTATUS和CONF_DONE也將隨即被FPGA芯片拉低,配置RAM被清,所有I/O都變成三態(tài)。當nCONFIG和nSTATUS都變?yōu)楦邥r(shí),重新配置就開(kāi)始了。

  5.8.3配置模式

  這一塊分成兩部分,一部分是在線(xiàn)調試配置,另一塊是固化,即將工程配置到相應存儲單元中,上電后,通過(guò)存儲在存儲器中的內容配置FPGA.

  在線(xiàn)配置

  第一部分在線(xiàn)調試配置過(guò)程是通過(guò)JTAG模式完成的,如圖13所示,在JTAG模式中,PC和FPGA通信的時(shí)鐘為JTAG接口的TCLK,數據直接從TDI進(jìn)入FPGA,完成相應功能的配置。

  

 

  圖13

  JTAG接口是一個(gè)業(yè)界標準接口,主要用于芯片測試等功能。FPGA基本上都可以支持JTAG命令來(lái)配置FPGA的方式,而且JTAG配置方式比其他任何方式優(yōu)先級都高。JTAG接口有4個(gè)必需的信號TDI, TDO, TMS和TCK以及1個(gè)可選信號TRST構成,其中:

  TDI,用于測試數據的輸入;

  TDO,用于測試數據的輸出;

  TMS,模式控制管腳,決定JTAG電路內部的TAP狀態(tài)機的跳變;

  TCK,測試時(shí)鐘,其他信號線(xiàn)都必須與之同步;

  TRST,可選,如果JTAG電路不用,可以講其連到GND.

  固化

  第二部分固化程序到存儲器中的過(guò)程可以分為兩種方式,主模式和從模式。主模式下

  FPGA器件引導配置操作過(guò)程,它控制著(zhù)外部存儲器和初始化過(guò)程;從模式下則由外部計算機或控制器控制配置過(guò)程。主、從模式從傳輸數據寬度上,又分別可以分為串行和并行。

  (1)主串模式

  主串模式是最簡(jiǎn)單的固化模式,如圖14所示,這個(gè)模式過(guò)程不需要為外部存儲器提供一系列地址。它利用簡(jiǎn)單的脈沖信號來(lái)表明數據讀取的開(kāi)始,接著(zhù)由FPGA提供給存儲器時(shí)鐘,存儲器在時(shí)鐘驅動(dòng)下,將數據輸入到FPGA Cdata_in端口。

  

 

  圖14

  (2)主并模式

  主并模式其實(shí)和主串模式的一樣機理,只不過(guò)是在主串的基礎上,同周期數內傳送的數據變成8位,或者更高,如圖15.這樣一來(lái),主并行相比主串行的數度要優(yōu)先了?,F代有些地方已采用這種方式來(lái)配置FPGA的了。

  

 

  圖15

fpga相關(guān)文章:fpga是什么




關(guān)鍵詞: FPGA RTL

評論


相關(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>