顧曉峰 管其冬 虞致國
(物聯(lián)網(wǎng)技術(shù)應(yīng)用教育部工程研究中心 無錫 214122)
(江南大學(xué)電子工程系 無錫 214122)
隨著集成電路制造工藝日趨成熟,芯片設(shè)計向著高速、低功耗、低面積的方向發(fā)展。但由于晶體管特征尺寸縮小受限,芯片的集成度已無法達(dá)到“摩爾定律”的預(yù)測效果,傳統(tǒng)馮諾依曼架構(gòu)也面臨著功耗墻和存儲墻問題[1]。至此,以存儲器為核心的計算體系架構(gòu)—存算一體(Computing In Memory, CIM)架構(gòu)應(yīng)運而生[2–7],延長了“摩爾定律”的生命,打破了存儲墻的瓶頸,擴(kuò)大了神經(jīng)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域[8–13]。
典型的基于神經(jīng)網(wǎng)絡(luò)的CIM架構(gòu)中,每一層的輸入數(shù)據(jù)首先由線性向量矩陣乘法器處理,然后通過模擬生物神經(jīng)元的激活函數(shù)引入非線性因素,激活函數(shù)可以實現(xiàn)神經(jīng)網(wǎng)絡(luò)輸入與輸出之間的非線性映射,使得神經(jīng)網(wǎng)絡(luò)能夠逼近任何非線性模型中[14,15],以解決線性模型的表達(dá)、分類能力不足等問題。而雙曲正切函數(shù)Tanh的輸入與輸出均處在[–1, 1]之間,函數(shù)值變化敏感,能夠保持非線性單調(diào)上升和下降關(guān)系,易于神經(jīng)網(wǎng)絡(luò)的梯度求解,容錯性好,符合人腦神經(jīng)飽和的規(guī)律。
基于CMOS工藝實現(xiàn)Tanh激活函數(shù)的方式包含模擬設(shè)計、數(shù)字設(shè)計以及模數(shù)混合設(shè)計,文獻(xiàn)[15]將P, N型MOS管及電阻組成一個神經(jīng)元電路,利用MOS管的飽和特性,通過基爾霍夫電流定律建立輸入電流與輸出電壓函數(shù)關(guān)系,得到Tanh函數(shù)擬合曲線,該電路結(jié)構(gòu)簡單,但是電流變化,影響MOS管工作范圍,且電流輸入,會產(chǎn)生電荷泄漏,影響電壓輸出;文獻(xiàn)[16]提出另一種Tanh函數(shù)簡單實現(xiàn)方式,利用PMOS管及NMOS管的導(dǎo)通特性,對固定電阻傳輸電流進(jìn)行I-V轉(zhuǎn)換,得到相應(yīng)的Tanh函數(shù)曲線,其實現(xiàn)了電路的快速轉(zhuǎn)換,但小電阻阻值需要大的電流,顯著增加電路功耗,相反控制小的電流則需要大電阻阻值,給電路提供了額外的面積開銷;文獻(xiàn)[17]采用數(shù)字組合邏輯完成正半軸計算電路以及負(fù)半軸反射電路,利用Verilog語言對上述電路擬合實現(xiàn)Tanh函數(shù),但一系列數(shù)字電路給系統(tǒng)功耗及面積同樣帶來了不小的開銷。
與數(shù)字實現(xiàn)相比,模擬設(shè)計更快、更節(jié)能[18,19]。但是對于模擬設(shè)計而言,激活函數(shù)中Tanh函數(shù)負(fù)值處理難度較大,復(fù)雜度較高,且不易轉(zhuǎn)化。為解決上述問題,本文基于CMOS工藝提出一種實現(xiàn)Tanh函數(shù)負(fù)值轉(zhuǎn)化的高速、高精度、離散型絕對值電路設(shè)計,轉(zhuǎn)化后的絕對值輸出通過模數(shù)轉(zhuǎn)換器(Analog to Digital Converter, ADC)、數(shù)字控制邏輯等模塊將器件輸出重新擬合成Tanh函數(shù)。
但是絕大多數(shù)絕對值電路都是依靠二極管全波整流來實現(xiàn),由于二極管的非線性失真嚴(yán)重且很難集成,很難適用于大規(guī)模集成電路系統(tǒng)架構(gòu)中。文獻(xiàn)[20]提出一種電流模形式絕對值電路,利用P型電流鏡以及N型電流鏡不同的導(dǎo)通條件將正負(fù)輸入電流以不同形式輸出,實現(xiàn)絕對值電路功能,但是電流鏡拷貝精度很難控制,且大的電流條件下增加了電路功耗;文獻(xiàn)[21]使用兩個比較器以及1個異或門實現(xiàn)絕對值比較電路,通過將輸入電壓絕對值化,再將輸出值與0進(jìn)行比較,異或后得到最終的比較結(jié)果,但是為了降低比較器延時,需要更大的電流,從而引入更大的電路功耗。
針對上述問題且滿足實現(xiàn)存算一體架構(gòu)Tanh函數(shù)離散信號運算處理的要求,本文設(shè)計出一種新型高速、高精度絕對值電路。整體絕對值電路由高速比較器、快速建立運算放大器以及部分開關(guān)組成。
圖1展示了CIM的整體架構(gòu)以及通過絕對值電路方式實現(xiàn)Tanh函數(shù)的過程,每一個存算單元為閃存(Flash)型存算器件。圖1存算陣列內(nèi)部每一列存算單元器件連接同一條字線(Word Line, WL),源極(Source Line, SL)接固定電壓,漏極連接同一條位線(Bit Line, BL)傳遞讀出系統(tǒng)所需要的輸出值。輸入信息通過脈沖編碼輸入到WL上,當(dāng)WL上信號是高電平時,在BL端會產(chǎn)生一個大小為

