например,
Код
wr_addr <= #TCQ {region_select[1:0],m_axis_rx_tdata[10:2]};
region_select выбирается чуть ниже,
этот case можно настроить для работы по разным BAR и получить доступ к разным 2К.
Код
assign mem64_bar_hit_n = ~m_axis_rx_tuser[2];
assign io_bar_hit_n = 1'b1;
assign mem32_bar_hit_n = ~m_axis_rx_tuser[4];
assign erom_bar_hit_n = ~m_axis_rx_tuser[8];
always @*
begin
case ({io_bar_hit_n, mem32_bar_hit_n, mem64_bar_hit_n, erom_bar_hit_n})
4'b0111 : begin
region_select <= #TCQ 2'b00; // Select IO region
end // 4'b0111
.....
assign io_bar_hit_n = 1'b1;
assign mem32_bar_hit_n = ~m_axis_rx_tuser[4];
assign erom_bar_hit_n = ~m_axis_rx_tuser[8];
always @*
begin
case ({io_bar_hit_n, mem32_bar_hit_n, mem64_bar_hit_n, erom_bar_hit_n})
4'b0111 : begin
region_select <= #TCQ 2'b00; // Select IO region
end // 4'b0111
.....