본문내용
출력
D0
D1
D2
D3
Y1
Y0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
3. 위 1, 2번 출력 (D0, D1, D2, D3, Y1, Y0)에 대한 논리식 추출
D0 = ~A & ~B
D1 = ~A & B
D2 = A & ~B
Y1 = D2 | D3
Y0 = D1 | D3
D3 = A & B
4. 결과적으로 그려낸 Schematic (화면 Capture)
5. 결과적으로 작성한 Verilog 소스 (Cut & Paste) (하나만)
module decoder (A, B, D, Y);
input A, B;
output [3:0]D;
output [1:0]Y;
assign D[0] = ~A & ~B,
D[1] = ~A & B,
D[2] = A & ~B,
D[3] = A & B;
assign Y[0] = D[1] | D[3],
Y[1] = D[2] | D[3];
endmodule
6. 작성한 Test Bench (stimulus) 소스 (Cut & Paste)
module test
reg TA, TB;
wire [3:0]D;
wire [1:0]Y;
decoder_encoder de (TA, TB, D, Y);
initial
begin
TA=0; TB=0;
#10 TA=0; TB=1;
#10 TA=1; TB=0;
#10 TA=1; TB=1;
#10
end
initial
$monitor("A=%b B=%b D=%4b Y=%2b time=%0d", TA, TB, D, Y, $time);
endmodule
7. Simulation 결과 Wave Form과 출력 결과 (화면 Capture)
8. Download 후 장비에서의 실험 결과 기술
버튼 스위치 1, 2에 입력 A, B를 할당한다. 그리고 LED1-4에는 D0-D3, LED8, 7에는 Y0, Y1을 각각 할당한다. 이렇게 하면 아무것도 누르지 않은 상태에서는 D0에 불이 들어오고 2(B)번만 누르면 D1에 불이 들어오고, 1(A)번만 누르면 D2에 불이 들어온다. 1, 2(A와 B)번을 동시에 누르면 D3에 불이 들어온다. 또한 D0~ D3에 의해 Y0, Y1에서도 동시에 불이 들어온다. D1이나 D3가 켜질 때에는 Y0에도, 그리고 D2나 D3에 불이 들어올 때에는 Y1에도 역시 불이 들어온다.
9. 실험 진행 상 문제점, 어려웠던 점
회로가 다 짜여져 있었음에도 불구하고 어렵다고 느껴졌던 이유는 아직 이 두 개의 프로그램을 사용하는데 있어 익숙하지 않기도 했고, 완전히 이해가 되지 않았기 때문인 것 같다. 또 이번에 시험을 하면서 한번은 잘못된 클릭으로 다 사라져 버려서 다시 처음부터 해야 했었는데 시간이 너무 많이 걸렸다. 에러 메시지의 내용을 제대로 해석 할 수 없었기 때문이었다. 결국에는 프로젝트의 이름과 파일 이름이 달라서였다는 것을 알고 고쳐서 제대로 되었지만, 이해하는데 시간이 많이 걸렸다.
10. 이번 실험의 응용 (이런 회로를 어디에 쓰면 좋을까 ?)
게임기에 쓸 수 있지 않을까 생각됩니다. 특정 조합의 키를 손에 들고 있는 게임기의 버튼에 입력하면 그게 다시 진동 등 다른 방식으로 게임을 하고 있는 사람에게 돌아오는.. 그런 식으로 사용할 수 있지 않을까 생각됩니다.
A, B의 입력에 따른 D1, D2, D3, D4 (이건 화면에 나오는 각각 다른 모양), - 디코더
D1, D2, D3, D4에 따라 다시 게임 하는 사람에게 돌아오는 진동의 종류 Y1, Y0 인코더
보고서를 쓰면서 한주간 계속 생각해 보았는데 솔직히 잘 모르겠습니다. 이 회로가 어디에 응용되어 쓰이는지 교수님께서 다음 수업시간에 말씀해 주셨으면 좋겠습니다.
D0
D1
D2
D3
Y1
Y0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
3. 위 1, 2번 출력 (D0, D1, D2, D3, Y1, Y0)에 대한 논리식 추출
D0 = ~A & ~B
D1 = ~A & B
D2 = A & ~B
Y1 = D2 | D3
Y0 = D1 | D3
D3 = A & B
4. 결과적으로 그려낸 Schematic (화면 Capture)
5. 결과적으로 작성한 Verilog 소스 (Cut & Paste) (하나만)
module decoder (A, B, D, Y);
input A, B;
output [3:0]D;
output [1:0]Y;
assign D[0] = ~A & ~B,
D[1] = ~A & B,
D[2] = A & ~B,
D[3] = A & B;
assign Y[0] = D[1] | D[3],
Y[1] = D[2] | D[3];
endmodule
6. 작성한 Test Bench (stimulus) 소스 (Cut & Paste)
module test
reg TA, TB;
wire [3:0]D;
wire [1:0]Y;
decoder_encoder de (TA, TB, D, Y);
initial
begin
TA=0; TB=0;
#10 TA=0; TB=1;
#10 TA=1; TB=0;
#10 TA=1; TB=1;
#10
end
initial
$monitor("A=%b B=%b D=%4b Y=%2b time=%0d", TA, TB, D, Y, $time);
endmodule
7. Simulation 결과 Wave Form과 출력 결과 (화면 Capture)
8. Download 후 장비에서의 실험 결과 기술
버튼 스위치 1, 2에 입력 A, B를 할당한다. 그리고 LED1-4에는 D0-D3, LED8, 7에는 Y0, Y1을 각각 할당한다. 이렇게 하면 아무것도 누르지 않은 상태에서는 D0에 불이 들어오고 2(B)번만 누르면 D1에 불이 들어오고, 1(A)번만 누르면 D2에 불이 들어온다. 1, 2(A와 B)번을 동시에 누르면 D3에 불이 들어온다. 또한 D0~ D3에 의해 Y0, Y1에서도 동시에 불이 들어온다. D1이나 D3가 켜질 때에는 Y0에도, 그리고 D2나 D3에 불이 들어올 때에는 Y1에도 역시 불이 들어온다.
9. 실험 진행 상 문제점, 어려웠던 점
회로가 다 짜여져 있었음에도 불구하고 어렵다고 느껴졌던 이유는 아직 이 두 개의 프로그램을 사용하는데 있어 익숙하지 않기도 했고, 완전히 이해가 되지 않았기 때문인 것 같다. 또 이번에 시험을 하면서 한번은 잘못된 클릭으로 다 사라져 버려서 다시 처음부터 해야 했었는데 시간이 너무 많이 걸렸다. 에러 메시지의 내용을 제대로 해석 할 수 없었기 때문이었다. 결국에는 프로젝트의 이름과 파일 이름이 달라서였다는 것을 알고 고쳐서 제대로 되었지만, 이해하는데 시간이 많이 걸렸다.
10. 이번 실험의 응용 (이런 회로를 어디에 쓰면 좋을까 ?)
게임기에 쓸 수 있지 않을까 생각됩니다. 특정 조합의 키를 손에 들고 있는 게임기의 버튼에 입력하면 그게 다시 진동 등 다른 방식으로 게임을 하고 있는 사람에게 돌아오는.. 그런 식으로 사용할 수 있지 않을까 생각됩니다.
A, B의 입력에 따른 D1, D2, D3, D4 (이건 화면에 나오는 각각 다른 모양), - 디코더
D1, D2, D3, D4에 따라 다시 게임 하는 사람에게 돌아오는 진동의 종류 Y1, Y0 인코더
보고서를 쓰면서 한주간 계속 생각해 보았는데 솔직히 잘 모르겠습니다. 이 회로가 어디에 응용되어 쓰이는지 교수님께서 다음 수업시간에 말씀해 주셨으면 좋겠습니다.
추천자료
디지털시스템 엔코더, 액티브로우디코더, 10진디코더
엔코더와 디코더 회로
[전자공학실험] 디코더 및 엔코더 & 7세그먼트
예비,결과보고서 - 엔코더와 디코더 회로
[논리회로] 엔코더(Encoder),디코더(Decoder) 설계 및 7-Segement LED,4 to 1 MUX 제작
디코더와 엔코도
07. 디.엔코더, 카운터, 분주기 회로와 응용 제작
학습기기(교육기기, 교육기자재) 실물화상기, 학습기기(교육기기, 교육기자재) 엔코더와 디코...
[기초전자회로 및 실험 1] 사거리신호등 제안서 Arithmetic Logic Units (ALUs)
소개글