国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

零基礎學FPGA (二十七)必會! 從靜態時序分析到SDRAM時序收斂(下篇)

發布時間:2015-5-21 16:47    發布者:wp1981
關鍵詞: SDRAM , 時序收斂 , FPGA , 小墨同學
作者:小墨同學

七、SDRAM工作時鐘相位偏移計算

        從上篇文章中我們知道,我們的數據是要經過一定的延時才會到達目標器件的,這個延時也就是相對于源寄存器的時鐘發射沿的時間延時,數據在源寄存器時鐘的上升沿到來時輸出,經過FPGA的走線,PCB走線等,到達目標寄存器的數據端口時會有一定的延時,而這個數據要想被目標器件的目的寄存器鎖存,那么,目的寄存器的鎖存時鐘應該盡量在數據的有效窗口內才能確保數據被捕獲成功。所謂數據的有效窗口,就是數據在兩次變化之間的中間部分,也是數據最穩定的部分。

      所以,要想將數據正確捕獲,我們的SDRAM工作時鐘必須相對于源時鐘有一定的相位偏移,這個相位偏移是我們可以在PLL模塊中手動設置的,這個值應該取多少?下面我們就來計算這個值。

      這個相移值的計算,需要借助四個參數,即讀周期最大滯后、超前時間,寫周期最大超前、滯后時間,下面依依來講



     1、讀周期滯后時間

      所謂讀周期滯后時間就是,SDRAM的工作時鐘相對于FPGA的工作時鐘慢了多少時間。我用一個圖來解釋



下面我來解釋一下這個圖,既然是讀周期,那么就是在SDRAM的工作時鐘下發出數據,在FPGA的工作時鐘下捕獲數據,由上圖可以看出,讀周期的滯后時間就是圖上的兩個參數相減對吧,在理論篇里我講過,SDRAM在發出一個數據之后,數據會保持一段時間的穩定,這個參數就是Toh,這個參數可以查到。

      數據發出后,需要被FPGA的工作時鐘捕獲,但是捕獲的時候需要考慮保持時間不能違規,因此,Th這個參數就是FPGA的寄存器保持時間,這個參數我們需要從時序報告里查,等會我們再說,那么我們可以計算出

     讀周期最大滯后時間  =  Toh  -  FPGA的保持時間Th


2、讀周期超前時間

      所謂超前時間,就是SDRAM的工作時鐘相對于FPGA的工作時鐘快了多少




        看到這里,有些人可能就不明白了,SDRAM的時鐘比FPGA的時鐘相位快了還怎么捕獲數據咧?其實,我所說的快慢,只是說時鐘的上升沿誰在前而已,我們完全可以這么理解,就是數據是在SDRAM時鐘的前一個時鐘沿發出的,

        上面的原圖是錯的,即SDRAM發出數據后,要經過Thz的時間數據才會有效,這個時間也是可以查到的,即我們前面理論篇所講的參數那個參數TOH,注意這個TOH和上面的那個Toh是不一樣的。然后是FPGA的建立時間,我們從時序報告里查。那么,可以得到

    讀周期最大超前時間 =  Tclk  - (TOH + FPGA的建立時間Tsu)

3、寫周期滯后時間



         原圖也是錯誤的,既然是寫周期,那么就是在FPGA的工作時鐘下發數據,在SDRAM的工作時鐘下捕獲數據,那么源寄存器的工作時鐘上升沿到來時,數據發送,要等一段時間后,數據才會有效,這段時間應該是FPGA寄存器的輸出延時時間,即圖上的Tcomax,這個參數我們需要到時序報告里找,Tss當然就是SDRAM的建立時間了,所以我們可以得到



       寫周期滯后時間  =  Tclk  - (Tcomax   +  SDRAM的建立時間Tsu)

4、  寫周期超前時間



這個圖可能剛開始理解起來不太好看,我用紅筆標出來了,也就是說,這里的Tcomin參數,是當下的時鐘沿,到下一個數據有效的時間,而當前的數據,是上一個時鐘沿發出的。當然,Toh即SDRAM鎖存數據的保持時間了,因此我們得到



    寫周期最大超前時間 =  Tcomin  -   Toh

5、參數計算

     下面我們來找這些參數,將上篇文章中的數據添加約束之后,執行一次全編譯,當然這個時候肯定是時序不收斂,不過沒關系,時序收不收斂跟我們的PFGA建立保持時間以及數據輸出時間是沒什么關系的。

     我們先來看建立保持時間,由于建立保持時間是讀周期的參數,因此,我們查看讀周期的路徑時序報告,也就是sdram_data路徑



     我們右鍵,報告最糟糕路徑得到下圖



