[22] Verilog HDL 조합회로 구현 (COMPARATOR, TRI-STATE)UVM & RTL/Verilog HDL2022. 3. 5. 19:00
Table of Contents
★ 비교기
비교기는 두 입력의 상대적인 크기를 비교하는 회로이며, 관계연산자, if조건문, for반복문 등을 이용하여 모델링될 수 있다.
module comp_assign(a,b,agtb,altb,aeqb);
//1. 관계연산자 사용.
input [3:0] a,b;
output agtb,altb,aeqb;
assign agtb = (a<b);
assign altb = (a>b);
assign aeqb = (a==b);
// 2. if문 사용
input [3:0] a,b;
output reg agtb,altb,aeqb;
always@(*)begin
altb =1'b0;
agtb =1'b0;
aeqb =1'b0;
if(a==b) agtb=1'b1;
else if(a>b) altb=1'b1;
else agtb=1'b1;
end
//3. for문 사용
parameter size = 4;
input [3:0] a,b;
output reg agtb,altb,aeqb;
integer n;
always@(*)begin :LOOP
altb =1'b0;
agtb =1'b0;
aeqb =1'b1;
for(n=size-1;n>=0;n=n-1)begin
if(a[n]!=b[n])begin
aeqb=0;
altb = a[n];
agtb = ~a[n];
disable Loop;
end
end
end
endmodule
▣ TESTBENCH
module tb_comp;
reg [3:0] a, b;
wire agtb,altb,aeqb;
comp_assign uo(a,b,agtb,altb,aeqb);
always begin
a=4'b0001; b=4'b1001;
#20 a=4'b0010; b=4'b0000;
#20 a=4'b1100; b=4'b1101;
#20 a=4'b1010; b=4'b0101;
#20 a=4'b0110; b=4'b1000;
#20 a=4'b0010; b=4'b0001;
#20;
end
endmodule
★ Tri-state 버스
회로의 여러 부분에서 생성된 신호를 다른 곳으로 전송하기 위한 공통 신호선로를 버스라고 한다. 데이터 버스는 다수의 신호원들이 공동으로 사용하므로, 여러 개의 신호가 동시에 접속되지 않도록 설계되어야 한다. 이를 위해 다음 그림과 같이 3상태 버스 드라이버가 사용된다. 3상태 버스 드라이버의 제어신호는 데이터를 버스에 보내거나 또는 데이터 소스를 버스로 부터 격리시켜 high impdeance상태로 만든다.
3상태 버스 드라이버는 Verilog의 조건 연산자를 사용하여 모델링될 수 있다.
module tristate(in,oe,out);
input in,oe;
output out;
assign out = (oe) ? in : 1'bz;
endmodule
▣ TESTBENCH
`define PERIOD 20
module tb_tristate;
reg in,oe;
wire out;
tristate u0(in,oe,out);
initial begin
#0 oe=1'b0; in=1'b1;
#(`PERIOD) in=1'b0;
#(`PERIOD) in=1'b1; oe=1'b1;
#(`PERIOD) in=1'b0;
#(`PERIOD) in=1'b1;
#(`PERIOD) in=1'b0;
#(`PERIOD) oe=1'b0;
#(`PERIOD) in=1'b1;
#(`PERIOD) in=1'b1;
end
endmodule
'UVM & RTL > Verilog HDL' 카테고리의 다른 글
[24] Verilog HDL 순차회로 (LATCH, FILP FLOP) (0) | 2022.03.05 |
---|---|
[23] Verilog HDL 순차회로 설계과제 (COMPARATOR, TRI-STATE) (0) | 2022.03.05 |
[21] Verilog HDL 조합회로 설계과제 (Decoder, Encoder) (1) | 2022.03.05 |
[20] Verilog HDL 조합회로 구현 (ENCODER, DECODER) (0) | 2022.03.05 |
[19] Verilog HDL 조합회로 설계과제1 (NAND, NOR, BOOL, TRUTH TABLE, MUX) (0) | 2022.03.05 |
@Return :: Return
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!