新聞中心

        EEPW首頁 > 網絡與存儲 > 設計應用 > 基于WISHBONE總線的FLASH閃存接口設計 (圖)

        基于WISHBONE總線的FLASH閃存接口設計 (圖)

        ——
        作者:同濟大學超大規模集成電路研究所 徐杰陽 時間:2007-02-06 來源: 收藏
        摘 要 : 本文簡要介紹了amd公司am29lv160d芯片的特點,并對wishbone總線作了簡單的介紹,詳細說明了flash memory 與wishbone 總線的硬件接口設計及部分verilog hdl程序源代碼。
        關鍵詞 :閃存;接口;wishbone; fpga

        引言
        ---隨著半導體工藝技術的發展,ic設計者已能將微處理器、模擬ip核、數字ip核和存儲器(或片外存儲控制接口)集成在單一芯片上,即soc芯片。對片上系統(soc)數據記錄需要低功耗、大容量、可快速重復擦寫的存儲器。常用的介質主要有:動態存儲器(dram)、靜態存儲器(sram)和閃速存儲器(flash memory)。dram容量大,但需要不斷刷新才能保持數據,會占用微處理器時間,同時增加了功耗;sram雖然不需要動態刷新,但價格太貴,并且斷電后跟dram一樣數據都無法保存。flash memory是一種兼有紫外線擦除eprom和電可擦除可編程只讀存儲器(eeprom)兩者優點的新型非易失存儲器。由于它可在線進行電可擦除和編程,芯片每區可獨立擦寫至少1000 000次以上,因而對于需周期性地修改被存儲的代碼和數據表的應用場合,以及作為一種高密度的、非易失的數據存儲介質flash是理想的器件選擇。在我們設計的系統中,處理器是openrisc1200,所用的flash是amd與富士公司的am29lv160d芯片。利用fpga實現接口,由于openrisc1200(or1200)采用wishbone總線,所以本設計的接口具有可移植性。

        am29lv160d芯片特點
        ---am29lv160d是一種僅需采用3.0v電源進行讀寫的閃存。該器件提供了70ns、90ns、120ns讀取時間,無需高速微處理器插入等待狀態進行速度匹配。為了消除總線競爭,芯片引入了片選使能(ce#),寫使能(we#)和輸出使能(oe#)控制端口。芯片采用分塊結構,非常適用于要求高密度的代碼或數據存儲的低功耗系統。
        ---● 甚低功耗
        ---工作在5mhz時, 電流典型值為:
        ---睡眠模式下電流為200na;
        ---備用模式下電流為200na;
        ---讀數據時為9ma;
        ---編程/擦除模式下電流為20ma。
        ---● 靈活的分塊結構
        ---一個16kb,兩個8kb,一個32kb,和31個64kb塊(字節模式);
        ---一個8kb,兩個4 kb,一個16 kb,和31個32 kb塊(字模式);
        ---支持整個芯片擦除;
        ---復雜的塊保護特性。
        ---● 具有內部嵌入算法
        ---內部嵌入擦除算法自動預編程和擦除整個芯片或任意塊的組合;
        ---內部嵌入算法自動將給定地址的數據寫入芯片及對其校驗。
        ---● 與jedec標準兼容
        ---● 具有硬件reset復位與ready/busy擦寫查詢管腳
        ---● 具有擦除暫停與擦除繼續功能

        wishbone總線簡介
        ---wishbone總線規范是一種片上系統ip核互連體系結構。它定義了一種ip核之間公共的邏輯接口,減輕了系統組件集成的難度,提高了系統組件的可重用性、可靠性和可移植性,加快了產品市場化的速度。wishbone總線規范可用于軟核、固核和硬核,對開發工具和目標硬件沒有特殊要求,并且幾乎兼容所有的綜合工具,可以用多種硬件描述語言來實現。
        ---靈活性是wishbone總線的另一個優點。由于ip核種類多樣,其間并沒有一種統一的間接方式。為滿足不同系統的需要,wishbone總線提供了四種不同的ip核互連方式:
        ---點到點(point-to-point),用于兩ip核直接互連;
        ---數據流(data flow),用于多個串行ip核之間的數據并發傳輸;
        ---共享總線(shared bus)(見圖1),多個ip核共享一條總線;
        ---交叉開關(crossbar switch),同時連接多個主從部件,提高系統吞吐量。

        flash接口的設計
         ---由于or1200采用的是wishbone共享總線,其地址線為32位,數據線也為32位。設計中采用將低位與flash相聯接,并將接口位度設計為16位。原理框圖如圖2所示。邏輯接口部分采用fpga來實現。系統選用xilinx公司最新推出的90nm工藝制造的現場可編程門陣列芯片spartan-3來實現接口設計,利用它的可編程性特性帶來了電路設計的簡單化和調試的靈活性。
        ---flash讀接口設計
        ---該接口可實現單周期讀與塊讀功能,時序部分與wishbone兼容。由于采用的flash最大讀周期時間至少為90ns,故只有在總線時鐘工作在10mhz以下頻率時可以直接將ack_o端口與stb_i端口相聯。當master(指令cache)發出塊讀信號時,將發出一個lock_o=vih信號給總線仲裁器,要求總線能不間斷提供總線。其對slave(flash接口部分)控制信號為:
        ---we_i=vil,cyc_i=vih,stb_i=vih,byte=vih
        ---當master結束塊讀時發出stb_o= vil信號即可。其輸出接口部分如圖3所示。
        ---該輸出接口模塊源代碼如下:
        ---module wboprt16(clk_i, rst_i,we_i,stb_i,ack_o,dq_i,dat_o);
        --- //wishbone slave interface
        ---input clk_i,rst_i,we_i,stb_i;
        ---output ack_o;
        ---output [15:0] dat_o;
        ---//non-wishbone interface
        ---input [15:0] dq_i;
        ---reg [15:0] dat_o;
        ---always @(posedge clk_i or negedge rst_i)
        ---begin :label_a
        ---if (!rst_i)
        ---dat_o<=16b0;//asynchronous reset
        ---else if ((stb_i & !we_i)==b1)
        ---dat_o<=dq_i;
        ---else
        ---dat_o<=dat_o;
        ---end
        ---assign ack_o=stb_i;
        ---endmodule
         flash寫接口設計
        ---因為flash寫命令需要多個時鐘周期時間,其中采用unlock bypass模式時為2個時鐘周期,采用正常寫模式需要4個時鐘周期,并且在對flash寫和擦寫時更是需要等待幾十微秒到幾秒鐘的時間,因此對接口slave必須引入寫或擦寫完成狀態信號來控制總線數據的傳輸。為簡化設計采用ry/by引腳來判斷。輸出端口原理圖與圖3類似,只需對部分端口進行修改即可。
        ---為了能夠對塊保護的程序代碼進行升級,特別設計了一個12v電源電路來實現暫時塊寫保護解除功能,如圖4所示。利用am29lv160d芯片提供的暫時塊寫保護解除模式——即通過對reset#引腳加vid電壓。在該模式下先前被保護的塊可以通過塊地址選中來進行編程和擦除。并且一旦vid移除所有先前保護的塊恢復到保護狀態。
         ---圖4中rv控制信號處采用了r=5kω,c=100pf,以便使得vid電壓上升時間與下降時間≥500ns,從而滿足相應的時序要求。肖特基二極管的引入保證了系統reset信號被鉗制在vcc+0.3v以內。總體上來說,該電源隔離電路的引入對整個系統的成本影響很小,而使系統可以在線編程被保護的flash存儲塊。
        ---在進行flash編程時部分要用到命令總線時序定義,如表1所示。
        總結
        ---本文介紹了amd公司am29lv160d芯片特點,并在此基礎上設計了基于wishbone總線的接口。該接口設計方法對其他相關soc總線接口設計具有直接的參考意義。

        參考文獻
        1 amd am29lv160d data sheet .amd corporation
        2 wishbone soc architecture specification.
        revision b.3. silicore corporation
        3 鄧良惠,梁國龍. 超大容量flash閃存與
        dsp的數據存儲接口技術.設計與應用



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 海盐县| 上虞市| 林西县| 张掖市| 济源市| 无为县| 民丰县| 大余县| 德江县| 布尔津县| 商城县| 旺苍县| 红桥区| 南皮县| 德清县| 娄烦县| 关岭| 澎湖县| 山西省| 泸水县| 大英县| 赣州市| 镇沅| 贵港市| 奉贤区| 浪卡子县| 泸溪县| 大庆市| 英吉沙县| 大埔县| 专栏| 揭东县| 渭南市| 大安市| 洪江市| 武威市| 囊谦县| 屯留县| 双鸭山市| 武陟县| 崇义县|