書上說的是,從左上方的數據到達路徑中可以得出

           數據的建立時間  17.602 - 7.291 - 3.279  =7.032ns

           即準建立時間 - 發射沿相對時間 - 時鐘網絡延時的時間,其實單看這個公式是不好懂的,小墨當時也不明白為什么建立時間是這么算的呢?后來我看了一下右面的圖,才漸漸明白過來,其實看右面的圖更容易理解一點



       看了這個圖我們就會明白,當17.602 減去那兩項之后,剩下的就是我們設置的最大輸入延時時間以及數據進入FPGA的走線延時時間,為什么這段時間是建立時間呢?我們之前不是定義數據不是應該在建立時間內保持穩定嗎?但是這段時間內,數據還沒到啊。對,沒錯,好像是這樣的,數據沒到,為什么沒到呢?是因為我們的數據延時太長,以至于我們的捕獲時鐘在當下的時鐘沿捕獲不到,因此,這就涉及到了多周期路徑約束的知識,我們可以讓捕獲周期為2 ,也就是說,等到下一鎖存沿到來的時候再把數據捕獲就好了。

      我們再來看一下這兩段時間,第一段時間,也就是時鐘發射沿相對時間加上時鐘網絡延時的時間,其實這個時間就是SDRAM發出數據,到數據出現在數據總線上的時間



          再回過頭去看一下我們分析讀周期之后時間的時候,數據出現在數據總線上之后是不是直接被鎖存沿鎖存了?這樣說來就是沒有加上數據在PCB走線的延時,因此上圖只是一個理想過程,即沒有考慮PCB走線的延時,而我們的時序分析工具確實將其考慮在內了,所以,我們的FPGA建立時間,除了包括數據保持穩定的時間外,還應加上這段走線延時的時間,這也就解釋了,為什么我們的建立時間是那么算的

       這個過程是我自己的理解,不知道是不是準確,覺得有問題的朋友請積極指正,謝謝

同理,我們用同樣的方法

      算出保持時間為 4.122ns

      下面再來看FPGA的輸出時間,這個過程就要看時序報告中的輸出路徑了,按照同樣的方法,我們找到輸出路徑的建立時間的時序報告



我們可以看到,這個很直觀,沒有像上面那個那么復雜

                               最大輸出延時為6.161ns,

同理,查看輸出路徑保持時間的時序報告



這個也比較直觀,用14.623  減去 10 就好了,為什么要減10呢?再來看這個圖



       頭一個發射沿為0時刻的話,我們需要等一個時鐘周期后發射第二個沿,也即這里的數據到達時間14.623,是下一個數據的到達時間,減去10,不就是我們的最小輸出時間了么。

      所以,我們的最小輸出時間為4.623ns
  
好了,所有的參數都有了,下面計算

讀周期最大滯后時間  =  Toh  -  FPGA的保持時間Th  = 2.7 - 4.122 =  - 1.422ns

讀周期最大超前時間 =  Tclk  - (TOH + FPGA的建立時間Tsu)  = 10 - (5.4 +7.032)=-2.432

寫周期最大滯后時間  =  Tclk  - (Tcomax   +  SDRAM的建立時間Tsu)

                              = 10 - (6.161 +1.5)  =  2.339ns

寫周期最大超前時間 =  Tcomin  -   Toh  =  4.623  - 0.8  = 3.823ns


這樣,我們根據公式,取最小滯后時間為 - 1.422  最小超前時間為 -2.423

取二者平均值得 (-1.422 - 2.423 )/ 2 =  - 1.9225


        然后,還沒有完.... 時序分析這一塊就是這么麻煩...
       我們現在考慮的,僅僅是考慮的是在SDRAM端口的時鐘延時,也就是說還沒有考慮SDRAM時鐘從PLL輸出,經過FPGA內部走線,和外部PCB的延時,我們想一下,是不是有一個這樣的關系

       就是,PLL的時鐘偏移 + 時鐘從PLL輸出在FPGA內部的延時  + 時鐘在外部PCB走線的延時  =  SDRAM 端口的時鐘延時  

       而我們要手動添加的,就是PLL的時鐘偏移值。再者,上篇文章我們對虛擬時鐘SDRAM_CLK進行約束的時候,我們對他就行約束為最大值為3ns對吧, 時鐘從PLL輸出在FPGA內部的延時就可以按我們所約束的最大值來計算,所以因此,我們計算

       PLL的時鐘 偏移值  =  -1.9225 - 3 - 0.1  =  - 5.0225

       換算成正值為   10 - 5.0225  =    4.9775

