趙曉海
(北京思比科微電子技術(shù)股份有限公司數(shù)字部 北京 100085)
當(dāng)前,實(shí)現(xiàn)圖像采集、處理和壓縮等功能的數(shù)字集成電路產(chǎn)品得到了廣泛應(yīng)用[1]。但是隨著消費(fèi)者對(duì)圖像質(zhì)量的要求越來(lái)越高、多媒體芯片實(shí)現(xiàn)的功能越來(lái)越豐富,該領(lǐng)域集成電路的時(shí)鐘方案也變得越來(lái)越復(fù)雜。
同步方法除了必須保證數(shù)據(jù)正確傳輸外,還應(yīng)注意以下兩方面:所用存儲(chǔ)器的容量和EDA(Electronic Design Automation)工具的干預(yù)程度。首先應(yīng)使所用存儲(chǔ)器的容量盡量小,因?yàn)槠洳粌H占用較大的芯片面積,而且還有較多功耗。其次,要盡量減少和避免使用EDA工具對(duì)跨時(shí)鐘域信號(hào)做時(shí)序檢查和校正。因?yàn)?,如果源和目?biāo)時(shí)鐘沒(méi)有確定的相位關(guān)系,EDA工具就無(wú)法檢查前后兩級(jí)觸發(fā)器的路徑延時(shí)與目標(biāo)時(shí)鐘的關(guān)系;另外即使兩時(shí)鐘有確定的相位關(guān)系,EDA工具也可能在信號(hào)路徑中插入大量的Buffer,從而浪費(fèi)芯片面積。
這里結(jié)合一個(gè)CMOS圖像傳感器的設(shè)計(jì)實(shí)例,總結(jié)并提出了幾種對(duì)跨時(shí)鐘域信號(hào)做同步處理的方法。這些方法既可以保證數(shù)據(jù)的正確傳送,又可以盡量減少對(duì)芯片面積的占用。
首先介紹一種輸出分辨率為1 280×720的CMOS圖像傳感器的設(shè)計(jì)。其CMOS圖像陣列的數(shù)據(jù)端口為4通道,幀率為60幀/s。
該CMOS圖像傳感器的模塊構(gòu)成如圖1(a)所示。
CMOS像素陣列為圖像傳感器的感光器件。采用Bayer pattern[2]模式,分為4種顏色:G1、R、G2、B。
CMOS圖像陣列模塊輸出信號(hào)的時(shí)序關(guān)系如圖1(b)所示。
vsync_pix為幀同步信號(hào),其為1表示幀有效期,為0表示幀消隱期;hsync_pix為行同步信號(hào),相當(dāng)于輸出數(shù)據(jù)的使能信號(hào),其為1表示行有效期,為0表示行消隱期;data_g1、data_r、data_b、data_g2為4個(gè)數(shù)據(jù)輸出端口,每個(gè)端口只輸出一種顏色的數(shù)據(jù)。
圖1 CMOS圖像傳感器系統(tǒng)結(jié)構(gòu)Fig.1 System structure diagram of CMOS image sensor
由圖1(b)所示,在每個(gè)時(shí)鐘周期,同時(shí)輸出4個(gè)像素的數(shù)值,這4個(gè)像素為相鄰的兩行兩列像素且處于一個(gè)矩形當(dāng)中。
列拼接模塊用于把圖像陣列送出的4通道數(shù)據(jù)按列拼接為雙通道數(shù)據(jù)。即把每行的2個(gè)數(shù)據(jù)合并至一個(gè)通道中。這樣做的結(jié)果是每個(gè)輸出通道的數(shù)據(jù)頻率提高一倍。
行拼接模塊用于把列拼接模塊送出的2通道數(shù)據(jù)合并為單通道數(shù)據(jù)。當(dāng)2通道數(shù)據(jù)輸入時(shí),其首先將其中一行送出,然后在一定時(shí)間后再送出另一行數(shù)據(jù)。其輸出數(shù)據(jù)的頻率也為輸入數(shù)據(jù)的兩倍。
輸出頻率轉(zhuǎn)換模塊是把頻率為96 MHz的輸入數(shù)據(jù)轉(zhuǎn)換為以64 MHz頻率送出。數(shù)據(jù)輸出模塊被用于從不同模塊選擇輸入數(shù)據(jù),并完成輸出數(shù)據(jù)的時(shí)鐘同步工作。CMOS像素陣列控制器用于控制對(duì)所有像素的曝光和讀出。時(shí)鐘管理模塊用于產(chǎn)生各個(gè)模塊所需的時(shí)鐘及復(fù)位信號(hào)。
該CMOS圖像傳感器最重要的功能是輸出分辨率為1 280×720的圖像,且60幀/s。為了達(dá)到這個(gè)幀率,像素陣列控制器的時(shí)鐘頻率應(yīng)為109÷((732/2)×(400+1 284/2+16)×60)≈23.2 MHz,所以像素陣列和像素陣列控制器的工作頻率定為24 MHz。而4個(gè)通道數(shù)據(jù)合并為一個(gè)通道后,數(shù)據(jù)頻率將變?yōu)?6 MHz,所以讓數(shù)字邏輯各模塊工作在96 MHz時(shí)鐘上。在此基礎(chǔ)上該圖像傳感器有3種工作模式:?jiǎn)瓮ǖ垒敵?6 MHz頻率的數(shù)據(jù)、單通道輸出64 MHz頻率的數(shù)據(jù)、雙通道輸出48 MHz頻率的數(shù)據(jù)。
1)單通道輸出96 MHz頻率數(shù)據(jù)(模式1)
在該模式下,像素陣列以4通道送出數(shù)據(jù),每個(gè)通道的數(shù)據(jù)頻率均為24 MHz。此4通道數(shù)據(jù)首先進(jìn)入列拼接模塊,從此模塊輸出時(shí)變?yōu)?通道、每通道頻率為48 MHz的數(shù)據(jù)。之后進(jìn)入行拼接模塊,此模塊輸出單通道且頻率為96 MHz的數(shù)據(jù)。最后,經(jīng)數(shù)據(jù)輸出模塊,圖像傳感器以單通道輸出96 MHz頻率的數(shù)據(jù),且?guī)蕿?0幀/s。
2)單通道輸出64 MHz頻率數(shù)據(jù)(模式2)
在此模式下,行拼接模塊輸出的單通道且頻率為96 MHz的數(shù)據(jù)被送入輸出頻率轉(zhuǎn)換模塊。該模塊將數(shù)據(jù)的傳輸頻率從96 MHz降為64 MHz。最后經(jīng)數(shù)據(jù)輸出模塊,圖像傳感器以單通道輸出64 MHz頻率的數(shù)據(jù),幀率仍為60幀/s。
3)雙通道輸出48 MHz頻率數(shù)據(jù)(模式3)
在該模式下,列拼接模塊輸出的2通道、頻率分別為48 MHz的數(shù)據(jù)被直接送入數(shù)據(jù)輸出模塊。圖像傳感器以2通道輸出頻率分別為48 MHz的數(shù)據(jù)。
根據(jù)該CMOS圖像傳感器功能要求,其時(shí)鐘方案如圖2所示。
圖2 時(shí)鐘方案Fig.2 Clock scheme
該CMOS圖像傳感器的輸入時(shí)鐘的頻率為24 MHz,由PLL(Phase Locked Loop)對(duì)其8倍頻,輸出頻率為192 MHz時(shí)鐘,之后將192 MHz時(shí)鐘分別做2分頻和3分頻。2分頻產(chǎn)生的96 MHz時(shí)鐘作為數(shù)字部分的主要工作時(shí)鐘,列拼接模塊、行拼接模塊、輸出頻率轉(zhuǎn)換模塊均工作在此時(shí)鐘域中。3分頻產(chǎn)生的64 MHz時(shí)鐘被送入輸出頻率轉(zhuǎn)換模塊,用于將數(shù)據(jù)頻率從96 MHz降為64 MHz。
96 MHz時(shí)鐘被2分頻后產(chǎn)生48 MHz時(shí)鐘,當(dāng)圖像傳感器工作在模式3時(shí),該48 MHz時(shí)鐘被作為輸出數(shù)據(jù)的同步時(shí)鐘。
48 MHz時(shí)鐘被2分頻后產(chǎn)生24 MHz,其被送入CMOS像素陣列控制器模塊。該模塊和CMOS像素陣列均工作在24 MHz時(shí)鐘域中。
在圖像傳感器輸出圖像數(shù)據(jù)時(shí),其會(huì)送出與輸出數(shù)據(jù)同步的時(shí)鐘,即Pclk,后級(jí)芯片必須首先用此時(shí)鐘采集圖像數(shù)據(jù)。當(dāng)圖像傳感器工作在模式1時(shí),Pclk為96 MHz時(shí)鐘;當(dāng)其工作在模式2時(shí),Pclk為64 MHz時(shí)鐘;其工作在模式3時(shí),Pclk為48 MHz時(shí)鐘。
在CMOS像素陣列控制器的控制下,像素陣列以4通道、每通道24 MHz的頻率輸出數(shù)據(jù)。而列拼接模塊工作在96 MHz的時(shí)鐘域內(nèi),所以數(shù)據(jù)進(jìn)入列拼接模塊后,首先必須實(shí)現(xiàn)從24 MHz到96 MHz的時(shí)鐘域切換。
從圖2中可以看到,像素陣列所處的24 MHz時(shí)鐘是由96 MHz時(shí)鐘4分頻后得到的,所以此96 MHz時(shí)鐘與24 MHz時(shí)鐘有確定的相位關(guān)系。此關(guān)系如圖3所示。
圖3 96 MHz時(shí)鐘與24 MHz時(shí)鐘的相位關(guān)系Fig.3 Phase relation between 96 MHz clock and 24 MHz clock
當(dāng)數(shù)據(jù)從24 MHz時(shí)鐘的上升沿輸出后,其距離下一個(gè)96 MHz時(shí)鐘的上升沿有將近一個(gè)96 MHz時(shí)鐘周期的延時(shí)。所以在這種情況下可以直接用目標(biāo)時(shí)鐘的上升沿去采源時(shí)鐘上升沿送出的數(shù)據(jù)。
另外,在邏輯綜合(synthesize)時(shí),必須設(shè)置此96 MHz時(shí)鐘和24 MHz時(shí)鐘為同步關(guān)系,即用synthesize工具去檢查所有跨此兩個(gè)時(shí)鐘邊界的路徑是否滿足時(shí)序要求。
應(yīng)注意,所有從24 MHz時(shí)鐘域進(jìn)入96 MHz時(shí)鐘域的信號(hào)必須首先被96 MHz時(shí)鐘至少采一拍。這樣做的原因是保證跨時(shí)鐘域信號(hào)第一次被目標(biāo)時(shí)鐘采集時(shí),此offset能夠盡量大。
當(dāng)該CMOS圖像傳感器工作在模式2時(shí),輸出頻率轉(zhuǎn)換模塊將把輸入頻率為96 MHz的數(shù)據(jù)變?yōu)橐?4 MHz頻率輸出。
從圖2中可以看到,96 MHz時(shí)鐘和64 MHz時(shí)鐘均由192 MHz時(shí)鐘分頻得到,但兩者之間沒(méi)有固定的相位關(guān)系,所以不能使用2.1所述的方法實(shí)現(xiàn)跨時(shí)鐘域信號(hào)的同步。此時(shí)可以通過(guò)雙端口存儲(chǔ)器實(shí)現(xiàn)跨時(shí)鐘域信號(hào)的同步。
1)輸出頻率轉(zhuǎn)換模塊內(nèi)部結(jié)構(gòu)
輸出頻率轉(zhuǎn)換模塊的內(nèi)部結(jié)構(gòu)如圖4所示。
該模塊的核心為一個(gè)雙端口存儲(chǔ)器,其的一個(gè)端口用于96 MHz數(shù)據(jù)寫入,另一端口用于以64 MHz頻率將數(shù)據(jù)讀出。
Vsync_in為該模塊的幀同步輸入信號(hào);Hsync_in為行同步輸入信號(hào);Data_in為數(shù)據(jù)輸入端口;Vsync_out,hsync_out為該模塊輸出的幀同步信號(hào)和行同步信號(hào);Data_out為數(shù)據(jù)輸出端口。
2)同步流程
圖4 輸出頻率轉(zhuǎn)換模塊的結(jié)構(gòu)Fig.4 Structure diagram of synchronization module
在每一行數(shù)據(jù)輸入時(shí),hsync_in均變?yōu)?,此時(shí)地址計(jì)數(shù)器1開始計(jì)數(shù)。其的計(jì)數(shù)值將作為寫地址信號(hào)被送到雙端口存儲(chǔ)器的wadder端口。hsync_in也作為寫信號(hào)被送到write端口。此時(shí)該行數(shù)據(jù)被串行寫入此存儲(chǔ)器中。
hsync_in信號(hào)同時(shí)也被送入同步器,同步器利用64 MHz時(shí)鐘將其采兩拍后產(chǎn)生信號(hào)hsync_sync,其被送入地址計(jì)數(shù)器2中。地址計(jì)數(shù)器2將以此信號(hào)的上升沿為計(jì)數(shù)開始的標(biāo)志,直至計(jì)到1280后回到初始值0。該計(jì)數(shù)值被作為讀地址送到雙端口存儲(chǔ)器的radder端口。此時(shí)雙端口存儲(chǔ)器中的數(shù)據(jù)被以64 MHz的頻率讀出。
在地址計(jì)數(shù)器2從0到1 280的計(jì)數(shù)過(guò)程中,將產(chǎn)生寬度為1 280個(gè)64 MHz時(shí)鐘周期的信號(hào)hsync_out,其作為雙端口存儲(chǔ)器輸出數(shù)據(jù)的使能信號(hào)被輸出。
Vsync_in信號(hào)直接被送入同步器,在被64 MHz時(shí)鐘同步2拍后,被輸出至后級(jí)模塊。同時(shí),為了提高系統(tǒng)的穩(wěn)定性,其還被送至地址計(jì)數(shù)器2中,其的上升沿標(biāo)志信號(hào)將把地址計(jì)數(shù)器2清零。
據(jù)此,數(shù)據(jù)被逐行逐幀完成跨時(shí)鐘域處理。
3)存儲(chǔ)器容量計(jì)算及synthesize設(shè)置
從2.2的2)中對(duì)該方法的闡述可以看到,將數(shù)據(jù)寫入雙端口存儲(chǔ)器的頻率為96 MHz,而讀出頻率為64 MHz,有可能出現(xiàn)該行還沒(méi)有被讀完,下一行數(shù)據(jù)又將被寫入FIFO的情況。
另一方面,因?yàn)橄袼仃嚵心K周而復(fù)始的一幀又一幀的輸出數(shù)據(jù),即使雙端口存儲(chǔ)器中的數(shù)據(jù)出現(xiàn)被覆蓋的現(xiàn)象,其也不可能停止輸出數(shù)據(jù)。所以對(duì)FIFO覆蓋現(xiàn)象的避免并不能依靠full或empty[4]這些指示信號(hào)。
從以上論述可知,在跨時(shí)鐘域信號(hào)的同步處理中,必須保證FIFO中的數(shù)據(jù)在被讀出前不被覆蓋,另一方面還必須使用盡量少的存儲(chǔ)器。如果讀時(shí)鐘的頻率快于寫時(shí)鐘,那么FIFO的深度可以只用幾個(gè)字節(jié)就可以了。如果讀時(shí)鐘的頻率慢于寫時(shí)鐘,雙端口存儲(chǔ)器的深度與寫時(shí)鐘和讀時(shí)鐘頻率的比值有關(guān)。在該設(shè)計(jì)中,寫時(shí)鐘頻率為96 MHz,讀時(shí)鐘頻率為64 MHz,兩者的比值為3:2。也就是說(shuō),在向FIFO寫入3 Byte數(shù)據(jù)的同時(shí),只能從FIFO中讀出2 Byte數(shù)據(jù),且還需要行有效期至少一半的時(shí)間用于讀出最后1 Byte數(shù)據(jù)。據(jù)此,F(xiàn)IFO的深度至少應(yīng)為一行圖像數(shù)據(jù)的1/3,行消隱期不能少于一行有效時(shí)間的1/2。由此可以進(jìn)一步推知,如果寫時(shí)鐘與讀時(shí)鐘的頻率最簡(jiǎn)比值為m/n,則FIFO的深度至少為一行有效數(shù)據(jù)的1/m,行消隱期的寬度至少為一行有效時(shí)間的1/n。
根據(jù)此計(jì)算方法,該圖像傳感器的行有效期的時(shí)間長(zhǎng)度為642周期(24 MHz時(shí)鐘),而行消隱期為416周期,416/642>0.5所以該設(shè)計(jì)在時(shí)間上可以滿足數(shù)據(jù)頻率從96 MHz到64 MHz的轉(zhuǎn)換。而雙端口存儲(chǔ)器的深度應(yīng)為1 280/3≈428 Byte。這樣FIFO中的數(shù)據(jù)在讀出前不會(huì)被覆蓋。
如前所述,此96 MHz時(shí)鐘與64 MHz時(shí)鐘沒(méi)有固定的相位關(guān)系。所以此時(shí)synthesize工具無(wú)法計(jì)算跨這兩個(gè)時(shí)鐘邊界的路徑是否符合時(shí)序要求。因此該設(shè)計(jì)在synthesize時(shí),必須設(shè)置此兩時(shí)鐘域的路徑為false path。
4)控制信號(hào)的同步方法
如2.2的2)中所述,該同步方法不僅對(duì)數(shù)據(jù)做了同步,還涉及對(duì)控制信號(hào)vsync_in和hsync_in做相應(yīng)處理。此兩信號(hào)的同步方法是直接用64 MHz時(shí)鐘采兩拍,生成64 MHz時(shí)鐘域的信號(hào)hsync_sync和vsync_out[5]。
控制信號(hào)的同步取決于兩方面的因素,其一為此信號(hào)的寬度,其二為各控制信號(hào)間的時(shí)序關(guān)系。
如果一個(gè)控制信號(hào)直接被另一個(gè)時(shí)鐘采集,那么其時(shí)間寬度至少為目標(biāo)時(shí)鐘周期的兩倍,否則目標(biāo)時(shí)鐘可能采不到這個(gè)信號(hào)。另一方面,如果多個(gè)控制信號(hào)同時(shí)進(jìn)入另一時(shí)鐘域,而且這幾個(gè)信號(hào)又必須有確定的先后順序時(shí),就必須注意它們進(jìn)入同步器前的時(shí)間間隔,否則會(huì)出現(xiàn)如圖5所示的錯(cuò)誤。
圖5 多控制信號(hào)同步錯(cuò)誤Fig.5 Error from synchronizing multi-control signals
從圖5可以看到,在某種特殊情況下,前級(jí)模塊可能會(huì)在同一個(gè)源時(shí)鐘沿送出vsync_in和hsync_in。因?yàn)檫@兩個(gè)信號(hào)至下一級(jí)觸發(fā)器的路徑延時(shí)不同,極有可能出現(xiàn)hsync_in延時(shí)較小,而vsync_in延時(shí)較大的情況。所以目標(biāo)時(shí)鐘可能先采到hsync_in,后采到vsync_in。這樣同步兩拍后,會(huì)出現(xiàn)hsync_sync信號(hào)比vsync_out信號(hào)早一個(gè)時(shí)鐘周期的情況,從而引起后級(jí)操作的錯(cuò)誤。
當(dāng)該圖像傳感器工作在模式3時(shí),其以48 MHz頻率輸出雙通道數(shù)據(jù)。此時(shí),從列拼接模塊輸出的數(shù)據(jù)被直接送至數(shù)據(jù)輸出模塊。因?yàn)榱衅唇幽K工作在96 MHz時(shí)鐘域中,所以其輸出數(shù)據(jù)的時(shí)間寬度均為2個(gè)96 MHz時(shí)鐘周期。pclk在此模式下頻率被設(shè)為48 MHz,而48 MHz時(shí)鐘是由96 MHz時(shí)鐘分頻得到,所以pclk與96 MHz時(shí)鐘送出的信號(hào)沒(méi)有確定的時(shí)序關(guān)系,其直接去采96 MHz的數(shù)據(jù)會(huì)有問(wèn)題。
為使數(shù)據(jù)能夠被正確傳送,必須保證數(shù)據(jù)變化的時(shí)刻與pclk的上升沿之間有足夠的setup time和hold time[6]。為此采用如圖6(a)和圖6(b)所示的方法。
圖6 從96MHz時(shí)鐘到48MHz時(shí)鐘的同步方法Fig.6 Synchronous method from 96MHz clock to 48MHz clock
1)信號(hào)說(shuō)明
phase_flag為相位判斷信號(hào),其由96 MHz時(shí)鐘分頻產(chǎn)生,但與48 MHz時(shí)鐘不同的是,該信號(hào)在96 MHz時(shí)鐘的下降沿變化,所以當(dāng)96 MHz時(shí)鐘的復(fù)位信號(hào)在該時(shí)鐘的上升沿失效后,phase_flag將先于48 MHz時(shí)鐘半個(gè)周期翻轉(zhuǎn)為1。其與48 MHz時(shí)鐘有如圖6所示的確定相位關(guān)系;
vsync_g,hsync_g為列拼接模塊輸出的幀有效信號(hào)和行有效信號(hào);
datain_1,datain_2為列拼接模塊輸出的兩通道數(shù)據(jù)信號(hào);
hsync_g_pos為hsync_g的上升沿標(biāo)志信號(hào),其處于96 MHz時(shí)鐘域中;
phase_g_flag0和phase_g_flag1為輸入數(shù)據(jù)與48 MHz時(shí)鐘相位關(guān)系的標(biāo)志信號(hào),均在96 MHz時(shí)鐘域中產(chǎn)生,且phase_g_flag0將進(jìn)入48 MHz時(shí)鐘域;
hsync_g_dly2和hsync_g_dly3為hsync_g在96 MHz時(shí)鐘域中延時(shí)2個(gè)周期和3個(gè)周期的信號(hào);
datain_1_dly2、datain_1_dly3、datain_2_dly2和datain_2_dly3分別為datain_1和datain_2在96 MHz時(shí)鐘域中延時(shí)2個(gè)周期和3個(gè)周期的信號(hào);
hsync_pclk,data_1_pclk和data_2_pclk為48 MHz時(shí)鐘第一拍輸出的信號(hào)。
2)phase 0情況
當(dāng)96 MHz時(shí)鐘域的信號(hào)進(jìn)入數(shù)據(jù)輸出模塊后,首先產(chǎn)生hsync_g_pos信號(hào)。當(dāng)該信號(hào)為1且phase_flag為0時(shí),phase_g_flag0將變?yōu)?且phase_g_flag1將變?yōu)?,表示此時(shí)輸入數(shù)據(jù)與48MHz時(shí)鐘的相位關(guān)系為phase0,即datain_1和datain_2在48 MHz時(shí)鐘的上升沿附近變化,此時(shí)用48 MHz時(shí)鐘采這兩通道數(shù)據(jù)將有時(shí)序問(wèn)題。
在phase0情況下,phase_g_flag0在48 MHz時(shí)鐘的下降沿附近變化,所以48 MHz時(shí)鐘的上升沿可以穩(wěn)定地采到其的值。此時(shí),根據(jù)phase_g_flag0的極性,48 MHz時(shí)鐘域中的第一級(jí)觸發(fā)器將選擇hsync_g_dly3、datain_1_dly3和datain_2_dly3作為輸入信號(hào)。從圖6(a)中可看到,此時(shí)這3個(gè)信號(hào)均在48 MHz時(shí)鐘下降沿附近發(fā)生變化,所以沒(méi)有時(shí)序問(wèn)題,可以使信號(hào)正確無(wú)誤地進(jìn)入48 MHz時(shí)鐘域中。
3)phase 1情況
當(dāng)hsync_g_pos為1時(shí), 如果phase_flag為1則phase_g_flag1將變?yōu)?,表示此時(shí)為phase1情況。即96 MHz數(shù)據(jù)在48 MHz時(shí)鐘的下降沿附近變化。當(dāng)phase_flag為0且phase_g_flag1為1時(shí),phase_g_flag0將變?yōu)?。這樣是保證phase_g_flag0信號(hào)的極性始終在48 MHz時(shí)鐘的下降沿附近變化,從而使其進(jìn)入48 MHz時(shí)鐘域時(shí),沒(méi)有時(shí)序問(wèn)題。其為0后,48 MHz時(shí)鐘域中的第一級(jí)觸發(fā)器將據(jù)此選擇hsync_g_dly2、datain_1_dly2和datain_2_dly2作為輸入信號(hào)。從圖6(b)可以看到,此3個(gè)信號(hào)均在48 MHz時(shí)鐘的下降沿附件變化,所以用48 MHz時(shí)鐘的上升沿能夠準(zhǔn)確采集它們的狀態(tài)。
此96 MHz時(shí)鐘域與48 MHz時(shí)鐘域雖然有確定的時(shí)序關(guān)系,但是96 MHz時(shí)鐘送出的信號(hào)與48MHz時(shí)鐘之間卻沒(méi)有確定關(guān)系。因此在synthesize的設(shè)置當(dāng)中,跨此兩個(gè)時(shí)鐘的路徑應(yīng)設(shè)為false path,這些路徑的時(shí)序只能在邏輯設(shè)計(jì)中被保證。
綜合2中所述,在對(duì)跨時(shí)鐘域信號(hào)進(jìn)行同步處理時(shí),應(yīng)根據(jù)以下情況采用相應(yīng)的處理方法。
如果兩時(shí)鐘間有確定的相位關(guān)系,可以直接用目標(biāo)時(shí)鐘采集跨時(shí)鐘域信號(hào)。但應(yīng)保證采集時(shí),能夠有盡量大的時(shí)序余量。比如2.1和2.3中所述方法。
如果兩時(shí)鐘沒(méi)有確定的相位關(guān)系,數(shù)據(jù)同步必須借助FIFO來(lái)實(shí)現(xiàn)跨時(shí)鐘域處理,但應(yīng)根據(jù)具體的設(shè)計(jì)環(huán)境使用容量較小的FIFO以節(jié)省芯片面積,并且能夠保證FIFO中的數(shù)據(jù)安全。如2.2中所述方法。
為使目標(biāo)時(shí)鐘能夠穩(wěn)定采到跨時(shí)鐘域的信號(hào),該信號(hào)的時(shí)間寬度一般至少應(yīng)為目標(biāo)時(shí)鐘周期的2倍。特別是源時(shí)鐘頻率高于目標(biāo)時(shí)鐘時(shí)更應(yīng)注意這個(gè)問(wèn)題。如2.2中,對(duì)hsync_in和vsync_in的處理就是如此。
當(dāng)源時(shí)鐘與目標(biāo)時(shí)鐘沒(méi)有確定相位關(guān)系時(shí),跨時(shí)鐘域信號(hào)并不能保證在目標(biāo)時(shí)鐘的哪個(gè)時(shí)鐘沿翻轉(zhuǎn)。所以,當(dāng)多個(gè)相關(guān)信號(hào)進(jìn)入另一個(gè)時(shí)鐘域時(shí),應(yīng)注意這些信號(hào)之間的時(shí)序關(guān)系。即有時(shí)會(huì)要求在目標(biāo)時(shí)鐘域中,一個(gè)信號(hào)先有效,而另一個(gè)信號(hào)必須后有效,比如2.2中所述方法的vsync_in與hsync_in的關(guān)系。對(duì)于這種情況,應(yīng)使這些信號(hào)在源時(shí)鐘域中保持足夠?qū)挾鹊拈g隔。
該CMOS圖像傳感器設(shè)計(jì)基于0.18 μm工藝,經(jīng)邏輯綜合、時(shí)鐘樹綜合、布局布線、物理版圖驗(yàn)證等前、后端處理后,面積為2 mm×2 mm。
經(jīng)RTL(Register Transfer Level)仿真、門級(jí)仿真和實(shí)際芯片的系統(tǒng)驗(yàn)證,當(dāng)輸入時(shí)鐘為24 MHz時(shí),該CMOS圖像傳感器能夠在3種模式下以指定頻率正確輸出數(shù)據(jù)。并可以在96MHz、64 MHz、48 MHz和24 MHz時(shí)鐘之間正確完成控制信號(hào)和數(shù)據(jù)的同步處理。
隨著多媒體芯片實(shí)現(xiàn)的功能日益增多,其的設(shè)計(jì)明顯向時(shí)鐘頻率更高、時(shí)鐘方案更復(fù)雜的方向發(fā)展。在此背景下,對(duì)跨時(shí)鐘域信號(hào)做同步處理的方法變得越來(lái)越重要。這里以一個(gè)CMOS圖像傳感器的設(shè)計(jì)為實(shí)例,介紹了幾種跨時(shí)鐘域信號(hào)的同步方法。同時(shí),對(duì)這些方法在使用過(guò)程中應(yīng)注意的問(wèn)題做了重點(diǎn)闡述。進(jìn)而,對(duì)跨時(shí)鐘域信號(hào)的處理方法做了系統(tǒng)總結(jié)。經(jīng)仿真及芯片系統(tǒng)驗(yàn)證,在此所述同步方法均可正確完成跨時(shí)鐘域信號(hào)的同步工作。
[1]Gonzalez R C,Woods R E.數(shù)字圖像處理[M].阮秋琦,阮宇智,等,譯.2版.北京:電子工業(yè)出版社,2007.
[2]Junichi Nakamura.Image Sensors and signal processing for Digital Still Camera[M].Tokyo:CRC Press,2005.
[3]彭莉,秦建業(yè),付宇卓.異步FIFO的設(shè)計(jì)與驗(yàn)證[J].計(jì)算機(jī)工程與應(yīng)用,2005,41(3):98-101.
PENG Li,QIN Jian-ye,F(xiàn)U Yu-zhuo.Asynchronous FIFO design and verification[J].Computer Engineering and Applications,2005,41(3):98-101.
[4]杜旭,王夏泉.ASIC中的異步時(shí)序設(shè)計(jì)[J].微電子學(xué),2004,34(5):528-532.
DU Xu,WANG Xia-quan.Asynchronous Design in ASIC’s[J].Micro Electronics,2004,34(5):528-532.
[5]Clifford E,Cumming S.Synthesis and Scripting Techniques for designingMulti-Asynchronous Clock Dsigns[C]//SNUG San Jose,CA Voted Best Paper 3rd Place,2001:2-4,16-23.
[6]廖艷,王廣君,高楊.FPGA異步時(shí)鐘設(shè)計(jì)中的同步策略[J].自動(dòng)化技術(shù)與應(yīng)用,2006,25(1):67-79.
LIAO Yan,WANG Guang-jun,GAO Yang.The synchronizationinthe asynchronousclockdesignforFPGA[J].Techniques of Automation and Applications,2006,25(1):67-79.