999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

彈光調制高速大容量存儲系統

2013-09-11 03:21:04王耀利王志斌趙冬娥張敏娟黃艷飛
計算機工程與設計 2013年8期
關鍵詞:信號設計

王耀利,王志斌,2,趙冬娥,2,張敏娟,黃艷飛,張 瑞

(1.中北大學 山西省光電信息與儀器工程技術研究中心,山西 太原030051;2.中北大學 儀器科學與動態測試教育部重點實驗室,山西 太原030051)

0 引 言

近年來,彈光調制傅里葉變換光譜儀 (PEM-FTS)在科研、環境和軍事等方面得到了越來越廣泛的應用。通常情況下,彈光調制傅里葉變換光譜儀具有高速,高靈敏度等特點,每秒可產生上萬張干涉圖,要求其采集數據不僅速度快而且數據量大,需要輔以高速大容量的存儲器實現數據緩存。目前市場上使用的存儲器有很多種,包括FLASH,SRAM,SDRAM以及SD卡,硬盤等等。其中,SRAM速度快,控制簡單,適合小容量存儲,但當緩存容量較大時,采用SRAM會造成成本高,功耗大,可靠性差的問題[1]。FLASH的存儲容量也比較小,很難用到需大容量緩存的場合。與以上兩種存儲器相比,SDRAM (synchronous dynamic random access memory)傳輸速度可以達到100M以上,容量也可達到幾十兆甚至幾百兆,具有傳輸速率快,容量大等特點[2],可以在多個領域應用。可編程邏輯器件FPGA具有靈活、設計周期短,具有模塊化和控制簡單等特點,同時也可以滿足彈光調制傅里葉變換光譜儀的要求。

本文根據彈光調制傅里葉變換光譜儀需高速大容量存儲的要求,為使所研光譜儀速度快、結構緊湊并便于攜帶,并結合FPGA和SDRAM的特點,設計了一種基于FPGA控制的SDRAM存儲方案,使其工作在突發頁模式下,實現數據的高速存儲管理。用Verilog HDL語言對控制器進行代碼開發,在實驗室自行設計的基于FPGA的存儲控制卡上通過了硬件測試,實現了彈光調制干涉信號數據的海量緩存。

1 彈光調制干涉原理

彈光調制器是一種基于高性能彈光晶體 (如熔融石英、硒化鋅等)彈光效應的調制器件,利用壓電晶體 (如石英、壓電陶瓷)在光學各向同性的物質上加以周期性變化的機械應力,使彈光晶體共振,形成應力駐波,由于彈光效應,彈光晶體出現周期性變化的雙折射,因此光通過彈光調制器后其相位被調制[3]。被測光通過彈光調制器后,由探測器探測到的干涉信號并將其轉化為電信號,調制后干涉信號為

式中:L——彈光調制后產生的最大光程差,σ——被測光波數,f——調制頻率,I(σ)——被測光光譜。對干涉信號傅里葉變換便可獲得被測光的光譜

式中:T——調制周期 (T=1/f)。

彈光調制的調制頻率f為40~100KHz,光譜范圍為454~18180cm-1,光譜分辨率最高為10cm-1,由此可以看出彈光調制器經相位調制后產生的干涉信號調制頻率較高,每秒可產生上萬張干涉圖。根據彈光調制傅里葉變換光譜儀的要求和式 (1)可得干涉信號的頻率最高可達100MHz左右,數據量大,這就為后續數據的采集和存儲提出了高速大容量的要求。

2 SDRAM工作原理

2.1 SDRAM時序特點

SDRAM時序要求比較嚴格,只有上電邏輯和模式設置正確才能正常工作。而且在存儲的時候必須首先激活相應的存儲空間 (BANK),并給出相應的行列地址。同時,每隔一定的時間需進行刷新操作以保證數據不會丟失[4]。

SDRAM工作是以系統時鐘CLK上升沿觸發的,它包括如下幾根信號線:行地址選通RAS、列地址選通CAS、讀寫使能 WE、時鐘信號CKE/CLK、片選信號線CS。SDRAM的工作狀態由 WE/RAS/CAS組合在時鐘上升沿決定,同時地址線和BANK選擇控制線鎖定相應的地址[5]。

2.2 SDRAM工作狀態分析