圖1 CIM整體架構(gòu)
的單位電流,其中,μ是存算器件的遷移率,Cox是其柵氧電容,W, L分別是其寬、長。當(dāng)WL上信號是低電平時,不會產(chǎn)生電流,通過基爾霍夫定律,在BL端輸出器件產(chǎn)生的電流流入讀出系統(tǒng)的讀出電路中進(jìn)行放大、讀出等操作后,經(jīng)過I-V電路轉(zhuǎn)化后電壓傳輸給絕對值電路,符號選擇電路可將絕對值判斷的正負(fù)值存儲并在ADC以及數(shù)字控制邏輯電路工作時發(fā)送。當(dāng)絕對值電路數(shù)據(jù)處理完成后發(fā)送給ADC進(jìn)行模數(shù)轉(zhuǎn)化,并接收符號選擇電路的正負(fù)信號進(jìn)行傳輸,最后通過數(shù)字電路的內(nèi)部邏輯將ADC的輸出信號擬合成Tanh函數(shù)曲線。
處理Tanh激活函數(shù)中負(fù)值的高速、高精度、離散型絕對值電路包含電壓驅(qū)動的緩沖(Buffer)驅(qū)動電路,電壓處理的比較器電路、反相比例取反電路以及電壓選擇的開關(guān)電路、反相器電路,其整體框架如圖1所示。
存算陣列輸出信號經(jīng)過存算讀出、I-V轉(zhuǎn)換后傳輸給絕對值電路,此時絕對值電路中的比較器時鐘在Buffer驅(qū)動電路輸出電壓穩(wěn)定后開始比較(時鐘處于低電平),輸入電壓經(jīng)過Buffer驅(qū)動電路后傳輸給比較器電路、反相比例取反電路以及開關(guān)電路S1,由比較器產(chǎn)生的結(jié)果判定后續(xù)開關(guān)是否打開,以此來控制輸入電壓的傳輸。當(dāng)輸入電壓VIN為正值時,比較器輸出結(jié)果為1,開關(guān)S1打開,VIN沿A支路通過開關(guān)電路S1傳輸出去;當(dāng)輸入電壓VIN為負(fù)值時,比較器輸出結(jié)果為0,經(jīng)過反相器反相后,0變?yōu)?,開關(guān)S2打開,S1斷開,輸入的負(fù)壓沿B支路經(jīng)過反相比例取反電路后變?yōu)檎龎海儆砷_關(guān)S2傳輸出去,其傳輸公式如式(2)所示
由于CIM架構(gòu)處理Flash器件陣列產(chǎn)生的某一固定信號值,因此比較器時鐘在Buffer驅(qū)動電路輸出穩(wěn)定電壓值之前一直處于高電平復(fù)位狀態(tài),直到電壓穩(wěn)定后比較器時鐘才轉(zhuǎn)換為低電平比較狀態(tài),為了適應(yīng)ADC采樣信號,因此比較器會在采樣結(jié)束之前一直保持低電平比較狀態(tài)。
絕對值電路中的Buffer驅(qū)動電路如圖2所示,采用2級運算放大器對輸入電壓進(jìn)行驅(qū)動跟隨,將2級運放接成單位增益緩沖器的電路結(jié)構(gòu),使其能夠穩(wěn)定供給比較器,防止電壓波動對后續(xù)傳輸產(chǎn)生影響。還需考慮其速度問題,盡量減小I-V轉(zhuǎn)換到ADC之間的轉(zhuǎn)換時間,提高整體運算速度。啟動電路以及基準(zhǔn)電流源構(gòu)成2級運放的偏置電流供給模塊。由于絕對值電路的輸入會有負(fù)壓,因此將2級運放的NMOS換成深阱(Deep NWell, DNW)工藝的NMOS,以使其能夠更好地耐壓。

