亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的高速ZBT控制器設(shè)計

        2022-09-28 02:34:22劉百超
        關(guān)鍵詞:時序延時時鐘

        劉百超

        (信陽師范學(xué)院 物理電子工程學(xué)院,河南 信陽 464000)

        隨著現(xiàn)代科技的發(fā)展,人們的要求也越來越高,如看視頻的清晰度、監(jiān)控的實(shí)施性等,這些都可以通過數(shù)字化來實(shí)現(xiàn),這些數(shù)字化信息產(chǎn)生了大量的數(shù)據(jù),如是對數(shù)據(jù)的存儲速度要求越來越高[1]。高速存儲成為了研究熱點(diǎn)[2,3]。目前,快速存儲方案可以分為兩個大類,分別是算法級方案和電路系統(tǒng)級方案,而后者無疑是最快速的方案。電路系統(tǒng)級方案又可以分為板級方案、ASIC(專用集成電路)方案和FPGA方案。其中,F(xiàn)PGA方案具有開發(fā)成本低、靈活性高、投放市場快的優(yōu)點(diǎn),因而受到更多研究者的青睞。

        FPGA(Field-Programmable Gate Array)是現(xiàn)場可編程門陣列的英文簡稱,它內(nèi)部包含了大量的可編程資源,主要包括查找表LUT、寄存器、存儲器、硬件乘法器、PLL等。FPGA芯片內(nèi)部的可編程資源可以實(shí)現(xiàn)并行工作,因而具有極其強(qiáng)大的處理能力,其運(yùn)算能力可達(dá)傳統(tǒng)CPU的數(shù)百倍甚至更高[4]。也正因此,在許多信號處理平臺中,F(xiàn)PGA承擔(dān)著運(yùn)算與調(diào)度核心的功能,其主要開發(fā)手段則依賴于硬件描述語言(以下簡稱HDL)[5]。由于FPGA片內(nèi)存儲資源有限,必須為其配置大容量外存儲器[6]。在眾多類型的外部存儲器中,靜態(tài)存儲器SRAM具有功耗低、速度快、無需動態(tài)刷新等優(yōu)點(diǎn),因而被經(jīng)常用于拓展FGPA存儲空間。近十年來,許多研發(fā)人員圍繞這個問題開展了大量的研發(fā)工作,取得了一些突破性進(jìn)展。其中,比較有影響的代表性工作有兩個:第一個是在2018年, Rodríguez-Olivares等利用一種SRAM(NAND Flash Memory), 在RAID 6系統(tǒng)框架下將讀寫速度提高到58.24MHz[7];第二個是在2020年,Muhammad Irfan等利用三元內(nèi)容可編址SRAM,與FGPA芯片組合,實(shí)現(xiàn)一種可重構(gòu)低功耗FPGA存儲器擴(kuò)展系統(tǒng),將讀寫速度提高到128.76MHz[8]。

        讀寫速度的瓶頸在于SRAM的總線架構(gòu)。為了進(jìn)一步提高FPGA讀寫SRAM的速度,一個最重要的手段就是采用高速SRAM,而ZBT(Zero-Bus-Turnaround) SRAM則是高速SRAM的高性能產(chǎn)品。它消除了傳統(tǒng)SRAM的總線等待周期,在讀寫狀態(tài)下總線利用率均可以達(dá)到100%。目前,ZBT SRAM的典型存儲容量可達(dá)72Mbit,訪問速度最高可達(dá)250MHz。如果能夠?qū)PGA與ZBT有效組織起來,無疑是實(shí)現(xiàn)高速存儲的有效途徑。但迄今為止,沒有發(fā)現(xiàn)研發(fā)人員開展這項(xiàng)研究的成果。

        本文旨在開展這項(xiàng)研究,設(shè)計一款基于FPGA的高速ZBT控制器,實(shí)現(xiàn)大數(shù)據(jù)的高速存儲。該控制器從4個方面來確保ZBT讀寫的時序穩(wěn)定度并提高工作頻率:(1)采用動態(tài)相位連續(xù)可調(diào)技術(shù)實(shí)時調(diào)整時鐘相位;(2)通過施加合理嚴(yán)密的時序約束確保充裕的建立保持時間;(3)通過FPGA的高級可編程輸入輸出延時器使各I/O端口延時基本一致;(4)插入多級流水線以改善最高工作頻率。通過4個方面的設(shè)計,增大數(shù)據(jù)吞吐量,實(shí)現(xiàn)了數(shù)據(jù)的穩(wěn)定讀寫;FPGA的輸入輸出延時使得IOB輸入輸出一致;多級流水線策略提高了時序性能。從而實(shí)現(xiàn)了基于FPGA的高速存儲,使得FPGA+ZBT SRAM存儲讀寫速度可以達(dá)到200MHz以上。該設(shè)計已在硬件電路中成功驗(yàn)證,并通過高低溫環(huán)境試驗(yàn)驗(yàn)證,證實(shí)了設(shè)計的正確性和有效性。

        1 系統(tǒng)設(shè)計

        系統(tǒng)針對使用FPGA+ZBT SRAM或其它同類存儲器的信號處理系統(tǒng),通過多種策略的綜合應(yīng)用,解決了超高速頻率下FPGA讀寫訪問的時序不穩(wěn)定、HDL代碼修改帶來的時序參數(shù)變化以及產(chǎn)品高低溫環(huán)境下的時序變化導(dǎo)致讀寫錯誤等技術(shù)難題。經(jīng)在實(shí)際電路中驗(yàn)證,可以達(dá)到200MHz以上的數(shù)據(jù)穩(wěn)定讀寫[9]。

        本系統(tǒng)采用可綜合HDL語言為主要設(shè)計手段,可適用于目前市場上的所有主流FPGA器件,如Xilinx公司的Virtex6、7、Kintex7系列、Altera公司的StratixII~V系列等。本設(shè)計整體框圖如圖1所示,其中虛框內(nèi)即為在FPGA器件內(nèi)實(shí)現(xiàn)的ZBT讀寫控制器,下方為2片ZBT SRAM芯片組成乒乓緩沖系統(tǒng),右方為ZBT讀寫控制器對外接口,其中讀端口與寫端口分開,可實(shí)現(xiàn)雙口RAM讀寫操作功能。

        圖1 ZBT SRAM讀寫控制器整體框圖

        該控制器的主要工作流程可概括如下:

        (1)系統(tǒng)上電后,產(chǎn)生全局復(fù)位信號,復(fù)位所有寄存器和狀態(tài)機(jī);

        (2)禁用ZBT SRAM輸出使能,置ZBT SRAM寫使能有效,初始化偽隨機(jī)數(shù)種子,并將偽隨機(jī)數(shù)產(chǎn)生器輸出數(shù)據(jù)連續(xù)寫入ZBT SRAM中的每一個地址;

        (3)禁用ZBT SRAM寫使能,并置ZBT SRAM輸出使能有效,開始回讀ZBT數(shù)據(jù),同時再次初始化偽隨機(jī)數(shù)種子,將每一個地址回讀得到的ZBT數(shù)據(jù)與偽隨機(jī)數(shù)產(chǎn)生器輸出數(shù)據(jù)比較;

        (4)如果二者比較數(shù)據(jù)不完全相同,證明讀寫ZBT SRAM中發(fā)生了時序違反情況進(jìn)而導(dǎo)致讀寫錯誤,由時鐘相位調(diào)整模塊對ZBT工作時鐘進(jìn)行相位調(diào)整,每次相位調(diào)整步進(jìn)約10~20度即可,步進(jìn)過大則難以保證找到最佳時序裕度位置,過小則會使相位調(diào)整耗費(fèi)過長時間才能找出最佳位置;

        (5)如果二者比較數(shù)據(jù)完全相同,證明上一輪ZBT讀寫時序正常,但仍不能保證當(dāng)前的時序余量已足以保證高低溫下的走線延時變化,因此還需要繼續(xù)進(jìn)行相位調(diào)整,并繼續(xù)測試讀寫是否有誤。在連續(xù)6次以上調(diào)整ZBT工作時鐘相位均讀寫無誤時,證實(shí)已經(jīng)找出覆蓋整個合法時序裕量窗口的位置,再將輸出時鐘相位反相調(diào)整3次,即可使時鐘沿恰好出現(xiàn)在總線及控制信號變化的中間位置,從而得到最大的建立保持時間裕量。

        (6)在時鐘相位調(diào)整完畢后,即可開始正常的ZBT讀寫操作。由于采用了2片ZBT芯片,因而可以組成乒乓緩沖系統(tǒng),對FPGA的其余模塊相當(dāng)于實(shí)現(xiàn)了雙口RAM操作功能,對任意地址的讀操作和寫操作可以同時完成,吞吐量改善了一倍。

        2 技術(shù)方案

        系統(tǒng)依據(jù)ZBT的特征進(jìn)行設(shè)計。ZBT的主要特點(diǎn)是其數(shù)據(jù)總線相對地址總線和讀寫控制信號有2個時鐘周期的延遲,即在進(jìn)入數(shù)據(jù)寫入時,先給出寫地址和寫使能,然后在經(jīng)過2個時鐘周期后,再給出該地址的寫數(shù)據(jù)完成數(shù)據(jù)寫入。同樣地,如果要進(jìn)行數(shù)據(jù)讀操作,在給出讀地址和讀使能信號后,也要再經(jīng)過2個時鐘周期后才能從數(shù)據(jù)總線上得到數(shù)據(jù)??傮w上,ZBT SRAM的基本讀寫時序如圖2所示。以下介紹各內(nèi)部模塊設(shè)計技術(shù)。

        圖2 ZBT SRAM讀寫基本時序圖

        2.1 時鐘設(shè)計

        時鐘是現(xiàn)代高速數(shù)字電路的核心,由于本設(shè)計的工作速度很高,而FPGA由于先天架構(gòu)的特點(diǎn),無法實(shí)現(xiàn)各I/O的精準(zhǔn)延時處理,甚至同一個I/O端口信號在不同工作溫度下的延時特性也常常會有5ns以上的延時變化。傳統(tǒng)的ZBT SRAM控制器由于工作頻率較低(通常不超過100MHz),器件I/O延時特性的變化尚不足以違反建立保持時間時序要求,然而對于超過100MHz甚至200MHz以上的超高頻率應(yīng)用,I/O端口延時特性變化將會帶來顯著的時序影響。

        本設(shè)計共使用了3個獨(dú)立的時鐘管理器,每一個時鐘管理器內(nèi)部均包括一個鎖相環(huán)電路PLL,通過反饋通路實(shí)現(xiàn)輸出時鐘與輸入時鐘的頻率相位嚴(yán)格對齊,整個時鐘樹如3圖所示:

        圖3 ZBT SRAM讀寫控制器時鐘設(shè)計策略

        可以看到,外部輸入時鐘經(jīng)過FPGA專用全局時鐘引腳進(jìn)入時鐘管理器1,并輸出4路時鐘信號,其中1路直接輸出供FPGA內(nèi)部邏輯使用,還有1路用于實(shí)現(xiàn)PLL時鐘反饋,剩余2路時鐘則各自經(jīng)過一個獨(dú)立的時鐘管理器(圖3中的時鐘管理器2和3)然后輸出至FPGA引腳,并經(jīng)過PCB走線送至2片ZBT的CLK端。但是與時鐘管理器1不同,時鐘管理器2和3的輸出相位均具有相位調(diào)整功能,即可以通過控制端口使其輸出時鐘相對輸入時鐘的相位超前或滯后,該技術(shù)稱作動態(tài)相移控制,可以實(shí)現(xiàn)輸出時鐘的任意相位調(diào)整。本設(shè)計正是通過該功能達(dá)到了無論與ZBT SRAM接口的控制及總線信號何時變化,總可以通過調(diào)整時鐘輸出相位實(shí)現(xiàn)穩(wěn)定的數(shù)據(jù)讀寫功能。

        2.2 時鐘相位調(diào)整模塊

        該模塊用于調(diào)整時鐘管理器2和3的輸出時鐘相位,對外接口信號分別是工作時鐘PSCLK、時鐘相位調(diào)整功能使能信號PSEN以及用于代表是減少還是增加相位步進(jìn)的PSINCDEC。目前主流FPGA器件的時鐘管理模塊動態(tài)相位調(diào)整功能的調(diào)整步進(jìn)可達(dá)其內(nèi)核PLL周期的1/56,而PLL周期一般在1ns左右,因此單次動態(tài)相位調(diào)整對應(yīng)的時間延遲可控制在20ps以下。如此高的相位調(diào)整精度已大大超過系統(tǒng)需要。因此在實(shí)際設(shè)計中,可以通過多次置PSEN信號有效的方式增加調(diào)整步進(jìn)至10~20度。

        2.3 復(fù)位設(shè)計

        時鐘和復(fù)位信號是FPGA設(shè)計中最為關(guān)鍵的兩個信號,復(fù)位信號本設(shè)計中用于系統(tǒng)上電時將所有寄存器和狀態(tài)機(jī)復(fù)位至確知狀態(tài)。由于復(fù)位信號來源于外部端口輸入,對FPGA內(nèi)部工作時鐘是一個典型的異步信號,因此必須對其進(jìn)行同步化處理。本設(shè)計通過級聯(lián)3級寄存器實(shí)現(xiàn)復(fù)位信號的同步化,然后經(jīng)過全局走線資源成為所有寄存器的復(fù)位信號,實(shí)現(xiàn)了同步復(fù)位、同步釋放的效果。

        2.4 偽隨機(jī)數(shù)產(chǎn)生器及讀寫測試模塊

        偽隨機(jī)數(shù)產(chǎn)生器用于產(chǎn)生ZBT讀寫測試數(shù)據(jù)。由于ZBT存儲器容量很大,采用事先在FPGA內(nèi)部存儲測試向量的做法并不可行,因此采用了基于M序列的偽隨機(jī)數(shù)發(fā)生器,僅使用32個寄存器及一系列反饋線,即可生成循環(huán)長度高度高達(dá)2Λ32-1的偽隨機(jī)數(shù),循環(huán)長度已超過目前市場上容量最大的ZBT芯片CY7C1470的存儲深度。此外,該產(chǎn)生器的隨機(jī)種子可以動態(tài)變化以得到更好的隨機(jī)特性。

        讀寫測試模塊則用于讀寫錯誤統(tǒng)計。在讀寫測試階段,每次開始寫ZBT芯片及回讀數(shù)據(jù)時,均需對隨機(jī)種子進(jìn)行初始化,然后開始連續(xù)地址讀寫測試,先寫入長度達(dá)2^21-1的偽隨機(jī)數(shù),然后再逐一回讀。只有當(dāng)全部寫入數(shù)據(jù)和全部回讀數(shù)據(jù)完全相同時才認(rèn)為當(dāng)前讀寫操作成功。并將測試結(jié)果(0代表無誤,1代表有錯誤)記錄至6位寬的向量err_array的最低位,同時err_array左移一位,該向量初始值為全1,因此只有在連續(xù)6次檢測到讀寫成功后,err_array變量才會變成零值,這代表已經(jīng)找出最佳讀寫時序窗口。然后,由主控狀態(tài)機(jī)控制時鐘相位調(diào)整模塊反相調(diào)整3個步進(jìn)即可置ZBT工作時鐘為最佳相位。在正常工作階段,偽隨機(jī)數(shù)產(chǎn)生器及讀寫測試模塊可處于禁用階段以降低動態(tài)功耗。

        2.5 ZBT讀接口控制器

        該控制器的主要功能是將外部模塊輸入的讀使能及讀地址進(jìn)行多級寄存,即插入多級流水線,同時將ZBT芯片輸出的數(shù)據(jù)寄存至FPGA工作時鐘域并向外部模塊輸出。

        該模塊的設(shè)計關(guān)鍵是必須考慮到FPGA實(shí)際物理引腳的輸入輸出走線延時。具體的主要延時路徑包括:ZBT讀地址及輸出使能信號從FPGA內(nèi)部至FPGA引腳處的輸出延時(典型值可達(dá)5~7ns,在不同引腳分布、FPGA占用資源及工作溫度等不同條件下略有差異),ZBT數(shù)據(jù)總線經(jīng)過FPGA輸入引腳進(jìn)入內(nèi)部寄存器的輸入延時(典型值約6~8ns,在不同引腳分布、FPGA占用資源及工作溫度等不同條件下略有差異)。

        此外,還必須要考慮到從FPGA引腳輸出地址總線數(shù)據(jù)到ZBT芯片通過自己的工作時鐘上升沿識別出該地址的時間,該時間的長短與地址總線數(shù)據(jù)變化時刻和ZBT芯片CLK信號時鐘沿之間的時間長度有關(guān),最長可接近1個時鐘周期,最短可能只有1ns左右。對于傳統(tǒng)的ZBT控制器設(shè)計策略,這一部分時間根本無法精確估計,然而,由于采用了時鐘相位自動動態(tài)調(diào)整策略,無論FPGA輸出引腳延時信息如何變化,總可以保證ZBT工作時鐘沿出現(xiàn)在地址及控制信號變化的中間位置,即二者相差半個時鐘周期。對200MHz工作頻率的ZBT芯片,該時間約為2.5ns。

        理想情況下,ZBT芯片在當(dāng)前時鐘沿檢測到讀地址和讀有效后,可在經(jīng)過1個時鐘周期+3ns后通過雙向數(shù)據(jù)總線輸出有效數(shù)據(jù)。因此,考慮到各種延時信息后,如果是在200MHz工作頻率下,從FPGA給出地址總線信息,到ZBT芯片送出數(shù)據(jù),至少需要經(jīng)過5+2.5+5+3=15.5ns時間,而該數(shù)據(jù)進(jìn)入FPGA內(nèi)部又至少需要6ns,因此,總體延時時間已經(jīng)高達(dá)21.5ns,超過了4個時鐘周期,也即FPGA需要經(jīng)過5個時鐘周期才能檢測到正確數(shù)據(jù)。而FPGA內(nèi)部為了提高工作頻率,還必須要對所有輸入輸出信號進(jìn)行寄存后再輸入輸出,最終,從ZBT讀寫控制器接收到外部模塊給出的ZBT讀地址開始,必須要等待1+5+1=7個時鐘周期后才能得到正確數(shù)據(jù)。其中第一個時鐘周期是由于寄存讀地址造成,中間5個時鐘周期是由于輸入輸出引腳延時造成,最后一個時鐘周期則是由于對輸入數(shù)據(jù)進(jìn)行寄存造成。需要說明的是,雖然該ZBT讀寫控制器從讀地址到輸出數(shù)據(jù)的延時長達(dá)7個時鐘周期,但該延時實(shí)為流水延時,并不會真正降低ZBT的讀寫效率,仍然可以實(shí)現(xiàn)100%狀態(tài)下的總線利用。

        2.6 ZBT寫接口控制器

        與ZBT讀接口控制器相比,寫接口控制器比較簡單,只需要把外部模塊輸入的寫地址、寫使能、寫數(shù)據(jù)經(jīng)寄存一級后再輸出至ZBT芯片即可。由于此前的ZBT讀寫測試功能已經(jīng)確保ZBT工作時鐘恰好出現(xiàn)在其所有輸入數(shù)據(jù)變化時刻的中間位置,因此不會帶來任何時序違反問題[10]。

        2.7 輸入輸出延時控制

        如前所述,F(xiàn)PGA的引腳延時不可事先預(yù)估。但是需要強(qiáng)調(diào)的是,在設(shè)計代碼基本定型及引腳綁定完成后,由于布局布線策略的效果已經(jīng)趨于固定,各引腳的輸入輸出延時信息也已經(jīng)基本穩(wěn)定,不會再發(fā)生顯著變化。此時如果某些總線或信號的延時信息與其它信號有明顯差異,則會使該信號的建立保持時序裕量大大減少,因此需要調(diào)整其延時分布,使所有信號延時信息盡可能一致[11][12]。

        許多傳統(tǒng)FPGA設(shè)計使用手動插入多級反相器來達(dá)到延時效果,然而這種方式不可避免會帶來一系列問題:一是延時效果無法精確控制且不穩(wěn)定,二是輸出信號的相位噪聲大大惡化。不僅如此,同樣的代碼在不同的綜合工具下優(yōu)化效果不同,還會導(dǎo)致不同的時序延時效果。因此,這種策略并不適合在高速場合下使用。

        為此,采用了FPGA中的高級可編程I/O資源IDELAYCTRL和IODEALY,其中前者是后者的控制中樞,輸入工作時鐘可選200MHz或300MHz,后者則用于完成精確的輸入輸出延時調(diào)整,在200MHz下,延時單位步進(jìn)為78ps,在300MHz下,延時單位步進(jìn)可達(dá)52ps。更重要的是,IODEALY是專用于IOB引腳的輸入輸出延時控制模塊,它不占用任何寄存器及LUT資源,也不會降低輸出信號質(zhì)量,高低溫上的延時參數(shù)保持不變,十分適合在高速高頻場合下采用。而IDELAYCTRL工作時鐘為200MHz,IODELAY最大延時量為32個單位步進(jìn),因此最大延時量為2.5 ns,但事實(shí)上,還要考慮到接入IODELAY帶來的額外走線延時(約1~2ns),因此實(shí)際上IODELAY延時量可超過4 ns,這樣的延時控制已足以補(bǔ)償由于布局布線造成的IOB輸入輸出不一致性[13]。

        2.8 主狀態(tài)機(jī)控制

        該模塊是所有其余子模塊的控制中樞,它采用了一個復(fù)雜的同步狀態(tài)機(jī)實(shí)現(xiàn),共分成以下10個狀態(tài):

        IDLE:系統(tǒng)復(fù)位及上電后的初始狀態(tài),解除復(fù)位后即自動跳至INIT_REG狀態(tài);

        INIT_REG:該狀態(tài)用于初始化偽隨機(jī)數(shù)產(chǎn)生種子,初始化完成后即跳至WRITE_ZBT狀態(tài);

        WRITE_ZBT:用于完成對ZBT所有地址的偽隨機(jī)數(shù)據(jù)寫入,寫入完畢后跳至CLR_CNT狀態(tài);

        CLR_CNT:用于清除ZBT讀寫計數(shù)器值,為回讀作準(zhǔn)備,清零完成后跳至READBACK_ZBT狀態(tài),同時該狀態(tài)再次初始化偽隨機(jī)數(shù)產(chǎn)生種子;

        READBACK_ZBT:用于回讀所有地址的ZBT數(shù)據(jù),并與偽隨機(jī)數(shù)產(chǎn)生器的輸出數(shù)據(jù)進(jìn)行比較,統(tǒng)計是否完全一致,統(tǒng)計完成后進(jìn)入PS_MODIFY狀態(tài);

        PS_MODIFY:該狀態(tài)由時鐘相位調(diào)整模塊對時鐘管理器2和3的輸出時鐘相位進(jìn)行調(diào)整,每次相位調(diào)整步進(jìn)10~20度,然后跳轉(zhuǎn)至WAIT_PSDONE狀態(tài);

        WAIT_PSDONE:在該狀態(tài),等待PSDONE信號置高,以表明時鐘管理器2和3輸出時鐘相位調(diào)整已經(jīng)完畢,然后檢測最近6次的錯誤統(tǒng)計結(jié)果是否均無誤,若是則進(jìn)入SET_OPT_VALUE狀態(tài),否則轉(zhuǎn)至INIT_REG狀態(tài),繼續(xù)新的時鐘相位下的讀寫測試;

        SET_OPT_VALUE:在該狀態(tài),將由時鐘相位調(diào)整模塊對時鐘管理器2和3的輸出時鐘相位進(jìn)行反向調(diào)整3次,以使ZBT工作時鐘的上升沿出現(xiàn)在總線及控制信號變化的中間時刻,從而達(dá)到最大的時序裕量,調(diào)整完畢后跳至WAIT_PSDONE2狀態(tài);

        WAIT_PSDONE:同樣地,在該狀態(tài),等待PSDONE信號置高,以表明時鐘管理器2和3輸出時鐘相位調(diào)整已經(jīng)完畢,調(diào)整完畢后,判斷當(dāng)前是否是第一次進(jìn)入該狀態(tài),若是代表此時ZBT1芯片時序調(diào)整已經(jīng)完成,但ZBT2還未進(jìn)行,因此需要跳轉(zhuǎn)INIT_REG狀態(tài),對ZBT2重復(fù)ZBT1芯片調(diào)整的所有工作,若已經(jīng)是第二次進(jìn)入該狀態(tài),則證明所有ZBT芯片已經(jīng)調(diào)整完畢,可跳轉(zhuǎn)至INIT_DONE狀態(tài);

        INIT_DONE:該狀態(tài)為時序調(diào)整完成后的正常工作狀態(tài),此時外部模塊可以通過其讀寫數(shù)據(jù)端口完成對ZBT芯片的同時數(shù)據(jù)讀寫,達(dá)到乒乓緩沖效果。

        2.9 時序約束策略

        FPGA的輸入輸出端口布局布線延時雖然無法事先得到,然而仍可以通過用戶約束文件使布局布線后的器件最壞走線延時不超過約束值。需要注意的是,該約束值必須考慮到實(shí)際接口電平形式及芯片速度、工作溫度等參數(shù),否則即使施加約束也無法成功完成布局布線。

        具體到本設(shè)計中,施加的約束共有3種,第一種是周期約束,用于約束FPGA的最高工作頻率;第二種約束是輸出約束,即clk to output約束,利用該約束控制ZBT讀寫控制器所有輸出信號的最大延時;第三種約束為輸入約束,即對輸入信號的建立和保持時間約束。后兩種約束也稱為偏移約束(OFFSET約束)。

        由于本設(shè)計內(nèi)部采用了多級流水線策略寄存中間數(shù)據(jù),因此大大提高了時序性能,在Vetex6平臺上,最高工作頻率可達(dá)250MHz,已超過目前市面上所有ZBT芯片的工作頻率。輸入和輸出約束則主要用于分析IOB引腳的延時分布,如果某些引腳延時與其它信號相比離散性較大,則可以使用輸入輸出延時控制功能微調(diào)其延時,最終達(dá)到所有信號的延時信息基本一致的效果。

        3 結(jié)果與討論

        該系統(tǒng)以以下器件和模式驗(yàn)證。選擇目前速度最快、容量最大的Cypress公司的CY7C1470為ZBT SRAM器件代表,以Xilinx公司中端器件Virtex6 LX130為FPGA器件典型代表。整個設(shè)計采用2片CY7C1470組成乒乓緩沖系統(tǒng),從而可實(shí)現(xiàn)數(shù)據(jù)流的連續(xù)讀寫,進(jìn)一步提高數(shù)據(jù)吞吐量。工作頻率設(shè)定為160MHz。

        CY7C1470的容量為2M*36bit,是典型的流水模式ZBT SRAM,最高工作頻率超過200MHz,其主要對外接口信號介紹如下:

        A0~A20:21位地址總線,輸入端口;

        D0~D35:36位數(shù)據(jù)總線,雙向端口;

        WE_N:寫使能,低電平代表寫操作,高電平代表讀操作,輸入端口;

        CLK:工作時鐘,所有信號變化均與該信號的上升沿同步,輸入端口;

        OE_N:輸出使能信號,只有在該信號為低電平時,數(shù)據(jù)總線D0~D35才能對外輸出數(shù)據(jù),否則總線處于高阻態(tài),輸入端口。

        按照CY7C1470產(chǎn)品數(shù)據(jù)手冊,所有輸入信號相對于CLK上升沿的建立時間要求是不小于1.4ns,保持時間要求不小于0.4ns。而輸出信號D0~D35相對于CLK上升沿的延遲時間不超過3ns。

        對FPGA器件,不同制造工藝、不同檔次、不同驅(qū)動電平的芯片引腳輸入輸出延時均有所不同,詳細(xì)的參數(shù)可參見FPGA器件的數(shù)據(jù)手冊。以Virtex6器件和LVTTL電平為例,在低溫下,輸入信號從引腳至FPGA內(nèi)部寄存器的走線延時一般不超過2ns,然而在高溫下,走線延時可以上升至7ns甚至更高。同樣地,輸出信號的走線延時變化范圍也可達(dá)5ns左右。

        針對上述延時估計,可將160MHz下ZBT輸入輸出偏移約束設(shè)置為:

        TIMEGRP "zbt1_abus" OFFSET = out 7 ns AFTER "FPGA_CLK" ;

        TIMEGRP "zbt1_dbus" OFFSET = out 7 ns AFTER "FPGA_CLK";

        TIMEGRP "zbt1_ctr" OFFSET = out 7 ns AFTER "FPGA_CLK";

        TIMEGRP "zbt2_abus" OFFSET = out 7 ns AFTER "FPGA_CLK";

        TIMEGRP "zbt2_dbus" OFFSET = out 7 ns AFTER "FPGA_CLK";

        TIMEGRP "zbt2_ctr" OFFSET = out 7 ns AFTER "FPGA_CLK";

        TIMEGRP "zbt1_dbus" OFFSET = in 7ns BEFORE "FPGA_CLK";

        TIMEGRP "zbt2_dbus" OFFSET = in 7ns BEFORE "FPGA_CLK";

        其中,abus代表地址總線,dbus代表數(shù)據(jù)總線,ctr代表讀寫使能、輸出使能等控制信號。

        在160MHz下,按照與2.5類似的時序分析過程,可以計算出從FPGA給出地址總線信息,到FPGA內(nèi)部寄存器可以穩(wěn)定寄存ZBT輸出數(shù)據(jù)的總路徑延時約22ns,大于3個時鐘周期而小于4個時鐘周期。因此該情況下從ZBT讀寫控制器接收到外部模塊給出的ZBT讀地址開始,需要等待1+4+1=6個時鐘周期后得到正確數(shù)據(jù),與200MHz下的結(jié)果相比,相當(dāng)于讀數(shù)據(jù)減少了一個時鐘周期。在其它工作頻率下的延時分析仍可基于相同機(jī)理分析,此處不再贅述。

        整個設(shè)計經(jīng)過ISE13.4軟件完成布局布線后,報告所有靜態(tài)時序報告均合法,同時該控制器僅占用432個寄存器和232個查找表。具有較好的資源經(jīng)濟(jì)性。

        該設(shè)計已在硬件電路中驗(yàn)證成功,并通過高低溫環(huán)境試驗(yàn)驗(yàn)證,證實(shí)了設(shè)計的正確性和有效性。

        4 結(jié)論

        該系統(tǒng)對傳統(tǒng)的基于FPGA的ZBT控制器進(jìn)行了多方面改進(jìn):利用M序列發(fā)生器構(gòu)建偽隨機(jī)數(shù)發(fā)生器,并以此為測試數(shù)據(jù)源,為控制器增加了隨機(jī)讀寫測試功能;使能了FPGA內(nèi)部時鐘管理模塊的動態(tài)相位高速功能,通過遍歷所有相位的方式,找出最佳的數(shù)據(jù)采樣時刻,進(jìn)而保證了ZBT讀寫時序的穩(wěn)定性,而且不再受代碼調(diào)試、修改以及高低溫變化的影響,總可以確保數(shù)據(jù)讀寫正確;為了降低FPGA引腳延時分布離散性帶來的影響,通過施加合理的OFFSET約束控制IOB引腳延時,并通過IODELAY高級可編程資源進(jìn)一步補(bǔ)償各引腳的延時分布,達(dá)到了所有信號延時分布基本一致的良好效果。

        采用本設(shè)計后,可以確保ZBT讀寫時序穩(wěn)定,F(xiàn)PGA開發(fā)工程師可以將主要精力放在產(chǎn)品的功能調(diào)試上,而不必再通過費(fèi)時費(fèi)力的增量編譯、手工布局布線、區(qū)域反標(biāo)注、盲目調(diào)整輸出時鐘相位方式等技巧實(shí)現(xiàn)。此外,本設(shè)計主要采用HDL代碼和時序約束,并不局限于具體器件,雖然前述策略主要以Virtex6為實(shí)現(xiàn)器件,但目前市面上在售的所有主流FPGA器件均具有動態(tài)相位調(diào)整和可編程輸入輸出延時功能,因此本設(shè)計同樣可以在這些產(chǎn)品中成功運(yùn)用,具有很好的通用性。

        猜你喜歡
        時序延時時鐘
        時序坐標(biāo)
        基于Sentinel-2時序NDVI的麥冬識別研究
        別樣的“時鐘”
        基于級聯(lián)步進(jìn)延時的順序等效采樣方法及實(shí)現(xiàn)
        古代的時鐘
        有趣的時鐘
        一種毫米波放大器時序直流電源的設(shè)計
        電子制作(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ā)動機(jī)延時熄火
        精品国产一区av天美传媒| 中文字幕人妻精品一区| 亚洲国产成人av二区| 日韩精品区一区二区三vr| 在线精品国产一区二区| 精品国产自拍在线视频| 在线免费观看蜜桃视频| 午夜爽爽爽男女污污污网站| 长腿校花无力呻吟娇喘的视频| 不卡a v无码在线| 国模精品二区| 亚洲一区二区三区一区| 国产一区高清在线观看| 天美传媒一区二区| 夜夜被公侵犯的美人妻| 亚洲自偷自拍另类第一页| 狠狠cao日日橹夜夜十橹| 国产成人免费一区二区三区| 2021国产精品久久| 精品免费看国产一区二区白浆| 久久精品女同亚洲女同| 亚洲av日韩aⅴ无码色老头| 亚洲国产精品无码久久电影| 中文字幕一区二区三区在线不卡 | 91亚洲国产成人aⅴ毛片大全| 免费av在线视频播放| 亚洲黄色天堂网站在线观看禁18 | 免费观看人妻av网站| 中文字幕无线码| 樱花AV在线无码| 国产成人美涵人妖视频在线观看 | 96中文字幕一区二区| 国产无夜激无码av毛片| 亚洲国产成人精品女人久久久| 亚洲免费人成网站在线观看| 色狠狠一区二区三区中文| 蜜桃视频一区二区三区在线观看 | 亚洲成a人v欧美综合天堂麻豆 | 麻豆国产精品久久天堂| 国产精品多人p群无码| 伊人影院综合在线|