SDRAM正常工作之前,首先要進行初始化,依次為:200us輸入穩定期,所有BANK預充電,8個刷新周期和模式寄存器設置 (MRS)[6]。設置完模式寄存器之后就開始進入正常工作狀態,首先由寫FIFO提供SDRAM寫請求,并激活相應的BANK、行、列,數據開始寫入SDRAM。與此同時,讀FIFO提供SDRAM讀請求,亦需激活相應的行、列,數據開始從SDRAM中讀出到讀FIFO。至此,完成了SDRAM讀寫操作。需要注意的是,SDRAM每讀寫完一行,需對其進行預充電操作,關閉當前讀寫完的一行,開啟下一需要讀寫的一行。不操作時SDRAM處于 W_IDLE(空操作)狀態;如果有讀請求,寫請求或者自刷新請求信號產生,則進入相應的狀態,在這些不同的響應狀態中需要協調好SDRAM的控制總線、地址總線及數據總線,從而保證穩定可靠地讀/寫SDRAM的數據。

SDRAM工作以狀態機的形式實現。其工作原理[7]如圖1所示。

圖1 SDRAM工作流程

3 基于FPGA的SDRAM系統設計

3.1 時鐘模塊

SDRAM時序要求很高,故對時鐘的要求也比較高,在通常的SDRAM讀寫設計實驗中一般要用到兩個時鐘,一個是用于FPGA上的系統時鐘,一個是加在SDRAM上的工作時鐘。在本實驗中,FPGA系統時鐘為25MHz,而SDRAM工作時鐘達到了100MHz,為了使產生的時鐘能夠更穩定的工作,實驗采用了Xilinx ISE中內嵌的DCM時鐘管理模塊來實現。

在本實驗中,晶振提供的時鐘頻率為50MHz,要提供FPGA系統時鐘的25MHz和SDRAM工作時鐘的100 MHz,需要用到時鐘分頻和倍頻,這些在DCM時鐘管理模塊中都可以實現。而問題的關鍵在于SDRAM時鐘要求在100MHz的基礎上相移相應的相位 (具體相移根據實際情況而定,以滿足芯片的建立保持時間為準,本實驗是有一個+2ns的相移),這就要用到DCM時鐘模塊的級聯[8],即第一級DCM實現零相移的100MHz的時鐘,第二級DCM在第一級的基礎上實現帶相移的100MHz的SDRAM工作時鐘。在Xilinx ISE中要實現DCM的級聯,需要相關的器件原語調用。BUFG是全局緩沖,它的輸出到達FPGA內部的IOB、CLB、選擇性塊RAM的時鐘延遲和抖動最小。BUFGCE是帶有時鐘使能端的全局緩沖。在兩個DCM例化核之間添加以下原語:

其中CLK_100M_OUT是第一級DCM核中100MHz的時鐘的輸出,CLK100M為第二級DCM核中要實現帶相移的100MHz的SDRAM工作時鐘的輸入。

為使產生的時鐘輸出達到無抖動延遲,在DCM的時鐘輸出之后添加BUFG原語:

其中clkphase_100M是第二級DCM核中帶相移的100MHz的時鐘的輸出,sdram_clk100M為要接入的SDRAM工作時鐘的輸入。

3.2 FIFO模塊

SDRAM存儲用到FIFO模塊,是因為外部數據與SDRAM控制器接收時的速率不匹配,實驗中外部數據與SDRAM控制器接收時的速率不匹配,外部數據產生速率是FPGA系統時鐘 (25MHz),而SDRAM數據接收速率為100MHz;同樣的,把SDRAM中存儲的數據通過串口傳輸到上位機時,也會有一個速率匹配的問題,所以在SDRAM存儲系統設計中用到了FIFO模塊,其中有兩個FIFO,一個寫FIFO,一個讀FIFO。

由于以上不同步原因的存在,以及提高訪問率,降低功耗[9],在這里用到的是異步FIFO。FIFO模塊中有wr_clk和rd_clk,wr_data_count和rd_data_count,其中wr_data_count與wr_clk同步,rd_data_count與rd_clk同步。寫FIFO中,數據從外部寫入,時鐘與外部系統時鐘同步,即25M;而數據從FIFO讀出寫入SDRAM時,又與SDRAM工作時鐘同步,即100M。讀FIFO正好相反,數據寫入讀FIFO時鐘為100M,數據讀出讀FIFO為25M。

程序中SDRAM的讀寫請求與FIFO中的數據量息息相關,根據數據有效程度同步產生SDRAM的讀寫請求。FIFO中一個寫計數器,一個讀計數器,經過分析,寫FIFO中應該使用讀計數器,讀FIFO中應該使用寫計數器。原因如下。