圖2 Buffer驅(qū)動電路
啟動電路作為基準(zhǔn)電流源的上電電路,必須滿足上電以及自動關(guān)閉的功能。PM1為開關(guān),當(dāng)電源處在緩慢打開過程時,PM1導(dǎo)通,電源電壓緩慢給MOS電容C1充電,此時PM2的柵源電壓逐漸減小,慢慢達(dá)到PM2的閾值電壓直至PM2截止,啟動電路關(guān)閉。為避免A支路上的電壓因PM2的傳輸產(chǎn)生波動,利用MOS電容C2電容對其進(jìn)行穩(wěn)壓,以實現(xiàn)穩(wěn)定輸出電流。
為了提高基準(zhǔn)電流源的電源抑制比,設(shè)計由PM3~5, NM1~3以及電阻R組成的負(fù)反饋結(jié)構(gòu)基準(zhǔn)電流源,使Buffer驅(qū)動電路能夠更加穩(wěn)定驅(qū)動輸入電壓。其中分壓電阻R的選取一方面需要滿足輸出電流的精確輸出值,一方面需要抵消基準(zhǔn)電流源內(nèi)部的溫漂系數(shù)。最終基準(zhǔn)電流通過電流鏡拷貝沿B支路給2級運放提供穩(wěn)定偏置電流。
比較器電路是為了比較輸入電壓與零值的大小,確定比較器后接開關(guān)是否打開,判定開關(guān)傳輸相應(yīng)的電壓值。單級的比較器即運放結(jié)構(gòu)比較器,其精度較高,但是速度低,高精度是要求單級比較器有大的增益,但是卻要犧牲帶寬;鎖存比較器可快速比較差分輸入電壓,但是精度偏低,且失調(diào)電壓較大。
綜合考慮比較器的速度,為了實現(xiàn)絕對值高速高精度的要求,采用兩級預(yù)放大器加動態(tài)鎖存器構(gòu)成的比較器結(jié)構(gòu),其整體架構(gòu)如圖3所示。第1級預(yù)放大器需要將信號快速放大,因此需要更高的帶寬;第2級預(yù)放大器則需要更高的增益來放大輸入的差分信號,使得動態(tài)鎖存器擁有足夠的電壓擺幅。因此設(shè)計采用電流鏡負(fù)載的高帶寬全差分運放,如圖3(a)、圖3(b)所示;第2級同樣采用上述架構(gòu),并通過降低電壓偏置適當(dāng)提高其增益,放大差分輸入電壓值;動態(tài)鎖存結(jié)構(gòu)如圖3(c)所示。

