每日最新頭條.有趣資訊

如何通過低技術實現高性能的問題?

撰文 | 吳進遠

責編 | 夏志堅

隨著人類工業技術的迅猛發展,人們可以造出許多高性能的工業裝備、儀器設備、智能產品等等。不過有不少人,包括不少科研工作者有一種想法,認為只有具備了高技術的條件,才能做出高性能的東西。這種想法有一定的道理,但如果絕對化就不對了。

對於科研工作者,儀器設備、器件製作上的條件永遠都不可能達到完全滿意。但如果我們勤於思考,巧妙使用現有儀器設備與設計製造工藝,就完全可以做成高水準的實驗,製成高性能的器件。

在這篇文章中,作者準備通過一個現代的和一個歷史的科研工作中的例子,討論如何通過低技術實現高性能的問題。

不準確的尺子可以用嗎?

為了幫助讀者理解我們後面談到的專業問題,這裡我們考慮一個假想的例子。假設我們有一個金屬尺子,可惜不太準,而且長度隨著溫度變化,冬天每個刻度的間距為0.9毫米,夏天為1.1毫米,這樣一個尺子可以用嗎?

根據我們多數人的直覺,這樣的尺子是萬萬不可以用的。如果用了,比如用它賣布頭,那麽買布頭的老太太一定會到工商局舉報。

而除了這個尺子,我們沒有別的尺子可用,該怎麽辦呢?

通過查文獻,我們知道主流意見是把尺子放在一個恆溫室裡用。在恆溫室裡,我們用一個邊長100毫米的石英磚塊作為長度標準——石英的溫度系數比較小,因此可以用來做長度標準——然後用一個測量裝置不斷地比較尺子100個刻度與石英磚塊的長度。測量裝置與溫度控制器連接,短了升溫,長了降溫,構成一個負反饋回路。這樣,尺子就可以準確地保持在每個刻度間距總是1毫米的狀態。

可是,假如恆溫室是尚未掌握的一項關鍵技術,該怎麽辦呢?

開開腦洞,確切說,只要不堵塞腦洞,換個思路,其實很容易找到一個解決方案。我們知道,溫度短時間的變化通常不很劇烈,我們只要用這個尺子,在短時間內多次測量作為長度基準的石英磚塊,就可以反過來算出尺子上的刻度間距了。

比如在寒露的中午,我們要測量100毫米的石英磚塊邊長,測量了10000次,由於天冷手抖,4100次測得邊長為我們這個尺子的104刻度,5900次測得105刻度。這樣一平均,100毫米相當於104.6刻度左右,由此可以算出每個刻度間距0.96毫米。

而在冬至的晚上,測量100毫米的石英磚塊邊長,在10000次裡,1200次測得的108刻度,8800次測得109刻度。這樣平均100毫米相當於108.9刻度左右,因此可以算出每個刻度0.92毫米。

簡單地說,要想得到準確的測量結果,一種方法叫矯正法,就是對尺子加溫,把它烤到標準的長度。另一種方法叫標定法,就是容忍尺子的不準確,通過多次測量已知標準,標定刻度,以此校正未知的測量結果。從數學角度講,二者沒有本質的差別,但很多人在直覺上傾向於第一種方法。而如果我們能夠仔細思考,修正直覺,完全可以達到用低技術實現高性能的目的。

時數轉換器(TDC)及其標定

作者在科研中遇到的一個問題是,如何在現場可編程門陣列(FPGA)器件中實現時數轉換器(TDC)【參見《知識分子》2018年4月5日文章《從鑽戒到物理量的數字化》】。

首先談談時數轉換器有什麽用處。時數轉換器的功能是把時間轉換成數字量的器件。設想我們進入一個溶洞探險,想知道洞頂有多高,於是向洞頂發一個短脈衝的雷射。雷射打到洞頂反射回來,可以用光電器件接收轉變成電脈衝。已知光的速度為每秒30萬公里,如果能測出雷射反射回來所需的時間,就可以算出雷射往返走過的距離。要測量這個時間,就需要TDC器件,如果時間測量精度達到1納秒,距離測量精度就可以達到15厘米,而如果時間測量精度達到100皮秒,距離測量精度便可以達到1.5厘米。也就是說,時間測得越準,距離就會測得越準。我們還可以進一步朝四面八方不同方向發射雷射測距,將這些數據用計算機采集下來,從而繪製出溶洞內部的三維構造。要實現這一切,需要我們有足夠精確的TDC。

