//file spi_tx //Rev.: rev.1.0 module spi_tx( tx_data_out, command_en, allone_en, allzero_en, command_prep_en, allone_prep_en, allzero_prep_en, sclk, clk_div, rst); //////////output//// output tx_data_out; //////////input///// input rst ; input clk_div ; input command_en ;//コマンドを送るステートenable信号 spi_state.vより input allone_en ;//ALL 1 を送るステートenable信号 spi_state.vより input allzero_en ;//ALL 0 を送るステートenable信号 spi_state.vより input command_prep_en;//コマンドを送る前のステートenable信号 spi_state.vより input allone_prep_en ;//ALL 1 を送る前のステートenable信号 spi_state.vより input allzero_prep_en;//ALL 0 を送る前のステートenable信号 spi_state.vより input sclk ; //////////reg/////// reg [15:0]addr; //////////data_send//////////////////// always @ ( posedge clk_div or posedge rst ) begin if ( rst == 1'b1 )begin addr <= 16'b0000000000000000; end//rst /////set_commands else if (allzero_prep_en==1'b1)begin//all zero addr <= 16'b0000000000000000; end else if (allone_prep_en==1'b1)begin//all one addr <= 16'b1111111111111111; end else if (command_prep_en==1'b1)begin//command addr <= 16'b0101010000000000; end /////shift_reg////////////////// else if (allone_en == 1'b1)begin addr[15:1] <= addr[14:0]; end//else else if (command_en == 1'b1 && sclk==1'b1)begin addr[15:1] <= addr[14:0]; end else if (allzero_en)begin addr[15:1] <= addr[14:0]; end // else begin // addr <= 16'b0000000000000000; // end//else end//always assign tx_data_out = addr[15];//data_out endmodule