是否有可能完全用麵包板和基本電子元件製造一台簡單的計算機?例如以這種方式構造科學計算器是否可行?
是否有可能完全用麵包板和基本電子元件製造一台簡單的計算機?例如以這種方式構造科學計算器是否可行?
我不同意將微控制器放在麵包板上的資格等同於在麵包板上構建計算機。除了I / O(例如鍵盤和顯示器)外,微控制器本身就是一台完整的計算機。只需將其放在麵包板上並連接幾根電線就可以了,這很簡單,並且可以在十分鐘之內完成。 ?”,通過基本的電子組件,我認為它的含義更像是這樣:
現在,這是一檯面包板上的計算機(嗯,由基本組件構建的幾個麵包板)。 它的描述在這裡。它由十幾種74LS00系列IC組成。 (我不認為我們想一直回到晶體管;最初的 PDP-8只是一個小冰箱的大小。)
就科學計算器而言,如果您構建瞭如上所示的通用計算機,則可以將其編程為科學計算器。僅使用邏輯集成電路(而不是計算機)來構造科學計算器將非常困難。所有像這樣的計算器製造商(例如Ti,HP等)都使用了特殊的大型集成電路。這是一個使用早期4位計算器IC的內置計算器。
我同意,如果希望盡快啟動並運行計算機,那麼使用微控制器是必經之路。如果要真正了解計算機的內部工作原理,那麼用基本的IC構建一個是正確的方法。
這不僅是可行的,而且實際上我已經做到了:請參閱 https://www.vttoth.com/CMS/projects/47
以下是接線方法麵包板之一的背面看起來像:
當然,這完全取決於哪些組件符合“基本”條件。就我而言,基本組件是74 ...系列TTL芯片,大約有一百個。要完全用晶體管來構建計算機……那將太不堪重負了。
此外,我的4位計算機的功能實際上還不足以用作科學計算器,主要是因為內存限制(256個4位半字節)。但是,也許可以使用分頁機制來擴展地址空間並不十分困難,並且4096個nybble(12位地址)可能已經足夠了,可以肯定的是65536個nybble(16位地址)。
是有可能的,但是您需要的不只是幾個麵包板,而是需要一個科學的計算器,具體取決於您所認為的基本組件:是將晶體管稱為基本組件,還是將晶體管稱為觸發器,EEPROM或可以從舊冰箱中焊接出來的東西。
這裡有一些很好的答案,但是我想指出一件事,人們通常不會考慮。從計算設備的歷史來看,用樹皮和釘子構建計算機的困難不是CPU還是ALU。 主要問題是內存。因為要使整個存儲程序概念正常工作,您需要大量的代碼。您可以通過幾個觸發器和與非門來製造CPU。例如,對於具有特定約束的電力電子應用,我曾經設計一個微處理器,僅使用69個觸發器(4個16位寄存器,4個標誌和1個狀態寄存器位,表示FETCH / EXECUTE)。它在矽片上實現,人們編寫在其上運行的軟件。這很簡單,並且適合功率晶體管的漏極觸點大小。但是存儲任何有用程序所需的內存要大得多。
早期,內存是設計的起點。您可以像在早期電話交換中那樣使用雙穩態繼電器。您可以使用真空管或晶體管製作觸發器。通常,CPU的寄存器是通過這種方式實現的。但是對於程序和數據存儲,使用了紙帶,磁帶,旋轉磁盤或旋轉鼓。甚至是電子設備上不斷接收和轉發的鋼絲上的聲波。您能想到的任何事情都可以在合理的時間內以合理的成本保留一些位。阿波羅(Apollo)繞月器和月球著陸器計算機使用纏繞成繩子的線圈芯存儲器。所有這些都需要不同的接口設備,並且對訪問這些類型的存儲器所需的CPU產生巨大影響。半導體存儲器直到1970年代才真正出現,最終消除了這種複雜性。但是再說一次,現代動態RAM也不是那麼容易。
然後,必須為計算機設計輸入輸出設備,這帶來了更多的奇妙之處。一些燈泡對於某些應用程序來說很好,但是如果您需要文本輸入/輸出或什至更複雜的東西,那麼您將再次面臨更多的困難。打卡機,打印機和紙質終端在當時是一項巨大的業務。 1978年推出的VT100文本模式視頻終端的內存和處理能力比您的科學計算器麵包板計算機要強得多。
有可能,但是複雜性和尺寸取決於您所說的基本電子組件。 ALU和定序器邏輯有點複雜,但是可行。內存很簡單,但是基本模式必須重複很多次(請考慮1000次)。
除了硬件之外,您還需要在其上運行的軟件。粗略估計,對於中等複雜的CPU(經典的16位指令8位數據級別),您的軟件工作量將與硬件工作量相當。 (對於更簡單的CPU,您將需要更多的SW工作。)並且如何將SW加載到計算機中?我建議您開始在VHDL中編寫並在模擬器上運行,這比一堆芯片和電線要容易得多。
我的兩個學生創建了一個16位CPU大約1年之內的一些基本軟件(包括GCC後端端口),從VHDL和C代碼開始進行仿真。 ALU使用74181芯片,內存是靜態RAM,並且使用atMega在PC和計算機之間進行接口。該計算機部分位於無焊麵包屑上,部分位於PCB(8個16位寄存器)上。 (這兩個是不是普通學生!)
是的,有可能。但是您需要一個微控制器來進行數學計算。這是一個示例項目。它使用AVR微控制器和16×2 LCD顯示屏。