728x90
반응형
- 인코더(Encoder) : 신호를 특정 코드로 변환시키는 회로
2^n비트의 입력을 n비트의 출력으로 암호화한다.
2^n개의 입력 신호 중 1개만 1이 되면, 1에 대응되는 n비트를 가진 암호가 출력된다.
4 x 2 인코더를 구현해보자(n=2).
module encoder(
y0,
y1,
y2,
y3,
a0,
a1);
input y0, y1, y2, y3;
output a0, a1;
assign a1 = ~y0 & ~y1; // y0과 y1를 반전시키고 AND 연산을하면 a1가 된다.
assign a0 = ~y0 & ~y2; // y0과 y2를 반전시키고 AND 연산을하면 a0이 된다.
endmodule
- 디코더(Decoder) : 특정 코드를 신호로 출력하는 회로
n비트의 입력을 2^n비트의 출력으로 해독한다.
n비트의 입력 신호에 대응되는, 하나의 출력 신호를 1로 가진다.
2 x 4 디코더를 구현해보자(n=2).
module decoder(
a,
b,
d0,
d1,
d2,
d3);
input a, b;
output d0, d1, d2, d3;
always @(a or b) begin
case({a,b})
2'b00 : {d0,d1,d2,d3} = 4'b1000;
2'b01 : {d0,d1,d2,d3} = 4'b0100;
2'b10 : {d0,d1,d2,d3} = 4'b0010;
2'b11 : {d0,d1,d2,d3} = 4'b0001;
endmodule
인코딩이 될 수 있는 코드는 2진, BCD, 10진, Gray, ASCII 코드 등이 있다.
- 인코더와 디코더의 관계(n=3)
인코더에서 암호화한 신호를 디코더에서 복호화한다.
728x90
반응형
'VLSI > Design' 카테고리의 다른 글
[SystemVerilog] generate-for loop와 for loop의 차이 (0) | 2024.10.18 |
---|
댓글