圖3 比較器整體電路架構(gòu)
為滿足存算一體的高速算力要求,實現(xiàn)數(shù)據(jù)的快速傳輸,將絕對值電路的1個工作周期設(shè)置為50 ns,同樣需要將比較器的時鐘周期控制在50 ns以內(nèi),因此到達(dá)鎖存器的比較信號至少要在比較器周期的1/2時間內(nèi)達(dá)到穩(wěn)定,根據(jù)輸入信號延時求得預(yù)放大器的偏置電流大小
其中, ?V為預(yù)放大器的輸出共模電平,CL為負(fù)載電容。因此
根據(jù)式(3)可得
通過負(fù)載的大小可獲得預(yù)放大器偏置電流最小值。
為了實現(xiàn)相反數(shù)的運算功能,將架構(gòu)外負(fù)輸入電壓轉(zhuǎn)換為正輸入電壓供后續(xù)電路傳輸,設(shè)計如圖4所示的反相比例取反電路。其中運算放大器(AMPlifier, AMP)同樣是由上述Buffer驅(qū)動電路中的2級運放構(gòu)成的,R1~R3組成反相比例取反電路的比例系數(shù)運算電阻。

圖4 反相比例取反電路圖
本文所提開關(guān)電路不僅要通過比較器的輸出信號來判定開關(guān)是否打開,還要將處理的輸入信號進(jìn)行傳輸,因此采用如圖5所示的產(chǎn)生互補(bǔ)時鐘的傳輸門開關(guān)電路。比較器輸出的高低電平經(jīng)過PM1,NM1構(gòu)成的恒導(dǎo)通的傳輸門以及PM3, NM3構(gòu)成的反相器,一個正向?qū)?,一個反相傳輸,信號經(jīng)過傳輸門的時間可等效反相器的延遲時間,以產(chǎn)生互補(bǔ)的時鐘信號,并通過PM2, NM2和PM4, NM4構(gòu)成的反相器驅(qū)動,最終互補(bǔ)的時鐘信號CLK,CLK用來控制PM5, NM5構(gòu)成的傳輸門是否導(dǎo)通。

圖5 產(chǎn)生互補(bǔ)時鐘的開關(guān)電路
采用55 nm CMOS工藝對新型高速、高精度、離散型絕對值電路進(jìn)行電路設(shè)計,并對各個子模塊主要關(guān)鍵技術(shù)指標(biāo)進(jìn)行仿真分析。由于CMOS器件單元易受工藝角、溫度等條件的影響,因此主要針對以下3種PVT(Process, Voltage, Temperature)條件進(jìn)行前仿:tt與25°C,ss與125°C,ff與–40°C。其中tt與25°C,ss與125°C,ff與–40°C分別為標(biāo)準(zhǔn)、最慢以及最快的組合條件。最后對整個電路架構(gòu)進(jìn)行相應(yīng)的仿真對比分析。
仿真Buffer驅(qū)動電路驅(qū)動跟隨穩(wěn)定性,其結(jié)果如圖6所示,輸入電壓在–100 mV和100 mV內(nèi)來回切換,均在50 ns內(nèi)達(dá)到穩(wěn)定。其中深藍(lán)色曲線為±100 mV參考電壓值,淺藍(lán)色曲線和綠色曲線分別為ss與125°C、ff與–40°C下電壓的跟隨狀態(tài),從圖6可以看出,–40~125°C,工藝角從緩慢到快速變化,Buffer驅(qū)動電路的跟隨穩(wěn)定時間均能控制在50 ns以內(nèi)。其在不同PVT條件下具體驅(qū)動穩(wěn)定時間對比分析如表1所示。上述可以看出,Buffer驅(qū)動電路的前仿結(jié)果在對應(yīng)的PVT條件下基本保持一致:較慢狀態(tài)下建立的時間較長,較快狀態(tài)下建立的時間較短,以保證在50 ns內(nèi)數(shù)據(jù)能夠穩(wěn)定傳輸給后續(xù)電路工作。

