你們打遊戲的時候
有沒有想過搞一個“大新聞”
6月是個畢業季,中高考的同學曆經磨難浴火重生,大學的同學們也為各種論文焦頭爛額。為了寫一篇正兒八經,蘊含無限道理的學術論文,超模君曾經熬掉了多少寶貝的頭發……
為了緩解論文壓力的折磨,超模君去下了一款叫《我的世界》(Minecraft)的高自由沙盒遊戲。但作為遊戲菜雞,造物工程量巨大,耗時遙遙無期。想在遊戲中造出一個現實事物的想法就這樣“流産”了……
然而,一位來自複旦大學的MC紅石電路玩家季文瀚卻能将遊戲與課程論文相結合,耗時一年多完成一項造物工程——電腦。
也就意味着,他必須得将計算機中的所有硬件做出來才可以完成一台完整可使用的電腦。
擁有力量的少年
當然,想要在遊戲中造出這樣一台計算機,在考試中折磨大家的編譯原理和微機原理,還有數字電路及彙編語言通通都不能少。
順便讓我們來看看從邏輯門到計算機,都要經曆些什麼。
邏輯門:或門,非門→或非門,與門→與非門,異或門算法硬件:譯碼器,位數判斷器,加法器→乘法器,加法器,位移器→開方算法,16bit除法器,單精度浮點加法,儲存器計算機:基本邏輯門→複雜邏輯門→全加器,信号長度轉換器,多态選擇器,儲存單元,譯碼器單元,求補碼單元,位移器單元→可讀寫儲存器,譯碼器,加法器,位移器,時鐘發生器→加減法器,乘法器,除法器,可讀寫儲存器陣列,寄存器,程序計數器→總數,ALU,CU→計算機
要造成一個完整的計算機,真的要經曆很多工程,也是十分複雜的。在遊戲中,這些工程的複雜性可是會被放大多倍的。超模君真心表示十分佩服ORZ
另外,從上面我們可以看到,邏輯門似乎是組成計算機最基礎,最簡單又不可或缺的部分。
邏輯門的實現
邏輯門是在集成電路上的基本組件,它又稱“數學邏輯電路基本單元”,可以組合使用實現更為複雜的邏輯運算。“或”門和“非”門在數字電路中最為常見。
實際上Minecraft遊戲制作者也隻設計了這兩種能直接實現的邏輯門,但理論上說“或”門和“非”可以實現一切邏輯。季文瀚表示:“通過在空間上對或門和非門的組合排布就能實現更加複雜的邏輯門。”
他先用紅石火把被充能方塊熄滅的特性,也就是當一個方塊被充能時,其前後左右和上方的紅石火把會滅掉(變成低電平輸出),做出“非”門。
“或門就更簡單了”季文瀚如是說。隻需要任意一個輸入端輸入信号,輸出端就一定輸出信号。
做好了基本邏輯門就到了做複雜邏輯門的時間,與非門和異或門就可以上場了。
左邊是與非門 右邊是RS觸發器
做與非門時他将輸入端(紫色)連着兩個紅石火把,做成非門,而火把中間通着導線的是或門。而常見的與非門應用也就是觸發器了,低電平有效,紫色輸入,橙色輸出,RSQQ非就随便怎麼分配了。所以用與非門構造的RS觸發器和現實中基本一緻。
異或門是數字電路裡非常重要的一類複雜邏輯門,是構造全加器以及一切具有ALU運算器結構單元的基礎。比較簡單的異或門設計就如下圖左右兩種。
左右是兩種不同的異或門
除了紅石導線外,左邊一種用到了活塞,火把和繼電器,則右邊隻用了火把。這兩種都是國外玩家設計的,是目前設計出來的體積最小的異或門。一開始季文瀚設計出的異或門比這兩種體積還大一些。而基礎邏輯門的體積對計算機建設至關重要,稍微大一點整體結構就将超過地圖加載範圍。
因此季文瀚表達了對國外玩家的感謝,因為沒有國外高玩在基礎結構上的設計,他的工程就不可能實現。
以此上的思維類推,利用邏輯門的組合就可以設計适用于各種功能的信号結構,從而可以達到硬件算法的目的。
算法是硬件設計的靈魂
判斷一個計算機有沒有靈魂就要看看它的算法如何了。遊戲中季文瀚設計的計算機那靈魂肯定是相當的足!加減法和乘法都可以完成,但大神表示:這些都沒什麼特别的,重點還是後面幾個。
我們将目光聚集在他設計的運算平台上,在這裡他将給我們展示完整的運算過程和結果。
運算平台上養着隻小豬
舉個栗子,季文瀚用的是Cordic旋轉叠代算法中的旋轉坐标算法,來計算sin(24.8)。
因為需要多次叠代,所以運算很慢,得花130秒輸出sin值,再過10秒才能輸出cos值,而輸入角限制在0-83.88度之間。
後台正餘弦的運算過程
計算出來的結果
既然他設計的算法可以完成,那肯定少不了其他必備的硬件。
從算術芯片到計算機
一個完整的計算機絕對少不了CPU,因此他決定先做一個CPU,畫出CPU的構架圖。
構架圖基本是按照實際距離做的,在計算機上方複式看到的結構和架構圖可以一一對應。
做好CPU後,他就開始做剩下的功能結構。例如可以看做是計算機最核心部件的全加器。
之前的異或門可以相當于一個半加器,兩個半加器可以組成一個全加器。
但這種基于活塞的全加器不穩定,所以季文瀚又做了另一種設計較為好的全加器。
最後做這個顯示器他耗費了很長的時間,一開始的設計方案體積可是如今的3倍大。後來還是突發奇想才解決了不少技術問題,縮小體積并改為完全的時序控制。
令人敬佩的玩家
其實文章中記錄的也隻是他工程中的小小小的一部分而已,真要說完季文瀚所做的技術細節和内容,怕是要寫一本200多頁的書才可以。這一工程的問世,也不禁讓很多計算機專業的學生聞風喪膽,有該專業表示“我可能學了個假的計算機專業”。
盡管這一路上很曲折,也有很多難題需要攻破,進度十分緩慢。可季文瀚仍舊沒有棄坑。因此這一“壯舉”在全世界MC紅石電路玩家還是首次
這種堅持不懈的精神真是令超模君佩服,做到了我可能這輩子都做不到的事情,想必也是大部分MC玩家連想都沒敢想的事情……
玩遊戲都想着學習
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!