본문 바로가기

Verilog/HDLbits

[HDLBits] Always casez

1. 문제 및 설명

  • 8비트 우선순위 인코더를 설계하시오.
    1. 입력 비트 벡터가 주어졌을 때 가장 먼저 등장하는 1의 위치를 출력합니다.
    2. 입력 비트 중 어떤 비트도 1이 아니라면 출력은 0 입니다.
     

2. 모듈 정의

module top_module (
    input [7:0] in,
    output reg [2:0] pos );

 

 

 

3. 답

module top_module (
    input [7:0] in,
    output reg [2:0] pos );

    always@(*)
        begin
            casez(in)
                8'bzzzzzzz1: pos = 0;
                8'bzzzzzz10: pos = 1;
                8'bzzzzz100: pos = 2;
                8'bzzzz1000: pos = 3;
                8'bzzz10000: pos = 4;
                8'bzz100000: pos = 5;
                8'bz1000000: pos = 6;
                8'b10000000: pos = 7;
                default: pos = 0;
            endcase
        end
    
endmodule
 

'Verilog > HDLbits' 카테고리의 다른 글

[HDLBits] Conditional  (0) 2025.12.07
[HDLBits] Always nolatches  (1) 2025.12.07
[HDLBits] Always case2  (0) 2025.11.24
[HDLBits] Always case  (0) 2025.11.23
[HDLBits] Always if2  (0) 2025.11.23