怎樣在FPGA中處理開(kāi)關(guān)控制信號
設計過(guò)程中,首先將開(kāi)關(guān)動(dòng)作進(jìn)行編碼。然后將編碼后的數據存進(jìn)空間大小為8的雙口RAM中。當BF561檢測到PF9上的脈沖后,在PF中斷中讀取RAM中指定地址的數據,然后根據這個(gè)數據進(jìn)行開(kāi)關(guān)狀態(tài)解碼并按解碼后的控制信息對2塊MAX4312器件進(jìn)行操作以控制視頻通道。對開(kāi)關(guān)動(dòng)作進(jìn)行的編碼程序代碼如下:
整個(gè)設計有4種開(kāi)關(guān)動(dòng)作,程序中分別將其編碼成數據0l、02、03、04,然后將編碼后的這4個(gè)數據存入雙口模塊中,等待BF561來(lái)讀取并進(jìn)行解碼。圖6是SignalTapⅡLogic Analyzer中對脈沖開(kāi)關(guān)向右撥動(dòng)后存入RAM中的數據進(jìn)行采樣。
程序中RAM的讀信號rden_signal是由DSP發(fā)送的地址信號DSP_A、BANK選擇信號DSP_AMSl以及DSP讀信號DSP_ARE進(jìn)行控制的。當DSP不從雙口讀取數據時(shí),必須給DSP的數據線(xiàn)賦值高阻,以免影響SDRAM對DSP數據線(xiàn)的操作。賦值指令如下:assignDSP_D=(rden_signal=l 'b1)?DSP_D_TEMP;8 'hzz;其中DSP_D_TEMP是從雙口中讀取的數據。
3 結論
首先介紹了整個(gè)系統的工業(yè)背景和硬件架構,然后著(zhù)重闡述了怎樣在FPGA中處理開(kāi)關(guān)控制信號,以達到可靠響應每個(gè)開(kāi)關(guān)動(dòng)作的目的。整個(gè)設計程序是在QuartusⅡ平臺上用Verilog硬件描述語(yǔ)言編寫(xiě),利用QuartusⅡ中的下載工具和SignalTapⅡLogic Analyzer工具進(jìn)行下載、實(shí)時(shí)采樣,并多次調試驗證。本次設計已經(jīng)成功應用于布機告警系統中,每次撥動(dòng)開(kāi)關(guān)都能準確、可靠的切換視頻通道。雖然此系統中只有兩種開(kāi)關(guān),但是整個(gè)程序的設計思想對多種開(kāi)關(guān)控制也是通用的,只需在細節上稍作改變就能識別多種開(kāi)關(guān)動(dòng)作。
評論