clk clk reset reset listen listen sd_cmd sd_cmd received received out_data[39:0] out_data[39:0] state[2:0] state[2:0] counter[6:0] counter[6:0] data_reg[39:0] data_reg[39:0] response_type[2:0] response_type[2:0] response_type_reg[2:0] response_type_reg[2:0]