본문 바로가기

Verilog/HDLbits

[HDLBits] Rule110

1. 문제 및 설명

  • 아래 규칙을 가지는  512개의 셀로 이루어진 시스템 q[511:0]을 구현하시오
    • 각 셀은 0 또는 1의 상태를 가지는 1차원 배열로 구성된다.
    • 각 셀의 다음 상태는 현재 양옆 이웃 셀 두 개의 값으로 결정된다.
    • load 입력이 활성화되면, 시스템의 상태는 data[511:0] 값으로 로드 되어야한다.
    • q[-1], q[512] 는 0으로 간주한다.

 

2. 모듈 정의

module top_module(
    input clk,
    input load,
    input [511:0] data,
    output [511:0] q
);

 

 

3. 답

module top_module(
    input clk,
    input load,
    input [511:0] data,
    output [511:0] q ); 
    
    reg [511:0] q_next;
    
    always@(*)
        begin
            q_next = ({q[510:0],1'b0}&(~{1'b0,q[511:1]}))|({q[510:0],1'b0}^q);
        end
    
    always@(posedge clk)
        begin
            if(load)
                q <= data;
            else
                q <= q_next;
        end
                

endmodule

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

[HDLBits] Fsm1s  (0) 2026.02.01
[HDLBits] Fsm1  (0) 2026.02.01
[HDLBits] Rule90  (0) 2026.01.25
[HDLBits] Exams/ece241 2013 q12  (0) 2026.01.25
[HDLBits] Exams/2014 q4b  (0) 2026.01.22