Entity: i2c_reg_top

Diagram

clk_i rst_ni tl_i hw2reg devmode_i tl_o reg2hw intg_err_o

Description

Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0

Register Top module auto-generated by reggen

Ports

Port name Direction Type Description
clk_i input
rst_ni input
tl_i input
tl_o output
reg2hw output Write
hw2reg input Read
intg_err_o output Integrity check errors
devmode_i input If 1, explicit error return for unmapped register access

Signals

Name Type Description
reg_we logic register signals
reg_re logic
reg_addr logic [AW-1:0]
reg_wdata logic [DW-1:0]
reg_be logic [DBW-1:0]
reg_rdata logic [DW-1:0]
reg_error logic
addrmiss logic
wr_err logic
reg_rdata_next logic [DW-1:0]
reg_busy logic
tl_reg_h2d tlul_pkg::tl_h2d_t
tl_reg_d2h tlul_pkg::tl_d2h_t
intg_err logic incoming payload check
intg_err_q logic
tl_o_pre tlul_pkg::tl_d2h_t outgoing integrity generation
intr_state_we logic Define SW related signals Format: {wd
intr_state_fmt_watermark_qs logic
intr_state_fmt_watermark_wd logic
intr_state_rx_watermark_qs logic
intr_state_rx_watermark_wd logic
intr_state_fmt_overflow_qs logic
intr_state_fmt_overflow_wd logic
intr_state_rx_overflow_qs logic
intr_state_rx_overflow_wd logic
intr_state_nak_qs logic
intr_state_nak_wd logic
intr_state_scl_interference_qs logic
intr_state_scl_interference_wd logic
intr_state_sda_interference_qs logic
intr_state_sda_interference_wd logic
intr_state_stretch_timeout_qs logic
intr_state_stretch_timeout_wd logic
intr_state_sda_unstable_qs logic
intr_state_sda_unstable_wd logic
intr_state_trans_complete_qs logic
intr_state_trans_complete_wd logic
intr_state_tx_empty_qs logic
intr_state_tx_empty_wd logic
intr_state_tx_nonempty_qs logic
intr_state_tx_nonempty_wd logic
intr_state_tx_overflow_qs logic
intr_state_tx_overflow_wd logic
intr_state_acq_overflow_qs logic
intr_state_acq_overflow_wd logic
intr_state_ack_stop_qs logic
intr_state_ack_stop_wd logic
intr_state_host_timeout_qs logic
intr_state_host_timeout_wd logic
intr_enable_we logic
intr_enable_fmt_watermark_qs logic
intr_enable_fmt_watermark_wd logic
intr_enable_rx_watermark_qs logic
intr_enable_rx_watermark_wd logic
intr_enable_fmt_overflow_qs logic
intr_enable_fmt_overflow_wd logic
intr_enable_rx_overflow_qs logic
intr_enable_rx_overflow_wd logic
intr_enable_nak_qs logic
intr_enable_nak_wd logic
intr_enable_scl_interference_qs logic
intr_enable_scl_interference_wd logic
intr_enable_sda_interference_qs logic
intr_enable_sda_interference_wd logic
intr_enable_stretch_timeout_qs logic
intr_enable_stretch_timeout_wd logic
intr_enable_sda_unstable_qs logic
intr_enable_sda_unstable_wd logic
intr_enable_trans_complete_qs logic
intr_enable_trans_complete_wd logic
intr_enable_tx_empty_qs logic
intr_enable_tx_empty_wd logic
intr_enable_tx_nonempty_qs logic
intr_enable_tx_nonempty_wd logic
intr_enable_tx_overflow_qs logic
intr_enable_tx_overflow_wd logic
intr_enable_acq_overflow_qs logic
intr_enable_acq_overflow_wd logic
intr_enable_ack_stop_qs logic
intr_enable_ack_stop_wd logic
intr_enable_host_timeout_qs logic
intr_enable_host_timeout_wd logic
intr_test_we logic
intr_test_fmt_watermark_wd logic
intr_test_rx_watermark_wd logic
intr_test_fmt_overflow_wd logic
intr_test_rx_overflow_wd logic
intr_test_nak_wd logic
intr_test_scl_interference_wd logic
intr_test_sda_interference_wd logic
intr_test_stretch_timeout_wd logic
intr_test_sda_unstable_wd logic
intr_test_trans_complete_wd logic
intr_test_tx_empty_wd logic
intr_test_tx_nonempty_wd logic
intr_test_tx_overflow_wd logic
intr_test_acq_overflow_wd logic
intr_test_ack_stop_wd logic
intr_test_host_timeout_wd logic
alert_test_we logic
alert_test_wd logic
ctrl_we logic
ctrl_enablehost_qs logic
ctrl_enablehost_wd logic
ctrl_enabletarget_qs logic
ctrl_enabletarget_wd logic
ctrl_llpbk_qs logic
ctrl_llpbk_wd logic
status_re logic
status_fmtfull_qs logic
status_rxfull_qs logic
status_fmtempty_qs logic
status_hostidle_qs logic
status_targetidle_qs logic
status_rxempty_qs logic
status_txfull_qs logic
status_acqfull_qs logic
status_txempty_qs logic
status_acqempty_qs logic
rdata_re logic
rdata_qs logic [7:0]
fdata_we logic
fdata_fbyte_wd logic [7:0]
fdata_start_wd logic
fdata_stop_wd logic
fdata_read_wd logic
fdata_rcont_wd logic
fdata_nakok_wd logic
fifo_ctrl_we logic
fifo_ctrl_rxrst_wd logic
fifo_ctrl_fmtrst_wd logic
fifo_ctrl_rxilvl_qs logic [2:0]
fifo_ctrl_rxilvl_wd logic [2:0]
fifo_ctrl_fmtilvl_qs logic [1:0]
fifo_ctrl_fmtilvl_wd logic [1:0]
fifo_ctrl_acqrst_wd logic
fifo_ctrl_txrst_wd logic
fifo_status_re logic
fifo_status_fmtlvl_qs logic [6:0]
fifo_status_txlvl_qs logic [6:0]
fifo_status_rxlvl_qs logic [6:0]
fifo_status_acqlvl_qs logic [6:0]
ovrd_we logic
ovrd_txovrden_qs logic
ovrd_txovrden_wd logic
ovrd_sclval_qs logic
ovrd_sclval_wd logic
ovrd_sdaval_qs logic
ovrd_sdaval_wd logic
val_re logic
val_scl_rx_qs logic [15:0]
val_sda_rx_qs logic [15:0]
timing0_we logic
timing0_thigh_qs logic [15:0]
timing0_thigh_wd logic [15:0]
timing0_tlow_qs logic [15:0]
timing0_tlow_wd logic [15:0]
timing1_we logic
timing1_t_r_qs logic [15:0]
timing1_t_r_wd logic [15:0]
timing1_t_f_qs logic [15:0]
timing1_t_f_wd logic [15:0]
timing2_we logic
timing2_tsu_sta_qs logic [15:0]
timing2_tsu_sta_wd logic [15:0]
timing2_thd_sta_qs logic [15:0]
timing2_thd_sta_wd logic [15:0]
timing3_we logic
timing3_tsu_dat_qs logic [15:0]
timing3_tsu_dat_wd logic [15:0]
timing3_thd_dat_qs logic [15:0]
timing3_thd_dat_wd logic [15:0]
timing4_we logic
timing4_tsu_sto_qs logic [15:0]
timing4_tsu_sto_wd logic [15:0]
timing4_t_buf_qs logic [15:0]
timing4_t_buf_wd logic [15:0]
timeout_ctrl_we logic
timeout_ctrl_val_qs logic [30:0]
timeout_ctrl_val_wd logic [30:0]
timeout_ctrl_en_qs logic
timeout_ctrl_en_wd logic
target_id_we logic
target_id_address0_qs logic [6:0]
target_id_address0_wd logic [6:0]
target_id_mask0_qs logic [6:0]
target_id_mask0_wd logic [6:0]
target_id_address1_qs logic [6:0]
target_id_address1_wd logic [6:0]
target_id_mask1_qs logic [6:0]
target_id_mask1_wd logic [6:0]
acqdata_re logic
acqdata_abyte_qs logic [7:0]
acqdata_signal_qs logic [1:0]
txdata_we logic
txdata_wd logic [7:0]
stretch_ctrl_we logic
stretch_ctrl_en_addr_tx_qs logic
stretch_ctrl_en_addr_tx_wd logic
stretch_ctrl_en_addr_acq_qs logic
stretch_ctrl_en_addr_acq_wd logic
stretch_ctrl_stop_tx_qs logic
stretch_ctrl_stop_tx_wd logic
stretch_ctrl_stop_acq_qs logic
stretch_ctrl_stop_acq_wd logic
host_timeout_ctrl_we logic
host_timeout_ctrl_qs logic [31:0]
host_timeout_ctrl_wd logic [31:0]
addr_hit logic [22:0]
shadow_busy logic shadow busy
reg_busy_sel logic register busy
unused_wdata logic Unused signal tieoff wdata / byte enable are not always fully used add a blanket unused statement to handle lint waivers
unused_be logic

Constants

Name Type Value Description
AW int 7
DW int 32
DBW int DW/8 Byte Width

Processes

Type: always_ff

Type: always_comb

Type: always_comb

Description
Check sub-word write is permitted

Type: always_comb

Description
Read data return

Type: always_comb

Instantiations

Description
Register instances
R[intr_state]: V(False)
F[fmt_watermark]: 0:0

Description
F[rx_watermark]: 1:1

Description
F[fmt_overflow]: 2:2

Description
F[rx_overflow]: 3:3

Description
F[nak]: 4:4

Description
F[scl_interference]: 5:5

Description
F[sda_interference]: 6:6

Description
F[stretch_timeout]: 7:7

Description
F[sda_unstable]: 8:8

Description
F[trans_complete]: 9:9

Description
F[tx_empty]: 10:10

Description
F[tx_nonempty]: 11:11

Description
F[tx_overflow]: 12:12

Description
F[acq_overflow]: 13:13

Description
F[ack_stop]: 14:14

Description
F[host_timeout]: 15:15

Description
R[intr_enable]: V(False)
F[fmt_watermark]: 0:0

Description
F[rx_watermark]: 1:1

Description
F[fmt_overflow]: 2:2

Description
F[rx_overflow]: 3:3

Description
F[nak]: 4:4

Description
F[scl_interference]: 5:5

Description
F[sda_interference]: 6:6

Description
F[stretch_timeout]: 7:7

Description
F[sda_unstable]: 8:8

Description
F[trans_complete]: 9:9

Description
F[tx_empty]: 10:10

Description
F[tx_nonempty]: 11:11

Description
F[tx_overflow]: 12:12

Description
F[acq_overflow]: 13:13

Description
F[ack_stop]: 14:14

Description
F[host_timeout]: 15:15

Description
R[intr_test]: V(True)
F[fmt_watermark]: 0:0

Description
F[rx_watermark]: 1:1

Description
F[fmt_overflow]: 2:2

Description
F[rx_overflow]: 3:3

Description
F[nak]: 4:4

Description
F[scl_interference]: 5:5

Description
F[sda_interference]: 6:6

Description
F[stretch_timeout]: 7:7

Description
F[sda_unstable]: 8:8

Description
F[trans_complete]: 9:9

Description
F[tx_empty]: 10:10

Description
F[tx_nonempty]: 11:11

Description
F[tx_overflow]: 12:12

Description
F[acq_overflow]: 13:13

Description
F[ack_stop]: 14:14

Description
F[host_timeout]: 15:15

Description
R[alert_test]: V(True)

Description
R[ctrl]: V(False)
F[enablehost]: 0:0

Description
F[enabletarget]: 1:1

Description
F[llpbk]: 2:2

Description
R[status]: V(True)
F[fmtfull]: 0:0

Description
F[rxfull]: 1:1

Description
F[fmtempty]: 2:2

Description
F[hostidle]: 3:3

Description
F[targetidle]: 4:4

Description
F[rxempty]: 5:5

Description
F[txfull]: 6:6

Description
F[acqfull]: 7:7

Description
F[txempty]: 8:8

Description
F[acqempty]: 9:9

Description
R[rdata]: V(True)

Description
R[fdata]: V(False)
F[fbyte]: 7:0

Description
F[start]: 8:8

Description
F[stop]: 9:9

Description
F[read]: 10:10

Description
F[rcont]: 11:11

Description
F[nakok]: 12:12

Description
R[fifo_ctrl]: V(False)
F[rxrst]: 0:0

Description
F[fmtrst]: 1:1

Description
F[rxilvl]: 4:2

Description
F[fmtilvl]: 6:5

Description
F[acqrst]: 7:7

Description
F[txrst]: 8:8

Description
R[fifo_status]: V(True)
F[fmtlvl]: 6:0

Description
F[txlvl]: 14:8

Description
F[rxlvl]: 22:16

Description
F[acqlvl]: 30:24

Description
R[ovrd]: V(False)
F[txovrden]: 0:0

Description
F[sclval]: 1:1

Description
F[sdaval]: 2:2

Description
R[val]: V(True)
F[scl_rx]: 15:0

Description
F[sda_rx]: 31:16

Description
R[timing0]: V(False)
F[thigh]: 15:0

Description
F[tlow]: 31:16

Description
R[timing1]: V(False)
F[t_r]: 15:0

Description
F[t_f]: 31:16

Description
R[timing2]: V(False)
F[tsu_sta]: 15:0

Description
F[thd_sta]: 31:16

Description
R[timing3]: V(False)
F[tsu_dat]: 15:0

Description
F[thd_dat]: 31:16

Description
R[timing4]: V(False)
F[tsu_sto]: 15:0

Description
F[t_buf]: 31:16

Description
R[timeout_ctrl]: V(False)
F[val]: 30:0

Description
F[en]: 31:31

Description
R[target_id]: V(False)
F[address0]: 6:0

Description
F[mask0]: 13:7

Description
F[address1]: 20:14

Description
F[mask1]: 27:21

Description
R[acqdata]: V(True)
F[abyte]: 7:0

Description
F[signal]: 9:8

Description
R[txdata]: V(False)

Description
R[stretch_ctrl]: V(False)
F[en_addr_tx]: 0:0

Description
F[en_addr_acq]: 1:1

Description
F[stop_tx]: 2:2

Description
F[stop_acq]: 3:3

Description
R[host_timeout_ctrl]: V(False)