right_data

Rule 90 is a one-dimensional cellular automaton with interesting properties.

The rules are simple. There is a one-dimensional array of cells (on or off). At each time step, the next state of each cell is the XOR of the cell's two current neighbours. A more verbose way of expressing this rule is the following table, where a cell's next state is a function of itself and its right_data_第1张图片two neighbours:

 

(The name "Rule 90" comes from reading the "next state" column: 01011010 is decimal 90.)


In this circuit, create a 512-cell system (q[511:0]), and advance by one time step each clock cycle. The load input indicates the state of the system should be loaded with data[511:0]. Assume the boundaries (q[-1] and q[512]) are both zero (off).
看不太懂题目

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

    wire [511:0] left_data;
    wire [511:0] right_data;
    
   
    
    
    assign left_data  = {q[510:0],1'b0 };
    assign right_data  = {1'b0, q[511:1]};
     
  
    
    always @(posedge clk)
        if(load)
            q <= data;
    	else 
                q <= left_data ^ right_data;
endmodule

你可能感兴趣的:(HDLBits题目,verilog)