圖6 Buffer驅(qū)動電路建立時間
比較器整體瞬態(tài)仿真如圖7所示,并對比較器在不同PVT條件下進(jìn)行工藝角仿真。圖7可以看出20 MHz頻率下,比較器延時為5 ns,且比較器最低比較電壓可精確至550 μV以內(nèi),滿足低電壓比較的要求。其在不同PVT條件下仿真的延時如表1所示。在ss與125°C和ff與–40°C條件下,比較器延時達(dá)到最長與最短,分別為10 ns和 3 ns。

圖7 比較器瞬態(tài)仿真
圖8為反相比例取反電路在標(biāo)準(zhǔn)狀態(tài)下反相輸入與反相輸出仿真圖,當(dāng)輸入電壓從–100~100 mV離散變化(50 ns一個臺階電壓變化)時,輸出電壓可以從100~–100 mV同比例反相變化,取反精度小于1 mV,誤差小于1%。在不同PVT仿真條件下對反相比例取反電路進(jìn)行功能仿真分析,其仿真分析對比如表1所示,在ff與–40°C與ss與125°C條件下,會出現(xiàn)最小誤差與最大誤差,分別為0.02 mV和1.04 mV。

圖8 反相比例取反電路功能實現(xiàn)
由上述分析數(shù)據(jù)可以推斷得出,在ss與125°C狀態(tài)下,溫度升高,影響器件的載流子遷移率以及閾值電壓,從而改變了MOS管之間的導(dǎo)通電壓,繼而影響了反相比例取反電路的運算輸出。
傳輸門開關(guān)需要與比較器輸出信號同步,盡量減少延時,圖9為傳輸門開關(guān)在不同PVT條件下針對輸入電壓從–100~100 mV臺階變化后的輸出曲線圖。不同PVT條件下的輸入信號經(jīng)過開關(guān)電路均能夠很好地輸出。

圖9 傳輸門開關(guān)在不同PVT條件下的輸出曲線
圖10為絕對值電路過零點區(qū)域放大的電壓值,其在不同PVT條件下零點電壓值均在400 μV以內(nèi),通過對零點電壓放大觀測,確定該絕對值電路在零點處的偏移誤差性很小,保證以零值為中心點的左右正負(fù)值能夠很好跟隨。

圖10 絕對值零點放大
存算陣列在每一個數(shù)據(jù)讀出周期下均是固定值,經(jīng)過讀出電路穩(wěn)壓放大操作傳輸給絕對值電路,因此,絕對值需處理每一次讀出的正值或者是負(fù)值。圖11為絕對值整體電路架構(gòu)以50 ns為1個周期,從–100~100 mV的臺階電壓變化下的仿真圖。圖11可以看出,一個周期內(nèi)的絕對值轉(zhuǎn)化誤差都控制在1 mV以內(nèi),其在不同PVT條件下的誤差大小如表1所示,在ss與125°C與ff與–40°C條件下誤差達(dá)到最大和最小,分別為1.12 mV和0.69 mV。通過將臺階電壓變?yōu)閿M合的正弦波信號對該絕對值電路再次進(jìn)行仿真,得到如圖12所示波形,圖12中,正弦波正半軸電壓原值輸出,而在負(fù)半軸,由于比較器的復(fù)位階段,部分負(fù)壓保持,而在比較階段的負(fù)壓能夠很好地轉(zhuǎn)化為正壓,具有很好的擬合性,滿足了固定周期內(nèi)實現(xiàn)存算陣列輸出值的相應(yīng)轉(zhuǎn)換。

圖11 臺階周期電壓仿真曲線

圖12 正弦周期電壓仿真曲線
圖13為絕對值電路輸出電壓與輸入電壓之間差值分析的蒙特卡羅柱狀圖。圖13中,蒙特卡羅正態(tài)分布一個σ的值約為0.6 mV,3σ值約為1.8 mV,平均電壓值為–0.2 mV。絕對值電路的隨機(jī)失調(diào)誤差大致分布在–1.5~1 mV??梢钥闯?,輸入電壓在經(jīng)過整體絕對值電路轉(zhuǎn)化后,絕大部分輸出值誤差均小于1 mV,小部分電壓略大于1 mV,實現(xiàn)了該電路高精度的轉(zhuǎn)化特性。

