基于VerilogHDL的CMOS圖像敏感器驅(qū)動(dòng)電路設(shè)計(jì)
3 Verilog HDL驅(qū)動(dòng)時(shí)序設(shè)計(jì)
經(jīng)過(guò)以上分析可知,CMOS圖像敏感器采集時(shí)可以分為RESET過(guò)程和采集過(guò)程。時(shí)間上兩個(gè)過(guò)程是獨(dú)立的,如圖3。但在FPGA內(nèi)部處理這兩部分的電路物理上是同時(shí)存在,因此必須將相應(yīng)的信號(hào)通過(guò)置標(biāo)志位的方法置為有效或無(wú)效。
STAR250所需數(shù)字驅(qū)動(dòng)信號(hào)共28個(gè),其中SELECT信號(hào)在正常使用時(shí),直接接PCB板的Vcc。因此需FPGA控制的驅(qū)動(dòng)信號(hào)有27個(gè)。根據(jù)采集過(guò)程可以把信號(hào)劃分為列放大器信號(hào),包括CAL、Reset、Lr、S、R、LdY。這6個(gè)信號(hào)在每一行的初始化部分都要用到,因此可以編寫(xiě)到一個(gè)模塊(ColControl)中;模式信號(hào)(PaternCtrl)模塊用來(lái)設(shè)置CMOS敏感器的工作模式及初始地址,包括G0、G1、Bitlnvert和Addr[8:0]共12個(gè)信號(hào)。其中G0、G1用來(lái)設(shè)計(jì)輸出的放大倍數(shù),BitInvert用于將輸出取反,Addr[8:0]則設(shè)置采集的起始地址;行讀出信號(hào)控制模塊(YlCtrl)產(chǎn)生行讀出地址的同步信號(hào)SyncYl及時(shí)鐘驅(qū)動(dòng)信號(hào)ClkYl;行RESET信號(hào)控制模塊(YrCtrl)產(chǎn)生行RE-SET地址的同步信號(hào)SyncYr及時(shí)鐘驅(qū)動(dòng)信號(hào)ClkYr;像素控制模塊(RowCtrl)產(chǎn)生行內(nèi)像素初始地址的裝載信號(hào)LdX及同步信號(hào)SyncX;行內(nèi)時(shí)鐘信號(hào)模塊(RowClk)產(chǎn)生列內(nèi)像素的時(shí)鐘驅(qū)動(dòng)CLKX、ADC驅(qū)動(dòng)時(shí)鐘信號(hào)CLkAdc及輸出三態(tài)控制信號(hào)TriAdc。系統(tǒng)的輸入信號(hào)為主時(shí)鐘CLK、EosX行內(nèi)像素結(jié)尾信號(hào)、EosYl幀內(nèi)行結(jié)尾信號(hào)、EosYr幀內(nèi)RESET行結(jié)尾信號(hào)、芯片的RESET信號(hào)。經(jīng)過(guò)這樣劃分后的模塊化Verilog程序就比較易寫(xiě)了。經(jīng)過(guò)頂層模塊綜合生成的網(wǎng)表如圖4。布線仿真時(shí)序圖如圖5,其中時(shí)鐘信號(hào)過(guò)于密集變成黑色帶狀,同樣輸出時(shí)鐘CIkX及ClkAdc也是黑色帶狀。在時(shí)序上ClkX與ClkAdc是反相關(guān)系,在TriAdc保持低電平時(shí)輸出有效。所設(shè)計(jì)的驅(qū)動(dòng)信號(hào)仿真波形與理論波形十分符合。這樣就完成了STAR250的時(shí)序驅(qū)動(dòng)電路設(shè)計(jì)。
使用Verilog語(yǔ)言設(shè)計(jì)時(shí)序邏輯具有很高的效率。結(jié)合CMOS敏感器特性可以方便地開(kāi)發(fā)出驅(qū)動(dòng)時(shí)序電路。但必須對(duì)CMOS圖像敏感器的信號(hào)分析準(zhǔn)確,正確分離那些獨(dú)立的信號(hào)和共用的信號(hào),用時(shí)序邏輯設(shè)計(jì)驅(qū)動(dòng)信號(hào),用組合邏輯實(shí)現(xiàn)不同采集過(guò)程時(shí)間上的分離。布線延遲是必須考慮的,采用流水線技術(shù)可以預(yù)測(cè)延遲,保證信號(hào)的正確性。雖然文中并未給出像素ADC輸出的存儲(chǔ)電路,但實(shí)際上直接使用TriAdc信號(hào)作為SRAM的片選,ClaAdc的低電平作為寫(xiě)信號(hào),SRAM的地址在ClkAdc的上升沿增加、下降沿寫(xiě)入。這樣就可以完成圖像數(shù)據(jù)的存儲(chǔ)。以上Verilog程序在FLEXl0kl0上布線實(shí)現(xiàn)。經(jīng)示波器觀察邏輯正確,CMOS敏感器正常工作。
評(píng)論