找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3249|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

讀SRAM時(shí)序約束分析

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:105323 發(fā)表于 2016-2-23 03:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
讀SRAM時(shí)序約束分析      SRAM使用的是ISSI的61LV5128,8位寬,19條地址線(xiàn)。FPGA內(nèi)部有一個(gè)地址產(chǎn)生計(jì)數(shù)單元,因此數(shù)據(jù)讀操作時(shí)輸出管腳的時(shí)序起點(diǎn)就是這些地址產(chǎn)生單元。因?yàn)橄M焖僮xSRAM,所以狀態(tài)機(jī)代碼讀SRAM是第一個(gè)時(shí)鐘周期送地址(SRAM的OE#信號(hào)始終接地),第二個(gè)時(shí)鐘周期讀數(shù)據(jù)。系統(tǒng)時(shí)鐘使用的是50MHz(20ns),SRAM的標(biāo)稱(chēng)讀寫(xiě)速度可以達(dá)到8ns。感覺(jué)上20ns操作一個(gè)8ns的SRAM似乎很可行。
  
  
點(diǎn)擊看原圖
    上面SRAM的讀時(shí)序中,tRC=8ns,也就是說(shuō)地址穩(wěn)定后最多等待8ns數(shù)據(jù)總線(xiàn)上的數(shù)據(jù)是有效的(上面的說(shuō)明只是相對(duì)于SRAM管腳而言,不考慮其它條件)。那么在地址穩(wěn)定后的0—8ns之間的數(shù)據(jù)可能是有效的也可能是無(wú)效的我們無(wú)從得知(也許不到8ns數(shù)據(jù)就已經(jīng)有效了,可以說(shuō)8ns是一個(gè)很保守的讀取時(shí)間),但是8ns以后一直到數(shù)據(jù)地址發(fā)生變化的tOHA時(shí)間內(nèi)的數(shù)據(jù)一定是穩(wěn)定的。
    上面羅嗦了一大堆,下面步入正題。我們要計(jì)算FPGA和SRAM的數(shù)據(jù)總線(xiàn)接口上的input delay值,按照公式:Input max/min delay = 外部器件的max/min Tco + 數(shù)據(jù)的PCB延時(shí) – PCB時(shí)鐘偏斜。
    我們先計(jì)算一下地址總線(xiàn)最終穩(wěn)定在SRAM輸入管腳的時(shí)間,應(yīng)該是FPGA內(nèi)部時(shí)鐘的launch edge開(kāi)始到FPGA輸出管腳的延時(shí)加上地址總線(xiàn)在PCB上從FPGA管腳到SRAM管腳的延時(shí)。前者的值為5.546ns—9.315ns(由FPGA時(shí)序分析得到,不包括launch edge 的clock network delay),后者的值為0.081ns—0.270ns(由PCB走線(xiàn)長(zhǎng)度換算得到)。那么地址總線(xiàn)最終穩(wěn)定在SRAM輸入管腳的時(shí)間max=9.585ns,min=5.627ns。
    其次,我們可以從SRAM的datasheet查到(也就是上面的時(shí)序圖的tRC)地址穩(wěn)定后Tco=8ns數(shù)據(jù)穩(wěn)定在SRAM數(shù)據(jù)總線(xiàn)的輸出管腳上。數(shù)據(jù)總線(xiàn)從SRAM管腳到達(dá)FPGA輸入管腳的PCB延時(shí)為0.085ns—0.220ns。
    從上面的一堆數(shù)據(jù)里,我們需要理出一條思路。首先需要對(duì)這個(gè)時(shí)序進(jìn)行建模,和FPGA內(nèi)部的寄存器到寄存器的路徑和類(lèi)似,這個(gè)時(shí)序模型也是從FPGA內(nèi)部寄存器(輸出管腳)到FPGA內(nèi)部寄存器(輸入管腳),不同的是這個(gè)寄存器到寄存器間的路徑不僅在FPGA內(nèi)部,而是先從寄存器的輸出端到FPGA的輸出管腳,再?gòu)腜CB走線(xiàn)到外部器件SRAM的輸入管腳,然后經(jīng)過(guò)了SRAM內(nèi)部的Tco時(shí)間后,又從SRAM的輸出管腳經(jīng)PCB走線(xiàn)達(dá)到FPGA的輸入管腳,這個(gè)輸入管腳還需要有一些邏輯走線(xiàn)后才達(dá)到FPGA內(nèi)部寄存器的輸入端。整個(gè)模型就是這樣,下面看這個(gè)輸入管腳的Input delay如何取值。大體的這個(gè)路徑如下圖,也可以簡(jiǎn)單的把兩個(gè)寄存器之間的路徑理解為FPGA內(nèi)部的一個(gè)大的組合邏輯路徑。
  
    根據(jù)Input delay的定義,加上我們這個(gè)模型的特殊性,我個(gè)人認(rèn)為input delay的路徑應(yīng)該是從CLK的launch edge開(kāi)始一直到FPGA的DATA總線(xiàn)的輸入端口。那么所有的路徑延時(shí)值在前面都給出了。最后計(jì)算得到input max delay = 17.765,input min delay = 13.731。
    無(wú)疑,上面得出的input delay參數(shù)都有些偏高了(由于該工程使用器件為Altera MAX ii EPM570,內(nèi)部資源有限速度也無(wú)法做得太高,加之工程的其它控制模塊也相對(duì)有些復(fù)雜,所以這對(duì)于該工程在20ns內(nèi)操作8ns的SRAM帶來(lái)了一定的挑戰(zhàn)。),下面進(jìn)行時(shí)序分析即建立時(shí)間和保持時(shí)間余量的計(jì)算。
    Data Arrival Time = Launch Edge + Clock Network Delay + Input Maximum Delay of Pin + Pin-to-Register Delay = 0+3.681ns+17.765ns+ Pin-to-Register Delay = 21.446ns + Pin-to-Register Delay
    Data Required Time = Latch Edge + Clock Network Delay to Destination Register - utSU = 20ns + 3.681ns – 0.333ns = 22.348ns
    Clock Setup Slack = Time Data Required - Time Data Arrival Time = 22.348ns– (21.446ns + Pin-to-Register Delay) = 0.902ns - Pin-to-Register Delay
    若滿(mǎn)足時(shí)序要求,則:0.902ns - Pin-to-Register Delay > 0 即Pin-to-Register Delay < 0.902ns
    Data Arrival Time = Launch Edge + Clock Network Delay +Input Minimum Delay of Pin Pin-to-Register Delay = 0+3.681ns+13.731ns+ Pin-to-Register Delay = 17.412ns+ Pin-to-Register Delay
    Data Required Time = Latch Edge + Clock Network Delay to Destination Register + utH = 0+3.681ns+0.221ns = 3.901ns
    Clock Hold Slack = Time Data Arrival - Time Data Required Time = 17.412ns+ Pin-to-Register Delay – 3.901ns = 13.511ns + Pin-to-Register Delay
    若滿(mǎn)足時(shí)序要求,則:13.511ns + Pin-to-Register Delay > 0
    Pin-to-Register Delay 時(shí)間從時(shí)序報(bào)告里得出在4.711ns—6.105ns范圍內(nèi)。那么建立時(shí)間余量顯然不滿(mǎn)足,建立時(shí)間時(shí)序違規(guī)。而保持時(shí)間則不會(huì)違規(guī)。
    雖然這個(gè)工程如此這般分析下來(lái),似乎在這個(gè)工程條件下用50MHz的速率來(lái)讀存取時(shí)間為8ns的SRAM是不可行的。但是在我初步調(diào)試這個(gè)工程的時(shí)候,沒(méi)有進(jìn)行時(shí)序約束和時(shí)序分析的情況下就進(jìn)行了板級(jí)調(diào)試,而且調(diào)試的最終結(jié)果是正確的,讀寫(xiě)SRAM的操作好像沒(méi)有出現(xiàn)預(yù)想之外的問(wèn)題。這讓我很是納悶,為什么理論上進(jìn)行靜態(tài)時(shí)序分析不可行的時(shí)序最后卻通過(guò)了板級(jí)調(diào)試了呢?思考了很久,歸納了以下幾種可能性:
    1,首先不排除上文里時(shí)序分析的方法有誤,很期待各位高手指點(diǎn);
    2,時(shí)序分析的有些太苛刻了,可能有些地方都是想到了最壞的情況(當(dāng)然這是必要的,有些時(shí)序違規(guī)不是一天兩天能出現(xiàn)的,甚至聽(tīng)說(shuō)過(guò)恩年出現(xiàn)一次的問(wèn)題,這是最讓人郁悶的事,記得我們部門(mén)里的機(jī)器在實(shí)驗(yàn)過(guò)程中出現(xiàn)了一點(diǎn)問(wèn)題立刻大群人馬圍坐分析,畢竟我們搞的都是~~不是一般的馬虎不得的東西呵呵);
    3,有些違規(guī)最嚴(yán)重的路徑可能是地址的高位,因?yàn)槲覀儾僮鞯臅r(shí)候都是遞增地址讀數(shù)據(jù)的,高位地址變化周期長(zhǎng),它的時(shí)序違規(guī)表現(xiàn)的不是那么明顯;
    4,還真有那么一次,發(fā)現(xiàn)一個(gè)從SRAM讀出的很小塊的顯示圖片區(qū)錯(cuò)誤了,不排除是讀時(shí)序問(wèn)題造成的;
    5,SRAM標(biāo)稱(chēng)的8ns是最大的等待時(shí)間,或許和開(kāi)篇提到的一樣,SRAM實(shí)際上數(shù)據(jù)有效等待時(shí)間不需要那么長(zhǎng),也就是上面分析中外部器件的Tco減小了。
    這是我能想到的可能的情況,也許還有別的問(wèn)題,也期待各位提出自己的一些看法。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表