圖13 蒙特卡羅失調(diào)分析
以上為絕對值電路子模塊及整體電路架構(gòu)性能仿真分析,為了實現(xiàn)絕對值電路在CIM架構(gòu)中的運算功能,且最終能夠擬合成Tanh激活函數(shù),將ADC二進(jìn)制輸出值通過數(shù)字組合邏輯轉(zhuǎn)化為Tanh激活函數(shù),其仿真圖如圖14所示。其中藍(lán)色曲線為理想Tanh激活函數(shù)曲線圖,紅色三角形離散點為通過CIM架構(gòu)中ADC輸出值經(jīng)過數(shù)字邏輯轉(zhuǎn)化后的曲線圖。對兩條曲線進(jìn)行計算,擬合后的Tanh激活函數(shù)的平均誤差為0.011。

圖14 理想Tanh函數(shù)與該文CIM架構(gòu)輸出值擬合成Tanh函數(shù)對比
表2展示了該絕對值電路與其他絕對值電路的對比分析。可以看出,該電路速度小于50 ns,高于其他電路;理論絕對值輸出值與實際絕對值輸出值之間相對誤差小于1%;其面積以及低壓適用條件等指標(biāo)均處于中上水平。

表2 絕對值電路性能總結(jié)以及與其他絕對值電路性能對比
本文設(shè)計的新型離散型、高速、高精度無二極管絕對值電路電源電壓為1.2 V和–1.2 V。針對設(shè)計完成的絕對值電路進(jìn)行相應(yīng)的版圖繪制,并根據(jù)以下要求對電路架構(gòu)進(jìn)行版圖的布局及設(shè)計:
(1)為了降低溫度變化對內(nèi)部電路的影響,采用深阱工藝電阻,匹配基準(zhǔn)電流源MOS管溫度系數(shù)及反相比例取反電路正負(fù)端電壓溫漂。
(2)運放、基準(zhǔn)電流源及比較器中電流鏡負(fù)載及輸入對管采用交叉匹配方式,并在兩端增加虛擬(Dummy)管,提高M(jìn)OS管對稱性及匹配性,使之均勻傳輸對稱支路電流。
(3)整體CIM架構(gòu)集成在Flash型存算器件陣列中,由于存算器件尺寸較小,考慮到版圖匹配等問題,不適合1對1(1條BL對應(yīng)1條讀出系統(tǒng))的版圖布局,根據(jù)器件寬度與讀出系統(tǒng)寬度進(jìn)行陣列式布局布線,并將讀出電路系統(tǒng)進(jìn)行堆疊設(shè)計,并考慮其布線通道等問題。
電路版圖如圖15所示。整體版圖面積為4 447 μm2,在標(biāo)準(zhǔn)PVT條件下,取得仿真周期下流經(jīng)電源電壓的平均電流值,求得平均功耗為670 μW。適合低面積開銷、低功耗存算一體架構(gòu)及其他運算電路借鑒和考量。

圖15 絕對值電路整體版圖
為了解決存算一體模擬架構(gòu)中Tanh激活函數(shù)負(fù)值難處理的問題,本文采用55 nm CMOS工藝創(chuàng)新設(shè)計出一種離散型無二極管絕對值電路,電路實現(xiàn)了正負(fù)壓的高速、高精度轉(zhuǎn)化輸出,在不同PVT的工藝環(huán)境下對絕對值電路中各個子模塊以及整體電路進(jìn)行功能以及性能仿真和分析,均達(dá)到了設(shè)計需求。在輸入電壓為–100~100 mV,比較器的工作周期為50 ns,電源電壓為1.2 V和–1.2 V條件下,絕對值電路在工作周期內(nèi)均能夠很好地輸出相應(yīng)的轉(zhuǎn)化值,且輸入輸出的電壓誤差控制在1 mV以內(nèi),零點放大區(qū)域電壓小于400 μV,整體電路功耗為630 μW,電路面積為4 447 μm2,實現(xiàn)了絕對值電路轉(zhuǎn)化小面積、低功耗的要求,滿足存算一體讀出架構(gòu)高算力、高精度的運算特性。因此,本文對低電源電壓、低功耗、離散型正負(fù)壓絕對值處理提供了有益的參考。