亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于FPGA的異步FIFO設(shè)計(jì)方法

        2017-03-30 03:54:16黃凡
        微處理機(jī) 2017年1期
        關(guān)鍵詞:信號(hào)系統(tǒng)設(shè)計(jì)

        黃凡

        (海軍駐昆明地區(qū)軍事代表辦事處,昆明650000)

        一種基于FPGA的異步FIFO設(shè)計(jì)方法

        黃凡

        (海軍駐昆明地區(qū)軍事代表辦事處,昆明650000)

        設(shè)計(jì)完成了一種基于FPGA的異步FIFO,運(yùn)用Verilog HDL高級(jí)可編程語(yǔ)言和原理圖相結(jié)合的設(shè)計(jì)方法實(shí)現(xiàn)FIFO讀、寫(xiě)控制算法和數(shù)據(jù)查詢(xún)、存儲(chǔ)中斷模塊。運(yùn)用時(shí)鐘同步技術(shù),解決了FIFO設(shè)計(jì)中亞穩(wěn)態(tài)和競(jìng)爭(zhēng)冒險(xiǎn)的難點(diǎn)。最后采用QuartusII9.0設(shè)計(jì)仿真驗(yàn)證了該設(shè)計(jì),測(cè)試結(jié)果表明該方案工作原理簡(jiǎn)單,性能穩(wěn)定可靠。

        FIFO設(shè)計(jì);FPGA芯片;數(shù)據(jù)存儲(chǔ);數(shù)據(jù)采集;時(shí)序;時(shí)鐘同步

        1 引言

        異步FIFO作為數(shù)據(jù)采集和存儲(chǔ)的關(guān)鍵組成部分之一,在數(shù)據(jù)采集系統(tǒng)中發(fā)揮著舉足輕重的作用。在傳統(tǒng)設(shè)計(jì)方法中,常常采用微處理器[1]和具有FIFO功能的專(zhuān)用RAM芯片實(shí)現(xiàn)異步FIFO,達(dá)到數(shù)據(jù)高速采集和存儲(chǔ)功能,其系統(tǒng)成本較高,實(shí)現(xiàn)起來(lái)較困難[2-3]。而FPGA作為一種集成度很高的設(shè)計(jì)芯片,可以將微處理器和RAM集成到一塊FPGA上,大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì)流程,降低了系統(tǒng)成本和設(shè)計(jì)風(fēng)險(xiǎn)[4-8]。運(yùn)用VerilogHDL高級(jí)可編程語(yǔ)言和原理圖設(shè)計(jì)相結(jié)合的方法,選定Altera公司CycloneⅢ系列FPGA作為設(shè)計(jì)平臺(tái),設(shè)計(jì)完成了一種穩(wěn)定可靠的異步FIFO。

        2 設(shè)計(jì)方案

        提出了一種異步FIFO的設(shè)計(jì)方案,其組成結(jié)構(gòu)示意圖如圖1所示。

        圖1 組成結(jié)構(gòu)示意圖

        系統(tǒng)主要由FIFO控制模塊、讀/寫(xiě)地址信號(hào)產(chǎn)生模塊和RAM模塊組成,其中:

        (1)FIFO控制模塊為整個(gè)系統(tǒng)的核心,實(shí)現(xiàn)了與上位機(jī)數(shù)據(jù)通訊、RAM數(shù)據(jù)讀寫(xiě)和控制、讀/寫(xiě)地址信號(hào)產(chǎn)生單元的控制、外部數(shù)據(jù)采集,以及保證整個(gè)系統(tǒng)可靠穩(wěn)定的工作。其中,外部數(shù)據(jù)采集采用中斷處理的方式,當(dāng)接收到外部數(shù)據(jù)儲(chǔ)存中斷申請(qǐng),提供握手信號(hào);如果連接成功,則將數(shù)據(jù)存儲(chǔ)到RAM中。與上位機(jī)通訊同樣采取中斷查詢(xún)的方式,當(dāng)接收到上位機(jī)數(shù)據(jù)查詢(xún)請(qǐng)求,提供握手信號(hào),如果連接成功,則發(fā)送RAM中的數(shù)據(jù)到上位機(jī)。同時(shí),對(duì)讀、寫(xiě)地址信號(hào)產(chǎn)生模塊的控制以及內(nèi)部讀、寫(xiě)指針均采用時(shí)鐘同步技術(shù),保證每次進(jìn)行數(shù)據(jù)讀寫(xiě)時(shí),地址信號(hào)處于穩(wěn)定狀態(tài),保證了時(shí)序,提高了系統(tǒng)性能。

        (2)讀、寫(xiě)地址信號(hào)產(chǎn)生模塊為RAM提供地址信號(hào),采用二進(jìn)制計(jì)數(shù)器,與FIFO控制模塊的通訊采用時(shí)鐘同步技術(shù),避免了系統(tǒng)的亞穩(wěn)態(tài)現(xiàn)象,提高系統(tǒng)的安全性和穩(wěn)定性。

        (3)RAM作為系統(tǒng)數(shù)據(jù)存儲(chǔ)器,用于中間數(shù)據(jù)的存儲(chǔ)。

        3 主要模塊設(shè)計(jì)

        3.1 FIFO控制模塊

        FIFO控制模塊為整個(gè)系統(tǒng)的核心,主要完成功能包含以下四個(gè)方面:

        (1)與上位機(jī)通訊

        提供中斷接口,控制模塊接收到上位機(jī)中斷數(shù)據(jù)查詢(xún)請(qǐng)求之后,根據(jù)FIFO控制算法判斷是否可以讀取數(shù)據(jù),如果可以,則經(jīng)過(guò)數(shù)據(jù)處理,將數(shù)據(jù)提供給上位機(jī),并提供握手信號(hào),提示上位機(jī)可以讀取數(shù)據(jù)。

        (2)外部數(shù)據(jù)采集通訊

        提供中斷接口,控制模塊接收到外部數(shù)據(jù)存儲(chǔ)請(qǐng)求,根據(jù)FIFO控制算法判斷是否可以存儲(chǔ)數(shù)據(jù),如果可以,則經(jīng)過(guò)數(shù)據(jù)處理,將數(shù)據(jù)存儲(chǔ)到RAM中,并提供握手信號(hào),提示數(shù)據(jù)已經(jīng)存儲(chǔ)完畢,可以進(jìn)行下次存儲(chǔ)。

        (3)RAM數(shù)據(jù)交換控制

        通過(guò)算法,控制RAM數(shù)據(jù)讀寫(xiě),協(xié)調(diào)系統(tǒng)各部分的工作,保證系統(tǒng)各部分滿足時(shí)序要求,按照設(shè)定的流程工作。

        (4)讀/寫(xiě)地址信號(hào)產(chǎn)生模塊的時(shí)鐘信號(hào)

        提供地址信號(hào)產(chǎn)生模塊所需要的時(shí)鐘信號(hào)和復(fù)位信號(hào),經(jīng)過(guò)算法計(jì)算,判定當(dāng)前地址是否增加1或者復(fù)位。

        FIFO控制模塊控制流程時(shí)序示意圖如圖2所示。

        控制時(shí)序:系統(tǒng)上電,發(fā)送復(fù)位信號(hào)RET,系統(tǒng)完成初始化,等待接收系統(tǒng)外部讀取、存儲(chǔ)中斷信號(hào)。

        圖2 FIFO控制流程時(shí)序示意圖

        當(dāng)接收到中斷存儲(chǔ)信號(hào)DatInFlag時(shí),首先判斷是否可以進(jìn)行寫(xiě)入數(shù)據(jù),如果不行,則丟失該中斷信號(hào);如果可以,則進(jìn)行算法計(jì)算,通知寫(xiě)地址信號(hào)產(chǎn)生單元得出當(dāng)前的存儲(chǔ)地址WrAddr[15:0],并且將需要的輸入數(shù)據(jù)DatIn[7:0]準(zhǔn)備好輸出到RAM的數(shù)據(jù)輸入口上,然后給出RAM寫(xiě)信號(hào)時(shí)鐘WrClk=1,將數(shù)據(jù)輸入到RAM中,并回復(fù)握手信號(hào)ReWrEn。

        當(dāng)接收到中斷讀取信號(hào)DatOutFlag時(shí),首先判斷是否可以進(jìn)行讀取數(shù)據(jù),如果不可以,則丟失該中斷信號(hào);如果可以,則進(jìn)行算法計(jì)算,通知讀地址信號(hào)產(chǎn)生單元得出當(dāng)前的存儲(chǔ)地址WrAddr[15:0],然后給出RAM讀信號(hào)時(shí)鐘RdClk=1,數(shù)據(jù)讀出,然后輸出到通訊模塊,并回復(fù)握手信號(hào)ReRdEn,提示上位機(jī)讀取。

        3.2 地址信號(hào)產(chǎn)生模塊

        讀地址信號(hào)產(chǎn)生模塊和寫(xiě)地址信號(hào)產(chǎn)生模塊均采用16位2進(jìn)制計(jì)數(shù)器,且實(shí)現(xiàn)原理基本一樣。FPGA設(shè)計(jì)中,廣泛存在亞穩(wěn)態(tài)現(xiàn)象,它會(huì)使系統(tǒng)出現(xiàn)臨界狀態(tài),導(dǎo)致系統(tǒng)不穩(wěn)定,甚至崩潰。常見(jiàn)設(shè)計(jì)中,采用格雷碼計(jì)數(shù)器用于讀、寫(xiě)指針和地址信號(hào)產(chǎn)生,在本設(shè)計(jì)中為了簡(jiǎn)化設(shè)計(jì)流程,采用2進(jìn)制計(jì)數(shù)器加時(shí)鐘同步設(shè)計(jì)的方法。在計(jì)數(shù)器地址信號(hào)的輸出端,經(jīng)過(guò)一個(gè)計(jì)數(shù)器將地址信號(hào)同步輸出到RAM模塊,并且讀、寫(xiě)RAM時(shí)鐘信號(hào)RdClk、WrClk均采用系統(tǒng)時(shí)鐘同步,且比地址信號(hào)多同步輸出一個(gè)時(shí)鐘脈沖周期,保證了信號(hào)RdClk、WrClk與地址信號(hào)之間不會(huì)存在臨界狀態(tài)。同時(shí)RAM的數(shù)據(jù)信號(hào)輸出也采用了時(shí)鐘同步技術(shù),即數(shù)據(jù)輸出也進(jìn)行了相應(yīng)的同步,大大提高了系統(tǒng)穩(wěn)定性。

        3.3 RAM模塊

        Quartus II軟件提供了軟件IP核,直接通過(guò)軟件進(jìn)行簡(jiǎn)單的配置調(diào)用即可,如圖3所示。該模塊為系統(tǒng)自動(dòng)生成的RAM模塊。

        圖3 RAM結(jié)構(gòu)示意圖

        4 設(shè)計(jì)實(shí)現(xiàn)與仿真驗(yàn)證

        以Altera公司CycloneⅢ系列的一款FPGA為設(shè)計(jì)平臺(tái),基于 QuartusII9.0設(shè)計(jì)軟件,采用VerilogHDL高級(jí)可編程語(yǔ)言和原理圖相結(jié)合的設(shè)計(jì)模式,并且該方案可以無(wú)需更改任何代碼即可移植到Altera公司其它系列FPGA上。

        限于篇幅,不能將FPGA的設(shè)計(jì)代碼一一描述,在這里只給出FPGA設(shè)計(jì)原理圖和時(shí)序仿真結(jié)果圖,分別如圖4和圖5所示。

        圖4 FPGA設(shè)計(jì)原理圖

        圖5 時(shí)序仿真波形圖

        如圖4所示,系統(tǒng)分為三個(gè)大的部分,F(xiàn)IFO控制模塊,讀、寫(xiě)地址信號(hào)產(chǎn)生單元和RAM,其中設(shè)計(jì)的重點(diǎn)和難點(diǎn)是FIFO控制模塊。在FIFO控制模塊設(shè)計(jì)中,采用狀態(tài)機(jī)的設(shè)計(jì)方式,使各個(gè)功能都按照設(shè)計(jì)好的時(shí)序工作,強(qiáng)化了系統(tǒng)的執(zhí)行狀態(tài),同步了工作時(shí)序,提高了系統(tǒng)穩(wěn)定性。但需要注意的是,降低了系統(tǒng)的執(zhí)行速度,從仿真波形圖可以看出系統(tǒng)存儲(chǔ)和讀取的速度大約為400ns/字節(jié)。

        仿真結(jié)果表明:

        中斷存儲(chǔ):系統(tǒng)采集到外部數(shù)據(jù)中斷存儲(chǔ)信號(hào)ReWrFlag,經(jīng)過(guò)計(jì)算,如果可以進(jìn)行數(shù)據(jù)存儲(chǔ),則提供RAM模塊寫(xiě)時(shí)鐘WrClk兩個(gè)脈沖,第一個(gè)脈沖將地址信號(hào)輸入到RAM,第二個(gè)脈沖將數(shù)據(jù)寫(xiě)入到RAM,完成數(shù)據(jù)存儲(chǔ)。在圖5中,可以知道數(shù)據(jù)從0x0000地址開(kāi)始存儲(chǔ),一共存儲(chǔ)了6個(gè)數(shù)據(jù):0x02、0x03、0x04、0x05、0x06、0x07。存儲(chǔ)完畢,提供握手信號(hào)ReWrEn。系統(tǒng)開(kāi)始等待,直到有中斷存儲(chǔ)信號(hào)的到來(lái)。

        中斷查詢(xún):系統(tǒng)采集到上位機(jī)數(shù)據(jù)中斷查詢(xún)信號(hào)ReRdFlag,經(jīng)過(guò)計(jì)算,如果可以進(jìn)行數(shù)據(jù)讀取,則提供RAM模塊讀時(shí)鐘WrClk兩個(gè)脈沖,第一個(gè)脈沖將地址信號(hào)輸入到RAM,第二個(gè)脈沖將數(shù)據(jù)寫(xiě)輸出到數(shù)據(jù)總線,完成數(shù)據(jù)讀取。在圖5中,可以知道數(shù)據(jù)從0x0000地址開(kāi)始讀取,一共讀取了6個(gè):0x02、0x03、0x04、0x05、0x06、0x07,讀取完畢,系統(tǒng)提供握手信號(hào)ReRdEn,此時(shí)上位機(jī)可以從數(shù)據(jù)總線上讀取數(shù)據(jù)。

        注意,如果上位機(jī)一直提供中斷查詢(xún)信號(hào),若此時(shí)RAM中的數(shù)據(jù)已經(jīng)讀取完畢,則不再提供RAM讀時(shí)鐘信號(hào),不進(jìn)行RAM讀操作,且系統(tǒng)輸出Empty=1,表示RAM中已經(jīng)沒(méi)有數(shù)據(jù),系統(tǒng)重新開(kāi)始等待。

        5 結(jié)束語(yǔ)

        簡(jiǎn)要分析和介紹了一種基于FPGA的異步FIFO設(shè)計(jì)原理和方法,分成幾個(gè)模塊,其中詳細(xì)介紹了FIFO控制核心模塊的設(shè)計(jì),最后選擇Altera公司Cyclone系列FPGA為設(shè)計(jì)平臺(tái),運(yùn)用QuartusII9.0的時(shí)序仿真模塊對(duì)該設(shè)計(jì)方法進(jìn)行了仿真驗(yàn)證。測(cè)試結(jié)果表明該設(shè)計(jì)方法設(shè)計(jì)簡(jiǎn)單靈活,易于實(shí)現(xiàn),大大簡(jiǎn)化了設(shè)計(jì)流程,降低了設(shè)計(jì)成本與風(fēng)險(xiǎn),是一個(gè)值得推廣和應(yīng)用的方法。

        [1]鮑爾.嵌入式微處理器系統(tǒng)設(shè)計(jì)實(shí)例(3版)[M].蘇建平,李鵬飛,譯.北京:電子工業(yè)出版社,2004. Bauer.Embedded Microprocessor Systems Real World Design [M].Su Jian-pin,LiPeng-fei,Trans.Beijing: Publishing House of Electronics Industry,2004.

        [2]高禮忠.FIFO在高速數(shù)據(jù)采集系統(tǒng)中應(yīng)用 [J].電子測(cè)量技術(shù),2005(1):51-52. Gao Li-zhong.The Application of FIFO in High Speed Data Acquisition Systems [J].Electronic Measurement Technology,2005(1):51-52.

        [3]陳明義,夏海旻,周建國(guó).高速大容量FIFO的設(shè)計(jì)[J].電子科技,2008,21(6):1-3. Chen Ming-yi,Xia Hai-min,Zhou Jian-guo.A Design of High Speed and Deep FIFO.Electronic Science and Technology,2008,21(6):1-3.

        [4]徐欣,于紅旗,易凡,等.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2004. Xu Xin,Yu Hong-qi,Yi Fan,etc.Design of Embedded System Based on FPGA[M].Beijing:China Machine Press, 2004.

        [5]周昆正.基于FPGA的SDRAM控制器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2003,26(13):63-65. Zhou Kun-zheng.Design of SDRAM Controller Based on FPGA[J].Modern Electronic Technique,2003,26(13): 63-65.

        [6]邁耶·貝斯.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)(2版)[M].劉凌,譯.北京:清華大學(xué)出版社,2006. Mayeer Baese.Implementation of digital signal processing with FPGA[M].Liu Ling,Trans.Beijing:Tsinghua University Press,2006.

        [7]王建華,劉纏牢,陳大川,等.基于DSP+FPGA技術(shù)的實(shí)時(shí)視頻采集系統(tǒng)的設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2007,26 (9):42-44. Wang Jian-hua,Liu Chan-nao,Chen Da-chuan,et al. Design of real-time video processing system based on DSP+FPGA[J].Foreign Electronic Measurement Technology,2007,26(9):42-44.

        [8]劉鳳偉.一種并行異步FIFO控制算法設(shè)計(jì)[J].微處理機(jī),2012,33(5):32-34. Liu Feng-wei.Design of Parallel Asynchronous FIFO Control Algorithm[J].Microprocessors,2012,33(5):32-34.

        Design of Asynchronous FIFO Based on FPGA

        Huang Fan
        (Naval Military Office Stationed at Kunming Area,Kunming 650051,China)

        A method of asynchronous FIFO is designed in this paper.The design method of Verilog HDL and schematic diagram is used to realize reading and writing method of FIFO,and data query and storage of interrupt module.The problems of metastable state and competitive risk are solved by using clock synchronization technology.Finally,the test results,by simulation of QuartusII9.0,show that it has a simple operational principle and stable performance.

        FIFO design;FPGA chip;Data acquisition;Data storage;Time sequence;Clock synchronization

        10.3969/j.issn.1002-2279.2017.01.007

        TN368.1

        B

        1002-2279-(2017)01-0023-04

        黃凡(1984-),男,湖北省天門(mén)市人,工程師,博士,主研方向:裝備監(jiān)造與目標(biāo)探測(cè)、信號(hào)處理。

        2016-04-06

        猜你喜歡
        信號(hào)系統(tǒng)設(shè)計(jì)
        Smartflower POP 一體式光伏系統(tǒng)
        信號(hào)
        鴨綠江(2021年35期)2021-04-19 12:24:18
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        完形填空二則
        瞞天過(guò)海——仿生設(shè)計(jì)萌到家
        基于FPGA的多功能信號(hào)發(fā)生器的設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:42
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專(zhuān)
        Coco薇(2017年5期)2017-06-05 08:53:16
        欧美黑人又粗又硬xxxxx喷水| 人妖国产视频一区二区| 国产人妖乱国产精品人妖| 男女爽爽无遮挡午夜视频| 国产日b视频| 在线视频亚洲一区二区三区| 青青草亚洲视频社区在线播放观看| 凹凸在线无码免费视频| 牛牛在线视频| 日本亚洲国产一区二区三区| 亚洲VR永久无码一区| 国产精品高湖呻呤久久av| 一本丁香综合久久久久不卡网站| 美女视频黄的全免费的| 国产精品日日摸夜夜添夜夜添 | 国产精品无码一区二区在线国| 国产真实二区一区在线亚洲| 穿着白丝啪啪的av网站| 国产农村乱辈无码| 日本欧美在线播放| 日本一区二区午夜视频| 蜜桃视频一区二区在线观看| 吃奶摸下的激烈视频| 自慰高潮网站在线观看| 激情五月天在线观看视频| 国精品人妻无码一区免费视频电影| 亚洲熟妇少妇任你躁在线观看| 亚洲二区三区在线播放| 亚洲国产精品一区二区成人av| 国产台湾无码av片在线观看| 调教在线播放黄| 女同舌吻互慰一区二区| 无码gogo大胆啪啪艺术| 少妇的丰满3中文字幕| 91啦视频在线观看| 国产成人午夜av影院| 亚洲三级视频一区二区三区| 亚洲色欲色欲www| 国产自产c区| 日本少妇熟女一区二区| 久久久久成人精品无码|