#title 스터디/Nand 2 Tetris Describe [스터디/Nand 2 Tetris] here [[TableOfContents]] = Nand2Tetris = * 스터디 소개 : ì»´í“¨í„°ì˜ ìµœí•˜ìœ„ ë ˆë²¨ ê³„ì¸µì¸ ë…¼ë¦¬íšŒë¡œ(하드웨어)단부터 OS와 high level language까지 ë‘루ë‘루 ì„ë µí•˜ê³ ì‹¤ìŠµí•˜ì—¬ 최종ì—는 테트리스를 ë§Œë“œëŠ”ê²ƒì´ ëª©í‘œì¸ ìŠ¤í„°ë””ìž…ë‹ˆë‹¤. * ìŠ¤í„°ë””ì— ì‚¬ìš©í•˜ëŠ” 사ì´íŠ¸ -> http://www.nand2tetris.org/ == 9/26(목요ì¼) == * ì°¸ì—¬ìž : [김윤환], [안í˜ì¤€], [권ì˜ê¸°]. * ìŠ¤í„°í‹°ì— ëŒ€í•œ ë°©í–¥ : * 누가 : 3명 + a(?)ê°€ * ì¸ì›ìˆ˜ ë¬¸ì œ : max 5명까지 받는다. * ì–¸ì œ : 시작ì€? ì´ë²ˆì£¼ë¶€í„° // 매주 ì¼ìš”ì¼ 1ì‹œ * 어디서 : zp실ì—ì„œ * ë¬´ì—‡ì„ : nand2Teris를 * 어떻게 : 집ì—ì„œ ppt를 ì½ì–´ì˜¨ë’¤ 만나서 실습하는 방향으로. * 왜 : * í˜ì¤€ ->재미있ì„것같아서. * 윤환 ->컴퓨터 ìžì²´ë¥¼ 아는 ì¢‹ì€ ê¸°íšŒë¼ê³ ìƒê°í•´ì„œ + í¥ë¯¸ê°€ 있는 분야? 여서. * ì˜ê¸° ->ì „ì²´ë¥¼ 꿰뚫기위해. * 다ìŒì‹œê°„까지 í• ì¼ : chapter 0,1 ì½ì–´ì˜¤ê¸°. == 9/29(ì¼ìš”ì¼) == * ì°¸ì—¬ìž : [김윤환], [안í˜ì¤€], [권ì˜ê¸°] === 공부한 ë‚´ìš© === * Chapter1 기본ì ì¸ ë…¼ë¦¬ 게ì´íŠ¸ë¥¼ 공부함. Nand gate를 primitive gateë¡œ ë†“ê³ , 나머지 논리 게ì´íŠ¸ Not, And, Or, Xor, Mux, Demux ë“±ì„ Nand만으로 구현. * HDL Code * Not Gate {{{ CHIP Not2 { IN a; OUT out; PARTS: Nand(a = a, b = a, out = out); } }}} * And Gate {{{ CHIP And { IN a, b; OUT out; PARTS: Nand(a = a, b = b, out = x); Nand(a = x, b = x, out = out); } }}} * Or Gate {{{ CHIP Or { IN a, b; OUT out; PARTS: Nand(a = a, b = a, out = x1); Nand(a = b, b = b, out = x2); Nand(a = x1, b = x2, out = out); } }}} * Xor Gate {{{ CHIP Xor { IN a, b; OUT out; PARTS: Nand(a = a, b = a, out = nota); Nand(a = b, b = b, out = notb); Nand(a = nota, b = b, out = x1); Nand(a = a, b = notb, out = x2); Nand(a = x1, b = x2, out = out); } }}} * Mux {{{ CHIP Mux { IN a, b, s; OUT out; PARTS: Nand(a = s, b = s, out = nots); Nand(a = a, b = s, out = x1); Nand(a = b, b = nots, out = x2); Nand(a = x1, b = x2, out = out); } }}} * Mux 4way {{{ CHIP Mux4way { IN a[4], s[2]; OUT out; PARTS: Nand(a = s[0], b = s[0], out = nots0); Nand(a = s[1], b = s[1], out = nots1); Nand(a = a[0], b = s[1], out = x0); Nand(a = a[1], b = nots1, out = x1); Nand(a = a[2], b = s[1], out = x2); Nand(a = a[3], b = nots1, out = x3); Nand(a = x0, b = x1, out = xx0); Nand(a = x2, b = x3, out = xx1); Nand(a = xx0, b = s[0], out = xxx0); Nand(a = xx1, b = nots0, out = xxx1); Nand(a = xxx0, b = xxx1, out = out); } }}} ---- ----