
文章插圖
子圖像提取模塊輸出的子圖像有256 個像素 , 在FPGA 內部通過寄存器暫存上一個輸出的子圖像;當更新RAM 區的某個像素時 , 把16X16 的滑動窗口向右移動一列像素的位置 , 把滑動窗口內的數據作為輸出 , 就可以得到新的子圖像 。
2 設計仿真
在本文的設計仿真中 , 由于用到圖像文件的解析和圖像顯示 , 因此借助MATLAB 和Modelsim 軟件 , 通過文件讀寫的方式實現的聯合仿真 , 可使仿真處理更加便捷和直觀 。 其中 , MATLAB 用來把圖像文件轉換為輸入的像素 , 以及顯示輸出的子圖像;Modelsim 用來仿真和驗證FPGA 設計是否正確 。
本文使用MATLAB 和Modelsim 進行聯合仿真 , 主要有以下三個步驟 。 第一步 , 在MATLAB 中編寫m 文件 , 讀取bmp 位圖文件并把像素數據寫入文件datain.txt 中 , 作為ModelSim仿真的輸入激勵信號 。 第二步 , 在ModelSim 中 , 用VHDL 編寫Testbench 測試文件 , 讀取datain.txt 文件 , 產生與CCD_CLK 同步的像素信號;編寫DO 文件進行自動化仿真 , 再把仿真輸出的子圖像數據保存在dataout.txt 文件中 。 第三步 , 在MATLAB 中編寫m 文件 , 解析dataout.txt 文件 , 依次顯示為16×16 的黑白圖片序列 , 確定仿真結果是否正確 。 本設計仿真輸入的圖像及輸出的子圖像序列 , 如圖5 所示 。 從仿真結果可知 , 設計方法是正確的 , 仿真結果符合設計功能的要求 。

文章插圖
3 結束語
應用線陣CCD 圖像傳感器進行產品檢測時 , 連續、高速地輸出子圖像序列是必不可少的重要環節 , 采用FPGA 實現子圖像序列的提取和輸出 , 有多種不同的設計方法 。 本文采用“圖像轉置緩沖區”和狀態機的方式 , 來實現系統所要求的子圖像提取和輸出的功能 , 并用MATLAB 和ModelSim 工具軟件對設計進行了聯合仿真 , 該方法具有FPGA 資源占用少、結構簡單、高速處理 , 以及便捷和直觀的特點 , 對其他類似的FPGA 設計項目有很好的參考作用 。
- FPGA在微型投影儀中的應用與設計
- 將PCB原理圖傳遞到版圖設計的六大技巧
- 基于FPGA的數字密碼鎖
- 一種多功能電子密碼鎖的VHDL設計
- 基于PLC和HMI控制并集充磁和磁通檢測的充磁機設計
- 電化學基本概念--電極電位!
- 電泳漆液沉淀的處理
- 金在電觸點材料上的應用
- 烙制品的熟制方法
- 炸制品的熟制方法
