디지털 논리회로를 verilog로 설계를 할 때 처음으로 생각해야 할 부분은 바로 이 회로가 순차회로인지 조합회로인지 구별해야 한다. 어떤 회로인지 결정이 되면 어떤 종류의 테이블이 만들어질지 결정 되기 때문이다.
만약 순차회로면 여기표를 만들어야 하고 조합회로면 진리표를 만들어야 한다.
둘 테이블이 동일하게 input값 output값들을 쓰고 하지만 여기표는 현재 상태와 다음상태를 써야 한다는 차이가 있다.
다음에 플립플롭을 설계 할때 확인해 보도록 하겠다.
오늘 설계할 회로는 디지털 논리회로를 초반에 배우면 나오는 멀티플렉서다.
이름은 되게 거창하지만 하는 역할은 input이 들어오면 select 신호에 의해 어떤 input값을 output값으로 내보내야 될지 결정하는 쉽게 생각해서 교차레일 같은 역할을 하는 회로다.
멀티플렉서는 cpu를 설계 할 때 두 신호중 어떤 신호를 보내야 할지 결정하는 중요한 회로다.
다음은 멀티플렉서의 모습이다. 다음 그림을 바탕으로 진리표를 만들어보자.
여기서 out=a*s_bar+b*s로 표현 할 수 있다.
위 진리표를 바탕으로 Verilog 코드를 작성하여 보자.
Verilog 코드는 행위 수준 모델로 코딩하였으며 코드는 다음과 같다.
다음과 같이 간단하게 select의 신호에 따라 output값이 출력 이된다.
testbench의 코드이다.
다음은 시뮬레이션의 모습이다.
'디지털논리회로' 카테고리의 다른 글
[Verilog] 8bit 가산기 (0) | 2020.03.27 |
---|---|
[Verilog] 전가산기 (0) | 2020.03.26 |
[Verilog] 반가산기 (0) | 2020.01.08 |
순차논리회로 (0) | 2020.01.08 |
조합논리회로 (0) | 2020.01.08 |