色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 消費電子 > 設計應用 > 用CPLD和外部SRAM構成大容量FIFO的設計

          用CPLD和外部SRAM構成大容量FIFO的設計

          作者:任三軍 呼文杰 時間:2003-04-11 來源:電子設計應用 收藏
          摘要:對照一般通用FIFO的外部控制線,以及視頻服務器應用的具體要求,設計完成用CPLD和外部SRAM構成的大容量、廉價、高速FIFO,除了可以滿足視頻服務器碼流緩沖的需要外,也可以作為一個通用的大容量FIFO。
          關鍵詞:
          The design of FIFO consisted of CPLD and SRAM
          Ren Sanjun Hu Wenjie
          DSP Center of Institute of Acoustics, Chinese Academy of Science, Beijing 100080
          Abstract: According to the signal of general FIFO and the special need of video server, implement a cheap, high -volume and high-speed FIFO with CPLD and external SRAM. Besides meeting the buffer need of video stream in video server, it can be a general high-volume FIFO.
          Keywords:video server, stream buffering, FPGA/CPLD, FIFO


          隨著數(shù)字電視技術的進一步成熟,在視頻服務器方面,利用支持軟件豐富、運算速度不斷提高、具有較高性能價格比的微機來代替昂貴的專用設備實現(xiàn)數(shù)字視頻碼流的復用具有一定的實際意義,但是一般的桌面操作系統(tǒng)定時不夠精確、處理大量并發(fā)任務效率不高以及突發(fā)傳送等問題影響了復用后碼流的質(zhì)量,為了保證復用后的碼流可以均勻平滑地傳送到調(diào)制器,還考慮到微機的工作效率,就需要用FIFO來進行碼流的緩沖。如果FIFO的容量足夠大,微機就可以通過DMA方式一次發(fā)送大量的數(shù)據(jù),最后再經(jīng)過FIFO的緩沖,按照預設頻率均勻送出。
          在其它許多實際應用中,也會利用到FIFO來完成數(shù)據(jù)流的緩沖,消除突發(fā)傳送帶來的數(shù)據(jù)抖動,達到平滑輸出的效果。FIFO的容量和速度直接影響到緩沖的效果,但是目前大容量FIFO價格昂貴,這就影響到了FIFO的進一步實際應用。本文介紹了一種利用外部SRAM和CPLD構成的廉價、高速、大容量先進先出緩沖器FIFO的設計方法。
          一、系統(tǒng)的設計思路
          為了用外部SRAM來實現(xiàn)FIFO,要解決以下問題:
          § 區(qū)分同時到達的讀寫信號,并且產(chǎn)生間隔的對外部SRAM的讀寫信號
          § 在SRAM順序?qū)ぶ返幕A上實現(xiàn)數(shù)據(jù)的先進先出
          § 全空、全滿、半空、半滿狀態(tài)的判定
          § 盡量降低對器件速度的要求
          二、設計方法
          同步設計
          在系統(tǒng)中地址產(chǎn)生、比較器結果輸出、FIFO各種狀態(tài)的輸出都采用同步觸發(fā)方式,全部按照系統(tǒng)時鐘統(tǒng)一進行,這能在很大程度上消除異步方式引起的邏輯狀態(tài)變化時間的不確定和毛刺的產(chǎn)生,但也沒必要在所有的地方都強求按同步設計,只要能符合時序要求,異步方式也可以,目的是盡量減少設計的復雜度和占用的資源。
          原理圖輸入
          設計在Altera公司的MAX+plus II V9.6軟件下編譯仿真。在系統(tǒng)的整體設計中采用原理圖的方式,可以方便地進行時序控制和仿真。
          三、具體信號的產(chǎn)生及時序分析
          信號分析的具體條件
          以下的設計都是在CPLD為EPM7128SQC100-6,SRAM為IDT71128-12的條件下進行,對FIFO的最高要求為雙向同時讀寫,時鐘RCLK和WCLK為10MHz,脈沖寬度為50ns,系統(tǒng)時鐘CLK為50MHz,脈沖寬度為10ns。對于較低速度的讀寫,50MHz的系統(tǒng)時鐘也可以適應,如果外部要求降低,也可按照與RCLK、WCLK的等比例換用較低的系統(tǒng)時鐘。外部數(shù)據(jù)是在上升沿有效,F(xiàn)IFO的輸出也是上升沿有效。
          基本信號的產(chǎn)生以及時序圖
          系統(tǒng)采用獨立的系統(tǒng)時鐘CLK。為區(qū)分同時到達的外部讀寫信號,內(nèi)部產(chǎn)生的讀寫信號分別用系統(tǒng)時鐘的上升沿和下降沿觸發(fā),同時讓產(chǎn)生的內(nèi)部讀寫信號互斥,以得到間隔的對外部SRAM的讀寫信號;考慮到實際的需要以及器件和內(nèi)部時鐘的速度,按照四個脈沖寬度的方式產(chǎn)生讀寫信號,以保證在最小10個脈沖時間內(nèi)各有一次有效讀寫。
          外部讀寫時鐘RCLK、WCLK先經(jīng)過各自的使能控制信號REN、WEN進入CPLD;為保證讀寫互斥,外部讀寫異步鎖存之后,讀信號鎖存后面的第一個上升沿,寫信號鎖存后面的第一個下降沿,并且用各自的前三個脈沖控制對方鎖存第一個脈沖。
          通過對各種情況的分析,基本讀寫脈沖OE和MW之間的最小間隔是一個脈沖,在有連續(xù)兩個外部讀或?qū)懙那闆r下所產(chǎn)生的兩個OE或MW之間的最小間隔是兩個脈沖。
          基本信號產(chǎn)生的原理圖和時序圖如下:



          圖1 基本信號的產(chǎn)生

          圖2 基本信號的時序
          讀寫地址信號
          讀寫各有一個地址指針,每讀出一個數(shù)讀地址加一,讀指針就指向下一個最早寫入的數(shù),經(jīng)過SRAM陣列的最高地址后,又從起始地址開始,這樣就可以達到先進先出的效果;只有有效的讀寫脈沖才能觸發(fā)地址計數(shù)器;為使整個系統(tǒng)的動作時間一致,采用同步設計,讀寫都統(tǒng)一選擇上升沿觸發(fā)計數(shù)器變化;地址改變先于后面的/WE、/OE脈沖的產(chǎn)生。
          地址發(fā)生器采用計數(shù)器宏單元。FIFO容量的大小由計數(shù)器決定,簡單地增加計數(shù)器的位數(shù)和SRAM的數(shù)量,就可以擴大FIFO的容量。讀寫地址產(chǎn)生之后,經(jīng)過一個總線復用器后輸出作為對外部SRAM讀寫的地址線;總線復用器的選擇由MW信號控制,只有在MW有效的時候才輸出為寫地址,其它時間都是讀地址。
          讀寫地址在由計數(shù)器產(chǎn)生經(jīng)過總線復用時,會產(chǎn)生靜態(tài)冒險;對于讀寫地址比較器,因為它鎖存的時刻距離地址變化后兩個脈沖,而且比較器輸入的地址不經(jīng)過總線復用,這就可以保證在比較器鎖存的時刻地址比較結果已經(jīng)穩(wěn)定而且不受靜態(tài)冒險的影響;對于到SRAM的讀寫地址,在讀寫控制脈沖/OE、/WE有效前還有兩個脈沖的時間穩(wěn)定,不會因為地址不穩(wěn)定產(chǎn)生錯誤操作。
          讀寫地址相等時比較器輸出相等標志EF,F(xiàn)IFO半滿,即除去最高位以外的地址都相等的情況輸出半滿標志EHF。


          圖3 讀寫地址信號的產(chǎn)生
          FIFO狀態(tài)信號
          1、小于半滿LHFULL
          在上電或復位之后,LHFULL立刻有效。利用另一個觸發(fā)器上電或者復位的清零,置位LHFULL觸發(fā)器,使其有效,但在第一個寫之后這個觸發(fā)器就不再對LHFULL的變化有影響。在讀寫地址比較器輸出半滿的時候再來一個讀,就判定為小于半滿LHFULL。從大于半滿到小于半滿,需要經(jīng)過兩個連續(xù)的讀,第一個讀使比較器得到半滿結果,第二個讀使LHFULL有效。當經(jīng)過一個寫從小于半滿到半滿時,在讀寫地址比較器輸出半滿使LHFULL觸發(fā)器狀態(tài)可以變化后的下一個上升沿清除LHFULL觸發(fā)器。觸發(fā)器的使能端選為EHF,保證狀態(tài)信號只在半滿的時候才發(fā)生變化。
          2、大于半滿GHFULL
          半滿的時候再來一個寫,GHFULL置位為高有效。GHFULL的設計原理同LHFULL,且不需要上電復位置位的處理。

          圖4 LHFULL和GHFULL的產(chǎn)生
          3、全滿FULL
          當比較器輸出結果為讀寫地址相等時,如果此時執(zhí)行的操作是寫,即在一個寫之后讀寫地址才相等,就判定為全滿,置FULL為有效。在全滿狀態(tài)下,如果有一個讀,F(xiàn)ULL就被清零。
          1、 全空EMPTY
          在上電或復位之后,EMPTY立刻有效。利用另一個觸發(fā)器上電或者復位的清零,置位EMPTY觸發(fā)器,使其有效,但在第一個寫之后這個觸發(fā)器就不再對EMPTY的變化有影響。當比較器輸出結果為讀寫地址相等時,如果此時執(zhí)行的操作是讀,即在一個讀之后讀寫地址相等,就判定為全空,置EMPTY有效。全空狀態(tài)下,如果有一個寫,EMPTY就被清零。

          圖5 FULL和EMPTY的產(chǎn)生
          復位信號
          只要RST信號為低就會產(chǎn)生有效的復位,讀寫的地址計數(shù)器都被清零,全滿、大于半滿狀態(tài)清除,全空和小于半滿置位,F(xiàn)IFO鎖存輸出為零。
          與外部SRAM的連接及對SRAM的讀寫定時分析
          CPLD與SRAM之間除去讀寫復用的地址和數(shù)據(jù)線以外,還需要有輸出使能信號/OE,讀寫信號/WE,片選信號/CS。地址線、數(shù)據(jù)線、/OE和/WE如前所述;片選信號由地址高位譯碼產(chǎn)生,在這里是把最高位取反,得到兩個片選信號。
          讀寫信號的時序符合設計采用的IDT71128-12 SRAM的定時要求。
          寫操作:
          寫周期最小12ns,地址有效到結束寫最小10ns,片選到寫結束最小10ns,寫脈沖最小10ns,數(shù)據(jù)有效到寫結束最小7ns。地址在/WE之前建立,在/WE結束之后變化;數(shù)據(jù)保持到/WE無效再變化;在地址變化時,/WE、/CS不能都有效;在有效的寫時,/CS、/WE為低;
          讀操作:
          地址尋址時間最大12ns,讀周期最小12ns,片選尋址時間最大12ns,輸出使能到數(shù)據(jù)輸出有效最大6ns。在讀周期/WE為高,/OE為低,讀周期結束時地址和數(shù)據(jù)應該保持不變。
          寫地址與MW脈沖的上升沿同時變化,在兩個脈沖之后,寫地址能夠穩(wěn)定,這時/WE才有效,并且由于連續(xù)兩個讀寫脈沖之間最少有一個脈沖的間隔,而且MW比EW4要有延遲,同時總線選擇也是由MW決定,就保證了寫地址在/WE前有效并能保持到/WE結束;寫數(shù)據(jù)的三態(tài)緩沖由EW4打開,可以保持到/WE結束。
          讀地址在上一個寫結束之后有效,由于讀地址變化比OE脈沖晚一個脈沖,/OE在OE結束時開始,保證了/OE開始的時候讀地址已穩(wěn)定和讀周期時間符合要求;寫數(shù)據(jù)已由EW4關閉,由于讀寫之間的最小間隔,且控制SRAM數(shù)據(jù)輸出的/OE是ER5的反向,從SRAM中讀出的數(shù)據(jù)在鎖存入CPLD之后,滿足保持時間的要求。
          對外部SRAM數(shù)據(jù)的讀寫,見后圖7、8。
          四、為提高可靠性和滿足些特殊需要做的處理
          讀寫特殊時刻地址的產(chǎn)生
          FIFO狀態(tài)為全空的時候,再有一個讀脈沖讀地址會繼續(xù)增加,由于此時內(nèi)部已經(jīng)沒有有效數(shù)據(jù),以后讀出的數(shù)據(jù)就不正確,因此必須在全空以后禁止讀地址的增加,同時置位VALID信號為無效。讀地址計數(shù)器的使能端由EMPTY和ER1共同控制,在EMPTY的時候,讀地址觸發(fā)無效。
          FIFO狀態(tài)為全滿時,再有一個寫脈沖,由于已經(jīng)達到全滿的狀態(tài),此時的寫操作就會把下一個地址的未讀出的數(shù)據(jù)修改,以后再按照此讀地址讀出的就是錯誤的數(shù)據(jù);因此在出現(xiàn)全滿的情況下,一方面通過外部FULL標志指示,另外如果有寫操作,則讀地址也同樣增加,這樣可以保證,以后的讀操作讀出的數(shù)據(jù)是沒經(jīng)過修改的有效數(shù)據(jù)。在EW1和FULL同時有效的時候,讓讀地址計數(shù)器的使能端有效,也同時計數(shù)。

          圖6 特殊時刻對讀地址的控制
          數(shù)據(jù)寫入SRAM
          外部數(shù)據(jù)經(jīng)過異步鎖存,先寫入CPLD內(nèi)的寄存器,然后再由/WE寫入SRAM;可能會遇到最大的延遲使上一個外部寫所產(chǎn)生的/WE的最后鎖存時刻上升沿位于下一個外部寫脈沖之內(nèi),對SRAM來講,在/WE上升沿鎖存時刻數(shù)據(jù)就不能保持不變。因此,在每次從外部寫入CPLD內(nèi)寄存器時,先在有效的MW脈沖之內(nèi)鎖存一次,具體設計中選在EW2脈沖對應的下降沿。同時,因為對SRAM寫入和讀出的兩個數(shù)據(jù)總線都要連接到相同的SRAM的I/O數(shù)據(jù)線上,為了區(qū)分,在寫入數(shù)據(jù)的輸出端加上三態(tài)緩沖,使能端由EW4控制,即/WE的反向。

          圖7 外部數(shù)據(jù)寫入SRAM
          從SRAM中讀出數(shù)據(jù)的鎖存輸出
          按照/OE產(chǎn)生之后,從外部SRAM讀出數(shù)據(jù)直接鎖存輸出的結果來看,由于時序的變化,鎖存輸出數(shù)據(jù)的時間長度不一致,必須把鎖存的數(shù)據(jù)再鎖存一次以與外部讀時鐘RCLK的上升沿配合。
          通過分析得到:即使是在最滯后的情況下,由上一個讀RCLK從SRAM中讀出的數(shù)據(jù)D[7..0]的鎖存也會發(fā)生在下一個RCLK所包含的系統(tǒng)時鐘的第三個脈沖之前;最快也在當前RCLK所包含的第六個CLK脈沖之后。因此最后輸出的鎖存時刻選在這兩個時間之內(nèi),以保證最后鎖存輸出的一定是上一個RCLK讀出的數(shù)據(jù)。


          圖8 讀出數(shù)據(jù)的鎖存輸出
          有效VALID信號的產(chǎn)生及作用
          VALID信號是為緩沖碼流的目的專門設計的。一般的MPEG2接口信號由D[7..0]、CLK、SYNC、VAL、ERR組成。ERR、SYNC可以不用,CLK采用讀時鐘RCKL,數(shù)據(jù)有效VALID需要合成出來,標志FIFO當前不處于全空狀態(tài),按照RCLK時鐘讀出的是有效數(shù)據(jù)。
          設計要做到:在全空的情況下,最后一個有效數(shù)據(jù)鎖存輸出的時候VALID仍有效;全空信號無效情況下,有效數(shù)據(jù)出現(xiàn)之后才能有VALID信號。VALID信號的設計與讀出數(shù)據(jù)的鎖存輸出密切相關;根據(jù)現(xiàn)在的設計,鎖存輸出的數(shù)據(jù)一定是前一個外部讀時鐘讀出的數(shù)據(jù),所以選在EMPTY置位以后,再經(jīng)過一個RCLK的上升沿VALID才能被清除;在EMPTY被清除之后,再經(jīng)過一個有效的/OE和一次讀輸出數(shù)據(jù)鎖存后VALID才能置位。

          圖9 VALID信號的產(chǎn)生
          五、設計結果及進一步的改進
          根據(jù)本設計的所做的實際硬件電路,在實驗室測試時,一端用碼流發(fā)生器送入數(shù)據(jù),另一端用與輸入相同的時鐘讀出數(shù)據(jù)送到解碼器解碼,在現(xiàn)有的CPLD和SRAM的條件下(EPM7128SQC100-6,IDT71128-12),可以達到雙向10MBps的讀寫。
          所設計的FIFO可作為同步或者異步FIFO;通過增加系統(tǒng)資源、改變讀寫地址比較器的設計可以按照需要設計出將近FULL、EMPTY,HFULL等標志,偏差可以由外部置入,能夠進一步增加FIFO狀態(tài)控制的靈活性。
          參考文獻:
          [1] MAX7000 Programmable Logic Device Family Data Sheet, July 1999, ALTERA
          [2] IDT71128 CMOS Static SRAM Data Sheet, IDT
          [3] IDT72201 CMOS SyncFIFO Data Sheet, IDT
          [4] CPLD技術及其應用, 宋萬杰、羅豐、吳順君,1999年9月,西安電子科技大學出版社
          [5] FPGA原理及應用設計,朱明程,1994年5月,電子工業(yè)出版社
          作者簡介:
          任三軍,1972年生,博士,主要研究方向為信號處理、數(shù)字視頻
          呼文杰,1972年生,博士,主要研究方向為信號處理、數(shù)字視頻



          評論


          相關推薦

          技術專區(qū)

          關閉