《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 其他 > 教學:FPGA的IO口時序約束分析

教學:FPGA的IO口時序約束分析

2022-09-27
來源:FPGA設計論壇
關鍵詞: 時序約束 FPGA 寄存器

  1.1  概述

  在高速系統中FPGA時序約束不止包括內部時鐘約束,還應包括完整的IO時序約束和時序例外約束才能實現PCB板級的時序收斂。因此,FPGA時序約束中IO口時序約束也是一個重點。只有約束正確才能在高速情況下保證FPGA和外部器件通信正確。

  1.2  FPGA整體概念

  由于IO口時序約束分析是針對于電路板整個系統進行時序分析,所以FPGA需要作為一個整體分析,其中包括FPGA的建立時間、保持時間以及傳輸延時。傳統的建立時間、保持時間以及傳輸延時都是針對寄存器形式的分析。但是針對整個系統FPGA的建立時間保持時間可以簡化。

 

01.JPG

  圖1.1  FPGA整體時序圖

  如圖1.1所示,為分解的FPGA內部寄存器的性能參數:

  (1) Tdin為從FPGA的IO口到FPGA內部寄存器輸入端的延時;

  (2) Tclk為從FPGA的IO口到FPGA內部寄存器時鐘端的延時;

  (3) Tus/Th為FPGA內部寄存器的建立時間和保持時間;

  (4) Tco為FPGA內部寄存器傳輸時間;

  (5) Tout為從FPGA寄存器輸出到IO口輸出的延時;

  對于整個FPGA系統分析,可以重新定義這些參數:FPGA建立時間可以定義為:

  (1) FPGA建立時間:FTsu = Tdin + Tsu – Tclk;

  (2) FPGA保持時間:FTh = Th + Tclk;

  (3) FPGA數據傳輸時間:FTco = Tclk + Tco + Tout;

  由上分析當FPGA成為一個系統后即可進行IO時序分析了。FPGA模型變為如圖1.2所示。

02.JPG

  圖1.2  FPGA系統參數

  1.3  輸入最大最小延時

  外部器件發送數據到FPGA系統模型如圖1.3所示。對FPGA的IO口進行輸入最大最小延時約束是為了讓FPGA設計工具能夠盡可能的優化從輸入端口到第一級寄存器之間的路徑延遲,使其能夠保證系統時鐘可靠的采到從外部芯片到FPGA的信號。

 03.JPG

  圖1.3  FPGA數據輸入模型

  輸入延時即為從外部器件發出數據到FPGA輸入端口的延時時間。其中包括時鐘源到FPGA延時和到外部器件延時之差、經過外部器件的數據發送Tco,再加上PCB板上的走線延時。如圖1.4所示,為外部器件和FPGA接口時序。

04.JPG

  圖1.4  外部器件和FPGA接口時序

  1.         最大輸入延時

  最大輸入延時(input delay max)為當從數據發送時鐘沿(lanuch edge)經過最大外部器件時鐘偏斜(Tclk1),最大的器件數據輸出延時(Tco),再加上最大的PCB走線延時(Tpcb),減去最小的FPGA時鐘偏移(FTsu)的情況下還能保證時序滿足的延時。這樣才能保證FPGA的建立時間,準確采集到本次數據值,即為setup slack必須為正,如圖1.1的所示,計算公式如下式所示:

  Setup slack =(Tclk + Tclk2(min))–(Tclk1(max) +Tco(max) +Tpcb(max) +FTsu)≥0

  推出如下公式:

  Tclk1(max) + Tco(max) + Tpcb(max) –Tclk2(min) ≤ Tclk + FTsu

  由Altera官方數據手冊得知:

  input delay max = Board Delay (max) – Board clock skew (min) + Tco(max)

  結合本系統參數公式為:

  input delay max = Tpcb(max) – (Tclk2(min)–Tclk1(max)) + Tco(max)

  2.         最小輸入延時

  最小輸入延時(input delay min)為當從數據發送時鐘沿(lanuch edge)經過最小外部器件時鐘偏斜(Tclk1),最小器件數據輸出延時(Tco),再加上最小PCB走線延時(Tpcb),此時的時間總延時值一定要大于FPGA的最大時鐘延時和建立時間之和,這樣才能不破壞FPGA上一次數據的保持時間,即為hold slack必須為正,如圖1.1的所示,計算公式如下式所示:

  Hold slack = (Tclk1(min) + Tco(min) + Tpcb(min))–(FTh + Tclk2(max))≥ 0

  推出如下公式:

  Tclk1(min) + Tco(min) + Tpcb(min) – Tclk2(max) ≥ FTh

  由Altera官方數據手冊得知:

  input delay max = Board Delay (min) - Board clock skew (min) + Tco(min)

  結合本系統參數公式為

  input delay max = Tpcb(min) – (Tclk2(max)–Tclk1(min)) + Tco(min)

  由公式4和公式8得知,進行輸入最大最小延時的計算,我們需要估算4個值:

  (1) 外部器件輸出數據通過PCB板到達FPGA端口的最大值和最小值Tpcb,PCB延時經驗值為600mil/ns,1mm = 39.37mil;

  (2) 外部器件接收到時鐘信號后輸出數據延時的最大值和最小值Tco;

  (3) 時鐘源到達外部器件的最大、最小時鐘偏斜Tclk1;

  (4) 時鐘源到達FPGA的最大、最小時鐘偏斜Tclk2;

  當外部器件時鐘為FPGA提供的時候,Tclk1和Tclk2即合成Tshew,如圖1.5所示:

