5 điểm bởi GN⁺ 2024-11-02 | 1 bình luận | Chia sẻ qua WhatsApp

Giới thiệu về Nand Game

  • Nand Game là một trò chơi xây dựng máy tính bắt đầu từ các thành phần cơ bản.
  • Ở mỗi cấp độ, bạn sẽ được giao nhiệm vụ xây dựng một thành phần hoạt động theo đặc tả nhất định.
  • Thành phần này có thể được dùng làm khối xây dựng ở cấp độ tiếp theo.
  • Không cần có kiến thức trước về kiến trúc máy tính hay phần mềm, cũng không cần kỹ năng toán học vượt quá phép cộng và phép trừ.
  • Có thể cần sự kiên nhẫn, và một số bài toán có thể mất thời gian để giải quyết.

Nhiệm vụ đầu tiên: Xây dựng thành phần Nand

  • Nhiệm vụ: Bạn phải nối đầu vào với đầu ra sao cho khi cả hai đầu vào a và b đều bằng 1 thì đầu ra là 0.
  • 1 biểu thị có dòng điện, còn 0 biểu thị không có dòng điện.
  • Đầu vào V mang dòng điện cố định luôn bằng 1.

Đặc tả chính xác

  • Quan hệ giữa đầu vào và đầu ra:
    • khi a = 0, b = 0 thì đầu ra = 1
    • khi a = 0, b = 1 thì đầu ra = 1
    • khi a = 1, b = 0 thì đầu ra = 1
    • khi a = 1, b = 1 thì đầu ra = 0

Tổng hợp của GN⁺

  • Nand Game là một công cụ hữu ích để hiểu các khái niệm cơ bản của kiến trúc máy tính.
  • Thông qua trò chơi, bạn có thể học một cách trực quan cách các cổng logic hoạt động.
  • Các công cụ giáo dục có chức năng tương tự gồm có TinkerCAD Circuits và Logisim.
  • Trò chơi đòi hỏi sự kiên nhẫn và có thể giúp rèn luyện khả năng giải quyết vấn đề.

1 bình luận

 
GN⁺ 2024-11-02
Ý kiến trên Hacker News
  • Rất thích trò chơi này, và trải nghiệm mua một bo mạch phát triển FPGA nhỏ để tự tạo bộ lệnh riêng cùng một soft CPU của mình cũng rất thú vị
    • Lý do chọn bo mạch iCE40 là vì hỗ trợ mã nguồn mở khá ổn và giá rẻ
  • Đã chơi một trò tương tự tên là Turing Complete, và nó rất giống với cuốn sách Nand2Tetris
  • Thông tin liên quan đến NandGame:
    • NandGame – một trò chơi xây dựng máy tính từ con số 0, đã được nhắc đến nhiều lần
    • Đây là quá trình triển khai một máy tính giống như trong Nand2Tetris; Nand2Tetris dùng HDL dạng văn bản còn NandGame dùng giao diện đồ họa
    • Cả hai quá trình đều vui và mang tính giáo dục, nhưng tôi thấy NandGame vui hơn
    • Nếu hoàn thành Nand2Tetris, bạn có thể làm thêm các bài tập mở rộng để làm việc với phần mềm máy tính ở mức cao hơn
  • Tôi học chuyên ngành điện tử, nhưng hiện đang làm trong lĩnh vực phần mềm và đã quên khá nhiều kiến thức trước đây
    • Tôi đã thành công trong việc triển khai half adder bằng cách thử nghiệm và sửa sai
  • Sau khi triển khai cổng NAND, cấu trúc bắt đầu trông giống mạng nơ-ron
    • Khi xét đến ngữ nghĩa đầu vào/đầu ra, tôi tự hỏi liệu có thể huấn luyện mạng nơ-ron bằng cách nào đó khác với backpropagation hay không
  • Tôi hoàn toàn không có kiến thức liên quan, nên cần giải thích về chức năng của các thành phần
    • Tôi thắc mắc về vai trò của relay, ý nghĩa của "c" và "in", cũng như lý do cần nguồn điện cấp riêng
  • Tôi tự hỏi đến bao giờ mới có ngày có thể chơi Doom ngay trên trang này
  • Tôi muốn giới thiệu trò chơi tên là MHRD, và khuyên mọi người nên thử ít nhất một lần
  • Dự án này trông cực kỳ ấn tượng, và tôi thấy tiếc vì trước đây đã không đọc hết cuốn sách
    • Tôi muốn thử làm nhiều thứ hơn nữa