`include "cmd_defs.vh" module tap_cmds ( input clk, input rst_n, input run, input [31:0] cmd, output reg [31:0] rsp, output reg [`N_TAP_CTL_SIZE-1:0] ctl, output reg rsp_rdy ); always @(posedge clk or negedge rst_n) if( !rst_n ) begin ctl <= `CTL_TAP_INIT; rsp <= 32'b0; rsp_rdy <= 1'b1; end else if( run && (`CMD_TARGET(cmd) == `C_TARGET_TAP) ) case( `CMD_INSTR(cmd) ) `C_TAP_SET_GT : begin `CTL_TAP_GT(ctl) <= cmd[0]; rsp <= cmd; end `C_TAP_SET_ET : begin `CTL_TAP_ET(ctl) <= cmd[0]; rsp <= cmd; end `C_TAP_SET_LT : begin `CTL_TAP_LT(ctl) <= cmd[0]; rsp <= cmd; end `C_TAP_SET_THR : begin `CTL_TAP_THR(ctl) <= cmd[13:0]; rsp <= cmd; end `C_TAP_SET_TRIG_EN : begin `CTL_TAP_TRIG_EN(ctl) <= cmd[0]; rsp <= cmd; end default : begin rsp <= `SET_CMD_ERR(cmd); end endcase // case ( `CMD_INSTR(cmd) ) endmodule