05.JPG

  圖1.5  FPGA輸出時鐘模型

  1.4  輸出最大最小延時

  FPGA輸出數據給外部器件模型如圖1.6所示。對FPGA的IO口進行輸出最大最小延時約束是為了讓FPGA設計工具能夠盡可能的優化從第一級寄存器到輸出端口之間的路徑延遲,使其能夠保證讓外部器件能準確的采集到FPGA的輸出數據。

 06.JPG

  圖1.6  FPGA輸出延時模型

  輸出延時即為從FPGA輸出數據后到達外部器件的延時時間。其中包括時鐘源到FPGA延時和到外部器件延時之差、PCB板上的走線延時以及外部器件的數據建立和保持時間。如所示,為FPGA和外部器件接口時序圖。

07.JPG

  圖1.7  FPGA輸出延時

  1.         最大輸出延時

  由Altera官方數據手冊得知:

  Output delay max = Board Delay (max) – Board clock skew (min) + Tsu

  由公式得知,最大輸出延時(output delay max)為當從FPGA數據發出后經過最大的PCB延時、最小的FPGA和器件時鐘偏斜,再加上外部器件的建立時間。約束最大輸出延時,是為了約束IO口輸出,從而使外部器件的數據建立時間,即為setup slack必須為正,計算公式如下式所示:

  Setup slack =(Tclk + Tclk2(min))–(Tclk1(max) +FTco(max) +Tpcb(max) +Tsu)≥0

  推導出如下公式:

  FTco(max) + Tpcb(max) –(Tclk2(min) – Tclk1(max))+Tsu ≤Tclk

  再次推導,得到如下公式:

  FTco(max) + Output delay max ≤Tclk

  由此可見,約束輸出最大延時,即為通知編譯器FPGA的FTco最大值為多少,根據這個值做出正確的綜合結果。

  2.   輸出最小延時

  由Altera官方數據手冊得知:

  Output delay min = Board Delay (min) – Board clock skew (max) –Th

  由公式得知,最小輸出延時(output delay min)為當從FPGA數據發出后經過最小的PCB延時、最大的FPGA和器件時鐘偏斜,再減去外部器件的建立時間。約束最小輸出延時,是為了約束IO口輸出,從而使IO口輸出有個最小延時值,防止輸出過快,破壞了外部器件上一個時鐘的數據保持時間,導致hlod slack為負值,不能正確的鎖存到數據,最小輸出延時的推導計算公式如下式所示:

  Hold slack = (Tclk1(min) + FTco(min) + Tpcb(min))–(Th + Tclk2(max))≥ 0

  推導出如下公式:

  FTco(min) + Tpcb(min) – (Tclk2(max) – Tclk1(min))– Th ≥ 0

  再次推導,得出如下公式:

  FTco(min) + Output delay min ≥ 0

  由公式得知,約束輸出最大延時,即為通知編譯器FPGA的FTco最小值為多少,根據這個值做出正確的綜合結果。

  由公式10和公式14得知,進行輸出最大最小延時的計算,我們需要估算4個值:

  (1) FPGA輸出數據通過PCB板到達外部器件輸入端口的最大值和最小值Tpcb,PCB延時經驗值為600mil/ns,1mm = 39.37mil;

  (2) 時鐘源到達外部器件的最大、最小時鐘偏斜Tclk2;

  (3) 時鐘源到達FPGA的最大、最小時鐘偏斜Tclk1;

  (4) 外部器件的建立時間Tsu和保持時間Th;

  當外部器件時鐘為FPGA提供的時候,Tclk1和Tclk2即合成Tshew,如圖1.8所示:

  08.JPG

  圖1.8  FPGA提供時鐘模型

  1.5  使用范圍

  通過作者使用總結情況,IO口時序約束主要使用在以下情況:

  1.         數據交換頻率較高

  由于IO時序約束一般計算值都是在幾納秒,當FPGA和外部數據交換頻率較低,如FPGA操作640*480的TFT液晶進行刷屏,數據傳輸頻率僅僅24Mhz,一個數據時鐘都有41.666ns,完全不用約束都能滿足時序要求。但是當操作SDRAM運行到120M時候,由于一個數據變換周期才8ns,因此IO口的少量延時都會影響到SDRAM數據,因此這種情況下需要對輸入輸出進行完整的IO口時序約束,并且分析正確,才能消除數據傳輸不穩定過的情況。

  2.         代碼已經比較優化

  當數據交換頻率較高,但是時序約束還是不滿足時序要求的時候,我們都需要對代碼進行分析,好的時序都是設計出來的,不是約束出來的。如程序清單 1.1所示,首先hcount_r 和vcount_r 都為10位計數器,這樣的代碼TFT的三色輸出的端口就會有很大的延時,因為dat_act的膠合邏輯太多,輸出路徑太長導致。這種情況下應該不是首先做時序約束,應該修改代碼,盡量做到寄存器直接輸出。只有當代碼比較優化的情況,再做時序約束這樣才能得到較好的結果。

  程序清單 1.1  示例程序

  1 assign dat_act  =    ((hcount_r >= hdat_begin) && (hcount_r < hdat_end))

  2            && ((vcount_r >= vdat_begin) && (vcount_r < vdat_end));

  3 assign tft_r    =    (dat_act) ? {rgb16_dat[15:11], 3'b111} : 8'h00;

  4 assign tft_g    =    (dat_act) ? {rgb16_dat[10:5],  3'b111} : 8'h00;

  5 assign tft_b    =    (dat_act) ? {rgb16_dat[4:0],   3'b111} : 8'h00;

  1.6  總結

  本文檔主要是對FPGA的IO口時序約束進行相應的分析,并未做實際的使用分析,在后續文檔中將會結合軟件,以及實際案例對IO口時序約束進行詳細的使用介紹。最后附上一個Altera官方的IO時序約束分析例子,如圖1.9所示。

  09.JPG



更多信息可以來這里獲取==>>電子技術應用-AET<<

mmexport1621241704608.jpg

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线日韩精品视频| 亚洲永久免费视频| 国产日韩在线亚洲字幕中文| 欧美理论视频| 欧美激情精品久久久久久蜜臀 | 一本色道久久加勒比精品| 亚洲欧洲另类| 亚洲人成欧美中文字幕| 亚洲人成免费| 亚洲毛片在线看| 亚洲免费观看高清在线观看| 亚洲人成毛片在线播放| 亚洲卡通欧美制服中文| 亚洲日本欧美日韩高观看| 亚洲精品你懂的| 一区二区免费看| 亚洲少妇在线| 亚洲一区二区三区四区五区黄| 亚洲视频在线免费观看| 亚洲综合成人婷婷小说| 亚洲精品国产拍免费91在线| 亚洲女人天堂成人av在线| 亚洲免费一区二区| 欧美一激情一区二区三区| 欧美一区二区成人6969| 久久精品视频一| 亚洲福利视频一区二区| 亚洲精品你懂的| 亚洲一区二区三区欧美| 午夜精品一区二区在线观看 | 亚洲免费在线视频| 久久不射电影网| 美女999久久久精品视频| 欧美国产一区二区在线观看| 欧美激情综合在线| 国产精品国产三级国产aⅴ入口 | 亚洲久久成人| 亚洲视频欧洲视频| 欧美一区二区精品| 亚洲国产天堂久久国产91| 一区二区国产在线观看| 欧美一区二区三区精品| 玖玖视频精品| 欧美色网在线| 国产在线不卡精品| 亚洲精品国产日韩| 亚洲综合三区| 亚洲三级电影在线观看| 亚洲专区在线视频| 久久久久一本一区二区青青蜜月| 欧美成年人视频| 国产精品嫩草影院一区二区| 国产综合第一页| 99国产精品久久久久久久| 欧美亚洲日本国产| 99在线热播精品免费| 欧美在线视频播放| 欧美久久九九| 国产婷婷色一区二区三区四区| 亚洲国产91精品在线观看| 亚洲夜晚福利在线观看| 亚洲国产日韩精品| 性欧美超级视频| 欧美成人免费网| 国产精品一区二区三区观看| 亚洲高清在线精品| 午夜精品一区二区在线观看 | 久久国产毛片| 欧美日韩第一页| 国产综合视频| 亚洲一区二区三区高清| 亚洲精选久久| 亚洲欧美亚洲| 久久精品日产第一区二区三区| 欧美成人中文字幕| 国产视频欧美视频| 一区二区三区不卡视频在线观看 | 午夜欧美不卡精品aaaaa| 免费在线亚洲| 国产视频一区在线观看| 99天天综合性| 亚洲另类自拍| 久久综合伊人77777麻豆| 国产精品久久久久久久久免费 | 亚洲欧美一区二区视频| 一区电影在线观看| 美女图片一区二区| 国产一区二区精品久久99| 一区二区三区欧美日韩| 亚洲精品国精品久久99热一| 久久久精品2019中文字幕神马| 欧美视频四区| 亚洲精品国产精品乱码不99| 亚洲第一精品电影| 欧美亚洲在线观看| 欧美三级日韩三级国产三级| 亚洲国产欧美另类丝袜| 亚洲大片在线| 久久久久久久综合| 国产精品一区二区三区四区| av成人激情| 99精品国产在热久久| 欧美va天堂在线| 黄色资源网久久资源365| 亚洲欧美日韩网| 亚洲欧美中文另类| 国产精品国产福利国产秒拍| 日韩亚洲欧美中文三级| 一区二区三区av| 欧美日韩成人综合| 亚洲精品久久久久久久久久久久| 亚洲欧洲日韩女同| 欧美77777| 亚洲黄色一区二区三区| 亚洲精品欧美日韩专区| 免费观看成人www动漫视频| 黄色av成人| 91久久精品日日躁夜夜躁国产| 免费成人高清| 亚洲国产婷婷香蕉久久久久久99 | 欧美激情按摩| 亚洲国产欧美精品| 日韩一级免费观看| 欧美日韩精品欧美日韩精品 | 国产中文一区二区| 国产在线视频不卡二| 欧美一区二区三区喷汁尤物| 久久国产精品免费一区| 国内精品99| 亚洲电影av| 欧美成人免费一级人片100| 亚洲人成在线观看一区二区| 亚洲美女在线看| 欧美日韩精品二区| 中文日韩在线| 久久爱www久久做| 狠狠综合久久av一区二区小说| 亚洲国内在线| 欧美日韩精品一区二区三区四区| 在线视频欧美精品| 久久精品国产99| 在线免费观看一区二区三区| 亚洲精品永久免费| 欧美色欧美亚洲高清在线视频| 亚洲少妇自拍| 久久精品国产免费| 亚洲大片av| 亚洲天堂男人| 国产日韩欧美在线播放不卡| 亚洲福利视频专区| 欧美日韩一区在线观看视频| 亚洲专区在线视频| 噜噜噜噜噜久久久久久91 | 日韩亚洲国产精品| 午夜一区在线| 精品白丝av| 亚洲图片欧洲图片av| 国产日韩精品在线观看| 亚洲国产经典视频| 欧美理论电影在线播放| 亚洲免费一在线| 欧美不卡高清| 亚洲一区二区三区激情| 久久青青草综合| 夜夜嗨av一区二区三区网站四季av| 亚洲免费影视| 在线观看国产欧美| 亚洲欧美激情四射在线日| 国内视频精品| 在线亚洲一区| 国产主播精品| 国产精品99久久久久久有的能看| 国产亚洲综合在线| 在线一区视频| 一区在线视频观看| 亚洲欧美日韩综合aⅴ视频| 在线精品一区| 欧美一级一区| 亚洲国产精品久久人人爱蜜臀| 午夜精品在线视频| 亚洲激情国产精品| 久久精品国产99| 亚洲最新视频在线| 乱中年女人伦av一区二区| 亚洲视频二区| 欧美国产乱视频| 欧美专区第一页| 欧美午夜一区二区福利视频| 亚洲清纯自拍| 国产区日韩欧美| 亚洲一区二区三区涩| 在线观看福利一区| 亚洲自拍偷拍一区| 亚洲国产一区二区三区在线播| 欧美影院视频| 一区二区国产日产| 欧美激情一区二区久久久| 久久国产精品黑丝| 国产精品夜夜夜一区二区三区尤| 日韩视频在线观看|