時數轉換器有很多種,其中一種構造如下圖所示。

這種時數轉換器是由一串時間延遲單元構成的延遲鏈,以及相同數目的寄存器構成的寄存器陣列,共兩個部分組成。

當外來信號(IN)到達,輸入端信號從0變成1,於是延遲鏈上每一個節點也一個接一個地變成1。信號每傳遞過一個節點,都需要一個很短的時間,通常是幾十皮秒到幾納秒左右。

寄存器陣列的時鐘輸入端與一個時鐘信號(CLK)連接,在時鐘信號脈衝的上升沿,寄存器陣列將延遲鏈每一個節點的狀況鎖存起來,就像照下一張照片一樣。這樣就得到了一串0或1,信號已經通過的地方為1,尚未到達的地方為0。如果我們知道信號經過延遲線每一節需要多長時間,那麽根據0與1分界點的位置,就可以算出信號是在時鐘上升沿多久之前到達的。

可是,問題來了,怎樣才能知道信號通過一節延遲單元需要多少時間呢?歷史上出現了兩個技術路線。

最早的方法有點像我們前面說的烤尺子,是一種矯正法,出現在使用專用集成電路(Application-Specific Integrated Circuit,ASIC)實現的TDC中。這種方法是設計一種可以調控的延遲單元,通過改變外加電壓,改變對延遲單元的供電量,讓它“饑餓”一些,從而減慢信號通過延遲單元的速度。比如我們設計一根32節的延遲鏈,信號通過整個延遲鏈的時間與一個3.2納秒的周期信號比較。如果延遲鏈偏快了,就讓它“饑餓”一些,速度慢些,反之如果延遲鏈偏慢了,就讓它“吃飽”一些,速度快些。這樣,就能確保信號通過每一節延遲鏈的時間始終維持在100皮秒。

這個方法的儘管電路比較複雜,但獲得的結果比較簡單好用。

隨著電子學技術的發展,現場可編程門陣列(Field Programmable Gate Array,FPGA)出現了。用戶可以按照自己的需要,利用FPGA設計實現幾乎任何數字電路。相比於ASIC,FPGA有許多優點,比如小批量應用時價格低,修改設計方便快捷等【參見《知識分子》2018年4月12日文章《從點讚美圖到“萬能”邏輯器件:談談現場可編程門陣列》】。於是人們很自然地想到,能不能用FPGA來設計製作TDC呢?如果可以,會在科學實驗裝置、核醫學成像等許多領域得到廣泛應用,有利於提高性能降低價格,總之很值得一試。

不過,如果按照人們早期所採用的技術路線,是無法在FPGA中實現TDC的。固然,在FPGA中有鏈式結構可以當作延遲鏈,但是延遲鏈的延遲速度卻是無法調整矯正的。對於想利用FPGA來製作TDC的用戶而言,調節延遲鏈的速度可以算是一個尚未掌握的核心技術。當然FPGA的製作技術並不低,但無法調節速度這一點卻是不如AISC的。曾經有一個時期,很多人因此認為用FPGA製作TDC是不可行的。誠然,在FPGA中使用原有的矯正方法(改變外加電壓)確實是不行的。這就要求我們尋找其他技術路線,例如標定方法。具體的做法是在已知的間隔的兩個時刻測量兩次,看看信號在延遲線當中跑了多遠,由此可以算出延遲單元的速度。這個方法與我們前面談到標定尺子的方法類似,限於篇幅這裡就不詳細介紹了。

在TDC中,只要能測量並算出延遲線速度這個數據,那麽它是否可調就不再是問題了。近十餘年間,經過世界各地很多科研人員,包括很多國內科研院校的師生,也包括作者本人的努力,用FPGA製作的TDC已經獲得了長足的進步,並且得到了廣泛的應用。從某種意義上說,巧妙地使用FPGA中的“低技術”方法,完全可以達到ASIC中採用高技術方法所能夠達到的高性能。

另一個例子

我曾經聽一位老一代物理學家講過一個科研故事。1948年5月9日,蘇州上海附近發生日全食,我國兩位物理學家用光電器件測量光強的方法觀測了日全食。即使按照當年的標準看,對比天文台裡精密的觀測儀器,他們這套裝備簡直是土得掉渣。

