国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的非易失性存儲器NvRAM時(shí)序分析方法

2023-03-13 15:25:58段宇博安書董
信息記錄材料 2023年1期
關(guān)鍵詞:失性狀態(tài)機(jī)存儲器

馬 雪,段宇博,安書董

(中航工業(yè)西安航空計(jì)算技術(shù)研究所 陜西 西安 710068)

0 引言

隨著航空技術(shù)的快速發(fā)展,機(jī)載設(shè)備的更新?lián)Q代,計(jì)算機(jī)技術(shù)在航空機(jī)載設(shè)備中日趨成熟。存儲器作為計(jì)算機(jī)硬件中必不可少的一項(xiàng)設(shè)備,其性能及熟練的使用方式顯得尤為重要。而非易失性存儲器(Non-Volatile Random Access Memory,NvRAM)因其斷電后數(shù)據(jù)仍然能夠保留的特性大受推崇,并且NvRAM還具有速度快、自動保存和自動恢復(fù)數(shù)據(jù)等功能,電路設(shè)計(jì)相對簡單,被廣泛使用在機(jī)載設(shè)備當(dāng)中[1-2]。隨著存儲器的性能逐漸在計(jì)算機(jī)系統(tǒng)中占據(jù)了越來越重要的位置,能否高效準(zhǔn)確運(yùn)用存儲器就有了更高的要求。

在工程中,開發(fā)者們逐漸發(fā)現(xiàn)對于存儲器的控制邏輯相對復(fù)雜,時(shí)序要求也比較嚴(yán)格,且在調(diào)試過程中,存儲器出現(xiàn)異常后的故障定位也因?yàn)闀r(shí)序的復(fù)雜性而變得非常紛繁復(fù)雜,這就使得開發(fā)人員在硬件調(diào)試過程中耗費(fèi)了相當(dāng)多的資源[3-4]。本文重點(diǎn)介紹利用FPGA作為存儲器控制器來對非易失性存儲器進(jìn)行控制的過程,采用VHDL語言編寫FPGA中的控制邏輯,來實(shí)現(xiàn)對存儲器的使用;通過ISE Design Suite環(huán)境進(jìn)行系統(tǒng)仿真,使用ChipScope技術(shù)分析FPGA控制存儲器進(jìn)行數(shù)據(jù)交換的時(shí)序邏輯。采用FPGA控制實(shí)現(xiàn)的NvRAM控制器,結(jié)合ChipScope邏輯分析技術(shù)可以明顯提高系統(tǒng)調(diào)試期間的可控性。

1 NvRAM的結(jié)構(gòu)

采用深圳市國微電子有限公司的SM14CA8-NF45型存儲器,該存儲器是一款128 K*8 bit容量的快速非易失性靜態(tài)隨機(jī)存儲器芯片。存儲器中的每個(gè)存儲器單元都自帶1個(gè)非易失性存儲單元。芯片提供了快速的讀寫訪問周期,方便使用,并且作為常規(guī)的SRAM具有無限的讀寫壽命。

當(dāng)檢測到掉電,數(shù)據(jù)會自動保存到非易失性存儲單元(STORE操作)。一旦上電,數(shù)據(jù)會自動從非易失性存儲單元加載到SRAM(RECALL操作)。STORE和RECALL均有邏輯軟件控制。

該芯片的控制信號有:片選信號()、寫使能信號()、輸出使能信號()、STORE操作狀態(tài)信號(),其中#代表低電平有效。數(shù)據(jù)位使用DQ[7:0]表示,地址位使用A[16:0]表示。

當(dāng)和為低,和為高時(shí),SM14CA8-NF45執(zhí)行讀操作。

當(dāng)和為低,為高時(shí),執(zhí)行寫操作。此時(shí)一般會在整個(gè)寫操作周期使保持為高,以避免通用I/O上的數(shù)據(jù)總線競爭。如果被拉低,內(nèi)部電路將在變低后tWLQZ(寫使能到輸出無效)時(shí)間內(nèi)關(guān)閉輸出緩沖器。該存儲器的工作原理如圖1所示:

圖1 NvRAM結(jié)構(gòu)框圖

2 NvRAM的通用工作時(shí)序

圖2給出了SM14CA8-NF45型NvRAM工作時(shí)讀時(shí)序的波形。Q(Data Out)表示存儲器輸出的數(shù)據(jù)。A(Address)表示地址信號。分別是存儲器高8位,低8位的數(shù)據(jù)線使能信號。表1給出了符號的代表含義。

圖2 NvRAM讀周期時(shí)序

表1 NvRAM讀時(shí)序圖符號解析表

