趙 雷,路美娜,宋茂新,吳 洋,王 凱,許智龍,洪 津
(1.中國科學院合肥物質科學研究院安徽光學精密機械研究所,安徽合肥 230031;2.中國科學技術大學,安徽合肥 230026)
集成電路(IC)產業(yè)是現(xiàn)代信息社會的重要基石,而光刻機則是IC制造中的關鍵核心設備[1]。隨著光刻技術的不斷發(fā)展,光刻分辨率也越來越高。提升光刻分辨率的途徑可由瑞利判據(jù)[2]得知:減小曝光波長λ;增大投影物鏡的數(shù)值孔徑NA;降低工藝因子k1。其中減小λ是提升光刻分辨率的主要研究方向,無論是減小λ還是增大NA,都會使得焦深變小[2-3]。隨著光刻相關技術的不斷發(fā)展,光刻機曝光波長從早期的435 nm(G線)減小到了目前的13.5 nm(EUV),數(shù)值孔徑也已增大到近乎極限,焦深也隨之來到了120 nm級別甚至100 nm以下[3-4]。在進行光刻時,為了保證IC產品的質量,硅片表面要保持在可用焦深范圍內[4],隨著焦深的不斷減小,聚焦控制的難度也在不斷增大。目前國際主流光刻機利用基于光學三角法的調焦調平測量系統(tǒng)來測量硅片表面高度,進而工件臺控制單元會基于已獲取的高度信息去進行硅片高度和水平傾斜度的調整,使得硅片待曝光面處在投影物鏡的最佳焦面位置[4]。隨著IC相關技術和產業(yè)的持續(xù)發(fā)展,不斷改進和迭代調焦調平測量技術方案,以提升測量精度、測量速度和環(huán)境適應能力等[5]。
對于某光刻調焦調平測量系統(tǒng)預研項目,需要實現(xiàn)對包含硅片高度信息的光信號的采集、調理和A/D(模/數(shù))轉換,并需要把ADC器件輸出的數(shù)字信號數(shù)據(jù)傳輸至計算機中,以便對數(shù)據(jù)進行處理和分析,同時還需要實現(xiàn)計算機對ADC等器件的控制。針對上述需求,并考慮到項目后續(xù)的一系列測試,設計了基于PCIe和M-LVDS(multipoint-low-voltage differential signaling)的數(shù)據(jù)傳輸系統(tǒng)。PCIe是一種高速串行總線,在現(xiàn)今計算機中應用十分普遍,該數(shù)據(jù)傳輸系統(tǒng)的PCIe接口規(guī)格為PCIe2.0×8,理論帶寬達到4.0 GB/s[6-7];相比于LVDS,M-LVDS的差分輸出電壓更大、共模電壓范圍更廣、極限傳輸距離更遠[8],對于該數(shù)據(jù)傳輸系統(tǒng),在源同步傳輸模式下,M-LVDS鏈路中的源時鐘可穩(wěn)定工作在100 MHz的頻率。該系統(tǒng)基于PCIe和M-LVDS,實現(xiàn)了數(shù)據(jù)的高速穩(wěn)定傳輸。
圖1為數(shù)據(jù)傳輸系統(tǒng)的基本架構圖,基于M-LVDS鏈路實現(xiàn)了數(shù)據(jù)采集板和主控板的通信,基于PCIe鏈路實現(xiàn)了主控板和計算機的通信。在調焦調平測量系統(tǒng)實際工作時,硅片表面高度的變化會引起數(shù)據(jù)采集板上探測器模塊(包含多個Si光電二極管)輸出的多路光電流的變化[9],為了得到硅片高度信息,需要正確處理這些光電流信號。光電流信號的處理步驟為:IV轉換—低通濾波—二級放大—低通濾波。信號經調理電路處理后接入ADC器件的模擬輸入通道以進行A/D轉換。利用FPGA驅動ADC芯片以獲取轉換后的數(shù)據(jù),并將每次獲取的所有通道數(shù)據(jù)進行封裝,然后以一定的時序發(fā)送給M-LVDS芯片,進而數(shù)據(jù)會傳輸至主控板中。除了數(shù)據(jù)的發(fā)送,數(shù)據(jù)采集板還要實現(xiàn)控制指令的解析與應答。主控板安裝在計算機主機的PCIe插槽里,由主機供電,用于實現(xiàn)與數(shù)據(jù)采集板和與計算機之間的數(shù)據(jù)信息交互。主控板由載板和子板組成,載板與子板之間使用FMC(FPGA mezzanine card)連接器進行連接,FMC子板上設計有M-LVDS電路。數(shù)據(jù)采集板采集的數(shù)據(jù)經M-LVDS鏈路傳輸至主控板后,需要經PCIe鏈路傳輸至計算機,以對數(shù)據(jù)進行處理和分析。計算機是系統(tǒng)的控制中心,所有的控制指令均由上位機軟件發(fā)出。
圖1 數(shù)據(jù)傳輸系統(tǒng)基本架構圖
考慮到硬件可編程性和后續(xù)版本迭代,數(shù)據(jù)采集板FPGA選用XC7K325T-2FFG900型號器件,該型號FPGA具有十分豐富的可編程邏輯資源;主控板的載板選用成品板卡,該板卡主控芯片的型號是XC7Z100-2FFG900,是Zynq-7000 SoC系列中片上資源極其豐富的器件,與賽靈思7系列FPGA相比,Zynq-7000 SoC還擁有PS(programmable system)部分[10]。M-LVDS芯片采用SN65MLVD040器件,該型號M-LVDS芯片支持4通道半雙工通信,信號收發(fā)速率可達250 Mbps[11];M-LVDS鏈路的線纜采用自定義線序的差分線纜,接口接插件采用CameraLink SDR連接器,保證了線纜的可靠連接。為了實現(xiàn)多路信號的同步采樣,數(shù)據(jù)采集板的ADC采用AD7608器件,AD7608可實現(xiàn)8路信號的同步采樣,具有18位分辨率,所有通道采樣速率均可達200 kSPS[12],其量程在本系統(tǒng)中被配置為±5 V??缱璺糯笃鞑捎肁DA4530-1型號放大器,該型號放大器的輸入偏置電流可低至±20 fA,并具有較低的失調電壓和失調電壓漂移[13]。
基于Vitis和Vivado完成了主控板Zynq系統(tǒng)的PS和PL(programmable logic)兩部分的開發(fā),如圖2所示,Zynq系統(tǒng)的主要功能由PL端實現(xiàn),PS端主要實現(xiàn)Q-SPI Flash、PS DDR3、UART外設的控制以及與PL的數(shù)據(jù)信息交互。為了更直觀、簡潔地表示,圖2中的部分模塊是多個實際功能模塊的集合。基于XDMA(DMA/bridge subsystem for PCI express)搭建了Zynq的PCIe子系統(tǒng),用于實現(xiàn)與上位機的通信。上位機下發(fā)的指令經傳輸后到達交互控制模塊,該模塊依據(jù)已定義好的協(xié)議進行指令的解析和處理[14];指令處理模塊用于實現(xiàn)指令內容的獲取和與數(shù)據(jù)采集板的串行通信功能,基于兩路M-LVDS通道實現(xiàn)了全雙工串行通信;數(shù)據(jù)處理模塊實現(xiàn)有效數(shù)據(jù)的解析、封裝和緩存等,包含F(xiàn)IFO(first-in first-out)、BRAM(block RAM)、AXI(advanced extensible interface)互聯(lián)等組件;基于2個AXI GPIO IP實現(xiàn)了PS與PL之間的信息通知,PS和PL通過對同一BRAM進行讀寫來實現(xiàn)兩部分之間的數(shù)據(jù)傳輸[15-16];板卡配置模塊包括時鐘芯片配置模塊和電源芯片配置模塊,時鐘芯片可提供不同頻率的差分時鐘,通過配置可調電源芯片,可改變Zynq部分BANK的供電電壓,2個芯片均通過I2C總線與Zynq進行通信。
圖2 主控板Zynq系統(tǒng)簡化架構圖
2.1.1 數(shù)據(jù)接收與緩存模塊設計
如圖3所示,數(shù)據(jù)接收模塊會對來自M-LVDS芯片的數(shù)據(jù)信號進行解析,在檢測到數(shù)據(jù)有效信號的上升沿后,開始接收數(shù)據(jù),并在接收完一幀數(shù)據(jù)后對數(shù)據(jù)幀頭進行校驗,如果校驗錯誤,則丟棄此幀數(shù)據(jù),如果校驗成功,則對數(shù)據(jù)進行封裝以便上位機解析,然后將封裝后的數(shù)據(jù)進行緩存。可以看到數(shù)據(jù)有2個流向,在數(shù)據(jù)緩存量較大時可選擇PS DDR作為存儲空間,數(shù)據(jù)緩存量較小時則可直接將數(shù)據(jù)存儲到PL BRAM中。Zynq-7000 SoC芯片的PS側提供了4個高性能AXI從接口,基于其中一個高性能AXI從接口實現(xiàn)了對PS DDR的讀寫。為了利用AXI協(xié)議的突發(fā)寫特性以及實現(xiàn)數(shù)據(jù)的異步傳輸,需將數(shù)據(jù)先存入異步FIFO中,因此相比于選擇PS DDR作為存儲區(qū),將數(shù)據(jù)存儲到PL BRAM可得到更低的時延。圖4為BRAM數(shù)據(jù)緩存模塊的仿真波形圖,該模塊將有效數(shù)據(jù)按照相應地址寫入到BRAM中。圖5為DDR數(shù)據(jù)緩存模塊部分信號的仿真波形圖,當異步FIFO已緩存一定大小的數(shù)據(jù)時,會啟動一次AXI突發(fā)寫事務以將數(shù)據(jù)傳輸給從機,在一次寫事務完成后,從機會進行響應,可以看到,寫響應有效信號M_AXI_BVALID成功拉高且響應信號M_AXI_BRESP的值為0,表明此次寫數(shù)據(jù)成功。
圖3 數(shù)據(jù)緩存路徑
圖4 BRAM數(shù)據(jù)緩存模塊仿真波形
2.1.2 串行收發(fā)模塊設計
為了增強控制的靈活性,并方便后續(xù)協(xié)議更新,設計了一種數(shù)據(jù)長度可變的串行協(xié)議,并進行了Verilog實現(xiàn)。圖6為串行發(fā)送過程的狀態(tài)轉移圖,在TRANS_IDLE狀態(tài)時,若檢測到發(fā)送有效信號cmd_tx_valid為高電平后,會寄存指令內容和長度信息,并且狀態(tài)機會跳轉到CMD_TRANS狀態(tài);在CMD_TRANS狀態(tài)時,會完成輔助字節(jié)和指令內容的發(fā)送,當發(fā)送完尾字節(jié)0x7b并等待一定時鐘周期后,狀態(tài)機會跳轉到TRANS_END狀態(tài)以拉高發(fā)送完成標志信號;在TRANS_END狀態(tài)停留1個時鐘周期后,狀態(tài)機會跳回到TRANS_IDLE狀態(tài)以等待下一次的發(fā)送。圖7為串行接收過程的狀態(tài)轉移圖,在RECV_IDLE狀態(tài)時,當檢測到協(xié)議首字節(jié)0x7a的首個下降沿后,start_flag信號會拉高1個周期,隨后狀態(tài)機會跳轉到START狀態(tài);在START狀態(tài)時,會對首字節(jié)進行校驗,如果校驗錯誤,則放棄此次接收,并跳回至RECV_IDLE,如果校驗正確,在長度信息寄存完成后狀態(tài)機會跳轉到RECV狀態(tài);在RECV狀態(tài)時,進行指令內容和尾字節(jié)0x7b的接收,并進行校驗數(shù)據(jù)的解析和寄存,在對尾字節(jié)校驗成功后,狀態(tài)機會跳轉至RECV_END狀態(tài);在RECV_END狀態(tài)時,會對指令內容進行校驗和分析,同時狀態(tài)機跳回至RECV_IDLE狀態(tài)以等待start_flag信號再次有效。
圖6 串行發(fā)送過程狀態(tài)轉移圖
圖7 串行接收過程狀態(tài)轉移圖
2.1.3 基于XMDA和AXI的PCIe子系統(tǒng)設計
XDMA是賽靈思提供的一種PCIe IP,提供了多個AXI接口,在主控板Zynq系統(tǒng)的設計中,利用XDMA的DMA AXI接口、AXI旁路接口、AXI_Lite接口以及中斷請求接口實現(xiàn)了與相應模塊的靈活可靠的數(shù)據(jù)信息交互[17]。圖8所示為主控板Zynq PCIe子系統(tǒng)基本框架圖[17-18],在Zynq系統(tǒng)中,數(shù)據(jù)存儲空間可配置為PL BRAM或PS DDR,XDMA基于AXI主接口可實現(xiàn)對BRAM或PS DDR的數(shù)據(jù)讀寫;交互控制模塊負責所有上位機指令信息的解析和處理,是主控板與上位機之間進行數(shù)據(jù)信息交互的核心模塊;指令請求模塊基于AXI協(xié)議可以實現(xiàn)數(shù)據(jù)的突發(fā)讀寫,用于指令內容的獲取;AXI Connect左側連接了2個BRAM,其中一個用于指令信息和指令內容的存儲,另一個作為預留空間。
圖8 PCIe子系統(tǒng)基本框架圖
圖9為數(shù)據(jù)采集板FPGA的功能模塊框圖。
圖9 數(shù)據(jù)采集板FPGA功能框圖
采集板作為控制目標設備,在指令解析模塊接收到正確的指令內容時,會將有效信息傳輸給控制中心模塊,然后控制中心模塊會根據(jù)指令碼和指令信息對ADC芯片或溫度傳感器芯片等執(zhí)行相應的控制操作,并通知指令反饋模塊回復相應的內容;溫度采集模塊負責驅動數(shù)字溫度傳感器以獲取轉換的溫度數(shù)據(jù);ADC驅動模塊負責驅動AD7608進行多路模擬量的同步采集并獲取ADC芯片的轉換數(shù)據(jù);數(shù)據(jù)處理模塊將來自4個ADC驅動模塊的數(shù)據(jù)封裝成數(shù)據(jù)幀,進而數(shù)據(jù)發(fā)送模塊會將數(shù)據(jù)幀按照一定時序發(fā)送給M-LVDS芯片。
對于ADC同步采集,雖然可以同時給出ADC的有效轉換信號,但是4個ADC的轉換時間不一定完全一致,因此需要對各個ADC驅動模塊的有效數(shù)據(jù)信號和數(shù)據(jù)標志信號進行同步處理。圖10為4個ADC數(shù)據(jù)標志信號同步處理邏輯的RTL原理圖,依據(jù)數(shù)據(jù)標志信號的同步來對數(shù)據(jù)進行合并,并輸出總數(shù)據(jù)標志信號和總數(shù)據(jù)信號。
圖10 ADC數(shù)據(jù)標志信號同步處理邏輯RTL原理圖
基于Qt Creator開發(fā)了上位機軟件,主要功能包括PCIe設備的打開與關閉、指令下發(fā)與狀態(tài)指示、數(shù)據(jù)獲取與存儲以及XDMA測試,上位機軟件界面如圖11所示。主控板在收到上位機軟件下發(fā)的指令內容后,會取出指令內容并轉發(fā)給目標設備,目標設備在接收到指令內容并校驗成功后會返回給主控板相應的信息,主控板收到正確的反饋內容后會生成中斷請求信號給XDMA,進而XDMA將向計算機申請中斷[19],在一定時間內,如果上位機軟件未檢測到相應中斷則表明系統(tǒng)存在問題或下發(fā)的指令內容有誤,軟件會提示發(fā)送失敗;如果檢測到相應中斷則說明此指令已安全到達目標設備,并且軟件會提示發(fā)送成功。上位機軟件的指令機制如圖12所示,該種機制保證了控制的可靠性與安全性,并且便于用戶操作??梢岳枚鄠€中斷去實現(xiàn)各種自定義機制,以拓展系統(tǒng)的功能。上位機軟件能夠穩(wěn)定可靠地從主控板中獲取數(shù)據(jù),并可輸出為bin或csv格式的文件,還可實現(xiàn)對XDMA的測試,以確保其工作正常。
圖11 上位機軟件界面
圖12 上位機軟件指令機制
為了驗證數(shù)據(jù)傳輸鏈路的正確性和數(shù)據(jù)傳輸機制的合理性,設計了數(shù)據(jù)傳輸測試系統(tǒng),測試基本原理如圖13所示,在數(shù)據(jù)采集板成功解析到測試開始指令后,會在FPGA中每隔一定時間生成一次所有ADC通道的模擬數(shù)據(jù),并按照正常工作時的數(shù)據(jù)格式和時序發(fā)送給主控板,進而上位機可從主控板中獲取測試數(shù)據(jù)。改變不同的模擬數(shù)據(jù)生成頻率,并進行多次長時間測試,經分析,上位機所獲取的所有數(shù)據(jù)幀的幀頭、幀計數(shù)、ADC數(shù)據(jù)、校驗和填充數(shù)據(jù)均正確,表明了數(shù)據(jù)鏈路的正確性和數(shù)據(jù)傳輸機制的合理性。
圖13 數(shù)據(jù)傳輸測試基本原理圖
除了數(shù)據(jù)傳輸正確性測試,還對M-LVDS鏈路的速率進行了測試。在數(shù)據(jù)采集板FPGA中生成數(shù)據(jù)并以源同步模式發(fā)送至M-LVDS芯片。主控板Zynq對收到的數(shù)據(jù)進行實時校驗,并對校驗出錯的次數(shù)進行計數(shù)。如表1所示,改變源時鐘頻率和測試時間,錯誤計數(shù)信號數(shù)值均一直為0,源時鐘能夠在100 MHz下長時間穩(wěn)定工作,可以實現(xiàn)數(shù)據(jù)在M-LVDS鏈路中的高速可靠傳輸。
表1 M-LVDS鏈路測試結果
如圖14所示,為利用ILA(integrated logic analyzer)抓取到的ADC驅動模塊的部分信號波形,可以看到,在輸出給ADC的轉換信號ad_convst拉高后,ADC忙信號ad_busy很快從低電平變?yōu)楦唠娖讲⒊掷m(xù)了一段時間,在ad_busy信號變?yōu)榈碗娖胶?ad_data_valid信號拉高1個驅動時鐘周期,狀態(tài)機從S_WAITD狀態(tài)跳到了S_REQD狀態(tài),開始進行ADC轉換數(shù)據(jù)的獲取,sclk_en信號用于控制ADC串行時鐘信號ad_sclk的生成,在空閑狀態(tài)時該信號為低電平;在把所有數(shù)據(jù)位分別寄存到data_a和data_b信號后,狀態(tài)機又跳回了S_IDLE狀態(tài),表明此次數(shù)據(jù)獲取已經完成;ad_os、ad_reset_p信號分別為輸出給ADC的過采樣率信號和復位信號;ad_cs_n信號為輸出給ADC的片選信號,可以看到該信號有一段時間為低電平。經多次測試,4個ADC器件均能實現(xiàn)正常的模數(shù)轉換,并且FPGA所獲取的轉換數(shù)據(jù)與利用示波器所抓取的數(shù)據(jù)信號一致。
圖14 ADC驅動模塊部分信號波形
在實際應用中,光電流經調理電路處理后會輸出為放大的電壓,該電壓理論值可由設計參數(shù)計算得到。如圖15所示,利用數(shù)字源表給光電流通道輸入微安級別的電流信號,并對輸入電流對應的調理電路理論輸出電壓絕對值與ADC實際采集的電壓絕對值進行線性擬合,可以看到,光電流調理與采樣電路具有良好的線性。
圖15 光電流調理與采樣電路線性測試擬合圖
可靠的控制是后續(xù)測試的重要基礎,因此對數(shù)據(jù)傳輸系統(tǒng)的指令機制進行了測試。上位機軟件下發(fā)的指令信息和指令內容經PCIe鏈路會傳輸至主控板Zynq中。圖16為Zynq接收指令信息過程的波形圖,圖17為Zynq根據(jù)指令信息獲取指令內容過程的波形圖,Zynq基于AXI接口可以實現(xiàn)指令內容的突發(fā)讀取。在獲取到指令內容后,Zynq會根據(jù)指令長度和控制目標轉發(fā)指令內容,圖18為數(shù)據(jù)采集板FPGA捕獲到的指令接收過程的波形圖,rx_valid_data信號用于寄存所接收到的指令內容,可以看到指令內容的各部分都能被成功解析出來,錯誤信號error為低電平,表明此次指令有效,并且上位機軟件界面提示發(fā)送成功。
圖16 指令信息接收過程波形
圖17 指令內容獲取過程波形
圖18 數(shù)據(jù)采集板的指令接收過程波形
中斷在計算機和主控板之間的數(shù)據(jù)信息交互中具有很重要的作用,因此對中斷也進行了測試。在中斷測試系統(tǒng)中,主控板Zynq在收到上位機發(fā)送的測試指令后會每間隔一段時間發(fā)送1次中斷請求信號,直至總次數(shù)達到指令所設置的測試次數(shù)為止,上位機軟件在檢測到中斷后會進行計數(shù)。如表2所示,改變不同的測試次數(shù),中斷丟失個數(shù)為0,所有的中斷請求均能被上位機獲取到并處理,表明系統(tǒng)的中斷機制穩(wěn)定可靠。
表2 中斷測試結果
針對某光刻調焦調平測量系統(tǒng)研究項目的數(shù)據(jù)采集和測試需求,設計了基于PCIe和M-LVDS的數(shù)據(jù)傳輸系統(tǒng)。系統(tǒng)選用了資源豐富的Zynq和FPGA器件分別作為主控板和數(shù)據(jù)采集板的主控芯片,具有較強的靈活性和可拓展性。對系統(tǒng)各部分進行了實際測試,測試結果顯示,數(shù)據(jù)采集板能夠正常實現(xiàn)ADC數(shù)據(jù)的獲取和發(fā)送以及指令的解析與應答;主控板能夠正常實現(xiàn)與上位機以及與數(shù)據(jù)采集板之間的數(shù)據(jù)交互;上位機軟件能夠實現(xiàn)正常的數(shù)據(jù)獲取、文件輸出、指令下發(fā)以及指令狀態(tài)提示;系統(tǒng)各部分工作穩(wěn)定可靠,可以滿足實際應用需求。