到此為止,我們的相位偏移才計算完畢,我們將它送給PLL



八、多周期約束

對其進行全編譯,查看時序報告,發現時序仍然不收斂



        查看錯誤時序報告可以看到,我們沒有做多周期約束,至于為什么,上面已經說過了,這里直接來做

       我們設置延時周期數為2,即在第二個時鐘周期進行數據鎖存,因為是輸入路徑時序違規,所以我們約束的多周期路徑就是從我們的虛擬時鐘,也就是SDRAM的工作時鐘,到我們FPGA的工作時鐘clk1



再執行一次全編譯,所有的路徑達到時序收斂



      當然,除了這些,我們還需要一些時序上的優化,以及一些微調,要想達到系統的真正穩定,光做這些還是不夠的,小墨也是在學習當中,更深入的探究我只能說對于現在的我來說是力不從心了,有很多經驗都是我們后續在不斷地摸索中獲得的,急也沒用,還是安心做好當下,一步一個腳印,學無止境,我們永遠不能說自己學會了,只能說熟悉了,慢慢來吧~大家還需加油!

     下面是我調好的板級測試圖,下面也會附有源代碼,不過下到你的板子上不一定跑的起來哦,大家還是自己親手算算這些參數,等到板子真正跑起來的時候,你才會感受到那種成功的喜悅~



    好了,為期4篇的SDRAM就寫到這吧,謝謝大家的支持~

以后小墨同學的文章將北京至芯科技官方技術論壇同時更新,至芯科技的官方技術論壇也有很多的資料供大家下載,里面也有小墨的專題板塊,希望廣大網友和愛好者的大力支持~
http://www.fpgaw.com/
小墨同學《零基礎學FPGA》學習專版  一個大三學生學習之路的真實記錄
http://www.fpgaw.com/thread-78527-1-1.html
下面是至芯科技官方網站,夏宇聞教授和那里的老師都超好的~有意愿接受FPGA培訓的可以找工作人員咨詢
http://www.zxopen.com/
       以后小墨同學的教程會跟這款開發板配套,想跟小墨同學一起學習,一起進步的的可以考慮一下購買一塊開發板,畢竟學習要舍得投資嘛,下面是開發板淘寶鏈接
http://item.taobao.com/item.htm? ... &abbucket=13#detail

本文地址:http://www.qingdxww.cn/thread-149642-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • PIC18-Q71系列MCU概述
  • 無線充電基礎知識及應用培訓教程3
  • 了解一下Microchip強大的PIC18-Q24 MCU系列
  • 安靜高效的電機控制——這才是正確的方向!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎成人精品在永久免费 | 亚洲婷婷第一狠人综合精品 | 国产在线观看网站 | 在线中文字幕视频 | 国产精品高清视亚洲一区二区 | 动漫在线观看免费肉肉 | 中文字幕欧美日韩一 | 99热这里只有精品首页精品 | 热re91久久精品国产91热 | 99久久精品免费 | 91精品国产福利尤物免费 | 最近免费观看高清韩国日本大全 | 三级毛片免费观看 | 最近2019中文字幕最新 | 国产精品亚洲一区二区麻豆 | 久久这里只有精品任你色 | 福利久久 | 婷婷激情综合五月天 | 成人亚洲欧美日韩在线观看 | 欧美亚洲国产片在线观看 | 久久影院午夜伦手机不四虎卡 | 在线观看视频91 | 国产日韩精品一区在线观看播放 | 99re这里只有 | 黄网址在线永久免费观看 | 四虎影院永久在线 | 九九亚洲精品自拍 | 亚洲韩精品欧美一区二区三区 | av免费网站在线观看 | 在线看片91 | 日韩欧美成人免费中文字幕 | 黄色免费的网站 | 青青草久久伊人 | 色婷婷视频在线观看 | 色亚州 | 国产在线观看麻豆91精品免费 | 久久观看午夜精品 | 资源在线www天堂 | 五月天亚洲婷婷 | 青青草原综合网 | 亚洲综合欧美在线 |