《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種片上系統(tǒng)復位電路的設計
一種片上系統(tǒng)復位電路的設計
來源:電子技術應用2012年第12期
孫國志1,寧 寧1,張 弛2
1.電子科技大學 電子薄膜與集成器件國家重點實驗室,四川 成都610054; 2.深圳貝特萊電子科技有限公司,廣東 深圳518057
摘要: 設計了一種片上系統(tǒng)(SoC)復位電路。該電路能對外部輸入信號進行同步化處理以抑制亞穩(wěn)態(tài),采用多級D觸發(fā)器進行濾波提升抗干擾能力,并且控制產(chǎn)生系統(tǒng)所需的復位時序以滿足軟硬件協(xié)同設計需求。同時,完成了可測性設計(DFT)?;赬ilinx spartan-6 FPGA進行了驗證。結果表明該電路可以抑制90 ?滋s以下的外部干擾信號,并能正確產(chǎn)生系統(tǒng)所需的復位信號。
中圖分類號: TN431
文獻標識碼: A
文章編號: 0258-7998(2012)12-0032-04
Design of a reset circuit for system on chip
Sun Guozhi1,Ning Ning1,Zhang Chi2
1.State Key Laboratory of Electronic Thin Films and Integrated Devices, University of Electronic Science & Technology, Chengdu 610054,China; 2.Shenzhen BetterLife Electronic Science and Technology CO.,LTD,Shenzhen 518057,China
Abstract: A reset circuit for system on chip is proposed in this paper. The proposed circuit can suppress metastability through synchronize external input signals,enhance the anti-interference ability by multi-stage D flip-flop filter;generate appropriate reset timing for system to meet the hardware and software co-design requirement. And the testability design is completed. The results,verified by Xilinx spartan-6 FPGA,show that the circuit can restrain external interference signals below 90 ?滋s and correctly generate reset signals needed by system.
Key words : system on chip;reset circuit;metastability;DFT

    隨著集成電路技術的發(fā)展,嵌入微控制器MCU(Micro Control Unit)的片上系統(tǒng)SoC(System on Chip)已經(jīng)成為芯片設計的主要方向[1]。作為存儲程序使用的嵌入式Flash已被廣泛應用于其中,以減小芯片的面積和功耗。MCU和嵌入式Flash的存在使得SoC的復位較一般專用集成電路ASIC(Application Specific Integration Circuit)更加復雜。

    一般而言,SoC中的復位通常包括上電復位、外部復位、軟件復位和看門狗(WatchDog)復位,合理分配這些復位所作用的模塊和范圍非常重要。同時,由于SoC在系統(tǒng)復位后需要將程序從Flash搬移至SRAM,此段時間內MCU及相關模塊必須保持復位狀態(tài),以防止錯誤執(zhí)行未準備好的程序,因此復位順序需要特別留意。此外,對于異步復位的釋放需要考慮亞穩(wěn)態(tài)帶來的影響。隨著測試的重要性越來越突出,可測性設計DFT(Design For Test)在可控性和可觀測性等方面對復位網(wǎng)絡的設計也提出了要求。
    本文設計的電路綜合考慮了上述各種因素,能夠妥善處理各種復位信號之間的關系及釋放順序,產(chǎn)生正確合理的復位信號,并對DFT設計加以支持。如圖1所示。
1 復位電路設計
    圖1所示的SoC中復位電路的結構框圖,由上電復位處理電路、外部復位處理電路、軟件復位與看門狗(WatchDog)復位處理電路和復位信號產(chǎn)生等幾部分組成。

    圖2所示為SoC復位電路設計實現(xiàn)的實際門級電路圖。

1.1 上電復位處理電路
    SoC通常會在芯片上電時進行系統(tǒng)復位。該復位信號(如圖1中POR)一般來自于SoC的模擬部分,與時鐘信號的相位關系是不確定的,相對于數(shù)字部分而言是一個異步復位信號,故在復位釋放時容易引起亞穩(wěn)態(tài)的問題。上電復位處理電路用于實現(xiàn)對POR的同步化處理,以減少亞穩(wěn)態(tài)對電路帶來的影響[2-3]。如圖3所示,使用兩組同步器在CLK域和CLK_32K域分別對POR進行同步化處理。經(jīng)同步處理后的por_32k和por_clk大大減小了POR釋放時可能引起的亞穩(wěn)態(tài)影響,能夠提供穩(wěn)定有效的異步復位。

