999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

FPGA靜態時序約束的策略研究及探討*

2019-09-03 08:57:40
通信技術 2019年8期

劉 晟

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

0 引 言

隨著半導體芯片和人工智能產業的發展,現場可編程門陣列(Field Programmable Gate Array,FPGA)逐漸受到重視。其靈活性和可定制性都是非常具有吸引力的特性。為解決系統設計問題,FPGA 越來越多地整合系統模塊,同時進一步集成了重要控制功能。

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

1 時序約束的基本概念

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

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

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

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

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

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

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

圖1 數據傳輸路徑圖

時鐘沿到達前數據從不穩定狀態過渡到穩定狀態所經歷的時間稱為建立時間(Tsu)。數據在穩定后需要在時鐘上升沿保持的時間稱為保持時間(Th)。建立時間和保持時間是矛盾的兩方面。圖2為同一時鐘下的建立時間與保持時間的關系。Tco為時鐘上升沿到來后,觸發器輸出端口產生信號輸出所需時間為觸發器輸出時間。

圖2 同一時鐘下的時間關系圖

圖2可以看作是圖1的子集,是時序電路中的基本模塊結構。其時序如圖3所示。

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

Tpd為時鐘從源觸發器(Source clk)到目標觸發器(Destin clk)的路徑延時。

圖3 建立時間和保持時間時序圖

2 時鐘約束

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

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

create_clock -name clk_in -period 10ns get_ports clk_in

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

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

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

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

3 I/O約束

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

3.1 Input和 Output約束

約束設計中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)用來約束異步組合邏輯接口。組合邏輯延時是不被任何時鐘序列捕獲的輸入和輸出FPGA的路徑延時,傳輸路徑如圖4所示。

圖4 組合邏輯的延時圖

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

圖5 同步邏輯輸入電路

圖5為Input約束。Input延時表示輸入數據相對于輸入時鐘的時間差。

Input的最大和最小輸入延時分別為:

圖6為Output約束。Output延時表示輸出數據相對于輸入時鐘的時間差。

Output的最大和最小輸出延時分別為:

圖6 同步邏輯輸出電路

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

3.2 建立保持時序分析

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

setup檢查下一個時鐘周期之前傳遞完數據。第一個clock的上升沿發送,第二個clock的上升沿接收。當時鐘連接到FPGA的port/pin/net時,檢查包括時鐘從連接到路徑端點的傳播。數據路徑延時使用路徑最長延時,而目標時鐘延時使用路徑最短延時。setup檢查從起始點時鐘的啟動沿開始,到終結點時鐘的捕獲沿結束。

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

3.3 系統同步與源同步

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

在系統同步模式下,僅需考慮FPGA上下游器件延時Tco及數據板級延時Tdata_PCB。I/O的啟動與捕獲如圖7所示。啟動沿對應上游器件時鐘,捕獲沿對應下游器件時鐘。

圖7 系統同步I/O時序圖

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

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

圖8 源同步I/O時序圖

在中心對齊的SDR方式下,FPGA捕獲的波形數據不依賴于捕獲沿。因此,最大和最小延時通常通過圖中所示的無效數據(skew)來計算得到。當捕獲沿時間早于使用負設置捕獲的數據時,STA工具中的默認設置時間分析不能將前沿同時視為啟動沿和捕獲沿。相應約束為:

4 例外約束

如果分析不相關的時鐘域信號,就會得到錯誤的結果。因此STA工具需要知道哪些路徑要進行特殊的時序分析。主要有兩種類型:多周期路徑約束和假路徑約束。

4.1 多周期路徑約束

上文的I/O約束有一個基本的條件,就是數據在單個時鐘周期內完成寄存器之間的傳輸。但是在實際的設計中,設計的復雜性會導致延時較大,往往數據在發送多個時鐘周期之后才起作用[3],導致啟動和捕獲之間需要多個時鐘周期。

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

圖9 多周期路徑約束原理

圖10 多周期路徑約束時序

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

其中N表示經過多周期路徑的時鐘數。

4.2 假路徑約束

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

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

5 結 語

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

主站蜘蛛池模板: 韩国v欧美v亚洲v日本v| 久久精品中文字幕少妇| av尤物免费在线观看| 久久综合AV免费观看| 黄色成年视频| 国产一级在线播放| 亚洲综合久久成人AV| 国产玖玖玖精品视频| 高清码无在线看| 亚洲人成成无码网WWW| 国产白浆视频| 国产剧情一区二区| 亚洲第一天堂无码专区| 国产精品尤物在线| 中文字幕日韩视频欧美一区| 欧美高清国产| 精品国产中文一级毛片在线看| 亚洲国产亚综合在线区| 国产欧美日韩另类| 欧美丝袜高跟鞋一区二区| 精品视频福利| 99在线免费播放| 久久亚洲中文字幕精品一区| 亚洲最猛黑人xxxx黑人猛交| a毛片在线| 久久99久久无码毛片一区二区| 99热这里都是国产精品| 中文字幕 91| 国产综合色在线视频播放线视| 欧美成人精品在线| 亚洲精品视频免费看| 国产午夜一级淫片| 久久狠狠色噜噜狠狠狠狠97视色 | 亚洲国产综合第一精品小说| 免费啪啪网址| 久草热视频在线| 成人午夜福利视频| 国产尤物视频在线| 国产精品亚洲αv天堂无码| 久久青草热| 中文纯内无码H| 国产波多野结衣中文在线播放| 亚洲综合第一区| 综合人妻久久一区二区精品| 一级香蕉人体视频| 亚洲国产精品一区二区第一页免| 五月婷婷综合网| 91久久性奴调教国产免费| 高潮爽到爆的喷水女主播视频| 丁香五月婷婷激情基地| 波多野结衣一级毛片| 四虎成人精品在永久免费| 538国产在线| 国产精品免费露脸视频| 狠狠色噜噜狠狠狠狠奇米777| 毛片网站观看| 亚洲国产成人精品青青草原| 久久国语对白| 国产精品女主播| 最新无码专区超级碰碰碰| 色婷婷色丁香| 无码免费视频| 亚洲成人网在线播放| 日韩欧美国产中文| 18禁色诱爆乳网站| 亚洲国产亚综合在线区| 久久久久88色偷偷| 国产呦精品一区二区三区网站| 国产男人天堂| AV在线麻免费观看网站 | 漂亮人妻被中出中文字幕久久 | 亚洲V日韩V无码一区二区| 亚洲欧美另类日本| 日韩一级毛一欧美一国产| 园内精品自拍视频在线播放| 日韩午夜福利在线观看| 青青热久免费精品视频6| 亚洲最黄视频| 国产裸舞福利在线视频合集| 9999在线视频| 在线播放国产99re| 日韩人妻无码制服丝袜视频|