隨著時(shí)間的推移,集成電路行業(yè)發(fā)展至今,已有類似如Intel這樣先進(jìn)的foundry,提出邁入10 nm制程的規(guī)劃。高集成度的推行,也使芯片規(guī)模越來(lái)越大,功能越來(lái)越復(fù)雜,設(shè)計(jì)難度越來(lái)越高[1]。SOC的內(nèi)部時(shí)鐘的復(fù)雜化,導(dǎo)致跨時(shí)鐘域的接口越來(lái)越多。針對(duì)這些異步信號(hào)的處理,國(guó)外的先驅(qū)們提出了很多建設(shè)性意見(jiàn)。但一般用到器件較多,考慮到成本因素,小規(guī)模IC將無(wú)法承受,并且如果輸入脈沖高電平寬度低于最快時(shí)鐘周期的話,一般無(wú)法適用。因此要想很好地解決這個(gè)問(wèn)題,要處理好4個(gè)方面工作:一是如何簡(jiǎn)化電路;二是如何適應(yīng)最小輸入脈寬的問(wèn)題;三是解決好亞穩(wěn)態(tài)問(wèn)題;四是要提高設(shè)計(jì)可靠性[2]。 實(shí)際使用時(shí),往往會(huì)出現(xiàn)信號(hào)在頻率不用的時(shí)鐘域傳遞的情況,對(duì)于這種情況,一般用兩種方法處理:結(jié)繩法、伴隨有效控制信號(hào)法。當(dāng)信號(hào)從一個(gè)時(shí)鐘域進(jìn)入另一個(gè)時(shí)鐘域的時(shí)候,往往出現(xiàn)亞穩(wěn)態(tài)問(wèn)題[4]。亞穩(wěn)態(tài)是指觸發(fā)器無(wú)法在某個(gè)規(guī)定時(shí)間段內(nèi)達(dá)到一個(gè)可確認(rèn)的狀態(tài)。當(dāng)一個(gè)觸發(fā)器進(jìn)入亞穩(wěn)態(tài)時(shí),既無(wú)法預(yù)測(cè)該單元的輸出電平,也無(wú)法預(yù)測(cè)何時(shí)輸出才能穩(wěn)定在某個(gè)正確的電平上。信號(hào)同步的目的是防止上一級(jí)亞穩(wěn)態(tài)對(duì)下一級(jí)產(chǎn)生不良影響,采用信號(hào)同步的方法就要設(shè)計(jì)信號(hào)同步器。信號(hào)同步器主要有3種:電平同步器、邊沿檢測(cè)同步器、脈沖同步器[7-8]。但是這些常用方法本身存在缺點(diǎn)和不適應(yīng)性。在解決實(shí)際問(wèn)題中,需要根據(jù)具體情況,來(lái)設(shè)計(jì)具體的方案。 整個(gè)電路包括兩個(gè)時(shí)鐘域以及一個(gè)復(fù)位電路。時(shí)鐘域1包含一個(gè)帶有異步復(fù)位端的同步觸發(fā)器。此觸發(fā)器帶有異步復(fù)位端R和同步時(shí)鐘端CK,低電平產(chǎn)生復(fù)位,時(shí)鐘上升沿開始鎖存數(shù)據(jù)輸入端D的狀態(tài)。輸出端有正相Q、反相/Q兩種數(shù)據(jù)輸出。時(shí)鐘域2由兩個(gè)同樣的觸發(fā)器組成,跟前面的一樣由異步復(fù)位端R和同步時(shí)鐘端CK,數(shù)據(jù)輸入端D組成。輸出端為正相Q、反相/Q兩種,復(fù)位電路由一個(gè)與門組成,接收DFF3的反向/Q輸出的數(shù)據(jù),電路連接關(guān)系如圖1所示。 在設(shè)計(jì)方案中,最大限度地保障了不漏信號(hào)。同時(shí),時(shí)鐘域1的輸入脈沖信號(hào)寬度(高電平寬度)可以低于時(shí)鐘域1的時(shí)鐘單周期寬,電路正常工作,并且設(shè)計(jì)中脈沖寬度不再受限于時(shí)鐘域1的時(shí)鐘頻率。第三,數(shù)據(jù)鎖存器的數(shù)據(jù)輸出端Q輸出的脈沖信號(hào)寬度為時(shí)鐘域2的時(shí)鐘單周期寬,從而避免了誤觸發(fā)和多觸發(fā)。 這種方法適用于輸入信號(hào)類型為脈沖或電平,最終得到的結(jié)果為脈沖。如圖2所示。 如圖3所示,當(dāng)clock1快于clock2時(shí),圖中Data_in1表示第一個(gè)輸入脈沖,此脈沖由Data_in輸入,脈沖寬度小于clock1的四分之一,同時(shí),脈沖寬度小于系統(tǒng)最快時(shí)鐘(clock1最快)的四分之一。Data_in1的上升沿到來(lái)的瞬間,Q1輸出高電平“1”;Data_in1的上升沿之后,第一個(gè)clock2的上升沿到來(lái)瞬間,Q2輸出高電平“1”;第二個(gè)clock2的上升沿到來(lái)瞬間,Data_out輸出高電平“1”,與此同時(shí),nRST生成復(fù)位信號(hào),復(fù)位DFF1、DFF2,使Q1、Q2輸出低;第三個(gè)clock2的上升沿到來(lái)瞬間,由于Q1、Q2早已變成低電平“0”,此時(shí),“0”傳遞到Data_out,形成了一個(gè)clock2的周期寬度的脈沖Data_out1。 如圖4所示,若clock2快于clock1時(shí),圖中Data_in1表示第一個(gè)輸入脈沖,此脈沖由Data_in輸入,脈沖寬度小于clock1的四分之一,同時(shí),脈沖寬度小于系統(tǒng)最快時(shí)鐘(clock2最快)的四分之一。 如圖5所示,當(dāng)clock2等于clock1時(shí),圖中Data_in1表示第一個(gè)輸入脈沖,此脈沖由Data_in輸入,脈沖寬度小于clock1的四分之一,同時(shí),脈沖寬度小于系統(tǒng)最快時(shí)鐘(clock2等于clock1)的四分之一。 根據(jù)以上分析,通過(guò)Modelsim仿真分析得出以下時(shí)域圖像可以驗(yàn)證上述特征,如圖6~圖8所示,快時(shí)鐘為10 Hz,慢時(shí)鐘為3.3 Hz,當(dāng)時(shí)鐘相等時(shí)為5 Hz。從仿真圖像來(lái)看,亞穩(wěn)態(tài)問(wèn)題以及信號(hào)寬度受限于時(shí)鐘寬度問(wèn)題可以良好的解決。 下方是基于和艦科技180 nm Pflash生產(chǎn)工藝設(shè)計(jì)實(shí)例。方案基于Faraday 0.18 ?滋m GII Library Standard Cell,圖中灰色部分為模擬IP。下圖中SAR_ADC的輸出接口中,有一個(gè)脈沖信號(hào)的寬度等于系統(tǒng)時(shí)鐘周期的一半。采用一般的手段,無(wú)法捕獲這個(gè)脈沖,采用上文所述的電路則便高效地解決了這個(gè)問(wèn)題。具體實(shí)現(xiàn)運(yùn)行代碼如下: assign ADC_fine_rst = ADC_fine_sys || rst ; %生成復(fù)位信號(hào)ADC_fine_rst,高有效,為使ADC_fine_sys和rst高電平產(chǎn)生復(fù)位,所以采用“邏輯或”運(yùn)算。 always @(posedge drdy_dig or posedge ADC_fine_rst ) if (ADC_fine_rst) ADC_fine <= 1'b0; else ADC_fine <= 1'b1; %對(duì)應(yīng)圖1中的DFF1,drdy_dig為原始窄脈沖信號(hào),若直接用系統(tǒng)時(shí)鐘clk_system采樣,將無(wú)法鎖存。因此,此處drdy_dig接ADC_fine_reg的clk端。drdy_dig為ADC的IP電路輸出信號(hào),同步邏輯輸出,有效壓制毛刺,避免誤觸發(fā)。 always @(posedge clk_system or posedge ADC_fine_sys ) if (ADC_fine_sys) ADC_fine_ff <= 1'b0; else begin if (rst) ADC_fine_ff <= 1'b0; else ADC_fine_ff <= ADC_fine; end %對(duì)應(yīng)圖1中的DFF2,此處rst的同步復(fù)位邏輯沒(méi)有決定性意義,可以去除。 always @(posedge clk_system or posedge rst ) if (rst) ADC_fine_sys <= 1'b0; else ADC_fine_sys <= ADC_fine_ff; %對(duì)應(yīng)圖1中的DFF3,由原始drdy_dig信號(hào),生成了ADC_fine_sys信號(hào),從而實(shí)現(xiàn)跨時(shí)鐘對(duì)接。 最后生成如圖9所示的GDSII視圖。按照生成GDSII視圖制作如圖10所示測(cè)試電路板。 經(jīng)過(guò)MPW shuttle以及full MASK,采用天水華天的SOP20封裝工藝,并設(shè)計(jì)板級(jí)測(cè)試系統(tǒng),專項(xiàng)測(cè)試SAR_ADC結(jié)果如表1所示。ADC性能符合spec,排除測(cè)試環(huán)境的影響,信號(hào)捕獲成功率等于100%,接口電路方案成功。 從整體來(lái)看,該方法結(jié)構(gòu)簡(jiǎn)單。其輸入脈沖信號(hào)寬度可以低于本身的時(shí)鐘單周期寬,使得設(shè)計(jì)中脈沖寬度不再受限于時(shí)鐘頻率;同時(shí),時(shí)鐘域1中輸入脈沖信號(hào)寬度可以低于系統(tǒng)最快時(shí)鐘單周期寬,進(jìn)一步提高了采集的穩(wěn)定性和適應(yīng)性。時(shí)鐘域2輸出脈沖信號(hào)寬度為時(shí)鐘域2的時(shí)鐘單周期寬,從而避免了誤觸發(fā),電路經(jīng)過(guò)兩級(jí)同步,這樣很好地解決了亞穩(wěn)態(tài)問(wèn)題??偟膩?lái)講提高了采集的穩(wěn)定性和適應(yīng)性。 但是,這種處理方法對(duì)輸入信號(hào)也有要求:輸入毛刺寬度應(yīng)小于DFF1(如圖3)的最小時(shí)鐘辨識(shí)度,否則將產(chǎn)生誤觸發(fā)。因此,這種方法的輸入信號(hào)一般是SOC同步電路的輸出信號(hào),如輸入為片外信號(hào),一般要增加前置數(shù)字濾波電路。 |
|