1.2 外部復位處理電路
    SoC中另一個常用的復位信號來源于芯片的外部復位管腳(圖1中external_reset)。外部復位信號容易受到外界環(huán)境的干擾,如果該復位信號使用外部按鍵,還容易引發(fā)抖動,造成復位電平的波動,引起系統(tǒng)的不穩(wěn)定,因此在設計中需要使用去抖電路進行濾波。
    圖4所示為外部復位處理電路的實際電路圖。該電路首先對外部復位信號external_reset進行濾波,再將濾波后得到的復位信號經(jīng)CLK域同步化處理得到最終的復位信號ext_porn,然后送至復位信號產(chǎn)生電路。

    經(jīng)實驗測定,在本設計環(huán)境下需要濾除寬度為90 μs以下的毛刺。由于設計中使用了頻率為32 kHz的時鐘CLK_32K,為了簡化電路,使用5級D觸發(fā)器DFF(D Flip-Flop)級聯(lián)來完成濾波功能。其中D1、D2為同步器,對external_reset在CLK_32K域做同步化處理[4];之后經(jīng)過D3、D4、D5分別得到external_reset的延遲信號。由于CLK_32K的一個周期大約為30 ?滋s,并且external_reset為低電平有效,故將各延遲信號經(jīng)過一個“或”門輸出即可得到濾波后的復位信號;該信號經(jīng)D6、D7、D8后,得到最終的經(jīng)過CLK域同步化處理的復位信號ext_porn,送至復位信號產(chǎn)生電路。其中,D6的作用是將濾波后的復位信號寄存,為D7、D8組成的同步器提供穩(wěn)定的寄存器輸出,以避免由于布線及“或”門對信號造成不對稱延遲所引起的毛刺被同步器捕獲,從而進一步降低亞穩(wěn)態(tài)的影響。
    圖5所示為Xilinx自帶工具ChipScope獲得的65 ?滋s低電平信號輸入到外部復位管腳時的波形圖。從圖中可以看到,在此輸入下系統(tǒng)沒有復位發(fā)生。
    圖6所示為ChipScope獲得的124 μs低電平信號輸入到外部復位管腳時的波形圖。從圖中可以看到,在此輸入下系統(tǒng)所有模塊均被復位。

    由圖5和圖6所顯示的結果可以看出,本設計的外部復位處理電路可以將90 ?滋s以下的毛刺濾除。
1.3 軟件復位與WatchDog復位處理電路
    軟件復位在軟硬件協(xié)同工作的SoC中不可或缺。在某些特定的情況下,需要在軟件的控制下對系統(tǒng)或者其中某些特定模塊進行復位。此外,SoC中通常使用WatchDog在程序“跑飛”的情況下使系統(tǒng)復位至初始化狀態(tài)。圖7所示為軟件與WatchDog復位電路,其中soft_reset是軟件復位信號,WDT是WatchDog復位信號,二者均為高電平有效。由D9、I1和A1所組成的電路用來檢測soft_reset或WDT的上升沿;由D10、D11、D12和O3組成的電路將信號展寬后,經(jīng)過反相器I2輸出,送給復位信號產(chǎn)生電路。

1.4 復位信號產(chǎn)生
    SoC中的復位信號來源繁多,不同的復位信號作用的模塊也有所不同,需要對各復位信號進行處理,以得到系統(tǒng)中每個模塊所需的復位信號。復位信號產(chǎn)生電路將經(jīng)過濾波和同步化處理后得到的各個復位信號進行收集,再根據(jù)系統(tǒng)需求,經(jīng)過相應的處理,產(chǎn)生符合要求的各種復位信號,最終分配至系統(tǒng)中各模塊,連接至各寄存器復位端。
1.4.1 DMA模塊復位電路
    SoC在系統(tǒng)上電后,由DMA模塊將存儲于Flash中的程序讀出,然后寫入SRAM中供MCU執(zhí)行。在此過程中,芯片中除DMA之外的其他模塊(尤其是MCU)仍然處于復位狀態(tài)。因此,DMA模塊的復位電路需要獨立于SoC的復位網(wǎng)絡單獨設計。
    圖2中包括中DMA模塊復位信號(dma_rstn)的產(chǎn)生電路。圖中,flash_program來自于Flash控制模塊,用來指示Flash當前的狀態(tài)。Flash在芯片外部控制下被燒錄時,flash_program信號一直保持高電平,dma_rstn輸出為低電平,此時DMA處于復位狀態(tài),不進行程序搬移的操作;當Flash完成燒錄后,flash_program信號變?yōu)榈碗娖剑珼MA進入正常工作狀態(tài)時,開始從Flash搬移數(shù)據(jù)。同樣,在外部復位或上電復位之后,DMA開始從Flash中搬移數(shù)據(jù)。