他們的光電元件接在電流表上,計時裝置是機械懷表,記錄裝置是鋼筆。日全食發生時,天空逐漸變暗,直至全黑,然後再逐漸變亮。在這個過程中,他們一人從電流表上讀光電器件產生的電流,另一人讀懷表並記到本子上。當天天陰,專業天文台不幸沒有得到觀測機會,而他們的光強觀測卻成為為數不多的成果之一。

為了驗證這個多年前的觀測方法,也為了致敬老一輩科學家,在2017年8月21日日全食的時候,作者模仿製作了一套光強測量裝置,如下圖所示。

兩個數字電壓表分別與兩個光電器件連接,計時裝置是一隻退役手機。數據獲取與記錄方法是用另一隻退役手機拍攝視頻。

回到家後回放視頻,將電壓表在不同時刻測到的電壓記錄敲進電腦,然後畫成圖,就得到如下的光強曲線。

從圖中可以看出中間天黑了100多秒。我們用兩條豎線標注天文預報的食既與生光時刻。結果顯示,實際的天黑時刻與天文計算預報的時刻一致。實驗證實,用土儀器也完全可以獲得高質量的結果。

結 語

當一項高技術缺失時,研發這項高技術的科研人員自然應該努力把它做出來,不過這是需要時間的。因而對於準備應用高技術以期獲得高性能的科研人員,就不應消極等待,而應主動動腦筋,想辦法,尋找替代方案,哪怕是短時間內的替代方案。

對於具體的科研問題,我們常常會面臨儀器設備不夠高級,加工製作工藝不夠精密等等困難。其實,這正是發揮科研人員聰明才智,想出巧辦法的地方。事實上,一個沒有困難的科研項目是一個乏味的項目。一個科研人員,能夠遇到有困難的項目,應該說是科研生涯中一個金不換的機會。解決科研中的困難有點像《小馬過河》,遇事不要被“關鍵技術”這樣的大詞嚇住,能試試的就試試,把實踐放在第一。很多時候,試一試就會知道,水固然不是很淺,但也不是很深。

對於主流意見認為只有使用某種高技術才能實現的高性能,我們不妨思考一下使用這種高技術與實現高性能是否存在過硬的邏輯關係?使用高技術是不是必須的?能不能用更低價格,更加可靠的低技術方法來實現我們需要的高性能。只要認真思考,您很可能就會用巧辦法解決大問題。

實際上,科技的發展本來就是這樣一個階梯一個階梯地前進的。我們都知道,沒有高精度的機床,很難加工出高精度的零件。但是不要忘了,最早的高精度機床是用低精度的機床加工製造出來的。而更早的低精度機床裡面的零件,很可能是用銼刀在台鉗上銼出來的。因此,人類的工業技術並不是天生就很高,而是不斷地巧妙利用低技術,造出高性能的東西,進而一步一步地從低技術走向高技術的。

由此不難看出,充分利用現有的低技術,實現盡可能高的性能,這並不是一個只有中國科研人員才會遇到的問題,而是全世界科研人員共有的問題。在這個方面做得好,則科技發展的步幅就會比較大。

後記:在構思這篇文章時,作者時常回憶起2016年裡約奧運會時,中國女排奪冠的情形。女排以小組第四的成績懸懸乎乎地出了線,上來就要對陣如日中天的巴西隊,而中國女排此前曾累積對巴西女排連續18場不勝。即使過了巴西這一關,後面兩場遇到的,又是在幾天前小組賽中剛剛擊敗我們的荷蘭與塞爾維亞。這三場比賽,幾乎是場場被當作告別賽打的,而結局,三場都勝了。

我猜想,女排團隊在賽前比誰都清楚與世界強隊存在的差距,但她們一定不會是僅僅停留在認識差距這一步。比賽時,球迷組織啦啦隊,喊:“中國隊加油,中國隊必勝”,固然光靠這個不一定能贏球。但是你能想象換個啦啦隊,喊:“認清差距,理性客觀,反對自大,虛心學習”,會有什麽樣的比賽結果?所以說,僅僅認識到差距,不管多麽振聾發聵,不管貼上多少敢講真話的標簽,並不能自動解決所有問題。我相信女排團隊在賽前一定想過很多,討論過很多。更重要的,恐怕是想清楚了很多,然後付諸實施了很多。

我這篇文章也許可以算是個啦啦隊之作,而各位讀者自己想明白自己可以在什麽地方發揮主觀能動作用,在自己的小領域中做出高質量的工作,才是最有價值的

獲得更多的PTT最新消息
按讚加入粉絲團