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了。








你可能感興趣的文章

API 留言板練習-Part1 : 打造後端 API

API 留言板練習-Part1 : 打造後端 API

讓 JavaSript 難以閱讀:jsfuck 與 aaencode

讓 JavaSript 難以閱讀:jsfuck 與 aaencode

Angular17 部屬完成,在瀏覽器中使用 F5 重新整理跳轉 404 異常解決

Angular17 部屬完成,在瀏覽器中使用 F5 重新整理跳轉 404 異常解決






留言討論