1.4.2 CGU模塊復位信號的產(chǎn)生
    SoC中通常包含時鐘產(chǎn)生單元CGU(Clock Generate Unit),主要完成對系統(tǒng)時鐘分頻、時鐘切換等工作。為保證系統(tǒng)的穩(wěn)定性,該模塊中的寄存器僅在上電復位信號和外部復位信號的作用下才進行復位,因此僅需將經(jīng)處理后的ext_porn直接送至該模塊。
1.4.3 MCU復位信號的產(chǎn)生
    MCU的復位來源包括上電復位、外部復位以及軟件/WatchDog復位。在復位順序上,為了防止MCU在系統(tǒng)尚未準備好時執(zhí)行程序,通常會將MCU的復位一直保持有效,直至系統(tǒng)中其他所有模塊就緒并且程序準備好才被釋放。在本設計中,MCU的復位一定要在DMA模塊完成程序搬移之后釋放。因此,MCU的復位邏輯中包含了DMA模塊輸出的狀態(tài)標志信號dma_over,該信號用來指示DMA已經(jīng)完成了程序搬移,MCU可以離開復位狀態(tài)開始執(zhí)行程序。
1.4.4 其他模塊復位信號的產(chǎn)生
    系統(tǒng)中其他模塊包括接口電路和Flash控制電路,在上電和Flash燒錄結束時都需要將其復位。因此,這些模塊的復位電路也需要獨立設計。
      圖8所示為系統(tǒng)中其他模塊復位信號產(chǎn)生電路。D10、I3、A3組成的電路用來檢測flash_program的下降沿,經(jīng)過反相器I4之后,與ext_porn、soft_WDT一起經(jīng)過與門A4送出。

 

 

1.5 DFT設計相關電路
    芯片測試的原則之一是要求被測電路具備良好的可控性。由于SoC中各寄存器的復位端信號全部來自于復位網(wǎng)絡的寄存器輸出端,在ATPG(Auto Test Pattern Generation)測試模式下,這些寄存器輸出會迫使位于掃描鏈中后級的寄存器輸出值被強制清零,從而覆蓋正確的測試采樣值,違背了可控性的原則。因此,需要在電路中使用選擇器,將所有寄存器的復位端旁路至外部復位管腳,以滿足可控性的要求,這樣就避免了芯片測試過程中前級寄存器的輸出端對后級寄存器清零的問題,保證了測試的有效進行。Mux的選擇端信號(如圖2所示M1~M7的S端)使用測試使能信號scan_en,當退出測試模式回到正常工作模式時,SoC中各寄存器復位端從外部可控復位管腳切換至正常復位網(wǎng)絡,功能不受影響。
2 設計結果與分析
    本設計采用Verilog語言編寫代碼,使用NC-Verilog工具進行電路仿真。此外,將整個系統(tǒng)設計適配至Xilinx Spartan-6 FPGA上進行了驗證,并通過Xilinx自帶工具ChipScope觀察設計結果。
    由于軟件復位和WDT復位信號的處理方式一致,故只給出軟件復位測試結果。圖9所示為軟件復位時系統(tǒng)復位信號產(chǎn)生情況,除了cgu_rstn之外,其余復位信號均將進入復位狀態(tài)。

    圖10所示為flash_program結束時的驗證結果。此時,dma_rstn撤離復位狀態(tài);per_rstn有一個系統(tǒng)時鐘周期的復位;而MCU一直處于復位狀態(tài),直到DMA完成了程序的搬移(dma_over為高電平),MCU才撤離復位狀態(tài);cgu_rstn一直為高電平,即cgu模塊沒有被復位。

    本文設計了一種片上系統(tǒng)復位電路,針對SoC的特點,可以正確穩(wěn)定地產(chǎn)生各模塊所需要的復位信號,同時可以滿足DFT設計的要求。Xilinx Spartan-6 FPGA驗證結果表明,該電路能夠滿足系統(tǒng)的應用需求,可以有效正確地復位系統(tǒng)中的各模塊,同時可以濾除90 MHZ以下的外部干擾信號。該設計已成功應用于電容式觸控芯片中。
參考文獻
[1] 謝平.基于龍芯IP核SoC芯片的FPGA驗證技術研究[J]. 電子技術應用,2010,36(10):128-131.
[2] CUMMINGS C E,MILLS D.Synchronous resets? Asynchronous resets? I am so confused! How will I ever know which to use?[M/OL].(2002-04-xx)[2012-07-31].http://www.sunburst-design.com.
[3] KLEEMAN L,CANTONI A.Metastable behavior in digital systems[J].IEEE Design & Test of Computers,1987,4(6):4-19.
[4] 黃良,韓誠山,文明.星載FPGA混合時鐘域設計[J].電子技術應用,2010,36(12):42-47.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。