Entity: kmac_msgfifo
- File: kmac_msgfifo.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0
KMAC MSG_FIFO
This module converts TL-UL interface into MSG_FIFO interface used in KMAC.
Generics
Generic name | Type | Value | Description |
---|---|---|---|
OutWidth | int | 64 | OutWidth is MsgFIFO data width. prim_packer converts InW to OutW prior to pushing to MsgFIFO |
MsgDepth | int | 9 | Internal MsgFIFO Entry count |
MsgDepthW | int | $clog2(MsgDepth+1) | derived parameter |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk_i | input | ||
rst_ni | input | ||
fifo_valid_i | input | from REG or KeyMgr Intf input | |
fifo_data_i | input | [OutWidth-1:0] | |
fifo_mask_i | input | [OutWidth-1:0] | |
fifo_ready_o | output | ||
msg_valid_o | output | MSG interface | |
msg_data_o | output | [OutWidth-1:0] | |
msg_strb_o | output | [OutWidth/8-1:0] | |
msg_ready_i | input | ||
fifo_empty_o | output | ||
fifo_full_o | output | ||
fifo_depth_o | output | [MsgDepthW-1:0] | |
clear_i | input | Control | |
process_i | input | process_i --> process_o process_o asserted after all internal messages are flushed out to MSG interface | |
process_o | output |
Signals
Name | Type | Description |
---|---|---|
packer_wvalid | logic | /////////// Signals // /////////// Packer write path |
packer_wdata | logic [OutWidth-1:0] | |
packer_wmask | logic [OutWidth-1:0] | |
packer_wready | logic | |
fifo_wvalid | logic | Message FIFO signals |
fifo_wdata | fifo_t | |
fifo_wready | logic | |
fifo_rvalid | logic | |
fifo_rdata | fifo_t | |
fifo_rready | logic | |
packer_flush_done | logic | packer flush to msg_fifo, then msg_fifo empty out the internals then assert msgfifo_flush_done |
msgfifo_flush_done | logic | |
flush_st | flush_st_e | |
flush_st_d | flush_st_e |
Constants
Name | Type | Value | Description |
---|---|---|---|
MsgDepthW | int | $clog2(MsgDepth+1) | derived parameter |
Types
Name | Type | Description |
---|---|---|
fifo_t | struct packed { logic [OutWidth-1:0] data; logic [OutWidth/8-1:0] strb; } |
/////////////// Definitions // /////////////// |
flush_st_e | enum logic [1:0] { FlushIdle, FlushPacker, FlushFifo, FlushClear } |
Processes
- unnamed: ( )
Type: always_comb
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( )
Type: always_comb
Instantiations
- u_packer: prim_packer