4개의 입력과 1개의 출력을 가지는 회로를 여러 가지 방식으로 표현하고 이를 VHDL로 표현
- 최초 등록일
- 2010.06.24
- 최종 저작일
- 2010.04
- 34페이지/ MS 파워포인트
- 가격 7,000원
소개글
논리회로설계실험 Team Project로 xilinx를 이용한 4개의 입력과 1개의 출력을 가지는 회로를 and, or, not 게이트만을 이용한 방법, nand게이트만을 이용한 방법, MUX만을 이용한 방법, deocder를 이용한 방법 이렇게 4가지 방식으로 회로를 구성하고 이를 VHDL로 표현하고 시뮬레이션 결과, 관련이론, 토의까지 포함한 레포트입니다.
목차
1. 설계 배경 및 목표
2. 관련 기술 및 이론
3. VHDL 코드 구성
4. 설계 결과
5. 토의
본문내용
4개의 Input A, B, C, D를 이용하여 1개의 Output S를 출력하는 회로를 설계하여 이를 VHDL로 표현한다.
코드는 AND, OR, NOT Gate를 이용한 회로와 NAND GATE만을 이용한 회로, Decoder, Multiplexer의 4가지 방법을 이용하여 다양하게 표현한다.
VHDL로 프로그래밍한 회로를 ModelSim을 이용하여 시뮬레이션 해보고 진리표와 비교하여 일치여부를 확인한다.
출력은 A, B, C, D의 4개의 버튼이 있으면 버튼을 누르는 것을 1, 누르지 않는 것을 0으로 했을 때 A버튼을 누르지 않았을 때 B나 D를 누르거나 다른 경우 C와 D를 동시에 눌렀을 경우 출력값 1을 생성한다.
5. 토의
Nand Gate로 표현하는 것은 3-port nand gate의 표현 때문에 약간 어려움을 겪었다. not표현은 예를 들면 A’를 표현하려면 A nand A 처럼 같은 문자를 nand취해주면 나타낼 수 있다. 문제는 3-port NAND Gate의 설계였다. 단순히 A nand B nand C 이렇게 하면 (A nand B) nand C로 컴퓨터는 계산을 하여 엉뚱한 값을 출력하였다. 어떻게 하면 될까 고민을 하다가 우리가 얻고 싶은 값은 (ABC)’=A’+B’+C’이므로 먼저 A nand B를 하고 그 값에 not을 취한 후 C와 nand를 취하면 동일한 결과가 나온다는 것을 알았다. 식으로 표현하면 A nand B를 하면 (AB)’=A’+B’이고 not을 취하면 (A’+B’)’=AB, AB nand C=(ABC)’=A’+B’+C’가 된다. Code에 보면 먼저 각각의 nand값을 내부 signal을 이용해서 할당한 후 마지막에 위의 방식으로 프로그래밍한 것을 알 수 있다. 이렇게 해서 시뮬레이션 해 보니 진리표와 일치하는 값이 나왔다.
*
5. 토의
Decoder로 코딩하는 것은 입력값을 STD_LOGIC_VECTOR가 아닌 다른 문자들을 넣어주어야 했기 때문에 2주 전에 실습했던 것과 약간 달랐다. 이것은 process문 안에 변수 data를 variable type으로 써서 A와 B, C, D를 하나로 묶어 주어서 해결했다. 나머지 decoder는 다중 if문을 써서 해결하였고 마지막 부분에 우리가 필요로 하는 데이터들을 뽑아서 Or Gate로 묶어서 출력 S에 할당하였다.
Multiplexer로 코드를 짜는 것은 component, port map을 사용하였다. 구조적 표현으로 6개의 MUX를 유기적으로 연결시키고 내부에 signal을 표현하여 코딩하였다. component문을 이해하고 코드를 짜니 그리 어렵지 않았다.
참고 자료
없음