亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于反饋約束的SRAM接口時序分析方法

        2020-02-27 12:34:02左麗麗劉國斌吳維林
        計算機測量與控制 2020年1期
        關鍵詞:時序延時靜態(tài)

        左麗麗,劉國斌,吳維林,陳 云

        (上海航天軟件測評中心,上海 201109)

        0 引言

        隨著軍工產品向著高集成度、小型化、高速和高可靠性方向發(fā)展,F(xiàn)PGA和CPLD等可編程邏輯器件在軍工產品中的應用數(shù)量成爆發(fā)式增長[1]。相對于傳統(tǒng)的邏輯器件,F(xiàn)PGA能夠很大程度縮短實驗時間[2],隨著設計規(guī)模的增大和設計復雜度的提高,許多原本應用于專用集成電路(ASIC)的驗證方法如STA(static timing analysis, 靜態(tài)時序分析)方法也逐漸應用到 FPGA的設計驗證中。靜態(tài)時序分析不需要測試向量,即使沒有仿真條件也能快速地分析電路中所有時序路徑是否滿足約束要求[3]。

        本文使用靜態(tài)時序分析工具Prime Time,針對某FPGA設計中SRAM的讀寫接口設計進行時序驗證。采用衍生時鐘約束,輸入、輸出延時約束,多周期路徑約束相結合的方式,將FPGA的輸入輸出信號關聯(lián)起成一個回路,成功的對FPGA與SRAM之間的交互進行環(huán)路分析。根據(jù)分析結果,快速準確發(fā)現(xiàn)了接口設計的缺陷和薄弱環(huán)節(jié),高效實現(xiàn)設計的優(yōu)化。

        1 SDRAM接口設計概況

        某圖像處理FPGA在進行設計時采用3片SRAM接口進行圖像數(shù)據(jù)的預存。硬件接口圖如圖1所示。

        圖1 FPGA設計硬件接口框圖

        2片SRAM與FPGA的信號連接關系如表1所示。

        表1 SRAM與FPGA對外接口信號表

        設計中采用的主處理時鐘頻率為70 M,在對SRAM進行讀寫控制時,需滿足芯片讀寫時序要求,根據(jù)器件手冊SRAM讀數(shù)據(jù)時序及時序參數(shù)如圖2,SRAM寫數(shù)據(jù)時序及時序參數(shù)如圖3。

        圖2 讀SRAM數(shù)據(jù)時序及時序參數(shù)圖

        圖3 寫SRAM數(shù)據(jù)時序及時序參數(shù)圖

        由圖2~3可知,SRAM讀寫操作由多個信號同時控制,包括CS0#、CS1#、WE#、OE#、Address和Din/Dout,且相互之間需滿足一定的時序關系才能保證SRAM的正常工作。為了便于控制,設計中將CS0#、CS1#置為常有效,通過WE#和OE#控制讀寫邏輯的產生。

        2 傳統(tǒng)的接口驗證方法

        FPGA的驗證工作,在很多方面都表現(xiàn)出了較高的復雜性和較強的技術性[4]。按照傳統(tǒng)的驗證流程,依次進行前仿真驗證、靜態(tài)時序分析、后仿真驗證。

        2.1 前仿真驗證

        考慮各時序參數(shù)的要求,在進行接口設計時考慮各信號的相關性,盡量避免同時跳變,寫時序下地址和數(shù)據(jù)的持續(xù)時間較長,而WE#在地址和數(shù)據(jù)穩(wěn)定時有效,為各時序參數(shù)預留充分的余量,讀時序下采用地址驅動SRAM數(shù)據(jù)輸出,F(xiàn)PGA在下個周期讀取數(shù)據(jù), 前仿真結果如圖5。

        圖4 SRAM寫時序前仿真結果圖

        圖5 SRAM讀時序前仿真結果圖

        前仿真情況下,SRAM讀寫時序參數(shù)測試結果如表2所示。

        表2 SRAM時序參數(shù)

        功能前仿真結果表明讀寫時序均滿足要求,且各時序參數(shù)均存在一定的余量,因此對設計進一步開展靜態(tài)時序分析。

        2.2 傳統(tǒng)的靜態(tài)時序分析方法

        從信號接口表可以看出,與SRAM的接口中除了數(shù)據(jù)線之外,均為FPGA的輸出信號,因此在靜態(tài)時序分析時,由于輸入數(shù)據(jù)sram*_dat與本地的70 M時鐘并無固定的相位關系,按照常規(guī)處理方式,僅進行了output delay的約束,靜態(tài)時序分析通過后進一步通過布局布線后的仿真驗證接口處理功能的正確性。

        2.3 后仿真驗證

        在后仿真驗證SRAM接口時,進行了3種工況的布局布線后仿真。寫時序的產生完全由FPGA輸出控制,且寫時序在靜態(tài)時序分析時已添加了時序約束,后仿真的結果表明靜態(tài)時序分析的結果與后仿真的結果一致且均滿足時序要求。

        但讀時序的驗證則遇到了問題,寫時序的產生完全取決于FPGA,數(shù)據(jù)線和控制線均由FPGA輸出產生,控制相對簡單。而讀時序動作的完成需要FPGA和SRAM配合完成,讀時序的整個過程其實可以劃分為分為3個子過程:1)FPGA輸出讀時序控制信號CS0#、CS1#、WE#、OE#和Address;2)SRAM在以上信號的控制下輸出對應的數(shù)據(jù);3)FPGA讀取SRAM輸出的數(shù)據(jù)并在內部進行取數(shù)。在模擬SRAM讀時序接口時,由圖2可知,讀時序下時序參數(shù)例如tAA為最大值、tOH為最小值,均非典型值,因此若要考慮覆蓋性,則需要進行仿真的模式非常之多:最大工況下tAA取最大值、最大工況下tAA取最小值、最大工況下tAA取典型值、最小工況下tAA取最大值、最小工況下tAA取最小值等等。

        以上的仿真方案存在如下問題:

        1)tAA值的選取直接影響了仿真效果;

        2)后仿耗時巨大,且存在多種工況多種模式,在整個FPGA設計規(guī)模較大的情況下,此種驗證方式嚴重降低了驗證效率;

        3)一旦發(fā)現(xiàn)接口時序不滿足,由于為后仿真網表,代碼中的信號在布線后的名稱被改變,追溯和定位問題困難,即便發(fā)現(xiàn)問題后進行修改,很可能造成參數(shù)A在某工況下滿足要求了,而參數(shù)B又出錯了。

        基于以上的問題,到了后仿真階段再進行接口時序的驗證,不但效率低下,而且設計方案變更困難。測試投入和成本較高,不利于型號的快速研制[5],因此項目組決定重新使用靜態(tài)時序分析的方式對SRAM接口進行驗證

        3 基于反饋約束的靜態(tài)時序分析方法

        靜態(tài)時序分析的驗證方法,它可以簡單的定義為:設計者提出一些特定的時序要求,或者說是添加特定的時序約束,套用特定的時序模型,針對特定的電路進行分析。時序分析的目的就是確保在FPGA芯片的3種工況下,整個設計的接口設計滿足上級和下級系統(tǒng)接口時序需求[6]。利用分析結果給出的路徑延遲可以反向的進行設計改善,指導綜合和布局布線工具,從而實現(xiàn)優(yōu)化設計。Prime Time是Synopsys公司的一款功能強大的全芯片和門級靜態(tài)時序分析工具,也是業(yè)界最流行的工具,常被用來分析大規(guī)模、同步、數(shù)字ASIC。

        3.1 靜態(tài)時序路徑

        STA的工作原理是提取數(shù)字電路的所有時序路徑,計算信號在時序路徑上的傳播延遲,分析其中最大路徑延遲和最小路徑延遲[7]。靜態(tài)時序分析時將設計分成4種時序路徑,每條路徑包含一個起點和終點,時序路徑的起點只能是設計的輸入端口或者內部寄存器的時鐘輸入端,終點只能是內部寄存器的數(shù)據(jù)輸入端或者設計的基本輸出端口。因此STA的4種時序路徑包括:

        1)從輸入端口到寄存器的數(shù)據(jù)D端;

        2)從寄存器的時鐘CLK端到寄存器的數(shù)據(jù)D端;

        3)從寄存器的時鐘CLK端到輸出端口;

        4)從輸入端口到輸出端口。

        靜態(tài)時序分析主要是通過對最大路徑延遲和最小路徑延遲的分析,檢查建立時間、保持時間、移除時間、恢復時間等是否滿足要求。

        結合本項目的實際情況,SRAM接口的靜態(tài)時序路徑包含以上4種路徑中的2種:即從輸入端口到寄存器的數(shù)據(jù)D端的路徑和從觸發(fā)器的時鐘CLK端到輸出端口的路徑,這兩種路徑在沒有添加相關約束情況下并不會自動分析,因此即使input delay為0,也需要進行約束,若不約束,靜態(tài)時序分析工具并不會按照默認0進行計算,而是直接忽略。添加合理的約束是決定靜態(tài)時序分析質量的決勝因素。

        3.2 靜態(tài)時序約束

        FPGA時序約束的工作就是模擬FPGA的實際工作環(huán)境,包括定義FPGA的時鐘頻率,設置數(shù)據(jù)端口的輸入輸出延時,設置芯片電路內部的偽路徑等[8]。時序約束的作用主要是指導FPGA軟件按照一定的原則布局布線,以控制邏輯路徑端點間的布線延時。同時,時序約束還為靜態(tài)時序分析器提供時序分析的標準和依據(jù)[9]。

        數(shù)據(jù)的到達時間:輸入數(shù)據(jù)在有效時鐘沿后到達所需要的時間。通常由三部分組成:時鐘到達寄存器時間,寄存器輸出延時和數(shù)據(jù)傳輸延時。

        數(shù)據(jù)要求時間:在時鐘鎖存的建立時間和保持時間之間數(shù)據(jù)必須保持穩(wěn)定,從源時鐘起點到達這種穩(wěn)定狀態(tài)需要的時間即為數(shù)據(jù)需求時間,默認的參考值是一個時鐘周期。如果數(shù)據(jù)能夠在一個要求時間內到達終點,那么這條路徑符合設計規(guī)則。SLACK=要求時間-到達時間

        其中,要求時間為約束時長,到達時間為添加延時候的實際到達時刻,SLACK為時序余量,正值表示滿足時序,負值表示不滿足時序,靜態(tài)時序分析把上公式作為依據(jù),分析設計中的所有時序路徑。如果得到的靜態(tài)時序分析報告中SLACK為負值,那么此時序路徑存在時序問題,是一條影響整個電路工作性能的關鍵路徑。在邏輯綜合、布局布線等階段進行靜態(tài)時序分析,就能及時發(fā)現(xiàn)并修改關鍵路徑上存在的時序問題,達到修正錯誤,優(yōu)化設計的目的。

        因此,正確且全面的約束是時序設計的重要環(huán)節(jié),約束過少或過于放松實際上即是對設計的放松,也不能發(fā)揮靜態(tài)時序分析應有的作用。

        3.2.1 設置輸入端口延時

        輸入端口延時的約束可以優(yōu)化從輸入端口到第一級寄存器之間的路徑延遲,保證系統(tǒng)時鐘采到的外部信號可靠、穩(wěn)定。FPGA端口需要跟不同的外部器件連接,通過設置輸入延時來模擬端口信號在片外路徑的傳播情況,可使靜態(tài)時序分析結果更加符合實際。設置輸入端口延時的語法如下:

        set_input_delay[-clock clock_name]

        [-clock_fall]

        [-level_sensitive]

        [-rise]

        [-fall]

        [-max]

        [-min]

        [-add_delay]

        [-network_latency_included]

        [-source_latency_included]

        delay_value

        port_pin_list

        由上可知,輸入端口延時約束的兩大要素分別為:延時值、相關的時鐘。簡單的解釋就是外部輸入相對某時鐘的延時時間,此處外部輸入數(shù)據(jù)必須和時鐘有固定或較固定的相位關系。根據(jù)圖2所示,SRAM輸入到FPGA的數(shù)據(jù)與地址、片選、讀使能均有較固定相位關系,但設計中采用片選、讀使能接固定值、讀地址驅動數(shù)據(jù)輸出的方式產生讀數(shù)據(jù),因此可約束輸入數(shù)據(jù)相對讀地址的延時值。由圖可知,SRAM數(shù)據(jù)相對于讀地址的延時最大值為tAA-12 ns,最小值為tOH-3ns,根據(jù)此信息進入如下約束,兩組SRAM的約束相同:

        set_input_delay 12 -max -clock sram1_adclk [get_ports sram1_dat]

        set_input_delay 3 -min -clock sram1_adclk [get_ports sram1_dat]

        3.2.2 時鐘的創(chuàng)建

        對于時鐘的約束有兩種,create_clock和create_generated_clock。create_clock命令用于創(chuàng)建一個時鐘,包括時鐘名稱、源、周期和波形。create_generated_clock用于創(chuàng)建一個衍生時鐘。

        在3.2.1節(jié)中提到,設計中采用讀使能驅動的方式產生讀數(shù)據(jù),因此可約束輸入數(shù)據(jù)相對讀使能的延時值。但根據(jù)set_input_delay的語法要求,約束的輸入延時只能是相對于時鐘的,而設計中的讀使能信號并非時鐘,此時就用到了虛擬時鐘,此處可以使用衍生時鐘的約束方式來實現(xiàn),設置衍生時鐘約束的語法如下:

        create_generated_clock [-name clock_name]

        -source master_pin

        [-edges edge_list]

        [-divide_by factor]

        [-multiply_by factor]

        [-duty_cycle percent]

        [-invert]

        [-edge_shift shift_list]

        [-add]

        [-master_clock clock]

        source_objects

        設計中FPGA和SRAM的數(shù)據(jù)流交互實際上均與70 M時鐘clk_70 M相關,在70 M時鐘下產生SRAM的地址信號SRAM1_ADD,SRAM輸出數(shù)據(jù)到FPGA后,F(xiàn)PGA再使用70 M的時鐘讀取SRAM數(shù)據(jù),以SRAM1為例,數(shù)據(jù)的交互如圖6所示。

        圖6 SRAM1與FPGA數(shù)據(jù)交互

        基于以上的信息,首先將70 M時鐘約束為時鐘,再將SRAM1_ADD約束為70 M時鐘的衍生時鐘,約束方法如下:

        create_clock -period 14.286 clkin -name CLK_fpga70 -waveform [list 0 [expr 7.143]]

        create_generated_clock -name sram1_adclk -source [get_ports clkin] -divide_by 1 [get_ports sram1_add[5]]

        3.2.3 定義多周期路徑

        默認情況下靜態(tài)時序分析工具基于單周期進行時序的檢查,set_multicycle_path可以將普通的單周期電路擴展為多周期,用在同源但不同周期或者成倍頻關系的時鐘域之間,設置多周期約束的語法如下:

        set_multicycle_path [-setup]

        [-hold]

        [-rise]

        [-fall]

        [-start]

        [-end]

        [-from from_list]

        [-to to_list]

        [-through through_list]

        path_multiplier

        在一定程度上講多周期約束實際上是對時序檢查的放松,因此一定要確定設計中確實采用了多周期的設計方法,才能進行多周期的約束。

        set_multicycle_path -to [get_ports sram1_dat] -setup 2 -start

        set_multicycle_path -to [get_ports sram1_dat] -hold 1 -start

        3.3 靜態(tài)時序分析

        經過以上約束后,運行靜態(tài)時序分析軟件,發(fā)現(xiàn)端口SRAM1_DAT在讀操作情況下建立時間不滿足要求,以其中的一條路徑為例進行分析,結果如圖7所示。

        圖7 SRAM1讀時序接口靜態(tài)時序分析結果

        由圖7可知,整個路徑的起點為sram1_adclk,即輸出到SRAM的地址信號,在此條路徑計算時首先添加了SRAM地址線上的輸出延時信息“clock network delay”,之后添加了約束的輸入延時值“input external delay”,之后再添加FPGA內部的延時信息,與圖8中的數(shù)據(jù)流吻合,結合到圖6中,各延時數(shù)據(jù)分布如下:

        圖8 靜態(tài)時序分析中的延時與數(shù)據(jù)路徑對應關系

        進一步對以上的路徑在后仿真時進行驗證,在后仿真時將以上的數(shù)據(jù)路徑分別找出,發(fā)現(xiàn)延時數(shù)據(jù)與靜態(tài)時序分析的數(shù)據(jù)值吻合,進一步證明該種約束方案快速且有效。

        4 設計改進

        由于靜態(tài)時序分析時清楚的列出數(shù)據(jù)的路徑及每一級的延時信息,這就方便設計人員分析導致問題發(fā)生的關鍵原因,從而進一步調整方案,從上述的分析結果看,造成該問題的主要原因是由于SRAM的地址存取時間tAA、保持時間tOH在3~12 ns的范圍內,該范圍過大。一般情況下tAA參與建立時間余量的計算,tOH參與保持時間余量的計算,在調整設計后很難達到建立時間和保持時間的平衡,建立時間滿足了,保持時間又出錯了,或者最大工況下滿足了,最小工況又出錯了。

        基于以上的原因,將設計方案進行調整,由地址驅動改為讀使能驅動控制讀時序,由圖2可知,讀使能驅動情況下的延時值在0~6 ns之間,處于更加可控的延時范圍內,最終正確實現(xiàn)了FPGA對SRAM的讀寫控制。

        靜態(tài)時序約束的方式簡便快捷,但最重要的時必須保證約束內容的正確性,約束的內容越準確,則分析的結果越趨近于實際值,例如:

        1)以上約束時添加的數(shù)值實際上均為常溫常壓下的數(shù)據(jù),而在實際使用中考慮器件在高低溫條件下的延時可能變大,對SRAM器件資料進行進一步的解讀,在高溫或低溫下大部分的時序參數(shù)值會增大或減小10%,在進行約束時也需要考慮FPGA產品的實際使用環(huán)境,從而考核出FPGA設計真正的余量;

        2)3.2.2節(jié)中將地址約束為衍生時鐘,而實際上地址為多bit信號,可以通過set_max_delay 的約束方式找出延時最大和延時最小的地址線。

        5 結論

        本文以SRAM讀、寫接口設計的時序驗證為例,采用Prime Time對讀寫接口進行時序分析,介紹了將輸入輸出關聯(lián)的特殊約束方式,將傳統(tǒng)的單向的時序檢查變?yōu)閿?shù)據(jù)環(huán)路控制的時序檢查,有效的提高設計及驗證效率,該種方式同樣可推廣應用于ROM、MRAM等類似接口芯片。

        猜你喜歡
        時序延時靜態(tài)
        時序坐標
        基于Sentinel-2時序NDVI的麥冬識別研究
        靜態(tài)隨機存儲器在軌自檢算法
        基于級聯(lián)步進延時的順序等效采樣方法及實現(xiàn)
        一種毫米波放大器時序直流電源的設計
        電子制作(2016年15期)2017-01-15 13:39:08
        Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
        船舶力學(2015年6期)2015-12-12 08:52:20
        機床靜態(tài)及動態(tài)分析
        機電信息(2015年9期)2015-02-27 15:55:56
        具7μA靜態(tài)電流的2A、70V SEPIC/升壓型DC/DC轉換器
        桑塔納車發(fā)動機延時熄火
        光控觸摸延時開關設計
        河南科技(2014年23期)2014-02-27 14:19:00
        人妻少妇被粗大爽视频| 国产一区二区三区观看视频| 一区二区在线观看日本免费| 亚洲午夜狼人综合影院| 无码人妻av免费一区二区三区| 国产视频毛片| 激情五月婷婷六月俺也去| 亚洲一区二区三区2021| 国产白嫩护士被弄高潮| 日韩欧美区| 亚洲国产精品色一区二区| 国产情侣自拍一区视频| 久久亚洲精品无码va白人极品| 欧美a级在线现免费观看| 日本一级二级三级在线| 日本不卡高字幕在线2019| 亚洲色大成网站www久久九| 久久久综合九色合综国产| 国产在线视频一区二区三区不卡| 婷婷伊人久久大香线蕉av| 久久久久国产精品熟女影院| 人妻无码一区二区19P| 精品亚洲av乱码一区二区三区| 午夜福利理论片在线观看| 亚洲AV无码一区二区三区人| 美腿丝袜美腿国产在线| 亚洲中文字幕久久精品品| 极品粉嫩小泬无遮挡20p| 911国产在线观看精品| 久久久人妻一区二区三区蜜桃d| 国产精品亚洲а∨天堂2021| 久久精品国产四虎| 亚洲天堂av在线免费看| 国产乱子伦精品无码专区| 欧美日韩精品一区二区三区不卡| 无码人妻精品中文字幕免费| 很黄很色的女同视频一区二区 | 少妇愉情理伦片丰满丰满午夜| 国产精品天堂avav在线| 一区二区三区亚洲免费| 亚洲av无码成人精品区狼人影院|