|
勇敢的芯伴你玩轉Altera FPGA連載66:SRAM讀寫測試 特權同學,版權所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1i5LMUUD
存儲器鋪天蓋地,并且是各個大小計算機系統(包括嵌入式系統)必不可少的部分。可以毫不夸張的講,有數據傳輸處理的地方必定有存儲器,不管是CPU內嵌的或外掛的,在做代碼存儲或程序運行的時候也必定少不了它。而本節的實驗對象SRAM(Static RAM)是一種異步傳輸的易失存儲器,它讀寫傳輸較快,控制時序也不復雜,因此目前有著非常廣泛的應用。 你找來任何一顆SRAM芯片的datasheet,會發現它們的時序操作大同小異,在這里總結一些它們共性的東西,也提一些用Verilog簡單的快速操作SRAM的技巧。SRAM內部的結構如圖8.34所示,要訪問實際的Momory區域,FPGA必須送地址(A0-A14)和控制信號(CE#\OE#\WE#),SRAM內部有與此對應的地址譯碼(decoder)和控制處理電路(control circuit)。這樣,數據總線(I/O0-I/O7)上的數據就可以相應的讀或寫了。
圖8.34 SRAM功能框圖 這里就以本實驗使用的IS62LV256-45U為例進行說明。其管腳定義如表8.3所示。 表8.3 SRAM接口定義
本設計的硬件原理圖如圖8.35所示。
圖8.35 SRAM接口 對于SRAM的讀操作時序,其波形如圖8.36所示。
圖8.36 SRAM讀時序 對于SRAM的寫操作時序,其波形如圖8.37所示。
圖8.37 SRAM寫時序 具體操作是這樣的,要寫數據時,(這里是相對于用FPGA操作SRAM而言的,軟件讀寫可能有時間順序的問題需要注意),比較高效率的操作是送數據和地址,把CE#和WE#拉低。然后延時file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.gif時間再把CE#和WE#拉高,這時就把數據寫入了相應地址了,就這么簡單。讀數據就更簡單了,只要把需要讀出的地址放到SRAM的地址總線上,把CE#和OE#拉低,然后延時file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.gif時間后就可以讀出數據了。時序圖中列出的相關時間參數如表8.4所示。 表8.4 SRAM讀寫時序表
如圖8.38所示,本實例每秒鐘定時進行一個SRAM地址的讀和寫操作。讀寫數據比對后,通過D2 LED狀態進行指示。與此同時,也可以通過SignalTap II在Quartus II中查看當前操作的SRAM讀寫時序。
圖8.38 SRAM實例功能框圖 該實例的工程模塊劃分層次如圖8.39所示。
圖8.39 SRAM實例模塊層次 |