14. Multi-way/Multi-bit multiplexer(4way 16bit)

15. Multi-way/Multi-bit multiplexer(8way 16bit)

 
이제 마지막 기본 논리 회로인 4/8웨이 16비트 먹스만 남았다.
 
 

이름 그대로 16비트 입력 4/8개가 들어오는데 입력 중 하나를 선택해서 내보내는게 되겠다.

 

입력이 4개인 경우 앞에서 본 디먹스 처럼 셀렉터 단자가 2개필요하고,

 

8개일땐 셀렉터단자를 3개로 해주면된다.

 

 

4way 16bit mux의 경우 어떻게 해야할지 감이 전혀 안잡혀서 그냥 검색했다.

https://people.duke.edu/~nts9/logicgates/Mux4Way16.hdl

 

검색한 내용이랑 진리표, 이걸로 그림으로 그리면 대강 이런식이된다.

 

손으로 적긴했는데 글씨가 알아보기에는 좋진 않네

 

반대 순서로 설명하면 sel[1]의 값으로 위의 출력(about)을 쓸지 아래의 출력(cdout)을 쓸지 결정한다.

 

먹스가 2개 있는 곳으로 오면 sel[0]의 값으로 위(about 시 a, cdout시 c)를 쓸지 아래를 쓸지 결정한다.

 

 

 

위 그림 대로 이렇게 구현하면되고

CHIP Mux4Way16 {
    IN a[16], b[16], c[16], d[16], sel[2];
    OUT out[16];

    PARTS:
    Mux16(a=a, b=b, sel=sel[0], out=about);
    Mux16(a=c, b=d, sel=sel[0], out=cdout);
    Mux16(a=about, b=cdout, sel=sel[1], out =out);
}

4웨이 16비트 먹스도 잘 동작한다

 

 

4웨이를 했으니까 8웨이 16비트 먹스도 할수있을거같다.

진리표와 그림부터 그려보자

 

8way 16bit 먹스의 경우 4way 16bit mux 2개와 16bit mux 1개로 구현했다.

 

4way mux로 4개 입력 중에 고르게하고, a~d의것을 고를지 e~h의 것을 고를지를

 

뒤에 16bit mux로 선택하도록 하여 완성

 

CHIP Mux8Way16 {
    IN a[16], b[16], c[16], d[16],
       e[16], f[16], g[16], h[16],
       sel[3];
    OUT out[16];

    PARTS:
    Mux4Way16(a=a, b=b, c=c, d=d, sel[1]=sel[1], sel[0]=sel[0], out=a2dout);
    Mux4Way16(a=e, b=f, c=g, d=h, sel[1]=sel[1], sel[0]=sel[0], out=e2hout);
    Mux16(a=a2dout, b=e2hout, sel=sel[2], out=out);
}

 

 

wa 어떻게든 기본 논리 회로 구현을 마무리했다.

 

여기 나와있는 모든 회로들은 nand를 이용하여 만들었고

 

다음 장부터는 반가산기, 전가산기, ALU 등 부울 대수를 이용한 연산장치를 만들게 된다.

+ Recent posts