• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于有限狀態(tài)機(jī)的SRAM分區(qū)地址發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)

      2018-09-10 04:04:55王雪麗羅文廣覃永新

      王雪麗 羅文廣 覃永新

      摘 要:根據(jù)多通道數(shù)據(jù)按分時(shí)方式保存于同一隨機(jī)存儲(chǔ)器中的不同分區(qū)空間的需求,設(shè)計(jì)了一種基于有限狀態(tài)機(jī)設(shè)計(jì)方法的存儲(chǔ)器分區(qū)地址產(chǎn)生電路.本文以8 Mb的SRAM為設(shè)計(jì)對(duì)象,采用有限狀態(tài)機(jī)方式對(duì)隨機(jī)存儲(chǔ)器的讀寫地址的產(chǎn)生進(jìn)行控制.將SRAM的存儲(chǔ)空間劃分為320×240的4個(gè)分區(qū),每個(gè)分區(qū)空間的寫地址不是連續(xù)產(chǎn)生而是以逐行掃描方式產(chǎn)生,使得4個(gè)通道的數(shù)據(jù)能夠準(zhǔn)確存儲(chǔ)于對(duì)應(yīng)分區(qū)的每個(gè)存儲(chǔ)單元內(nèi).設(shè)計(jì)的頂層文件在QuartusⅡ軟件環(huán)境下進(jìn)行編譯和時(shí)序仿真.仿真結(jié)果表明:采用有限狀態(tài)機(jī)方法設(shè)計(jì)的分區(qū)地址產(chǎn)生電路能正確地實(shí)現(xiàn)SRAM分區(qū)地址的產(chǎn)生,并具有容易拓展的優(yōu)點(diǎn),為高速數(shù)據(jù)的存儲(chǔ)工作方法提供了新的思路.

      關(guān)鍵詞:分區(qū)地址發(fā)生器;多通道數(shù)據(jù)分區(qū)存儲(chǔ);有限狀態(tài)機(jī);存儲(chǔ)方法;FPGA

      中圖分類號(hào):TP333 DOI:10.16375/j.cnki.cn45-1395/t.2018.04.012

      0 引言

      存儲(chǔ)器是計(jì)算機(jī)硬件系統(tǒng)的記憶設(shè)備,用來存放程序以及信息處理過程中的各種數(shù)據(jù).計(jì)算機(jī)中大部分內(nèi)存通常是由隨機(jī)存儲(chǔ)器RAM組成的,存儲(chǔ)器一般按地址訪問,給出對(duì)應(yīng)地址便可對(duì)存儲(chǔ)單元進(jìn)行讀寫操作.通常情況下,存儲(chǔ)器按行、列排列組成二維存儲(chǔ)矩陣,這種結(jié)構(gòu)形式也使得存儲(chǔ)器的地址總線分成行向地址線(簡稱行地址)和列向地址線(簡稱行地址)兩部分.高位字節(jié)表示列地址,低位字節(jié)表示行地址.為了滿足信息處理的高速性、實(shí)時(shí)性和準(zhǔn)確性,數(shù)據(jù)存儲(chǔ)控制器的設(shè)計(jì)就極其重要[1].

      數(shù)據(jù)存儲(chǔ)技術(shù)一般采用全息存儲(chǔ)、專用軟件、專用芯片或編程數(shù)據(jù)處理器壓縮存儲(chǔ)大量的數(shù)據(jù).FPGA芯片因其高速、低功耗和高可靠性等特點(diǎn)在數(shù)據(jù)存儲(chǔ)控制方面具有明顯優(yōu)勢(shì),從而成為存儲(chǔ)控制技術(shù)中最常用的器件.國內(nèi)外一些科研機(jī)構(gòu)已經(jīng)研發(fā)出以FPGA為主控芯片的嵌入式高速數(shù)據(jù)采集及存儲(chǔ)系統(tǒng),其中也包含了基于FPGA的利用分布式數(shù)據(jù)庫提供數(shù)據(jù)存儲(chǔ)和管理、將數(shù)據(jù)分為塊狀進(jìn)行存儲(chǔ)的系統(tǒng).該系統(tǒng)具有良好的性能,且有很大提升空間[2-3],例如:在用于多點(diǎn)監(jiān)控的多視頻通道合成系統(tǒng)中,需要將多個(gè)視頻通道的數(shù)據(jù)先以分區(qū)方式寫入幀緩存器,然后再逐行逐列讀出送入顯示器.寫入幀緩存器的單元地址信號(hào),就可以利用FPGA靈活的編程方式來產(chǎn)生.本次設(shè)計(jì)中,8 Mb的幀緩存器SRAM分為4個(gè)分區(qū),對(duì)應(yīng)于4個(gè)視頻數(shù)據(jù)通道,由FPGA產(chǎn)生4個(gè)通道數(shù)據(jù)的寫地址信號(hào),能夠滿足數(shù)據(jù)處理高速性、實(shí)時(shí)性的要求.

      本設(shè)計(jì)以存儲(chǔ)容量為8Mbit的靜態(tài)隨機(jī)存儲(chǔ)芯片IS61LV51216為目標(biāo)對(duì)象,設(shè)計(jì)了SRAM的4分區(qū)地址發(fā)生器,該地址發(fā)生器能夠隨著時(shí)鐘驅(qū)動(dòng)連續(xù)產(chǎn)生4個(gè)視頻通道數(shù)據(jù)在一塊SRAM中的寫地址信號(hào).每個(gè)分區(qū)的容量為320×240,4個(gè)分區(qū)總?cè)萘繛?40×240,雖然不能寫滿整個(gè)存儲(chǔ)器空間,但是在讀出這些視頻數(shù)據(jù)時(shí)所需的讀地址信號(hào),就可以隨時(shí)鐘信號(hào)按照加1遞增的方式來產(chǎn)生,非常便利.設(shè)計(jì)中利用Altera公司的Cyclone Ⅳ系列芯片EP4CE6F17C8為核心控制部件,采用有限狀態(tài)機(jī)的設(shè)計(jì)方法來完成設(shè)計(jì),而且利用Verilog硬件描述語言可以使整個(gè)流程變的輕松[4].此設(shè)計(jì)方法不但提高了設(shè)計(jì)效率,而且使整個(gè)設(shè)計(jì)具有靈活、易實(shí)現(xiàn)、易擴(kuò)展性的特點(diǎn).

      1 隨機(jī)存儲(chǔ)器中分區(qū)地址發(fā)生電路的設(shè)計(jì)要求

      將RAM存儲(chǔ)陣列分為等容量的4個(gè)分區(qū)S0—S3(每個(gè)分區(qū)的容量為320×240)來存儲(chǔ)4個(gè)通道的視頻數(shù)據(jù)如圖1所示.每個(gè)分區(qū)中寫地址信號(hào)數(shù)據(jù)的變化規(guī)則是:首先,在分區(qū)中按照從左到右、從上至下的規(guī)則遞增,這個(gè)規(guī)則類似于逐行掃描方式.比如分區(qū)S0的寫地址陣列中,第一行共320個(gè)存儲(chǔ)單元的列向地址為000H,第二行的列向地址為001H,最后一行的列向地址為0EFH,每一行的行向地址是從000H—13FH.掃描到S0分區(qū)最后一個(gè)存儲(chǔ)單元后,跳轉(zhuǎn)到S1分區(qū)(轉(zhuǎn)折點(diǎn)C0的列向地址為0EFH,行向地址為13FH).在分區(qū)S1中,寫地址信號(hào)的產(chǎn)生仍然遵循逐行掃描規(guī)則,每掃描一行后,列向地址遞增1;當(dāng)掃描至轉(zhuǎn)折點(diǎn)C1 后跳轉(zhuǎn)到S2分區(qū),以此類推,可得出分區(qū)S0、S1、S2和S3的各個(gè)存儲(chǔ)單元的行向和列向地址.讀取數(shù)據(jù)時(shí),先向地址引腳提供列向地址和行向地址,指定需讀的內(nèi)存單元地址,當(dāng)?shù)刂沸盘?hào)穩(wěn)定之后,使片選信號(hào)CE低電平有效,則指定單元的數(shù)據(jù)在數(shù)據(jù)引腳上輸出.

      由于這4個(gè)分區(qū)的寫地址信號(hào)是按照一定的時(shí)序來產(chǎn)生,所以使用有限狀態(tài)機(jī)的方法進(jìn)行設(shè)計(jì),將4個(gè)分區(qū)的地址產(chǎn)生作為4個(gè)狀態(tài),以是否到達(dá)轉(zhuǎn)折點(diǎn)為狀態(tài)轉(zhuǎn)移的條件來實(shí)現(xiàn)狀態(tài)循環(huán).在每個(gè)狀態(tài)下,每掃描完一行320個(gè)存儲(chǔ)單元,列向地址遞增1,當(dāng)列向地址的增幅達(dá)到240,則此狀態(tài)結(jié)束進(jìn)入下一個(gè)狀態(tài).

      2 分區(qū)地址發(fā)生器的設(shè)計(jì)

      2.1 存儲(chǔ)器芯片選型

      IS61LV51216是ISSI公司的512K×16位的高速異步靜態(tài)RAM,采用高性能CMOS制作工藝,具有高可靠性和低功耗的優(yōu)點(diǎn).芯片具有19根地址線A18—A0,16根數(shù)據(jù)線I/O15—I/O0,還具有工作使能端CE、輸出使能端OE、寫使能端WE、上個(gè)字節(jié)的控制端UB和低字節(jié)控制端LE.如果將它的19根地址線分為9位列地址線和10位行地址線,就構(gòu)成了1 024×512的二維存儲(chǔ)陣列.使用一片IS61LV51216來存儲(chǔ)一幀640×480圖像的數(shù)據(jù)是足夠的,也足夠存儲(chǔ)一幀由4個(gè)320×240壓縮圖像組成的拼接圖像.

      2.2 存儲(chǔ)器內(nèi)部數(shù)據(jù)分布

      根據(jù)設(shè)計(jì)要求,確定內(nèi)部數(shù)據(jù)分布,在每個(gè)狀態(tài)轉(zhuǎn)換前后行列向地址的變化情況如表1所示.

      2.3 分區(qū)地址信號(hào)控制電路的實(shí)現(xiàn)框圖

      本設(shè)計(jì)中選用了Alter公司研發(fā)的Cyclone IV系列的EP4CE6F17C8,此款FPGA擁有179個(gè)I/O接口,62 792個(gè)邏輯單元,392個(gè)乘法器,RAM的容量為276 480 b,內(nèi)核電壓為1.15~1.25 V,且功耗低[5].基于FPGA的SRAM分區(qū)地址發(fā)生電路的整體實(shí)現(xiàn)框圖如圖2所示.在QuartusⅡ中新建工程,設(shè)置目標(biāo)芯片型號(hào)為EP4CE6F17C8、系統(tǒng)復(fù)位信號(hào)RST、時(shí)鐘驅(qū)動(dòng)信號(hào)CLK(系統(tǒng)時(shí)鐘20 MHz)和來自外圍器件的16位輸入數(shù)據(jù)datain[15…0];當(dāng)需要將數(shù)據(jù)datain存入SRAM時(shí),首先設(shè)置片選信號(hào)CE和寫允許信號(hào)WB為低電平有效、OE為數(shù)據(jù)輸出允許(低電平時(shí)讀取數(shù)據(jù)信息)、高8位控制端UB和低8位控制端LB在16位寬的數(shù)據(jù)線上分開訪問高低字節(jié),隨著時(shí)鐘信號(hào)CLK的每產(chǎn)生一個(gè)地址信號(hào),就將datain信號(hào)送至雙向數(shù)據(jù)端口dataout,存入SRAM內(nèi)部相應(yīng)的分區(qū)存儲(chǔ)單元中.

      2.4 基于有限狀態(tài)機(jī)的分區(qū)地址發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)

      有限狀態(tài)機(jī) (Finite State Machine,F(xiàn)SM) 是描述有限個(gè)狀態(tài)以及在這些狀態(tài)之間進(jìn)行轉(zhuǎn)移和操作等行為的數(shù)學(xué)模型[6].它廣泛應(yīng)用于自動(dòng)控制系統(tǒng)、數(shù)字邏輯系統(tǒng)等領(lǐng)域,譬如PLC控制器的順序控制功能、CPU的指令執(zhí)行控制等,均是FSM的典型應(yīng)用范例[7].在電子系統(tǒng)設(shè)計(jì)中,F(xiàn)SM成為有力工具.有限狀態(tài)機(jī)FSM把復(fù)雜的控制邏輯分解成有限個(gè)穩(wěn)定的狀態(tài),在每個(gè)狀態(tài)上判斷事件,變連續(xù)處理為離散處理,符合計(jì)算機(jī)工作特點(diǎn);同時(shí)FSM具有有限個(gè)狀態(tài),

      可以在工程上實(shí)現(xiàn)[8].在使用硬件描述語言VerilogHDL編程時(shí),首先簡單地定義狀態(tài)變量,每個(gè)狀態(tài)均可以表達(dá)為case語句結(jié)構(gòu)中一條選擇值語句,而狀態(tài)是否轉(zhuǎn)移通過if語句判斷,從而實(shí)現(xiàn)所需功能.

      本設(shè)計(jì)的程序流程圖如圖3所示.在程序中首先設(shè)置行計(jì)數(shù)器x_add和列計(jì)數(shù)器y_add,分別來計(jì)算分區(qū)中行向地址信號(hào)和列向地址信號(hào)的個(gè)數(shù).

      分址電路存儲(chǔ)基本過程為:先設(shè)置復(fù)位信號(hào)rst、時(shí)鐘信號(hào)clk、數(shù)據(jù)流datain、行列地址和塊寫滿后的標(biāo)志信號(hào)full.系統(tǒng)不復(fù)位的時(shí)候,在每個(gè)時(shí)鐘的上升沿使用case語句判斷狀態(tài)控制信號(hào),即地址信號(hào)addout,如果不是轉(zhuǎn)折點(diǎn)對(duì)應(yīng)的狀態(tài)控制信號(hào),則將輸入信號(hào)datain送入SRAM的數(shù)據(jù)端dataout,同時(shí)地址信號(hào)按照?qǐng)D1所描述的規(guī)則變化.例如,分區(qū)S0狀態(tài)的主要的程序語句如下:

      case(state)

      2[′]b00:if ((y_add==9[′]hef)&&(x_add==10[′]h13f))

      begin

      full<=1; state<=2[′]b01; //如果到達(dá)轉(zhuǎn)折點(diǎn)C0,則狀態(tài)值變?yōu)镾1

      dataout<=datain;

      x_add<=10[′]h140; y_add<=9[′]h000;// 寫地址變?yōu)镾1分區(qū)的起始地址

      end

      else begin

      full<=0;

      if (y_add<=9[′]hef) //如果沒有掃描到最后一行

      if(x_add<10[′]h13f) //如果沒有掃描到本行的最后一個(gè)單元

      begin

      dataout<=datain;

      x_add<=x_add+1;y_add<=y_add;//則行地址加一,列地址保持

      end

      else begin dataout<=datain;

      x_add<=0; y_add<=y_add+1;//每行掃描完畢后,列地址加一

      end

      end

      程序經(jīng)過編譯和綜合后,可以在工具Tools中看到軟件綜合后生成的狀態(tài)轉(zhuǎn)換圖,如圖4所示.

      3 仿真實(shí)驗(yàn)及說明

      圖5是基于有限狀態(tài)機(jī)的分區(qū)地址發(fā)生器的仿真波形圖,從圖中可以看到4塊存儲(chǔ)塊的存儲(chǔ)情況,圖5(a)是分區(qū)S0地址存滿時(shí)的波形,由圖可看出分區(qū)S0最后一個(gè)數(shù)據(jù)列向地址為0EFH,行向地址為13FH,存滿之后full顯示高電平1,跳轉(zhuǎn)到分區(qū)S1時(shí)第一個(gè)數(shù)據(jù)列向地址為000H,行向地址為140H.同理,由圖5(b)—圖5(d)可看出分區(qū)S1最后一個(gè)數(shù)據(jù)列向地址為0EFH,行向地址為27FH,跳轉(zhuǎn)到分區(qū)S2時(shí)第一個(gè)數(shù)據(jù)列向地址為0F0H,行向地址為000H;分區(qū)S2最后一個(gè)數(shù)據(jù)列向地址為1DFH,行向地址為13FH,跳轉(zhuǎn)到分區(qū)S3時(shí)第一個(gè)數(shù)據(jù)列向地址為0F0H,行向地址為140H;分區(qū)S3最后一個(gè)數(shù)據(jù)列向地址為1DFH,行向地址為27FH,跳轉(zhuǎn)到分區(qū)S0時(shí)第一個(gè)數(shù)據(jù)列向地址為000H,行向地址為000H.從波形的輸出結(jié)果來看,本次設(shè)計(jì)在每個(gè)狀態(tài)轉(zhuǎn)換前后的行列向地址信號(hào)值與表1中的相符,說明本設(shè)計(jì)是符合既定要求的.

      4 總結(jié)

      本文主要利用有限狀態(tài)機(jī)的工作原理,將4塊存儲(chǔ)區(qū)的寫信號(hào)產(chǎn)生設(shè)置成4個(gè)狀態(tài),設(shè)計(jì)了一種分區(qū)地址產(chǎn)生電路,將程序綜合后的網(wǎng)表文件下載至FPGA開發(fā)板的配置芯片中進(jìn)行硬件的邊界掃描測(cè)試,結(jié)果顯示輸入的數(shù)據(jù)流以塊狀的形式存儲(chǔ)并能準(zhǔn)確讀出,并且輸入的數(shù)據(jù)有序的存儲(chǔ),在第一塊存儲(chǔ)區(qū)地址沒存滿之前,數(shù)據(jù)流的地址不會(huì)流向下一存儲(chǔ)區(qū),這樣此分址電路有利于提高存儲(chǔ)器的資源占用率.

      參考文獻(xiàn)

      [1]仝欣.基于FPGA的視頻圖像處理系統(tǒng)的研究[D].西安:西安電子科技大學(xué),2012.

      [2]柯寶中.基于FPGA的乒乓式存取高速數(shù)據(jù)采集通道設(shè)計(jì)[J].廣西科技大學(xué)學(xué)報(bào),2015,26(1):43-47.

      [3]邵磊,倪明.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2011,37(19):221-223.

      [4]任杰,李克儉,潘紹明,等.雙口RAM讀寫正確性自動(dòng)測(cè)試的有限狀態(tài)機(jī)控制器設(shè)計(jì)方法[J].廣西科技大學(xué)學(xué)報(bào),2015,26(4):36-38.

      [5]高俊嶺,陳志飛,章佩佩.基于FPGA的實(shí)時(shí)視頻圖像采集處理系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(2):10-19.

      [6]孫宏旭,邢薇,陶林.基于有限狀態(tài)機(jī)的模型轉(zhuǎn)換方法的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(2):10-13.

      [7]馮建文.有限狀態(tài)機(jī)在FPGA硬件實(shí)驗(yàn)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2017,6(36):138-141.

      [8]李云,馮永浩,孟濤.基于VHDL有限狀態(tài)機(jī)控制器的設(shè)計(jì)方法[J].微計(jì)算機(jī)信息,2010,26(13):74-75.

      Design and implementation of SRAM partition address generator based on finite state machine

      WANG Xueli, LUO Wenguang*, QIN Yongxin

      (School of Electric and Information Engineering, Guangxi University of Science and Technology, Liuzhou 545006, China)

      Abstract: To meet the needs of storing different storage spaces in random storage according to the multi-channel data, a block address circuit based on Finite state machine is designed. In this design, an 8 Mb SRAM is designed to control the reading and writing address of the random memory by using the finite state machine. We first divide the storage space of SRAM into four partitions with an area of 320 by 240. Then the address of the four block Spaces is generated from left to right, from top to bottom, and the address in the storage space of each block is generated in the same order, so that the data of the four channels can be accurately stored in each storage unit of the corresponding partition. The top of the design documents are compiled and timing simulated in the Quartus Ⅱ software environment. The simulation results show that this block address generation circuit can realize the generation of SRAM partition address correctly. It has good timeliness and expansibility, and it provides a new way of thinking for data storage.

      Key words: partition address generator; multi-channel data partition storage; finite state machine; storage methods; field programmable logic array

      (學(xué)科編輯:張玉鳳)

      阳城县| 瓦房店市| 三门县| 准格尔旗| 武平县| 孝昌县| 张掖市| 小金县| 沾化县| 且末县| 安义县| 陆河县| 宕昌县| 微山县| 扶余县| 云霄县| 南充市| 滦平县| 彭水| 桐乡市| 祁门县| 根河市| 利津县| 民乐县| 黎平县| 元谋县| 岗巴县| 灵山县| 富平县| 津市市| 永丰县| 吉安市| 宜兴市| 甘孜县| 桑日县| 泰和县| 诸城市| 阆中市| 南郑县| 吉木乃县| 郎溪县|