module axis_master(aclk, aresetn, tvalid, tready, tdata); input aclk, aresetn, tready; output reg tvalid; output reg [7:0] tdata; reg [31:0] state; always @(posedge aclk) begin if (!aresetn) begin state <= 314159265; tvalid <= 0; tdata <= 'bx; end else begin if (tvalid && tready) tvalid <= 0; if (!tvalid || !tready) begin // ^- should not be inverted! state = state ^ state << 13; state = state ^ state >> 7; state = state ^ state << 17; if (state[9:8] == 0) begin tvalid <= 1; tdata <= state; end end end end endmodule