Fix edge case on back-to-back writes to write buffer trigger register. #38

This commit is contained in:
Alex Mykyta
2023-05-04 20:52:25 -07:00
parent ce6b9a7c66
commit 9720775df8

View File

@@ -7,6 +7,11 @@ always_ff {{get_always_ff_event(cpuif.reset)}} begin
{{wbuf_prefix}}.trigger_q <= '0; {{wbuf_prefix}}.trigger_q <= '0;
{%- endif %} {%- endif %}
end else begin end else begin
if({{wbuf.get_trigger(node)}}) begin
{{wbuf_prefix}}.pending <= '0;
{{wbuf_prefix}}.data <= '0;
{{wbuf_prefix}}.biten <= '0;
end
{%- for segment in segments %} {%- for segment in segments %}
if({{segment.strobe}} && decoded_req_is_wr) begin if({{segment.strobe}} && decoded_req_is_wr) begin
{{wbuf_prefix}}.pending <= '1; {{wbuf_prefix}}.pending <= '1;
@@ -22,10 +27,5 @@ always_ff {{get_always_ff_event(cpuif.reset)}} begin
{% if is_own_trigger %} {% if is_own_trigger %}
{{wbuf_prefix}}.trigger_q <= {{wbuf.get_raw_trigger(node)}}; {{wbuf_prefix}}.trigger_q <= {{wbuf.get_raw_trigger(node)}};
{%- endif %} {%- endif %}
if({{wbuf.get_trigger(node)}}) begin
{{wbuf_prefix}}.pending <= '0;
{{wbuf_prefix}}.data <= '0;
{{wbuf_prefix}}.biten <= '0;
end
end end
end end