M4K塊移位寄存器數(shù)據(jù)讀進(jìn)方式的邏輯分析儀設(shè)計(jì)
3 控制模塊
通過FPGA內(nèi)部的M4K塊配置移位寄存器不斷地讀進(jìn)新的采樣值,數(shù)據(jù)采樣回來后先經(jīng)過SDRAM放入緩存FIFO中,然后把該FIFO中的數(shù)據(jù)上傳到顯示器。該模塊的時(shí)鐘是由PLL電路對FPGA輸入的25 MHz晶振時(shí)鐘倍頻得到的。通過FPGA外部一組撥碼開關(guān)控制輸入電平為高或者低,從而設(shè)置不同的觸發(fā)和采樣模式。
3.1 SDRAM數(shù)據(jù)存儲(chǔ)模塊
將這個(gè)存儲(chǔ)模塊劃分為多個(gè)子模塊來實(shí)現(xiàn)。如圖3所示。sdram_ctrl是SDRAM狀態(tài)控制模塊,該模塊主要完成SDRAM的上電初始化以及定時(shí)刷新、讀/寫控制等狀態(tài)的變遷。內(nèi)部設(shè)計(jì)了兩個(gè)狀態(tài)機(jī),一個(gè)用于上電初始化的狀態(tài)控制,另一個(gè)月用于正常工作時(shí)的狀態(tài)控制;sdram _cmd是SDRAM命令模塊,該模塊根據(jù)sdram_ctrl模塊的不同狀態(tài)指示輸出相應(yīng)的SDRAM控制命令和地址,sdram_wr_data是SDRAM數(shù)據(jù)讀/寫模塊,該模塊同樣是根據(jù)sdram_ctrl模塊的狀態(tài)指示完成SDRAM數(shù)據(jù)總線的控制,SDRAM的數(shù)據(jù)讀/寫都在該模塊完成。數(shù)據(jù)讀/寫借助了兩個(gè)存儲(chǔ)器(異步FIFO)如圖4所示。其中wrfifo用于寫SDRAM數(shù)據(jù),rdfifo用于讀SDRAM數(shù)據(jù)。在設(shè)計(jì)中SDRAM讀/寫都是以8個(gè)字(16 b)為單位,使用FIFO中的當(dāng)前數(shù)據(jù)量作為操作SDRAM的狀態(tài)指示。當(dāng)wrfifo數(shù)量超過8個(gè)則發(fā)出寫SD]RAM請求,讀出wrfifo中的數(shù)據(jù)。同樣,在rdfifo數(shù)據(jù)少于256 B(rd-fifo半空)時(shí)發(fā)出讀SDRAM請求,讀出8個(gè)新的數(shù)據(jù)寫入rdfifo中,以保證后續(xù)電路總是持續(xù)的傳輸。SDRAM信號采集模塊在上電延時(shí)后從SDRAM的0地址開始寫入遞增數(shù)據(jù),隨后通過內(nèi)部FIFO依次送入SDRAM。SDRAM的所有地址寫完數(shù)據(jù)后,啟動(dòng)SDRAM讀邏輯,從0地址開始讀出SDRAM內(nèi)的數(shù)據(jù)放入緩存FIFO中,然后把該FIFO中的數(shù)據(jù)上傳到顯示器。本文引用地址:http://www.ex-cimer.com/article/161310.htm
3.2 基于M4K的移位寄存器連續(xù)且可變頻的采樣模塊
為了實(shí)現(xiàn)有效效據(jù)的精確捕獲在不中斷程序運(yùn)行的情況下,有效數(shù)據(jù)長時(shí)間實(shí)時(shí)讀進(jìn),提高嵌入式軟件性能分析的范圍和質(zhì)量。利用Cyclone芯片內(nèi)部M4K結(jié)構(gòu)配置移位寄存器對數(shù)據(jù)實(shí)時(shí)采樣,并且設(shè)置2個(gè)按鍵調(diào)節(jié)控制采樣頻率。
圖5為M4K移位寄存器原理圖。配置輸入/輸出的數(shù)據(jù)位寬w,移位寄存器的一個(gè)taps位寬m,總的taps數(shù)量n。這三個(gè)參數(shù)乘積就是占用的M4K存儲(chǔ)大小。從圖5中可看出,每個(gè)clk輸入一個(gè)移位數(shù)據(jù),同時(shí)輸出一個(gè)數(shù)據(jù),而M4K內(nèi)部則是每個(gè)clk周期移位一次,每個(gè)tap的輸出直接移位到下一個(gè)tap的輸入,配置后的輸出中可看到每個(gè)tap的最后一個(gè)w位寬的數(shù)據(jù)。
評論