본문 바로가기
HW Design/1. Verilog HDL Basic

[Using the Always Block] 3. Always Block 과 조합 회로

by 한PU 2024. 1. 10.
728x90
반응형
  • 지금까지는 Always 블록으로 순차 회로 모델링만 고려했음.
  • 조합 회로 모델링도 가능은 하다.
// Verilog 2001
always @(a, b, c) begin
    logic_out = (a & b) | c;
end

// Verilog 1995
always @(a or b or c) begin
    logic_out = (a & b) | c;
end
  • assign 키워드 대신 always block 사용
  • 조합 논리 회로 모델링 시, sen list 작성 방법 두 가지
    • 회로의 각 입력을 or 또는 , 로 구분
        • 문자를 사용하여 sen list에 포함할 신호를 자동으로 결정할 수도 있음.
            • 문자는 Verilog 2001 표준
// Sen list
always @(a, b, c)

// Sen list in Verilog 1995
always @(a or b or c)

// 자동 Sen list with *
always @(*)
  • 일반적으로 always 블록으로 조합 회로를 모델링하면 보일러 플레이트 코드가 추가됨.
    • 복잡한 회로를 간소화 하는 몇 가지 상황에만 사용
    • => 거의 사용 X

Multiplexors

  • always 블록을 사용하여 조합 회로를 모델링하는 유용한 예시
  • case 문을 통해 모델링
    • 대규모 mux를 모델링하는 더 간단하고 직관적인 방법
always @(*)
    case (addr) begin
        0 : begin
            mux_out = a;
        end 
        1 : begin
            mux_out = b;
        end 
        2 : begin
            mux_out = c;
        end 
        3 : begin
            mux_out = d;
        end
    endcase
end
728x90
반응형