Nand2tetris第二週心得


第二週內容主要從這幾個電路開始

  1. 半加法器
  2. 全法器
  3. 加法器
  4. 增量器

半加法器只把兩個bit相加,輸出sum, carry, 全加法器則是除了兩個bit之外,多一個carry,可以視為前一位相加的進位。接著由半加法器與全加法器就能組合出加法器,例如8bit加法器 or 16bit加法器,在n bit加法器的實作裡面,我們會忽略n+1的溢位。增量器則如同名稱的意思,就是增加1。

有了加法器,我們就能來實現ALU了,這邊介紹的ALU是課程設計的版本,實際上ALU可能有更多控制位,或是更少不一定。

可以看到這是一個16位的ALU,有六個控制位,這六個控制位是照順序去做處理的,由於每個控制位有兩個選擇,總共就有64種功能。另外輸出還有zr,代表輸出是否為0,以及ng代表輸出是否為負。

從加法器到ALU可以發現每個功能都是基於上一個實作的結果,難度基本上都不高。值得注意的是,在設計電路時,我們可以讓一個電路的輸出變成很多個電路的輸入,但禁止讓很多個電路的輸出變成一個輸入,這其實也很好理解,畢竟如果很多個輸出變成一個輸入就會搞混輸入是1 or 0了。








你可能感興趣的文章

〈 Diffusion Model 論文研究與實作心得 Part.1 〉 前言與圖片雜訊前處理

〈 Diffusion Model 論文研究與實作心得 Part.1 〉 前言與圖片雜訊前處理

簡明 Python Pandas 入門教學

簡明 Python Pandas 入門教學

JavaScript 是如何被執行的 (3)?

JavaScript 是如何被執行的 (3)?






留言討論