tilelink_to_rom_mem

Bridge TileLink Gets to the SMC boot ROM memory interface.

Converts TileLink Get traffic into a ROM address and chip-enable; every A-channel request is answered as a read, since the port carries no opcode. Optionally swaps response endianness before returning data on the D channel.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
ADDR_WIDTHint unsigned14Width of the ROM word address, taken from the TileLink byte address starting at bit 3.
WORD_WIDTHint unsigned64Width of a ROM word and of the D-channel data; the endianness swap assumes 64.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicClock of the cluster boot ROM TileLink port.
rst_iinputlogicActive-high asynchronous reset from the cluster boot ROM TileLink port.
auto_in_a_readyoutputlogicA-channel ready; follows auto_in_d_ready.
auto_in_a_validinputlogicA-channel Get request valid.
auto_in_a_bits_sizeinputlogic [1:0]A-channel transfer size, returned on auto_in_d_bits_size.
auto_in_a_bits_sourceinputlogic [14:0]A-channel source ID, returned on auto_in_d_bits_source.
auto_in_a_bits_addressinputlogic [31:0]A-channel byte address; bits 3 and up select the ROM word.
auto_in_d_readyinputlogicD-channel ready from the cluster; also used as the A-channel ready.
auto_in_d_validoutputlogicD-channel response valid, set the cycle after a request is accepted and cleared by auto_in_d_ready.
auto_in_d_bits_sizeoutputlogic [1:0]Transfer size of the request being answered.
auto_in_d_bits_sourceoutputlogic [14:0]Source ID of the request being answered.
auto_in_d_bits_dataoutputlogic [WORD_WIDTH-1:0]ROM word returned on the D channel, byte-reversed when rom_flip_endianness_i is high.
rom_flip_endianness_iinputlogicHigh byte-reverses rom_bank_data_i before it is returned on the D channel.
rom_address_ooutputlogic [ADDR_WIDTH-1:0]ROM word address: the incoming address while a request is accepted, otherwise the last accepted one.
mem_chip_en_ooutputlogicROM chip enable, high while an A-channel request or D-channel response is valid; low in reset.
rom_bank_data_iinputlogic [63:0]ROM word read at rom_address_o, passed combinationally to auto_in_d_bits_data.