基于FPGA的簡易數(shù)字存儲示波器設(shè)計
3 FPGA程序設(shè)計
此部分實現(xiàn)的主要的功能是將A/D轉(zhuǎn)換后的數(shù)據(jù)經(jīng)FPGA控制寫入RAM及將數(shù)據(jù)從RAM讀出經(jīng)FPGA輸出給D/A轉(zhuǎn)換器,頂層原理圖如圖5所示。外圍主要接口端功能為:A[15..3]為數(shù)據(jù)輸入端,CLK4M為時鐘信號端,TONGIN為觸發(fā)端口,CS、RC、WE、OE為片選、轉(zhuǎn)換、讀寫控制端,RAMI、RAMO、AA為存儲器I/O端、地址端,QQ為數(shù)據(jù)輸出端。
其中模塊CHANA實現(xiàn)的功能是對數(shù)據(jù)的最高位取反,因為AD976最高位“l(fā)”表示負(fù)電平,而AD669最高位“1”表示高電平;模塊INTRD在EN為“1”,信號上升沿過零點時,Q輸出為“l(fā)”,直到完成對存儲器的寫操作為止;模塊SIGND是整個程序的核心部分,主要功能是為存儲器和lAD976提供控制信號,啟動A/D轉(zhuǎn)換,對存儲器進行寫操作和讀操作;模塊SAN在對存儲器由寫操作轉(zhuǎn)變?yōu)樽x操作后,將存儲器的數(shù)據(jù)輸出變?yōu)楦咦钁B(tài),不妨礙存儲器數(shù)據(jù)的正常讀入;模塊TONG端口A外接開關(guān),按下時低電平,起同步作用。仿真結(jié)果如圖6,(a)為寫操作時的仿真波形;(b)為讀操作時的仿真波形。當(dāng)運行在寫操作時,QQ無輸出,如圖6(a)所示,實現(xiàn)存儲功能,讀操作時,QQ輸出,由于模塊CHANA的存在,QQ輸出的數(shù)據(jù)要對A輸入的數(shù)據(jù)首位取反,即A輸入是0101,QQ輸出是1101,如圖6(b)所示,仿真結(jié)果正確。
4 結(jié)語
本文以PLC器件為控制核心,通過附加一定的外電路及普通示波器構(gòu)成簡易數(shù)字存儲器,使普通示波器具有波形數(shù)字存儲的功能。其中以FPGA為主部件的控制部分采用VHDL語言,按模塊化方式進行設(shè)計,并將各模塊集成于芯片中,最后通過MAXPLUS II軟件對設(shè)計進行邏輯仿真,對FPGA芯片進行編程,實現(xiàn)系統(tǒng)的設(shè)計要求。隨著科學(xué)技術(shù)的不斷發(fā)展,這種以FPGA為基礎(chǔ)的軟件硬件化,其發(fā)展前景十分看好。
評論