공부방/Verilog_노진호교수님_서울기술교육센터_필기

240509_필기 4bitAdder, BCDtoSEG, 2X4 Decoder

맘스터치보단파파이스 2024. 5. 9. 17:33

추상화 

 

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