在寫FIFO工作時,數據寫入一個的頻率是25M,在此時間內,數據可以讀出4個。根據assign sdram_wr_req= ((wrf_free>=9'd8)& ~syswr_done);

當寫FIFO中數據量大于等于8個的時候就會向SDRAM發出寫入的請求,而此時如果用時鐘是25M的寫計數器時,就會出現一種錯誤,即當FIFO中的數據讀出不到4個時,FIFO中的計數器顯示的還是8個,但是其數據量其實已經變成7,6或5個了,本來當FIFO中數據小于8個時,SDRAM寫請求就應該取消了,但是這樣的話就把SDRAM寫請求的時間延長了,造成了SDRAM寫入錯誤。轉而言之,如果用時鐘頻率是100M的讀計數器時,就可以避免這個問題產生。讀FIFO亦是如此,總而言之,應該用頻率比較大的計數器,否則頻率小的計數器趕不上數據增減的改變,容易出現錯誤。

3.3 SDRAM控制器模塊

本實驗中使用的SDRAM控制器主要有3個模塊構成,即狀態控制模塊,命令生成模塊以及數據通路模塊[10]。

SDRAM狀態控制模塊,該模塊完成了SDRAM工作前的初始化過程以及模式寄存器的設置,確定了SDRAM工作模式;讀寫及自刷新操作狀態機實現了對SDRAM工作狀態的控制。在該狀態機中實現了SDRAM各工作狀態的轉換。突發讀寫[11]過程是主狀態機的重要一環,負責將數據寫入和讀出SDRAM按照何種方式來進行,本實驗采用的是突發全頁讀寫,即激活一次行列地址可以讀寫256個數據。

SDRAM命令模塊,該模塊根據狀態控制模塊兩個狀態機中不同狀態指示譯為相應的命令,并結合相應的地址進入命令協調過程,對送入的命令進行仲裁。對命令設定優先級,遵循 “先到先執行原則”,正在執行的命令優先級最高,刷新命令次之,最后是其他命令,以減少訪問沖突提高訪問效率[12]。

控制信號包括:sdram_cke,sdram_cs_n,sdram_we_n,sdram_ras_n,sdram_cas_n;

地址總線信號:sdram_addr,12位地址線復用[13]。

SDRAM數據讀/寫模塊,該模塊根據狀態轉換模塊的要求,通過雙向數據線方向控制實現數據線上讀寫狀態的轉換,主要是要配合數據總線使wrfifo的讀信號與數據總線占用同步,rdfifo的寫信號與數據總線占用同步,使得在讀寫狀態下數據以不同方向分別出現在數據總線上,這里需要參考工作狀態機work_state_r的轉換時序。

3.4 系統延遲

SDRAM在正式工作之前需要一定的時間對自身進行配置,這段時間里數據不允許寫入到SDRAM中,如果強制寫入會造成數據的丟失,在這段時間需要用到計數器延遲相應的時間等待SDRAM準備完畢。在SDRAM存儲的整個工程中大量用到了計數器延遲的功能,準確的實現了SDRAM工作時序的要求。

4 設計仿真與實驗

本設計采用的是三星公司12位的K4S641632N-LC60型號容量為64M的SDRAM芯片,以及Xilinx公司Spartan 3E系列的XC3S500E-4PQ208的FPGA芯片。實驗用Verilog HDL語言在Xilinx ISE 12.4的開發環境中進行了設計輸入和綜合仿真。為了驗證準確性,用 Modelsim 6.5進行了功能仿真,并用NI-5122采集卡在LABVIEW環境下對單塊彈光調制器 (photoelastic modulator,PEM)產生的彈光調制干涉信號進行數據采集,將采到的數據存儲到SDRAM中,然后將讀出的數據用MATLAB進行數據處理,圖形還原。其存儲速度達到了100MHz。

4.1 SDRAM 初始化

初始化是一系列命令的集合,首先是發出NOP命令(空操作或命令禁止操作),200us時發出預充電命令,然后發八條刷新命令,最后發出LOAD MODEREGISTER(裝載模式寄存器)命令,本實驗中工作模式設置的是突發全頁讀寫,突發傳輸方式為順序傳輸,CAS延遲設置為3個時鐘周期。如圖2所示。

圖2 SDRAM上電初始化仿真

4.2 寫SDRAM數據導入

寫入操作是BURST(突發)方式,BURST長度為一頁。全頁突發操作模式能夠很好地發揮SDRAM高速讀寫的性能,當SDRAM工作在全頁突發模式時,讀寫操作所訪問的地址將在頁內循環,直至收到突發停止命令或預充電命令。此設計采用了突發停止命令終止頁模式 .在執行寫入操作時,需要激活 (active)命令,寫 (burst write)命令,地址觸發等一系列操作。寫命令被觸發后,數據便以連續一頁即256個數據出現在數據總線上。讀完一頁之后,通過一個突發停止操作關閉當前行,通過預充電命令(precharge)開啟下一需要被寫入的行。自動刷新 (autorefresh)命令周期性的刷新SDRAM,保證內部數據不丟失。如圖3所示。

圖3 SDRAM寫操作仿真

4.3 存儲前后彈光調制干涉信號對比

原始數據是用NI公司的PXI-5122采集卡對彈光調制干涉信號進行采集,采集的彈光調制干涉信號如圖4所示。經過SDRAM寫入和讀出后,通過RS232串口在上位機上進行顯示,然后將得到的數據經MATLAB信號還原,得到的數據中出錯率在3%以內,誤差范圍較小,基本可以實現原始數據復原。結果如圖5所示。

圖4 NI-5122采集波形

5 結束語

圖5 MATLAB還原波形

本文基于Xilinx公司的Spantan-3E系列的FPGA芯片對彈光調制傅里葉變換光譜儀的高速數據存儲系統進行了設計和軟件驗證,進而選用三星公司的K4S641632N型號的SDRAM在硬件上實現了該系統數據的存儲,有效的解決了彈光調制傅里葉變換光譜儀高速,數據量大,需要緩存的問題。本實驗中SDRAM工作在突發頁操作模式下,數據讀寫速度達到了100MHz,存儲速度相較既有的存儲器使用上有了較大的提高,發揮了SDRAM存儲速度快、容量大的優點,滿足了系統的實際要求。同時在系統中采用了模塊化的設計思想,適用于圖像采集,信號處理等許多方面,提高了系統設計的靈活性、簡化了二次開發。為后期采用更高性能的SDRAM數據存儲提供了良好的基礎;但在調試過程中還存在一定的誤差,還需要進一步完善。

[1]LI Jin,JIN Longxu,LI Guoning,et al.Application of SDRAM to the large field of view TDICCD space camera[J].Journal of Electronics &Information Technology,2012,34 (5):1246-1251(in Chinese).[李進,金龍旭,李國寧,等.SDRAM在大視場TDICCD空間相機中的應用 [J].電子與信息學報,2012,34 (5):1246-1251.]

[2]LI Jun.Design of SDRAM controller and signal test[J].J of Wuhan Uni of Sci & Tech (Natural Science Edition),2006,27(3):596-598 (in Chinese).[黎俊.SDRAM 控制器設計及信號測試 [J].武漢科技大學學報 (自然科學版),2006,29(6):596-598.]

[3]JING Ning,WANG Zhibin,ZHANG Jilong,et al.Fast spectrum recovery of nonlinear optical path difference interferogram in photoelastic modulator [J].Laser Technology,2012,36(2):271-274 (in Chinese).[景寧,王志斌,張記龍,等.彈光調制非線性光程差干涉信號的快速反演 [J].激光技術,2012,36 (2):271-274.]

[4]SONG Yiming,XIE Yu,LI Chunmao.Design of SDRAM controller based on FPGA [J].Application Research of Computers,2003,29 (9):10-13 (in Chinese). [宋一鳴,謝煜,李春茂.基于FPGA的SDRAM控制器設計 [J].計算機應用,2003,29(9):10-13.]

[5]LU Genfeng.Embedded multi-cpu hardware design and implementation of video surveillance system [D].Chengdu:Southwest Jiaotong University,2009:1-69 (in Chinese).[陸艮峰.嵌入式多CPU視頻監控系統硬件設計與實現 [D].成都:西南交通大學,2009:1-69.]

[6]WANG Qian,DING Tiefu.Realization of SDRAM controller in high-speed image storing system [J].Chinese Journal of Liquid Crystals and Displays,2006,21 (1):48-52 (in Chinese).[王騫,丁鐵夫.高速圖像存儲系統中SDRAM控制器的實現[J].液晶與顯示,2006,21 (1):48-52.]

[7]CHEN Yingsen,NING Weiming,ZENG Anjun.Design of SDRAM controller based on FPGA [J].Research on Telecommunication Technology,2008 (1):24-29 (in Chinese).[陳英森,寧韋銘,曾安軍.基于FPGA的SDRAM控制器設計[J].電信技術研究,2008 (1):24-29.]

[8]LI Yunzhi,LI Liping,YANG Heng.Application of LVDS difference interface based on FPGA [J].Design and Development of IC,2008,33 (12):1138-1142 (in Chinese). [李云志,李立萍,楊恒.基于FPGA的LVDS高速差分板間接口應用 [J].集成電路設計與開發,2008,33 (12):1138-1142.]

[9]ZHAO Chuanmeng,GAO Yan,ZHANG Rong.A simple design and implementation of SDRAM controller[J].Computer &Digital Engineering,2010,38 (8):197-200 (in Chinese).[趙傳猛,高巖,張蓉.一種簡單的SDRAM控制器實現 [J].計算機與數字工程,2010,38 (8):197-200.]

[10]HOU Honglu,ZHANG Wenfang.Design scheme of SDRAM controller based on FPGA [J].Ordnance Industry Automation,2012,31 (2):57-61 (in Chinese).[侯宏錄,張文芳.基于FPGA的SDRAM控制器設計方案 [J].兵工自動化,2012,31 (2):57-61.]

[11]Hansoo Kim,In Cheol.High-performance and low-power memory-interface architechture for video processing applications[J].IEEE Transaction on Circuits and Systems for Video Technology,2001,11 (11):2011.

[12]Benny Akesson,Kees Goossens,Markus Ringhofer.A predictable SDRAM memory controller [C]//CODES+ISSS.NY,USA:ACM,2007.

[13]K4S641632N-LC60data sheet [M].Samsung.

猜你喜歡
信號設計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
孩子停止長個的信號
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
主站蜘蛛池模板: 久一在线视频| 美女无遮挡免费视频网站| 欧美性猛交一区二区三区 | 亚洲无线视频| 亚洲swag精品自拍一区| 久久精品这里只有精99品| 国模极品一区二区三区| 在线播放国产一区| 97精品久久久大香线焦| 99成人在线观看| 美女毛片在线| 亚洲国产黄色| 色婷婷成人| 国产精品所毛片视频| 99视频在线精品免费观看6| 国产精品流白浆在线观看| 日韩欧美中文字幕一本| 久热re国产手机在线观看| 四虎影视永久在线精品| 久久不卡国产精品无码| 国产午夜福利亚洲第一| 国产凹凸视频在线观看| 人妻丰满熟妇av五码区| 在线免费观看AV| 国产91精品调教在线播放| 国产男人天堂| 国产福利免费视频| 国产91透明丝袜美腿在线| 免费国产小视频在线观看| 国产爽爽视频| 国产精品第| 亚洲欧洲美色一区二区三区| 亚洲最大福利网站| 亚洲精品视频在线观看视频| 国产福利一区在线| 久久国产免费观看| 国产亚洲精久久久久久无码AV| a免费毛片在线播放| www.91中文字幕| 亚洲精品欧美重口| 日韩中文字幕免费在线观看 | 五月婷婷综合色| 老司机精品99在线播放| 久久精品视频亚洲| 国产麻豆福利av在线播放| 国产一区二区视频在线| 六月婷婷精品视频在线观看| 97久久精品人人| 久综合日韩| 成人国产一区二区三区| 色欲综合久久中文字幕网| 欧美a在线视频| 成人小视频网| 国产亚洲高清视频| 国产一级妓女av网站| 国产精品免费电影| 久久中文字幕不卡一二区| 欧美a级在线| 伊伊人成亚洲综合人网7777| 狠狠色综合久久狠狠色综合| 精品无码一区二区三区电影| 国产亚洲精品91| 亚洲中文字幕av无码区| 国产波多野结衣中文在线播放| 国产xxxxx免费视频| 精品国产福利在线| 在线播放真实国产乱子伦| 熟妇丰满人妻| 麻豆精品在线播放| 日韩精品亚洲一区中文字幕| 中国特黄美女一级视频| 国产女人18水真多毛片18精品 | 这里只有精品在线播放| 国产精品永久不卡免费视频| 国产成人精品午夜视频'| 亚洲不卡影院| 98超碰在线观看| 亚洲日本韩在线观看| 国产成人精品综合| 国产精品视频观看裸模| 成人久久18免费网站| 亚洲国产精品不卡在线|