Entity: spi_fwm_txf_ctrl
- File: spi_fwm_txf_ctrl.sv
Diagram
Description
Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0
Serial Peripheral Interface (SPI) Device module.
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| FifoDw | int | 8 | |
| SramAw | int | 11 | |
| SramDw | int | 32 | |
| NumBytes | int | SramDw/FifoDw | derived parameter |
| SDW | int | $clog2(NumBytes) | derived parameter |
| PtrW | int | SramAw + SDW + 1 | derived parameter |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk_i | input | ||
| rst_ni | input | ||
| base_index_i | input | [SramAw-1:0] | Configuration |
| limit_index_i | input | [SramAw-1:0] | |
| abort | input | Abort State Machine if TX Async at stuck | |
| wptr | input | [PtrW-1:0] | |
| rptr | output | [PtrW-1:0] | |
| depth | output | [PtrW-1:0] | |
| fifo_valid | output | ||
| fifo_ready | input | ||
| fifo_wdata | output | [FifoDw-1:0] | |
| sram_req | output | ||
| sram_write | output | ||
| sram_addr | output | [SramAw-1:0] | |
| sram_wdata | output | [SramDw-1:0] | |
| sram_gnt | input | ||
| sram_rvalid | input | ||
| sram_rdata | input | [SramDw-1:0] | |
| sram_error | input | [1:0] |
Signals
| Name | Type | Description |
|---|---|---|
| pos | logic [SDW-1:0] | Current write position |
| sramf_limit | logic [SramAw-1:0] | |
| sram_rdata_q | logic [SramDw-1:0] | |
| fifo_wdata_d | logic [SramDw-1:0] | |
| wptr_q | logic [PtrW-1:0] | |
| sramf_empty | logic | State input |
| cnt_eq_end | logic | pos goes 0 -> 1 -> 2 -> 3 -> then 0 |
| sram_req_d | logic | State output |
| update_rptr | logic | |
| latch_wptr | logic | |
| cnt_rst | logic | Reset pos to rptr[SDW-1:0] or 0 |
| cnt_incr | logic | |
| txf_sel | logic | 0: sram_rdata, 1: sram_rdata_q |
| st_next | state_e | |
| st | state_e |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| NumBytes | int | SramDw/FifoDw | derived parameter |
| SDW | int | $clog2(NumBytes) | derived parameter |
| PtrW | int | SramAw + SDW + 1 | derived parameter |
Types
| Name | Type | Description |
|---|---|---|
| state_e | enum logic [2:0] { StIdle = 'h0, StRead = 'h1, StLatch = 'h2, StPush = 'h3, StUpdate = 'h4 } |
Processes
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( )
Type: always_comb
Description
State Machine next , output logic
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( )
Type: always_comb
Description
Depth
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( @(posedge clk_i or negedge rst_ni) )
Type: always_ff
- unnamed: ( )
Type: always_comb