// ============================================================== // Vivado(TM) HLS - High-Level Synthesis from C, C++ and SystemC v2019.2.1 (64-bit) // Copyright 1986-2019 Xilinx, Inc. All Rights Reserved. // ============================================================== `timescale 1 ns / 1 ps module fw_binned_aob_ram (addr0, ce0, d0, we0, q0, addr1, ce1, d1, we1, clk); parameter DWIDTH = 32; parameter AWIDTH = 5; parameter MEM_SIZE = 32; input[AWIDTH-1:0] addr0; input ce0; input[DWIDTH-1:0] d0; input we0; output reg[DWIDTH-1:0] q0; input[AWIDTH-1:0] addr1; input ce1; input[DWIDTH-1:0] d1; input we1; input clk; (* ram_style = "block" *)reg [DWIDTH-1:0] ram[0:MEM_SIZE-1]; always @(posedge clk) begin if (ce0) begin if (we0) ram[addr0] <= d0; q0 <= ram[addr0]; end end always @(posedge clk) begin if (ce1) begin if (we1) ram[addr1] <= d1; end end endmodule `timescale 1 ns / 1 ps module fw_binned_aob( reset, clk, address0, ce0, we0, d0, q0, address1, ce1, we1, d1); parameter DataWidth = 32'd32; parameter AddressRange = 32'd32; parameter AddressWidth = 32'd5; input reset; input clk; input[AddressWidth - 1:0] address0; input ce0; input we0; input[DataWidth - 1:0] d0; output[DataWidth - 1:0] q0; input[AddressWidth - 1:0] address1; input ce1; input we1; input[DataWidth - 1:0] d1; fw_binned_aob_ram fw_binned_aob_ram_U( .clk( clk ), .addr0( address0 ), .ce0( ce0 ), .we0( we0 ), .d0( d0 ), .q0( q0 ), .addr1( address1 ), .ce1( ce1 ), .we1( we1 ), .d1( d1 )); endmodule