CAFE

질문 및 답변

[02분반] Verilog를 이용해 3to8 decoder를 구현해 보았습니다.

작성자0638615 김현준|작성시간11.09.09|조회수1,336 목록 댓글 1

디코더는 인코더와 정반대 기능을 수행하며, n비트의 2진 코드 입력에 의해 최대 2n개의 출력이 나오므로 가능한 한 2진 입력의 조합만큼 출력을 가집니다.

 

 

이 디코더는 세 개의 입력선을 가지며, 출력은 2의 3승개로, 즉 여덞 개의 출력으로 해독되며, 각 출력은 세 개 입력변수 중의 어느

하나를 나타냅니다.

 

위의 그림과 같이 3x8 Decoder를 3개의 INV게이트와 8개의 AND게이트로 구성할 수 있습니다.

 

 

Verilog 소스

 

//decoder

module decoder(in, out);

input [2:0] in;

output [7:0] out;

reg [7:0] out;

always@(in)

begin

case(in)

3'b000 : out <= 8'b00000001;

3'b001 : out <= 8'b00000010;

3'b010 : out <= 8'b00000100;

3'b011 : out <= 8'b00001000;

3'b100 : out <= 8'b00010000;

3'b101 : out <= 8'b00100000;

3'b110 : out <= 8'b01000000;

default : out <= 8'b10000000;

endcase

end

endmodule

 

위 그림과 같이 Simulation결과를 보면 3개의 입력이 출력 2의3승개의 출력으로 2진수의 입력이 8진수의 출력으로 변환하는 것을 알 수 있습니다. 즉, 000 이란 값이 들어오면 D0 으로 가는 것이고, 001 이란 값이 들어오면 D1 , 010 이란 값이 들어오면 D2 이렇게 해서 출력을 갖는 것을 알 수 있습니다.

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자0837893 강석민 | 작성시간 11.10.16 많은 도움 됐습니다.
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