由圖2可知,在NvRAM的讀操作時(shí)序內(nèi),分為3個(gè)階段:讀建立、讀觸發(fā)、讀保持。tAVAV是一個(gè)讀周期時(shí)間,地址信號A在該時(shí)間段內(nèi)始終有效。一次完整的讀數(shù)據(jù)的過程是:讀建立階段(Setup_State),信號先置為低電平,片選有效。讀觸發(fā)階段(Pulse_State),信號保持低電平不變化,和信號同時(shí)置為低電平,數(shù)據(jù)有效,從存儲器中讀出。讀保持階段(Hold_State),和號設(shè)置為高電平,而信號仍然低有效,在讀保持階段的末期,信號位置高,結(jié)束一次讀操作。

圖3展示了SM14CA8-NF45型NvRAM一次寫操作的時(shí)序波形。其中D(Data IN)表示主控向數(shù)據(jù)輸入輸出口所寫入的數(shù)據(jù)。表2給出了符號所代表的含義。tAVAV是一個(gè)寫周期時(shí)序,在寫操作的一個(gè)周期tAVAV內(nèi)同樣分為3個(gè)階段,在Setup_State時(shí),和同時(shí)置低,片選有效產(chǎn)生,在Pulse_State階段,置低,開始寫入數(shù)據(jù),該階段為真正數(shù)據(jù)傳輸?shù)碾A段。在Hold_State階段,先置高,隨后和置高,結(jié)束一次寫操作。

圖3 NvRAM寫周期時(shí)序

表2 NvRAM寫時(shí)序圖符號解析表

3 NvRAM控制器的設(shè)計(jì)

在對NvRAM控制器的設(shè)計(jì)中,需要用戶將存儲的數(shù)據(jù)地址、數(shù)據(jù)內(nèi)容、數(shù)據(jù)長度、時(shí)序參數(shù)等信息發(fā)送給控制器,控制器按照讀寫時(shí)序自動進(jìn)行配置完成整個(gè)數(shù)據(jù)的讀和寫[5]。如圖4所示,本次采用58所公司JXCSX95T型FPGA作為該控制器的硬件載體,結(jié)合VHDL語言編程,用有限狀態(tài)機(jī)(finite state machine,F(xiàn)SM)實(shí)現(xiàn)存儲器控制器。同時(shí)控制器中還需要配置計(jì)數(shù)器對時(shí)序圖中的各個(gè)參數(shù)狀態(tài)進(jìn)行計(jì)數(shù),數(shù)據(jù)通路用來實(shí)現(xiàn)數(shù)據(jù)地址、數(shù)據(jù)的傳遞。

圖4 NvRAM控制器結(jié)構(gòu)

對于配置寄存器而言,主要用來定義NvRAM的存儲類型、字長、地址、時(shí)序參數(shù)等。對于讀/寫操作,主要定義讀寫時(shí)序的邏輯有限狀態(tài)機(jī)的有限個(gè)狀態(tài)、狀態(tài)跳轉(zhuǎn)函數(shù)、開始狀態(tài)以及終止?fàn)顟B(tài)。以NvRAM的一個(gè)寫操作為例,在SM14CA8-NF45使用手冊上查到AC特征表可知,寫建立時(shí)間為小于9 ns或者大于42 ns的區(qū)域內(nèi),若控制器工作頻率100 MHz(即周期為10 ns),則寫建立共需要一個(gè)時(shí)鐘周期即1拍。經(jīng)時(shí)序圖和時(shí)序參數(shù)可以計(jì)算出讀觸發(fā)的時(shí)間至少為8 ns,因此,寫觸發(fā)至少需要一個(gè)時(shí)鐘周期。在寫保持階段,也需要一拍[6]。

本設(shè)計(jì)采用4個(gè)狀態(tài)機(jī)實(shí)現(xiàn),各狀態(tài)之間的跳轉(zhuǎn)需要滿足各自計(jì)數(shù)器的節(jié)拍數(shù)根據(jù)時(shí)鐘進(jìn)行倒計(jì)數(shù),若計(jì)數(shù)的值不是0,則保持當(dāng)前狀態(tài),若等于0則進(jìn)入下一狀態(tài)。NvRAM的一個(gè)寫操作的狀態(tài)轉(zhuǎn)移圖如圖5所示。圖中狀態(tài)名稱與第2節(jié)狀態(tài)名含義保持一致。其中IDLE狀態(tài)表示不在一個(gè)讀寫操作內(nèi)的例外狀態(tài)。一次寫操作的狀態(tài)開始狀態(tài)即為“IDLE”,當(dāng)滿足進(jìn)入狀態(tài)機(jī)的條件“片選有效且寫使能有效時(shí)”,狀態(tài)機(jī)跳轉(zhuǎn)到“寫建立”狀態(tài),在寫建立周期結(jié)束(write_setup_time = 0)后,狀態(tài)機(jī)跳轉(zhuǎn)進(jìn)入“寫觸發(fā)”狀態(tài),在寫觸發(fā)周期(write_Pulse_time)內(nèi),該控制器可以將數(shù)據(jù)有效寫入。在一個(gè)寫觸發(fā)周期結(jié)束后,邏輯狀態(tài)機(jī)跳轉(zhuǎn)進(jìn)入“寫保持”狀態(tài),寫保持周期(write_Hold_time)內(nèi),數(shù)據(jù)不再寫入,但只有結(jié)束一次寫保持周期,狀態(tài)機(jī)才會跳轉(zhuǎn)進(jìn)入“IDLE”狀態(tài)。這樣才能再次進(jìn)入下一次寫操作或者讀操作。否則邏輯狀態(tài)機(jī)錯(cuò)誤運(yùn)轉(zhuǎn)。

