• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      FPGA靜態(tài)時(shí)序約束的策略研究及探討*

      2019-09-03 08:57:40
      通信技術(shù) 2019年8期
      關(guān)鍵詞:觸發(fā)器時(shí)序延時(shí)

      劉 晟

      (上海諾基亞貝爾股份有限公司,江蘇 南京 210037)

      0 引 言

      隨著半導(dǎo)體芯片和人工智能產(chǎn)業(yè)的發(fā)展,現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)逐漸受到重視。其靈活性和可定制性都是非常具有吸引力的特性。為解決系統(tǒng)設(shè)計(jì)問題,F(xiàn)PGA 越來越多地整合系統(tǒng)模塊,同時(shí)進(jìn)一步集成了重要控制功能。

      隨著FPGA的規(guī)模及速度的持續(xù)提高,被測(cè)試設(shè)計(jì)(Device Under Test,DUT)的時(shí)序驗(yàn)證及邏輯功能驗(yàn)證必須分開進(jìn)行:寄存器傳輸級(jí)(Register Transfer Level,RTL)驗(yàn)證電路邏輯功能的正確性;靜態(tài)時(shí)序分析(Static Timing Analysis,STA)驗(yàn)證電路時(shí)序的正確性[1]。STA工具通過給設(shè)計(jì)添加多個(gè)時(shí)序約束,實(shí)現(xiàn)控制邏輯的綜合、映射及布局布線,以此來規(guī)范FPGA的設(shè)計(jì)時(shí)序,使設(shè)計(jì)達(dá)到滿足全部的時(shí)序要求[2]。

      1 時(shí)序約束的基本概念

      時(shí)序分析的方法是檢查FPGA內(nèi)部布局布線的延時(shí),保證所有時(shí)序的有正時(shí)序裕量,即滿足:

      式中,Trequired_time表示所約束時(shí)長,Tarrival_time表示實(shí)際延時(shí),Slack表示時(shí)間裕量,為正表示時(shí)序收斂。時(shí)序裕量的計(jì)算需要依據(jù)不同的時(shí)序路徑,分析約束條件,得到設(shè)計(jì)頻率最高值。STA工具將DUT上的時(shí)序路徑分成4種:

      (1)輸入端口→觸發(fā)器D端口(Pad-to-Setup);

      (2)觸發(fā)器CLK端口 → 觸發(fā)器D端口(Clock-to-Setup);

      (3)觸發(fā)器CLK端口 → 輸出端口(Clockto-Pad);

      (4)輸入端口 → 輸出端口(Pad-to-Pad)。

      時(shí)序分析數(shù)據(jù)傳輸路徑的示意圖如圖1所示。任何復(fù)雜的時(shí)序電路基本都可以用該模型來表示。只有確保數(shù)據(jù)準(zhǔn)確無誤地在觸發(fā)器之間傳輸,才能確定數(shù)據(jù)傳輸延時(shí)的區(qū)間。

      圖1 數(shù)據(jù)傳輸路徑圖

      時(shí)鐘沿到達(dá)前數(shù)據(jù)從不穩(wěn)定狀態(tài)過渡到穩(wěn)定狀態(tài)所經(jīng)歷的時(shí)間稱為建立時(shí)間(Tsu)。數(shù)據(jù)在穩(wěn)定后需要在時(shí)鐘上升沿保持的時(shí)間稱為保持時(shí)間(Th)。建立時(shí)間和保持時(shí)間是矛盾的兩方面。圖2為同一時(shí)鐘下的建立時(shí)間與保持時(shí)間的關(guān)系。Tco為時(shí)鐘上升沿到來后,觸發(fā)器輸出端口產(chǎn)生信號(hào)輸出所需時(shí)間為觸發(fā)器輸出時(shí)間。

      圖2 同一時(shí)鐘下的時(shí)間關(guān)系圖

      圖2可以看作是圖1的子集,是時(shí)序電路中的基本模塊結(jié)構(gòu)。其時(shí)序如圖3所示。

      建立時(shí)間和保持時(shí)間必須滿足式(2)、式(3):

      Tpd為時(shí)鐘從源觸發(fā)器(Source clk)到目標(biāo)觸發(fā)器(Destin clk)的路徑延時(shí)。

      圖3 建立時(shí)間和保持時(shí)間時(shí)序圖

      2 時(shí)鐘約束

      FPGA所有的同步路徑都基于時(shí)鐘,如晶振產(chǎn)生的時(shí)鐘、以太網(wǎng)恢復(fù)出的時(shí)鐘、ADC/DAC的數(shù)據(jù)時(shí)鐘等,稱為主時(shí)鐘(Primary Clock)。其他由主時(shí)鐘產(chǎn)生的時(shí)鐘,稱為衍生時(shí)鐘(Generated Clock)。

      主時(shí)鐘需要通過命令create_clock創(chuàng)建,如定義一個(gè)名為clk_in,周期為10ns,占空比50%,通過輸入端口clk_in輸入到FPGA的主時(shí)鐘:

      create_clock -name clk_in -period 10ns get_ports clk_in

      創(chuàng)建主時(shí)鐘后,STA工具自動(dòng)確定該主時(shí)鐘的起點(diǎn)為仿真時(shí)序的“零點(diǎn)”,在“零點(diǎn)”之前的路徑延時(shí)都被忽略。如果主時(shí)鐘是以差分對(duì)的形式輸入FPGA,那么只需要約束差分的正相端口。

      衍生時(shí)鐘分為兩種,一種由時(shí)鐘管理單元?jiǎng)?chuàng)建,其約束由工具自動(dòng)推導(dǎo)得出,不需要用戶手動(dòng)約束;另一種由用戶通過寄存器或組合邏輯設(shè)計(jì)得到,通過命令create_generated_clock來創(chuàng)建約束。此外還需要考慮時(shí)鐘的延時(shí)(latency)和抖動(dòng)(jitter)等因素。由圖2可以看出,由于存在時(shí)鐘路徑,到達(dá)REG1和REG2的時(shí)鐘有先后,稱為時(shí)鐘延時(shí),用set_clock_latency命令約束。外部器件輸入時(shí)鐘本身屬性,或者電源噪聲、電路板噪聲等因素,都會(huì)導(dǎo)致輸入時(shí)鐘產(chǎn)生抖動(dòng),用set_system_jitter命令約束。

      對(duì)于異步時(shí)鐘,假設(shè)圖2中的REG1和REG2的時(shí)鐘異步,則要約束不同的時(shí)鐘組,以避免路徑的跨時(shí)鐘域(Clock Domain Cross,CDC)錯(cuò)誤。例如:

      create_clock_groups -name asy_clk -asynchronous-group source_clk -group destin_clk

      3 I/O約束

      I/O數(shù)據(jù)傳輸方案根據(jù)不同的數(shù)據(jù)速率,對(duì)齊方式,時(shí)鐘源等來做區(qū)分[4]。盡管場(chǎng)景不同,但都適用于相同的原則:分析FPGA與上下游設(shè)備的建立保持時(shí)間。

      3.1 Input和 Output約束

      約束設(shè)計(jì)中I/O約束的命令有以下幾種[3]:

      (1)set_max_delay;

      (2)set_min_delay;

      (3)set_input_delay -max <maxdelay> -min<mindelay>;

      (4)set_output_delay -max <maxdelay> -min<mindelay>。

      命令(1)和命令(2)用來約束異步組合邏輯接口。組合邏輯延時(shí)是不被任何時(shí)鐘序列捕獲的輸入和輸出FPGA的路徑延時(shí),傳輸路徑如圖4所示。

      圖4 組合邏輯的延時(shí)圖

      命令(3)和命令(4)用來約束時(shí)序邏輯接口。通過max和min參數(shù)設(shè)定最大/最小延時(shí)時(shí)間。

      圖5 同步邏輯輸入電路

      圖5為Input約束。Input延時(shí)表示輸入數(shù)據(jù)相對(duì)于輸入時(shí)鐘的時(shí)間差。

      Input的最大和最小輸入延時(shí)分別為:

      圖6為Output約束。Output延時(shí)表示輸出數(shù)據(jù)相對(duì)于輸入時(shí)鐘的時(shí)間差。

      Output的最大和最小輸出延時(shí)分別為:

      圖6 同步邏輯輸出電路

      為保證約束的完整性,Input和Output的maxdelay和mindelay必須同時(shí)約束。Input的maxdelay描述的是setup相關(guān)的上游器件的延時(shí);mindelay描述的是hold相關(guān)的上游器件的延時(shí)。Output的maxdelay描述的是setup相關(guān)的下游器件的延時(shí);mindelay描述的是hold相關(guān)的下游器件的延時(shí)。

      3.2 建立保持時(shí)序分析

      STA是基于基本元素(Basic Element Logics,BELs)的。即使路徑上有多個(gè)BEL封裝在同一個(gè)切片(Slice)中,仍然需要對(duì)每個(gè)BEL進(jìn)行時(shí)序特性描述。

      setup檢查下一個(gè)時(shí)鐘周期之前傳遞完數(shù)據(jù)。第一個(gè)clock的上升沿發(fā)送,第二個(gè)clock的上升沿接收。當(dāng)時(shí)鐘連接到FPGA的port/pin/net時(shí),檢查包括時(shí)鐘從連接到路徑端點(diǎn)的傳播。數(shù)據(jù)路徑延時(shí)使用路徑最長延時(shí),而目標(biāo)時(shí)鐘延時(shí)使用路徑最短延時(shí)。setup檢查從起始點(diǎn)時(shí)鐘的啟動(dòng)沿開始,到終結(jié)點(diǎn)時(shí)鐘的捕獲沿結(jié)束。

      hold檢查數(shù)據(jù)在接收端的時(shí)鐘邊沿后還仍然能穩(wěn)定保持的時(shí)間。同一個(gè)時(shí)鐘沿既是啟動(dòng)沿也是捕獲沿。這就意味著當(dāng)時(shí)鐘發(fā)生跳變時(shí),引起的時(shí)鐘更改是否在相同的時(shí)鐘邊沿到達(dá)目標(biāo)模塊(通常是從同一個(gè)時(shí)鐘的上升沿觸發(fā))之前傳播到目標(biāo)模塊。其中最短延時(shí)被用于源時(shí)鐘和數(shù)據(jù)路徑的延時(shí),最長延時(shí)被用于目標(biāo)時(shí)鐘的延時(shí)。

      3.3 系統(tǒng)同步與源同步

      I/O接口可以分為系統(tǒng)同步和源同步。前者是指FPGA和上下游器件之間僅傳遞數(shù)據(jù),時(shí)鐘通過系統(tǒng)板級(jí)同步;后者是指FPGA和上下游器件之間同時(shí)傳遞數(shù)據(jù)和時(shí)鐘,用時(shí)鐘同步數(shù)據(jù)。源同步基本不受傳輸線延時(shí)影響,時(shí)鐘頻率更高,約束也相對(duì)更復(fù)雜。

      在系統(tǒng)同步模式下,僅需考慮FPGA上下游器件延時(shí)Tco及數(shù)據(jù)板級(jí)延時(shí)Tdata_PCB。I/O的啟動(dòng)與捕獲如圖7所示。啟動(dòng)沿對(duì)應(yīng)上游器件時(shí)鐘,捕獲沿對(duì)應(yīng)下游器件時(shí)鐘。

      圖7 系統(tǒng)同步I/O時(shí)序圖

      在系統(tǒng)同步接口中,捕獲數(shù)據(jù)的預(yù)期邊沿是靠近數(shù)據(jù)窗口末尾的邊沿。當(dāng)Tco和Tdata_PCB已知時(shí),可直接指定FPGA輸入延時(shí)。由此可以導(dǎo)出FPGA接收到的實(shí)際有效數(shù)據(jù)在最大和最小情況下的通用數(shù)據(jù)窗口。每個(gè)捕獲沿也是下一個(gè)數(shù)據(jù)的啟動(dòng)沿,可以用來做hold分析。相應(yīng)約束為:

      在源同步模式下,數(shù)據(jù)和隨路時(shí)鐘之間存在相位關(guān)系,接收端必須使用該時(shí)鐘來鎖存數(shù)據(jù)。源同步可劃分為單數(shù)據(jù)率(Single Data Rate,SDR)和雙數(shù)據(jù)率(Double Data Rate,DDR)、中心對(duì)齊和邊沿對(duì)齊等多種方式。這里以中心對(duì)齊的SDR方式為例,I/O的啟動(dòng)與捕獲如圖8所示。

      圖8 源同步I/O時(shí)序圖

      在中心對(duì)齊的SDR方式下,F(xiàn)PGA捕獲的波形數(shù)據(jù)不依賴于捕獲沿。因此,最大和最小延時(shí)通常通過圖中所示的無效數(shù)據(jù)(skew)來計(jì)算得到。當(dāng)捕獲沿時(shí)間早于使用負(fù)設(shè)置捕獲的數(shù)據(jù)時(shí),STA工具中的默認(rèn)設(shè)置時(shí)間分析不能將前沿同時(shí)視為啟動(dòng)沿和捕獲沿。相應(yīng)約束為:

      4 例外約束

      如果分析不相關(guān)的時(shí)鐘域信號(hào),就會(huì)得到錯(cuò)誤的結(jié)果。因此STA工具需要知道哪些路徑要進(jìn)行特殊的時(shí)序分析。主要有兩種類型:多周期路徑約束和假路徑約束。

      4.1 多周期路徑約束

      上文的I/O約束有一個(gè)基本的條件,就是數(shù)據(jù)在單個(gè)時(shí)鐘周期內(nèi)完成寄存器之間的傳輸。但是在實(shí)際的設(shè)計(jì)中,設(shè)計(jì)的復(fù)雜性會(huì)導(dǎo)致延時(shí)較大,往往數(shù)據(jù)在發(fā)送多個(gè)時(shí)鐘周期之后才起作用[3],導(dǎo)致啟動(dòng)和捕獲之間需要多個(gè)時(shí)鐘周期。

      在上文的圖2中,如果中間的組合邏輯模塊延時(shí)較大,需要多個(gè)時(shí)鐘周期來完成從REG1到REG2的數(shù)據(jù)傳輸,就稱為多周期路徑,如圖9和圖10所示。一個(gè)很好的解決方法是使用時(shí)鐘使能信號(hào),在N個(gè)時(shí)鐘周期后讀取數(shù)據(jù)。將數(shù)據(jù)率變?yōu)闀r(shí)鐘頻率的1/N。

      圖9 多周期路徑約束原理

      圖10 多周期路徑約束時(shí)序

      如果不設(shè)置多周期路徑約束,則STA工具會(huì)按照單周期路徑來約束,會(huì)導(dǎo)致時(shí)序不滿足,或者過分優(yōu)化,造成過約束,侵占本該更高優(yōu)先級(jí)的約束資源[3]。因此最好在模塊描述中給出多周期路徑的注釋,并添加到約束文件中。相應(yīng)的約束命令為:

      其中N表示經(jīng)過多周期路徑的時(shí)鐘數(shù)。

      4.2 假路徑約束

      所謂“假路徑”,是設(shè)計(jì)人員告訴STA工具那些不需要進(jìn)行約束分析的路徑。主要包括3種:(1)在邏輯函數(shù)中不存在的路徑,比如多個(gè)主從總線通信、多路選擇功能等;(2)多異步時(shí)鐘域的路徑,可以使用先進(jìn)先出(First Input First Output,F(xiàn)IFO)模塊進(jìn)行通信;(3)測(cè)試功能邏輯路徑,如內(nèi)建自測(cè)(Built-in Self Test,BIST)、邊界掃描測(cè)試等。以上情況設(shè)置假路徑的約束命令分別為:

      假路徑的設(shè)置,可以確保定義的路徑不做檢查,提高STA效率。前提是要求設(shè)計(jì)人員對(duì)設(shè)計(jì)路徑熟悉,同時(shí)也會(huì)增加約束文件的復(fù)雜度。如果判斷不好約束的優(yōu)先級(jí),有時(shí)也會(huì)適得其反,因此需要謹(jǐn)慎操作。

      5 結(jié) 語

      本文探討了幾種FPGA的靜態(tài)時(shí)序約束方法,分析了電路時(shí)序原理,介紹了相應(yīng)的語句。FPGA時(shí)序約束越來越復(fù)雜,用好時(shí)序約束,對(duì)邏輯電路的設(shè)計(jì)能起到事半功倍的效果。然而時(shí)序約束不能一概而論,用固定的幾種約束方法解決所有的時(shí)序問題。需要FPGA設(shè)計(jì)人員在實(shí)際的工作中積累經(jīng)驗(yàn),找準(zhǔn)阻礙時(shí)序收斂的根本原因分析解決。

      猜你喜歡
      觸發(fā)器時(shí)序延時(shí)
      時(shí)序坐標(biāo)
      基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
      基于級(jí)聯(lián)步進(jìn)延時(shí)的順序等效采樣方法及實(shí)現(xiàn)
      主從JK觸發(fā)器邏輯功能分析
      電子世界(2017年22期)2017-12-02 03:03:45
      使用觸發(fā)器,強(qiáng)化安全性
      一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
      電子制作(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
      桑塔納車發(fā)動(dòng)機(jī)延時(shí)熄火
      光控觸摸延時(shí)開關(guān)設(shè)計(jì)
      河南科技(2014年23期)2014-02-27 14:19:00
      DPBUS時(shí)序及其設(shè)定方法
      河南科技(2014年15期)2014-02-27 14:12:36
      西华县| 临城县| 马鞍山市| 彭山县| 秀山| 达尔| 全椒县| 聂荣县| 文水县| 石棉县| 师宗县| 通州区| 永仁县| 广宁县| 贺兰县| 太保市| 栖霞市| 雅江县| 道真| 邵武市| 迁西县| 大悟县| 文山县| 晋城| 绵竹市| 敦化市| 泾川县| 区。| 瓮安县| 白城市| 洛宁县| 西乡县| 潜江市| 米林县| 哈尔滨市| 武陟县| 北辰区| 邵东县| 昭苏县| 溧阳市| 右玉县|