Entity: tlul_sram_byte
- File: tlul_sram_byte.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0 *
Generics
Generic name | Type | Value | Description |
---|---|---|---|
EnableIntg | bit | 0 | Enable integrity handling at byte level |
Outstanding | int | 1 |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk_i | input | ||
rst_ni | input | ||
tl_i | input | tl_h2d_t | |
tl_o | output | tl_d2h_t | |
tl_sram_o | output | tl_h2d_t | |
tl_sram_i | input | tl_d2h_t | |
error_i | input | if incoming transaction already has an integrity error, do not attempt to handle the byte-write access. Instead treat as feedthrough and allow the system to directly error back |
Signals
Name | Type | Description |
---|---|---|
sel_int | sel_sig_e | state and selection |
stall_host | logic | |
wr_phase | logic | |
rd_wait | logic | |
state_d | state_e | |
state_q | state_e | |
a_ack | logic | upstream a channel acknowledgement |
sram_a_ack | logic | downstream a channel acknowledgement |
sram_d_ack | logic | downstream d channel acknowledgement |
wr_txn | logic | |
byte_wr_txn | logic | |
byte_req_ack | logic | |
a_ack_q | logic | |
txn_data | tl_txn_data_t | |
held_data | tl_txn_data_t | |
fifo_rdy | logic | |
rsp_data | logic [top_pkg::TL_DW-1:0] | captured read data |
tl_h2d_int | tl_h2d_t | |
tl_h2d_intg | tl_h2d_t | |
combined_data | logic [top_pkg::TL_DW-1:0] | while we could simply not assert a_ready to ensure the host keeps the request lines stable, there is no guarantee the hosts (if there are multiple) do not re-arbitrate on every cycle if its transactions are not accepted. As a result, it is better to capture the transaction attributes. |
unused_held_data | logic |
Constants
Name | Type | Value | Description |
---|---|---|---|
TxnDataWidth | int | $bits(tl_txn_data_t) | |
AccessSize | int | $clog2(top_pkg::TL_DBW) | Since we are performing a read-modify-write operation, we always access the entire word. |
Types
Name | Type | Description |
---|---|---|
state_e | enum logic [1:0] { StPassThru, StWaitRd, StWriteCmd, StWait } |
state enumeration |
sel_sig_e | enum logic [1:0] { SelPassThru = 2'b01, SelInt = 2'b10 } |
signal select enumeration |
tl_txn_data_t | struct packed { logic [2:0] a_param; logic [top_pkg::TL_SZW-1:0] a_size; logic [top_pkg::TL_AIW-1:0] a_source; logic [top_pkg::TL_AW-1:0] a_address; logic [top_pkg::TL_DBW-1:0] a_mask; logic [top_pkg::TL_DW-1:0] a_data; tl_a_user_t a_user; } |
prim fifo for capturing info |
Processes
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( )
Type: always_comb
Description
state machine handling
- unnamed: ( @(posedge clk_i) )
Type: always_ff
- unnamed: ( )
Type: always_comb
Instantiations
- u_sync_fifo: prim_fifo_sync
- u_intg_gen: tlul_cmd_intg_gen
Description
outgoing tlul transactions