추상화
visul studio code --> verilog & system verilog 두가지 설치 + material icon
시스템 베릴로그에서는 이 부분을 랜덤으로 돌리는 것이 가능하다.
`timescale 1ns / 1ps
class transaction;
rand bit [3:0] a;
rand bit [3:0] b;
endclass
module tb_adder_sv();
transaction trans;
int i;
reg [3:0] a;
reg [3:0] b;
wire [3:0] sum;
wire c0;
Adder dut(
.a(a),
.b(b),
.cin(1'b0),
.sum(sum),
.c0(c0)
);
initial begin
trans = new();
for(int i=0; i<10; i++) begin
trans.randomize();
a = trans.a;
b = trans.b;
#10 $display("a : %d + b : %d", trans.a, trans.b);
end
#10 $finish;
end
endmodule
입력 4bit 출력 8bit
delault : 출력X
0출력--> 불 들어옴.
always @( sensitivity_list) begin
sensitivity의 변화가 감지되면 실행. @( )을 항상 감시.
break;가 없는데 길게 쓰고 싶다면 begin ~ end 로 묶어서 사용한다.
Decoder를 추가하여 FND선택을 가능하게 한다.
.i_digit({9'b0 ,carry, w_sum}), 비트 결합 연산자 { } ==> 000000000 + carry + w_sum
'공부방 > Verilog_노진호교수님_서울기술교육센터_필기' 카테고리의 다른 글
240517 UART (0) | 2024.05.17 |
---|---|
240516 FSM_COUNTER , ILA , UART (0) | 2024.05.16 |
240514_ LED_TOGGLE, COUNTER (0) | 2024.05.14 |
240510필기_8bit Adder + FND, counter (0) | 2024.05.10 |
240508_필기 (0) | 2024.05.09 |