Line 425... |
Line 425... |
dm_reg.clr_acc_err <= '0';
|
dm_reg.clr_acc_err <= '0';
|
dm_reg.autoexec_wr <= '0';
|
dm_reg.autoexec_wr <= '0';
|
elsif rising_edge(clk_i) then
|
elsif rising_edge(clk_i) then
|
|
|
-- default --
|
-- default --
|
dm_reg.halt_req <= '0';
|
|
dm_reg.resume_req <= '0';
|
dm_reg.resume_req <= '0';
|
dm_reg.reset_ack <= '0';
|
dm_reg.reset_ack <= '0';
|
dm_reg.wr_acc_err <= '0';
|
dm_reg.wr_acc_err <= '0';
|
dm_reg.clr_acc_err <= '0';
|
dm_reg.clr_acc_err <= '0';
|
dm_reg.autoexec_wr <= '0';
|
dm_reg.autoexec_wr <= '0';
|
Line 437... |
Line 436... |
-- DMI access --
|
-- DMI access --
|
if (dmi_req_valid_i = '1') and (dmi_req_op_i = '1') then -- valid DMI write request
|
if (dmi_req_valid_i = '1') and (dmi_req_op_i = '1') then -- valid DMI write request
|
|
|
-- debug module control --
|
-- debug module control --
|
if (dmi_req_addr_i = addr_dmcontrol_c) then
|
if (dmi_req_addr_i = addr_dmcontrol_c) then
|
dm_reg.halt_req <= dmi_req_data_i(31); -- haltreq (-/w): write 1 to request halt
|
dm_reg.halt_req <= dmi_req_data_i(31); -- haltreq (-/w): write 1 to request halt; has to be cleared again by debugger
|
dm_reg.resume_req <= dmi_req_data_i(30); -- resumereq (-/w1): write 1 to request resume
|
dm_reg.resume_req <= dmi_req_data_i(30); -- resumereq (-/w1): write 1 to request resume
|
dm_reg.reset_ack <= dmi_req_data_i(28); -- ackhavereset (-/w1)
|
dm_reg.reset_ack <= dmi_req_data_i(28); -- ackhavereset (-/w1)
|
dm_reg.dmcontrol_ndmreset <= dmi_req_data_i(01); -- ndmreset (r/w): soc reset
|
dm_reg.dmcontrol_ndmreset <= dmi_req_data_i(01); -- ndmreset (r/w): soc reset
|
dm_reg.dmcontrol_dmactive <= dmi_req_data_i(00); -- dmactive (r/w): DM reset
|
dm_reg.dmcontrol_dmactive <= dmi_req_data_i(00); -- dmactive (r/w): DM reset
|
end if;
|
end if;
|