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

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

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

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

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

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

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

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

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

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

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

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

圖12 正弦周期電壓仿真曲線
圖13為絕對值電路輸出電壓與輸入電壓之間差值分析的蒙特卡羅柱狀圖。圖13中,蒙特卡羅正態分布一個σ的值約為0.6 mV,3σ值約為1.8 mV,平均電壓值為–0.2 mV。絕對值電路的隨機失調誤差大致分布在–1.5~1 mV。可以看出,輸入電壓在經過整體絕對值電路轉化后,絕大部分輸出值誤差均小于1 mV,小部分電壓略大于1 mV,實現了該電路高精度的轉化特性。

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

圖14 理想Tanh函數與該文CIM架構輸出值擬合成Tanh函數對比
表2展示了該絕對值電路與其他絕對值電路的對比分析??梢钥闯觯撾娐匪俣刃∮?0 ns,高于其他電路;理論絕對值輸出值與實際絕對值輸出值之間相對誤差小于1%;其面積以及低壓適用條件等指標均處于中上水平。

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

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