徐玉婷,耿 楊,董宜平,胡 凱
(1.無錫中微億芯有限公司,江蘇無錫214072;2.中國電子科技集團公司第58研究所,江蘇無錫214072)
一種用于FPGA存儲單元的上電復位狀態(tài)機設計*
徐玉婷1,耿 楊1,董宜平2,胡 凱2
(1.無錫中微億芯有限公司,江蘇無錫214072;2.中國電子科技集團公司第58研究所,江蘇無錫214072)
基于FPGA芯片,設計實現(xiàn)了一種上電復位狀態(tài)機。在電路內部產生一系列的復位信號,控制配置存儲單元SRAM的數據、地址以及電源,使其在不同階段保持合適的電壓,幫助SRAM在上電過程中順利完成初始化,提高FPGA芯片啟動的穩(wěn)定性。
FPGA;上電復位;狀態(tài)機;SRAM
FPGA芯片通常包含大量的可配置模塊(CLB)、輸入/輸出塊(IOB)和連線資源[1]。可編程的連線結構都是由可配置單元所存儲的配置信息所決定的。采用可配置存儲單元設計的優(yōu)勢在于減少了用于編程的I/O接口的數量。而且和單端的存儲單元相比,可差分的寫存儲單元結構大大減少了寫電路的驅動數量[2]。此外,局部的復位電路也從存儲單元中去除,以降低存儲單元和I/O接口的復雜性。但是同時,此類I/O接口的簡化大大增加了電路上電復位時存儲單元初始化的難度。因此,本文采用了一種合理的上電順序,使得存儲單元SRAM的數據、地址以及電源都受上電狀態(tài)機的控制,保持合適的電壓,使得上電復位后,SRAM存儲的數據完成初始化,對提高FPGA芯片的安全性和啟動的穩(wěn)定性都有極大的幫助。
FPGA芯片中可配置存儲單元SRAM的常見結構為六管結構[3],如圖1所示。兩個PMOS管M3和M4是負載管,主要是用來補償存儲管和開關管漏端電荷的泄放。與M3和M4構成反相器對的兩個NMOS管M1和M2是存儲管,數據和數據的反分別存放在Q和QN點。而柵極與字線(WL)相連的兩個NMOS管M5和M6起開關的作用,BIT和BITN為兩條位線。SRAMVDD為SRAM提供電源。
圖1 SRAM六管結構圖
為了提高FPGA芯片的安全性和啟動的穩(wěn)定性,本文采用的FPGA電路上電順序分為以下幾個步驟:
(1)接通電源,上電復位電路開始檢測電源電壓;
(2)SRAM單元在電源電壓上電時完成第一次初始化;
(3)SRAM的電源電壓SRAMVDD保持為零,數據輸入端保持為零;
(4)所有SRAM的第一地址驅動電壓生效,上拉到FPGA內核電源電壓;
(5)將所有SRAM的電源電壓偏壓到VDD;
(6)通過LDO電路開始調整SRAM的電源電壓到VLDO;
(7)FPGA芯片開始正常的配置操作。
當電源電壓緩慢上升時,上電檢測電路開始工作,同時所有的SRAM由于QN和Q負載的不同,SRAM出現(xiàn)第一次自動的初始化,內部Q存儲的數據變?yōu)?或1。此時SRAM中存儲的狀態(tài)均為確定值,可大大減小上電時SRAM的電流。電源上電檢測完成,上電復位信號POR_TRIP由高電平跳變成低電平,此時狀態(tài)機開始工作,產生一系列復位信號,時序圖如圖2所示。在時間點A之前,SRAM的電源電壓SRAM VDD保持為零,字線WL的驅動電壓WL_VS保持為零,SRAM的數據輸入端保持為零。POR_1發(fā)生跳變后,WL_VS被上拉到FPGA內核電源電壓1.1 V。在時間點B,SRAM VDD偏壓到偏置電壓,BIT端依然保持為零,此時SRAM陣列根據從地址譯碼器接收到的地址,逐列打開WL,對SRAM陣列進行第二次初始化,將BIT端的數值0逐列寫入SRAM單元,從而保證每一位配置存儲器存儲的數據均為0。由于大部分SRAM單元在第一次初始化時內部存儲的值已經為0,因此第二次初始化只有小部分的值需要從1改寫為0,這也大大減小了改寫時SRAM的電流。從時間點C開始,SRAMVDD電壓逐步偏壓到LDO的輸出電壓。在時間點E,WL_VS電壓也略微升高,始終高于SRAM VDD。FPGA芯片開始正常的配置操作,可重新按需求對SRAM進行配置。
圖2 上電復位信號時序圖
基于上述上電復位的過程,F(xiàn)PGA芯片中的上電狀態(tài)機實現(xiàn)如圖3所示。
圖3 上電狀態(tài)機控制框圖
POR上電檢測完成后的復位信號觸發(fā)POR狀態(tài)機開始工作,POR狀態(tài)機產生一組復位信號分別控制LDO模塊、配置控制器、地址驅動模塊。其中LDO模塊用于產生SRAM的電源SRAM VDD,地址驅動模塊用來產生SRAM的字線WL的地址,配置控制器則負責將數據傳遞到DSR模塊,通過DSR模塊傳輸到SRAM的BIT端和BITN端。
SRAM的電源電壓產生電路LDO模塊的設計基于低功耗考慮,采用可掛起的模式,具體結構見圖4。
圖4 LDO結構圖
根據圖2所示的上電復位流程,SRAM的電源電壓SRAM VDD受狀態(tài)機的控制,分為4個階段。一開始,SRAM VDD保持為0;后來,SRAM VDD的值由圖4右側的電路產生,其中VBIAS的電壓由POR控制的電阻分壓電路產生,此時SRAM VDD電壓偏低,記為Vbias_out。隨后圖4中左側LDO開始工作,SRAM VDD電壓逐漸變?yōu)長DO提供,此時SRAM VDD的值高于Vbias_out,記為VLDO。
在SMIC 40 nm工藝下對電路進行了實現(xiàn),采用cadence的仿真工具spectre對電路進行了仿真,狀態(tài)機仿真波形如圖5所示。電源上電,上電復位檢測成功,POR_TRIP由高電平1.1 V跳變到低電平0 V,此時狀態(tài)機開始工作,依次產生POR_1~POR_5一系列不同延遲的復位信號。
圖5 上電復位信號仿真波形
由于電路規(guī)模較大,考慮到復位信號延遲時間比較長,下面的仿真模擬了狀態(tài)機的順序,縮減狀態(tài)機的工作時間,對受上電復位狀態(tài)機控制的LDO進行了仿真,模擬SRAM VDD不同階段的電壓,仿真波形如圖6所示。
如圖6的仿真波形所示,一開始SRAM VDD的值為0,后來SRAM VDD的值約為1.18 V,當LDO開始工作后,SRAM VDD電壓開始上升至1.28 V。
圖6 SRAM VDD仿真波形
本文采用SMIC 40 nm工藝,設計實現(xiàn)了一種上電復位狀態(tài)機,在電路內部產生一系列受狀態(tài)機控制的復位信號,使得存儲單元SRAM的數據、地址以及電源都受上電狀態(tài)機的控制,保持合適的電壓有利于SRAM存儲的數據在上電時完成初始化。該上電狀態(tài)機結構已應用于某重點項目工程實踐中,可大大減少上電時芯片的啟動電流,提高SRAM啟動時的穩(wěn)定性,增強FPGA芯片的安全性。
[1]王道憲.CPLD/FPGA可編程邏輯器件應用與開發(fā)[M].北京:國防工業(yè)出版社,2004.
[2]Xilinx.Virtex-5 FPGA Configuration User Guide[P].2012.
[3]R JacobBaker,Harry W Li,David E Boyce.CMOS電路設計、布局與仿真[M].北京:機械工業(yè)出版社,2006.
Design of Power-on Reset State Machine for FPGA
XU Yuting1,GENG Yang1,DONG Yiping2,HU Kai2
(1.East Technologies,inc.Wuxi 214072,China;2.China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)
A design of power-on reset state machine for FPGA is presented in the paper.The state machine generates a set of reset signals to maintain proper voltage for memory cells.It ensures the memory cells initializes successfully during the power-on process and enhances FPGA reliability and stability.
FPGA;power on reset;state machine;SRAM
TN402
A
1681-1070(2017)01-0024-03
徐玉婷(1983—),女,江西南昌人,碩士,工程師,研究方向為千萬門級FPGA設計。
2016-6-3
國家科技重大專項資助項目(2015ZX01018101-005)