圖5 NvRAM邏輯狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖

根據(jù)NvRAM的讀寫狀態(tài)機(jī),使用VHDL實(shí)現(xiàn)一個(gè)寫操作的偽代碼如圖6。偽代碼先定義了寫操作狀態(tài)機(jī)的有限個(gè)狀態(tài),是有限個(gè)狀態(tài)跳轉(zhuǎn)條件。然后一次begin到end case的過程,即為一次寫操作的邏輯狀態(tài)機(jī)使用VHDL語言實(shí)現(xiàn)的具體過程。

圖6 NvRAM寫操作狀態(tài)機(jī)VHDL偽代碼

4 ChipScope在線調(diào)試結(jié)果

通過上述分析,結(jié)合有限狀態(tài)機(jī)設(shè)計(jì)存儲器控制器,利用VHDL語言作為控制邏輯編寫語言,以ISE Design Suite 13.3和IMPACT為開發(fā)環(huán)境,以FPGA為硬件載體,對程序進(jìn)行下載。與此同時(shí),采用Xilinx開發(fā)環(huán)境自帶的ChipScope邏輯分析儀在具體調(diào)試中進(jìn)行時(shí)序分析,ChipScope使用方法大致為:設(shè)置一個(gè)觸發(fā)條件,一般為邏輯狀態(tài)的時(shí)鐘條件,當(dāng)存儲器控制器開始運(yùn)轉(zhuǎn),時(shí)鐘生效,則ChipScope開始監(jiān)控該控制器的所有讀寫操作時(shí)序。同時(shí)ChipScope可以允許用戶根據(jù)自身調(diào)試需要,來自主選擇需要監(jiān)控的變量,該調(diào)試方法具有靈活性和可操作性。通過自主調(diào)試,在一次邏輯分析中,監(jiān)控了該存儲器控制器中的片選信號、讀寫使能信號以及數(shù)據(jù)流的狀態(tài)。發(fā)現(xiàn)NvRAM可以正常工作,滿足各種讀寫要求,且得出的時(shí)序圖與NvRAM使用手冊的時(shí)序圖一致,在一次片選有效的周期內(nèi),能夠正確進(jìn)行讀操作或者寫操作。因此證明本文所設(shè)計(jì)的NvRAM控制器可以有效控制,該方法已經(jīng)成熟運(yùn)用在機(jī)載計(jì)算機(jī)中,滿足各類機(jī)載試驗(yàn)要求。

NvRAM存儲器工作時(shí)的讀寫操作時(shí)序圖如圖7所示。

圖7 NvRAM控制器工作時(shí)序圖

5 結(jié)論

綜上所述,本文通過FPGA作為NvRAM存儲器的控制器,有效按照時(shí)序控制存儲器進(jìn)行讀寫操作,具有較高的靈活性,同時(shí)結(jié)合ChipScope邏輯分析儀可以進(jìn)行在線調(diào)試,提高設(shè)計(jì)及調(diào)試系統(tǒng)的工作效率,可以為后續(xù)工程上對存儲器的控制提供技術(shù)參考。

猜你喜歡
失性狀態(tài)機(jī)存儲器
面向非易失性內(nèi)存的持久索引數(shù)據(jù)結(jié)構(gòu)研究綜述
一種面向非易失性內(nèi)存文件系統(tǒng)的數(shù)據(jù)讀寫粒度控制策略
靜態(tài)隨機(jī)存儲器在軌自檢算法
基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
非易失性納米晶存儲器的研究
詩性
——史性——失性——試論《白鹿原》及其話劇和電影改編
大眾文藝(2016年7期)2016-01-27 11:18:22
存儲器——安格爾(墨西哥)▲
基于Nand Flash的高速存儲器結(jié)構(gòu)設(shè)計(jì)
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
宁国市| 雷山县| 化德县| 馆陶县| 柯坪县| 鹤峰县| 准格尔旗| 林芝县| 绍兴县| 江津市| 图片| 通州区| 新泰市| 屏山县| 道真| 嘉义县| 平顺县| 安庆市| 新民市| 通化市| 普陀区| 玉屏| 乌拉特中旗| 安溪县| 秭归县| 吴川市| 崇明县| 温泉县| 衡阳县| 定兴县| 奉新县| 沾益县| 涟水县| 平果县| 集贤县| 江口县| 巩留县| 新绛县| 广平县| 塘沽区| 中卫市|