文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.172787
中文引用格式: 趙旸,梁步閣,楊德貴,等. 多時鐘系統(tǒng)下跨時鐘域同步電路的設計[J].電子技術應用,2018,44(2):6-9.
英文引用格式: Zhao Yang,Liang Buge,Yang Degui,et al. The design of synchronization circuit for crossing the clock domain in multi clock system[J]. Application of Electronic Technique,2018,44(2):6-9.
0 引言
隨著時間的推移,集成電路行業(yè)發(fā)展至今,已有類似如Intel這樣先進的foundry,提出邁入10 nm制程的規(guī)劃。高集成度的推行,也使芯片規(guī)模越來越大,功能越來越復雜,設計難度越來越高[1]。SOC的內部時鐘的復雜化,導致跨時鐘域的接口越來越多。針對這些異步信號的處理,國外的先驅們提出了很多建設性意見。但一般用到器件較多,考慮到成本因素,小規(guī)模IC將無法承受,并且如果輸入脈沖高電平寬度低于最快時鐘周期的話,一般無法適用。因此要想很好地解決這個問題,要處理好4個方面工作:一是如何簡化電路;二是如何適應最小輸入脈寬的問題;三是解決好亞穩(wěn)態(tài)問題;四是要提高設計可靠性[2]。
1 處理跨時鐘域信號的常用方法
實際使用時,往往會出現(xiàn)信號在頻率不用的時鐘域傳遞的情況,對于這種情況,一般用兩種方法處理:結繩法、伴隨有效控制信號法。當信號從一個時鐘域進入另一個時鐘域的時候,往往出現(xiàn)亞穩(wěn)態(tài)問題[4]。亞穩(wěn)態(tài)是指觸發(fā)器無法在某個規(guī)定時間段內達到一個可確認的狀態(tài)。當一個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩(wěn)定在某個正確的電平上。信號同步的目的是防止上一級亞穩(wěn)態(tài)對下一級產(chǎn)生不良影響,采用信號同步的方法就要設計信號同步器。信號同步器主要有3種:電平同步器、邊沿檢測同步器、脈沖同步器[7-8]。但是這些常用方法本身存在缺點和不適應性。在解決實際問題中,需要根據(jù)具體情況,來設計具體的方案。
2 跨時鐘域同步電路接口方法組成及工作原理
整個電路包括兩個時鐘域以及一個復位電路。時鐘域1包含一個帶有異步復位端的同步觸發(fā)器。此觸發(fā)器帶有異步復位端R和同步時鐘端CK,低電平產(chǎn)生復位,時鐘上升沿開始鎖存數(shù)據(jù)輸入端D的狀態(tài)。輸出端有正相Q、反相/Q兩種數(shù)據(jù)輸出。時鐘域2由兩個同樣的觸發(fā)器組成,跟前面的一樣由異步復位端R和同步時鐘端CK,數(shù)據(jù)輸入端D組成。輸出端為正相Q、反相/Q兩種,復位電路由一個與門組成,接收DFF3的反向/Q輸出的數(shù)據(jù),電路連接關系如圖1所示。
3 跨時鐘域同步電路的工作特征
在設計方案中,最大限度地保障了不漏信號。同時,時鐘域1的輸入脈沖信號寬度(高電平寬度)可以低于時鐘域1的時鐘單周期寬,電路正常工作,并且設計中脈沖寬度不再受限于時鐘域1的時鐘頻率。第三,數(shù)據(jù)鎖存器的數(shù)據(jù)輸出端Q輸出的脈沖信號寬度為時鐘域2的時鐘單周期寬,從而避免了誤觸發(fā)和多觸發(fā)。
這種方法適用于輸入信號類型為脈沖或電平,最終得到的結果為脈沖。如圖2所示。
如圖3所示,當clock1快于clock2時,圖中Data_in1表示第一個輸入脈沖,此脈沖由Data_in輸入,脈沖寬度小于clock1的四分之一,同時,脈沖寬度小于系統(tǒng)最快時鐘(clock1最快)的四分之一。Data_in1的上升沿到來的瞬間,Q1輸出高電平“1”;Data_in1的上升沿之后,第一個clock2的上升沿到來瞬間,Q2輸出高電平“1”;第二個clock2的上升沿到來瞬間,Data_out輸出高電平“1”,與此同時,nRST生成復位信號,復位DFF1、DFF2,使Q1、Q2輸出低;第三個clock2的上升沿到來瞬間,由于Q1、Q2早已變成低電平“0”,此時,“0”傳遞到Data_out,形成了一個clock2的周期寬度的脈沖Data_out1。
如圖4所示,若clock2快于clock1時,圖中Data_in1表示第一個輸入脈沖,此脈沖由Data_in輸入,脈沖寬度小于clock1的四分之一,同時,脈沖寬度小于系統(tǒng)最快時鐘(clock2最快)的四分之一。
如圖5所示,當clock2等于clock1時,圖中Data_in1表示第一個輸入脈沖,此脈沖由Data_in輸入,脈沖寬度小于clock1的四分之一,同時,脈沖寬度小于系統(tǒng)最快時鐘(clock2等于clock1)的四分之一。
4 仿真實驗分析
根據(jù)以上分析,通過Modelsim仿真分析得出以下時域圖像可以驗證上述特征,如圖6~圖8所示,快時鐘為10 Hz,慢時鐘為3.3 Hz,當時鐘相等時為5 Hz。從仿真圖像來看,亞穩(wěn)態(tài)問題以及信號寬度受限于時鐘寬度問題可以良好的解決。
5 應用與實測
下方是基于和艦科技180 nm Pflash生產(chǎn)工藝設計實例。方案基于Faraday 0.18 ?滋m GII Library Standard Cell,圖中灰色部分為模擬IP。下圖中SAR_ADC的輸出接口中,有一個脈沖信號的寬度等于系統(tǒng)時鐘周期的一半。采用一般的手段,無法捕獲這個脈沖,采用上文所述的電路則便高效地解決了這個問題。具體實現(xiàn)運行代碼如下:
assign ADC_fine_rst = ADC_fine_sys || rst ;
%生成復位信號ADC_fine_rst,高有效,為使ADC_fine_sys和rst高電平產(chǎn)生復位,所以采用“邏輯或”運算。
always @(posedge drdy_dig or posedge ADC_fine_rst )
if (ADC_fine_rst)
ADC_fine <= 1'b0;
else
ADC_fine <= 1'b1;
%對應圖1中的DFF1,drdy_dig為原始窄脈沖信號,若直接用系統(tǒng)時鐘clk_system采樣,將無法鎖存。因此,此處drdy_dig接ADC_fine_reg的clk端。drdy_dig為ADC的IP電路輸出信號,同步邏輯輸出,有效壓制毛刺,避免誤觸發(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
%對應圖1中的DFF2,此處rst的同步復位邏輯沒有決定性意義,可以去除。
always @(posedge clk_system or posedge rst )
if (rst)
ADC_fine_sys <= 1'b0;
else
ADC_fine_sys <= ADC_fine_ff;
%對應圖1中的DFF3,由原始drdy_dig信號,生成了ADC_fine_sys信號,從而實現(xiàn)跨時鐘對接。
最后生成如圖9所示的GDSII視圖。按照生成GDSII視圖制作如圖10所示測試電路板。
經(jīng)過MPW shuttle以及full MASK,采用天水華天的SOP20封裝工藝,并設計板級測試系統(tǒng),專項測試SAR_ADC結果如表1所示。ADC性能符合spec,排除測試環(huán)境的影響,信號捕獲成功率等于100%,接口電路方案成功。
6 結論
從整體來看,該方法結構簡單。其輸入脈沖信號寬度可以低于本身的時鐘單周期寬,使得設計中脈沖寬度不再受限于時鐘頻率;同時,時鐘域1中輸入脈沖信號寬度可以低于系統(tǒng)最快時鐘單周期寬,進一步提高了采集的穩(wěn)定性和適應性。時鐘域2輸出脈沖信號寬度為時鐘域2的時鐘單周期寬,從而避免了誤觸發(fā),電路經(jīng)過兩級同步,這樣很好地解決了亞穩(wěn)態(tài)問題??偟膩碇v提高了采集的穩(wěn)定性和適應性。
但是,這種處理方法對輸入信號也有要求:輸入毛刺寬度應小于DFF1(如圖3)的最小時鐘辨識度,否則將產(chǎn)生誤觸發(fā)。因此,這種方法的輸入信號一般是SOC同步電路的輸出信號,如輸入為片外信號,一般要增加前置數(shù)字濾波電路。
參考文獻
[1] LING L,JIANG J.Exploit dynamic voltage and frequency scaling for SoC test scheduling under thermal constraints[C]//Proc of the 23rd Asian Test Symp.Piscataway,NJ:IEEE,2014:182-185.
[2] Ketul Sutaria,Jyothi Velamala,Yu Cao.Multi-level reliability simulation for IC design[C].China xian,IEEE Beijing Section,2012,12.
[3] MILLICAN S K,SALUJA K K.Fornulating optimal test scheduling problem with dynamic voltage and frequency scaling[C]//Proc of the 22th Asian Test Symp,Piscataway,NJ:IEEE,2013:165-170.
[4] 蒲石.異步多時鐘域系統(tǒng)的同步設計研究[D].西安:西安電子科技大學,2007.
[5] 邵翠萍,史森茂,吳龍勝.SoC中跨時鐘域的信號同步設計[J].現(xiàn)代電子技術,2012(8):157-159.
[6] 曹軍.安全SOC芯片中eMMC主接口的設計與實現(xiàn)[D].沈陽:遼寧大學,2014.
[7] 羅莉,何鴻君,徐煒遐,等.面向SOC芯片的跨時鐘域設計和驗證[J].計算機科學,2011(38):279-281.