品牌:美國 | 規格:IS215UCVEM09B | 材質:IS215UCVEM09B |
產地:瑞士 |
IS215UCVEM09B
Cadence公司成就電子設計技術創新,並在創建當今集成電路和電子產品中發揮核心作用。我們的客戶採用Cadence的軟件、硬件、IP、設計服務,設計和驗證用於消費電子、網絡和通訊設備以及計算機係統中的半導體器件。公司總部位於美國加州聖荷塞市,在各地均設有銷售辦事處、設計中心和研究機構,以服務於電子產業。在工業生產自動化係統中,通過計算機視覺和圖像處理技術來實現產品的質量監測和控制,已逐漸成為一種有效的應用技術。線陣CCD 圖像傳感器廣泛地應用於產品尺寸測量和分類、非接觸尺寸測量、條形碼、形態識別等眾多領域。在圖像檢測係統中,應具備一個高速的子圖像提取和輸出模塊,本文採用FPGA 器件EP3C25F256C8 和CCD 線陣圖像傳感器RL1024P,實現線陣CCD 圖像檢測係統中的子圖像提取和輸出功能。
1 子圖像提取模塊的設計
子圖像提取模塊的功能可描述為:採用FPGA 器件實現,根據串行輸入的黑白圖像和同步信號,提取該圖像中設定尺寸大小的子圖像。假設輸入圖像大小為i * j,某一像素點的坐標位置為(X,Y),要取出子圖像的大小為m * n,則用c 代碼描述為:for(b=0;b《j ; b++){for (a=0;a《i; a++){ // 取出Xa,Yb 到 Xa+m,Yb+n 的子圖像;} }
根據係統設計的要求,線陣CCD 圖像採集模塊採用串行的方式輸出1×1024 像素的一行圖像,子圖像提取模塊接收該圖像數據、緩衝、再輸出16×16 像素的子圖像。子圖像提取模塊的外部端口,如圖1 所示。主要信號有:像素同步時鐘信號CCD_CLK、像素數據CCD_DATA、當前輸入像素的坐標CCD_ADDR〔90〕 ;另外,N_RST 和SYS_CLK 為係統提供的復位信號和處理時鐘信號。其中,每個CCD_CLK 的上升沿出現時CCD_DATA 像素有效,且該像素所在的位置為CCD_ADDR〔90〕 值。
子圖像提取模塊的設計
為了實現每個CCD_CLK 周期內均輸出一個子圖像,SYS_CLK應該為CCD_CLK 的10 倍左右。
本文採用“圖像轉置緩衝區”的方法來實現子圖像提取模塊。“圖像轉置緩衝區”是一個按行寫入(更新)、按列讀出的一個RAM 緩衝區。在FPGA 內部設置一個1024 個單元的RAM 緩衝區,每個單元的位寬為16bits.線陣CCD 採集模塊輸出的線陣圖像與子圖像的關係,如圖2 所示。其中,第0 行表示圖像的當前行,第N 行為歷史行,每行有1024 個像素,按照p0 至p1023 的像素順序輸出。假設當前CCD_CLK 輸入的像素為第0行的p16 像素,則其對應的16X16 子圖像為圖中的陰影部分。
線陣圖像與子圖像的關係 “圖像轉置緩衝區”RAM 塊存儲圖像的結構
“圖像轉置緩衝區”RAM 塊存儲圖像的結構,如圖3 所示。
RAM 塊共有1024 個單元,每個單元為16 位的寬度,可存放近的16 行圖像數據。對比圖2 和圖3,可以發現,RAM 塊的地址編號相當於線陣CCD 圖像的某一行像素的位置,某個RAM單元的位D15 ~ D0 對應某一列的近16 個像素,相當於對線陣圖像轉置後再存放到RAM 塊中。對RAM 緩衝區進行寫操作時,由於線陣CCD 圖像的數據是按行逐位輸入的,每個CCD_CLK 時鐘上升沿出現時,僅需更新RAM 緩衝區中當前像素對應的比特,因此在邏輯上是根據圖像按行寫入RAM 區的。在FPGA器件中,可設計一個狀態機來實現“圖像轉置緩衝區”的讀寫操作,如圖4 所示。
圖像轉置RAM讀寫狀態
子圖像提取模塊輸出的子圖像有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 所示。從倣真結果可知,設計方法是正確的,倣真結果符合設計功能的要求。
倣真輸入的圖像及輸出的子圖像序列由於數字混頻後I和Q分別含4個支路,為實現濾波算法的並行處理,需要對各自的濾波器係數進一步做四相分解,以得到各支路係數。這樣實際上對係數完成了八相分解,因此濾波器係數的個數N應該為8的倍數。係數八相分解後,4個I支路的濾波器係數分別為2 8m h + 、4 8m h + 、6 8m h + 和8 8m h + ,4個Q支路的濾波器係數分別為1 8m h + 、3 8m h + 、5 8m h + 和7 8m h + ,其中m = 0,1,…, N / 8 ?1.
係數分解完成後,根據各支路多相濾波結構,在SysGen中採用FIR Compiler IP核實現算法設計。考慮到FPGA中除了實現超寬帶數字下變頻算法外,還包含接口與通訊、高速數據打包傳輸等功能,節省數字下變頻算法在FPGA中的資源佔用,兩種信號帶寬的濾波器採用係數重加載方式實現,其加載時序如圖4所示。
FIR Compiler係統加載時序
以I路的一個支路為例,SysGen中實現多相濾波的算法結構如圖5所示,4路濾波輸出求和過程同時實現了數字混頻算法的加減運算。其餘I支路以及Q路各支路濾波設計與此類似,僅延時有所不同,此處不再贅述。
並行多相濾波算法實現
經多相濾波處理後,I/Q分別得到並行4路、速率為200MHz的基帶信號,將各自支路信號按順序組合,即獲得等效速率為800MHz的I/Q數據,也就實現了對600MHz帶寬信號的數字下變頻設計。
3.4 數據抽取
由於數字混頻和多相濾波後的信號已完成了2倍抽取,要實現4倍抽取只需在此基礎上再進行2倍抽取即可。考慮到後續數據處理的一致性,4倍抽取後的I/Q信號仍需要包含4個支路,選取各自多相濾波後的第1、3支路分別進行2倍抽取,SysGen算法實現如圖6示。抽取後得到並行4路、速率為100MHz的基帶I/Q信號,將各自支路信號按順序組合即實現對350MHz帶寬信號的數字下變頻。
數據抽取算法實現
4.倣真應用
以350MHz帶寬的線性調頻信號為例,數字中頻信號和數字下變頻倣真結果如圖7示。從圖中看出,以並行多相濾波結構為基礎的算法實現了數字中頻信號的基帶變換,且數字下變頻後信號帶內平坦度較好,滿足工程應用需求。
數字下變頻倣真結果
限於本文中的採樣率和並行處理結構,FPGA的運行時鐘僅為200MHz,這對的FPGA來說並不算困難。而對於更高速率的中頻採樣係統,只要FPGA的處理速度可以接受,那麼仍然可以採用本文的算法結構實現。通過FPGA的多重配置可以有效地精簡控制結構的設計,同時可以用邏輯資源較少的FPGA器件實現需要很大資源才能實現的程序。以Virtex5係列開發板和配置存儲器SPI FLASH為基礎,從硬件電路和軟件設計兩個方面對多重配置進行分析,給出了多重配置實現的具體步驟,對實現復雜硬件設計工程有的參考價值。
關鍵詞:SPI FlashFPGA
現代硬件設計規模逐漸增大,單個程序功能越來越復雜,當把多個功能復雜的程序集成到一個FPGA上實現時,由於各個程序的數據通路及所佔用的資源可能衝突,使得FPGA控制模塊的結構臃腫,影響了整個係統工作效率。
通過FPGA的多重配置可以有效地精簡控制結構的設計,同時可以用邏輯資源較少的FPGA器件實現需要很大資源才能實現的程序。以Virtex5係列開發板和配置存儲器SPI FLASH為基礎,從硬件電路和軟件設計兩個方面對多重配置進行分析,給出了多重配置實現的具體步驟,對實現復雜硬件設計工程有的參考價值。
0引言
現代硬件程序設計規模越來越大,功能越來越復雜,當多個應用程序同時在一個硬件平臺上實現時,各個程序的資源使用和數據通路可能會衝突,這增加了控制電路設計的復雜程度,給開發人員增加了工作量和開發難度。通過多重配置,可以將多個應用程序根據需要分時加載到FPGA中,不僅精簡了電路設計,而且使係統更加靈活。FPGA多重配置的特點可以讓特定條件下的用戶選擇片上資源不多的FPGA去實現需要很多資源FPGA才能實現的功能,這大大降低了開發費用,同時提高了FPGA的利用率。
Xilinx公司Virtex5係列的FPGA具有多重配置的特性,允許用戶在不掉電重啟的情況下,根據不同時刻的需求,可以從FLASH中貯存的多個比特文件選擇加載其中的一個,實現係統功能的變換。
1總體設計
當FPGA完成上電自動加載初始化的比特流後,可以通過觸發FPGA內部的多重啟動事件使得FPGA從外部配置存儲器(SPI FLASH)指定的地址自動下載一個新的比特流來重新配置。FPGA的多重配置可以通過多種方式來實現。本文採用的是基於ICAP核的狀態機編碼方式。通過調用Xilinx自帶的ICAP核,編寫狀態機按照的指令流程對ICAP核進行不斷的配置,可以控制FPGA重新配置。這種方式可以在源代碼中加很多注釋,讓後來的開發者很清楚地明白ICAP核指令流順序,以及多重配置地址計算方法,是一種簡單實用的實現方法。
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1490-0003 ANALOG OUTPUT FIC NON ISOLATED
RS3 01984-1494-0005 MULTI LOOP PROCESSOR
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1502-0001 PEERWAY BUFFER
RS3 01984-1540-0009 OI PROCESSOR
RS3 01984-1540-0009 OI PROCESSOR
RS3 01984-1547-0001 OI NV RAM
RS3 01984-1594-0002 COORDINATOR PROCESSOR II
RS3 01984-1598-0001 4 MEG NV BUBBLE MEM
RS3 01984-1598-0001 4 MEG NV BUBBLE MEM
RS3 01984-1632-1000 OPTIONS KEYBOARD
RS3 01984-1632-2000 TWO OPTIONS KEYBOARD
RS3 01984-1975-0001 TRACKBALL KEYBOARD
RS3 01984-1984-0001 POWER SUPPLY
RS3 01984-1984-0003 POWER SUPPLY
RS3 01984-2137-0008 OI PROCESSOR 1 MEG
RS3 01984-2298-0001 POWER SUPPLY
RS3 01984-2298-0001 POWER SUPPLY
RS3 01984-2298-0001 POWER SUPPLY
RS3 01984-2347-0021 NV MEMORY
RS3 01984-2347-0021 NV MEMORY
RS3 01984-2386-0005 KEYBOARD
RS3 01984-2386-0005 KEYBOARD
RS3 01984-2402-0001 INTERFACE R5422-R5232
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2445-0001 MULTI STRATEGY MOTHERBOARD FLEX
RS3 01984-2500-0005 CONTROLLER SERIAL 1/O
RS3 01984-2503-0001 OI GRAPHICS VIDEO GEN
RS3 01984-2503-0001 OI GRAPHICS VIDEO GEN
RS3 01984-2503-0001 OI GRAPHICS VIDEO GEN
RS3 01984-2512-0003 ANALOG MARSHALLING PANEL
RS3 01984-2512-0003 ANALOG MARSHALLING PANEL
RS3 01984-2512-0003 ANALOG MARSHALLING PANEL
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2518-0002 FIC 4-20 mA 2In/1Out
RS3 01984-2526-0002 SIO RACK MINT CD CAGE
RS3 01984-2543-0001 COMMUNICATIONS CONNECT III
RS3 01984-2543-0001 COMMUNICATIONS CONNECT III
RS3 01984-2543-0001 COMMUNICATIONS CONNECT III
RS3 01984-2543-0001 COMUNICATIONS CONECT II
RS3 01984-2543-0001 COMUNICATIONS CONECT II
RS3 01984-2546-0002 PULSE I/O
RS3 01984-2546-0002 PULSE I/O
RS3 01984-2546-0002 PULSE I/O
RS3 01984-2551-0001 OUTPUT BYPASS CARD
RS3 01984-2597-0001 ANALOG I/O CAGE MOTHERBOARD
RS3 01984-2597-0001 ANALOG I/O CAGE MOTHERBOARD
RS3 01984-2597-0001 ANALOG I/O CAGE MOTHERBOARD
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2731-0001 FIC RTD/TC
RS3 01984-2759-0008 OI PROCESSOR III
RS3 01984-2837-0001 FLOOPY DRIVE
RS3 01984-2871-0004 MAIN KEYBOARD
RS3 01984-3100-0001R QUANTUM HARD DRIVE
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3202-0010 OI PROSSESOR V
RS3 01984-3222-0004 KEYBOARD INT.VIDEO ISOLATOR
RS3 01984-3222-0004 KEYBOARD INT.VIDEO ISOLATOR
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-3505-0001 POWER REGULATOR II 5 VOLT ONLY
RS3 01984-353-0001
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI-PURPOSE CONTROLLER II
RS3 01984-4068-0006 MULTI PURPOSE CONTROLLER II