verilog HDLBits刷题[More Circuits]“Rule90”---Rule90

发布时间:2026/7/26 4:58:21
verilog HDLBits刷题[More Circuits]“Rule90”---Rule90 1、题目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 cells two current neighbours. A more verbose way of expressing this rule is the following table, where a cells next state is a function of itself and its two neighbours:LeftCenterRightCenters next state11101101101010010111010000110000(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).2、分析load有效时将data加载给q无效时进行Rule 90的算法。下一个状态的q等于当前状态的q相邻值的异或值。而q[-1] q[512]0.3、代码module top_module( input clk, input load, input [511:0] data, output reg[511:0] q ); reg [511:0]next_q; always(*)begin next_q[0]1b0^q[1]; next_q[511]1b0^q[510]; for(int i1;i510;i)begin next_q[i]q[i-1]^q[i1]; end end always(posedge clk)begin if(load) qdata; else qnext_q; end endmodule4、结果