Radical Computer Technologies
Type Reference

radhdl Types

Documentation version: 0.2.2-beta.1

Package-level records, subtypes, constants, and helper functions for the radhdl library.

radhdl_axi_pkg common/hdl/src/radhdl_axi_pkg.vhd

Shared RADHDL AXI record package. AXI interfaces are modeled as channel records first, then composed into full interface records. This keeps VHDL readable as protocol-shaped objects: axi.aw, axi.w, axi.b, axi.ar, axi.r. Vivado synthesis guidance: keep public variants fixed-width and use scalar top-level ports for packaged IP wrappers until the exact integration flow has been checked. These records and constructors are pure combinational helpers.

Records

axi4_128_a64_intf_t record
type axi4_128_a64_intf_t is record aw : axi_aw64_t; w : axi_w128_t; b : axi_b_t; ar : axi_ar64_t; r : axi_r128_t; end record;
FieldTypeDescription
awaxi_aw64_t
waxi_w128_t
baxi_b_t
araxi_ar64_t
raxi_r128_t
axi4_32_a32_intf_t record
type axi4_32_a32_intf_t is record aw : axi_aw32_t; w : axi_w32_t; b : axi_b_t; ar : axi_ar32_t; r : axi_r32_t; end record;
FieldTypeDescription
awaxi_aw32_t
waxi_w32_t
baxi_b_t
araxi_ar32_t
raxi_r32_t
axi4_64_a32_intf_t record
type axi4_64_a32_intf_t is record aw : axi_aw32_t; w : axi_w64_t; b : axi_b_t; ar : axi_ar32_t; r : axi_r64_t; end record;
FieldTypeDescription
awaxi_aw32_t
waxi_w64_t
baxi_b_t
araxi_ar32_t
raxi_r64_t
axi4_64_a64_intf_t record
type axi4_64_a64_intf_t is record aw : axi_aw64_t; w : axi_w64_t; b : axi_b_t; ar : axi_ar64_t; r : axi_r64_t; end record;
FieldTypeDescription
awaxi_aw64_t
waxi_w64_t
baxi_b_t
araxi_ar64_t
raxi_r64_t
axi_ar32_t record
type axi_ar32_t is record addr : std_logic_vector(31 downto 0); len : axi_len_t; size : axi_size_t; burst : axi_burst_t; prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(31 downto 0)
lenaxi_len_t
sizeaxi_size_t
burstaxi_burst_t
protaxi_prot_t
validstd_logic
readystd_logic
axi_ar64_t record
type axi_ar64_t is record addr : std_logic_vector(63 downto 0); len : axi_len_t; size : axi_size_t; burst : axi_burst_t; prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(63 downto 0)
lenaxi_len_t
sizeaxi_size_t
burstaxi_burst_t
protaxi_prot_t
validstd_logic
readystd_logic
axi_aw32_t record
type axi_aw32_t is record addr : std_logic_vector(31 downto 0); len : axi_len_t; size : axi_size_t; burst : axi_burst_t; prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(31 downto 0)
lenaxi_len_t
sizeaxi_size_t
burstaxi_burst_t
protaxi_prot_t
validstd_logic
readystd_logic
axi_aw64_t record
type axi_aw64_t is record addr : std_logic_vector(63 downto 0); len : axi_len_t; size : axi_size_t; burst : axi_burst_t; prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(63 downto 0)
lenaxi_len_t
sizeaxi_size_t
burstaxi_burst_t
protaxi_prot_t
validstd_logic
readystd_logic
axi_b_t record
type axi_b_t is record resp : axi_resp_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
respaxi_resp_t
validstd_logic
readystd_logic
axi_r128_t record
type axi_r128_t is record data : std_logic_vector(127 downto 0); resp : axi_resp_t; last : std_logic; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(127 downto 0)
respaxi_resp_t
laststd_logic
validstd_logic
readystd_logic
axi_r32_t record
type axi_r32_t is record data : std_logic_vector(31 downto 0); resp : axi_resp_t; last : std_logic; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(31 downto 0)
respaxi_resp_t
laststd_logic
validstd_logic
readystd_logic
axi_r64_t record
type axi_r64_t is record data : std_logic_vector(63 downto 0); resp : axi_resp_t; last : std_logic; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(63 downto 0)
respaxi_resp_t
laststd_logic
validstd_logic
readystd_logic
axi_w128_t record
type axi_w128_t is record data : std_logic_vector(127 downto 0); strb : std_logic_vector(15 downto 0); last : std_logic; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(127 downto 0)
strbstd_logic_vector(15 downto 0)
laststd_logic
validstd_logic
readystd_logic
axi_w32_t record
type axi_w32_t is record data : std_logic_vector(31 downto 0); strb : std_logic_vector(3 downto 0); last : std_logic; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(31 downto 0)
strbstd_logic_vector(3 downto 0)
laststd_logic
validstd_logic
readystd_logic
axi_w64_t record
type axi_w64_t is record data : std_logic_vector(63 downto 0); strb : std_logic_vector(7 downto 0); last : std_logic; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(63 downto 0)
strbstd_logic_vector(7 downto 0)
laststd_logic
validstd_logic
readystd_logic
axilite128_a64_intf_t record
type axilite128_a64_intf_t is record aw : axilite_aw64_t; w : axi_w128_t; b : axi_b_t; ar : axilite_ar64_t; r : axilite_r128_t; end record;
FieldTypeDescription
awaxilite_aw64_t
waxi_w128_t
baxi_b_t
araxilite_ar64_t
raxilite_r128_t
axilite32_a16_intf_t record
type axilite32_a16_intf_t is record aw : axilite_aw16_t; w : axi_w32_t; b : axi_b_t; ar : axilite_ar16_t; r : axilite_r32_t; end record;
FieldTypeDescription
awaxilite_aw16_t
waxi_w32_t
baxi_b_t
araxilite_ar16_t
raxilite_r32_t
axilite32_a32_intf_t record
type axilite32_a32_intf_t is record aw : axilite_aw32_t; w : axi_w32_t; b : axi_b_t; ar : axilite_ar32_t; r : axilite_r32_t; end record;
FieldTypeDescription
awaxilite_aw32_t
waxi_w32_t
baxi_b_t
araxilite_ar32_t
raxilite_r32_t
axilite64_a32_intf_t record
type axilite64_a32_intf_t is record aw : axilite_aw32_t; w : axi_w64_t; b : axi_b_t; ar : axilite_ar32_t; r : axilite_r64_t; end record;
FieldTypeDescription
awaxilite_aw32_t
waxi_w64_t
baxi_b_t
araxilite_ar32_t
raxilite_r64_t
axilite64_a64_intf_t record
type axilite64_a64_intf_t is record aw : axilite_aw64_t; w : axi_w64_t; b : axi_b_t; ar : axilite_ar64_t; r : axilite_r64_t; end record;
FieldTypeDescription
awaxilite_aw64_t
waxi_w64_t
baxi_b_t
araxilite_ar64_t
raxilite_r64_t
axilite_ar16_t record
type axilite_ar16_t is record addr : std_logic_vector(15 downto 0); prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(15 downto 0)
protaxi_prot_t
validstd_logic
readystd_logic
axilite_ar32_t record
type axilite_ar32_t is record addr : std_logic_vector(31 downto 0); prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(31 downto 0)
protaxi_prot_t
validstd_logic
readystd_logic
axilite_ar64_t record
type axilite_ar64_t is record addr : std_logic_vector(63 downto 0); prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(63 downto 0)
protaxi_prot_t
validstd_logic
readystd_logic
axilite_aw16_t record
type axilite_aw16_t is record addr : std_logic_vector(15 downto 0); prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(15 downto 0)
protaxi_prot_t
validstd_logic
readystd_logic
axilite_aw32_t record
type axilite_aw32_t is record addr : std_logic_vector(31 downto 0); prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(31 downto 0)
protaxi_prot_t
validstd_logic
readystd_logic
axilite_aw64_t record
type axilite_aw64_t is record addr : std_logic_vector(63 downto 0); prot : axi_prot_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
addrstd_logic_vector(63 downto 0)
protaxi_prot_t
validstd_logic
readystd_logic
axilite_r128_t record
type axilite_r128_t is record data : std_logic_vector(127 downto 0); resp : axi_resp_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(127 downto 0)
respaxi_resp_t
validstd_logic
readystd_logic
axilite_r32_t record
type axilite_r32_t is record data : std_logic_vector(31 downto 0); resp : axi_resp_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(31 downto 0)
respaxi_resp_t
validstd_logic
readystd_logic
axilite_r64_t record
type axilite_r64_t is record data : std_logic_vector(63 downto 0); resp : axi_resp_t; valid : std_logic; ready : std_logic; end record;
FieldTypeDescription
datastd_logic_vector(63 downto 0)
respaxi_resp_t
validstd_logic
readystd_logic

Subtypes

axi4_128_a64_master_i_t subtype
subtype axi4_128_a64_master_i_t is axi4_128_a64_intf_t;
axi4_128_a64_master_o_t subtype
subtype axi4_128_a64_master_o_t is axi4_128_a64_intf_t;
axi4_32_a32_master_i_t subtype
subtype axi4_32_a32_master_i_t is axi4_32_a32_intf_t;
axi4_32_a32_master_o_t subtype
subtype axi4_32_a32_master_o_t is axi4_32_a32_intf_t;
axi4_64_a32_master_i_t subtype
subtype axi4_64_a32_master_i_t is axi4_64_a32_intf_t;
axi4_64_a32_master_o_t subtype
subtype axi4_64_a32_master_o_t is axi4_64_a32_intf_t;
axi4_64_a64_master_i_t subtype
subtype axi4_64_a64_master_i_t is axi4_64_a64_intf_t;
axi4_64_a64_master_o_t subtype
subtype axi4_64_a64_master_o_t is axi4_64_a64_intf_t;
axi_burst_t subtype
subtype axi_burst_t is std_logic_vector(1 downto 0);
axi_len_t subtype
subtype axi_len_t is std_logic_vector(7 downto 0);
axi_prot_t subtype
subtype axi_prot_t is std_logic_vector(2 downto 0);
axi_resp_t subtype
subtype axi_resp_t is std_logic_vector(1 downto 0);
axi_size_t subtype
subtype axi_size_t is std_logic_vector(2 downto 0);
axilite128_a64_slave_i_t subtype
subtype axilite128_a64_slave_i_t is axilite128_a64_intf_t;
axilite128_a64_slave_o_t subtype
subtype axilite128_a64_slave_o_t is axilite128_a64_intf_t;
axilite32_a16_slave_i_t subtype
subtype axilite32_a16_slave_i_t is axilite32_a16_intf_t;
axilite32_a16_slave_o_t subtype
subtype axilite32_a16_slave_o_t is axilite32_a16_intf_t;
axilite32_a32_slave_i_t subtype
subtype axilite32_a32_slave_i_t is axilite32_a32_intf_t;
axilite32_a32_slave_o_t subtype
subtype axilite32_a32_slave_o_t is axilite32_a32_intf_t;
axilite64_a32_slave_i_t subtype
subtype axilite64_a32_slave_i_t is axilite64_a32_intf_t;
axilite64_a32_slave_o_t subtype
subtype axilite64_a32_slave_o_t is axilite64_a32_intf_t;
axilite64_a64_slave_i_t subtype
subtype axilite64_a64_slave_i_t is axilite64_a64_intf_t;
axilite64_a64_slave_o_t subtype
subtype axilite64_a64_slave_o_t is axilite64_a64_intf_t;

Constants

AXI4_128_A64_INTF_NULL constant
constant AXI4_128_A64_INTF_NULL : axi4_128_a64_intf_t := (aw => AXI_AW64_NULL, w => AXI_W128_NULL, b => AXI_B_NULL, ar => AXI_AR64_NULL, r => AXI_R128_NULL);
AXI4_128_A64_MASTER_I_NULL constant
constant AXI4_128_A64_MASTER_I_NULL : axi4_128_a64_master_i_t := AXI4_128_A64_INTF_NULL;
AXI4_128_A64_MASTER_O_NULL constant
constant AXI4_128_A64_MASTER_O_NULL : axi4_128_a64_master_o_t := AXI4_128_A64_INTF_NULL;
AXI4_32_A32_INTF_NULL constant
constant AXI4_32_A32_INTF_NULL : axi4_32_a32_intf_t := (aw => AXI_AW32_NULL, w => AXI_W32_NULL, b => AXI_B_NULL, ar => AXI_AR32_NULL, r => AXI_R32_NULL);
AXI4_32_A32_MASTER_I_NULL constant
constant AXI4_32_A32_MASTER_I_NULL : axi4_32_a32_master_i_t := AXI4_32_A32_INTF_NULL;
AXI4_32_A32_MASTER_O_NULL constant
constant AXI4_32_A32_MASTER_O_NULL : axi4_32_a32_master_o_t := AXI4_32_A32_INTF_NULL;
AXI4_64_A32_INTF_NULL constant
constant AXI4_64_A32_INTF_NULL : axi4_64_a32_intf_t := (aw => AXI_AW32_NULL, w => AXI_W64_NULL, b => AXI_B_NULL, ar => AXI_AR32_NULL, r => AXI_R64_NULL);
AXI4_64_A32_MASTER_I_NULL constant
constant AXI4_64_A32_MASTER_I_NULL : axi4_64_a32_master_i_t := AXI4_64_A32_INTF_NULL;
AXI4_64_A32_MASTER_O_NULL constant
constant AXI4_64_A32_MASTER_O_NULL : axi4_64_a32_master_o_t := AXI4_64_A32_INTF_NULL;
AXI4_64_A64_INTF_NULL constant
constant AXI4_64_A64_INTF_NULL : axi4_64_a64_intf_t := (aw => AXI_AW64_NULL, w => AXI_W64_NULL, b => AXI_B_NULL, ar => AXI_AR64_NULL, r => AXI_R64_NULL);
AXI4_64_A64_MASTER_I_NULL constant
constant AXI4_64_A64_MASTER_I_NULL : axi4_64_a64_master_i_t := AXI4_64_A64_INTF_NULL;
AXI4_64_A64_MASTER_O_NULL constant
constant AXI4_64_A64_MASTER_O_NULL : axi4_64_a64_master_o_t := AXI4_64_A64_INTF_NULL;
AXI_AR32_NULL constant
constant AXI_AR32_NULL : axi_ar32_t := (addr => (others => '0'), len => (others => '0'), size => (others => '0'), burst => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXI_AR64_NULL constant
constant AXI_AR64_NULL : axi_ar64_t := (addr => (others => '0'), len => (others => '0'), size => (others => '0'), burst => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXI_AW32_NULL constant
constant AXI_AW32_NULL : axi_aw32_t := (addr => (others => '0'), len => (others => '0'), size => (others => '0'), burst => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXI_AW64_NULL constant
constant AXI_AW64_NULL : axi_aw64_t := (addr => (others => '0'), len => (others => '0'), size => (others => '0'), burst => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXI_B_NULL constant
constant AXI_B_NULL : axi_b_t := (resp => AXI_RESP_OKAY, valid => '0', ready => '0');
AXI_BURST_FIXED constant
constant AXI_BURST_FIXED : axi_burst_t := "00";
AXI_BURST_INCR constant
constant AXI_BURST_INCR : axi_burst_t := "01";
AXI_BURST_WRAP constant
constant AXI_BURST_WRAP : axi_burst_t := "10";
AXI_R128_NULL constant
constant AXI_R128_NULL : axi_r128_t := (data => (others => '0'), resp => AXI_RESP_OKAY, last => '0', valid => '0', ready => '0');
AXI_R32_NULL constant
constant AXI_R32_NULL : axi_r32_t := (data => (others => '0'), resp => AXI_RESP_OKAY, last => '0', valid => '0', ready => '0');
AXI_R64_NULL constant
constant AXI_R64_NULL : axi_r64_t := (data => (others => '0'), resp => AXI_RESP_OKAY, last => '0', valid => '0', ready => '0');
AXI_RESP_DECERR constant
constant AXI_RESP_DECERR : axi_resp_t := "11";
AXI_RESP_EXOKAY constant
constant AXI_RESP_EXOKAY : axi_resp_t := "01";
AXI_RESP_OKAY constant
constant AXI_RESP_OKAY : axi_resp_t := "00";
AXI_RESP_SLVERR constant
constant AXI_RESP_SLVERR : axi_resp_t := "10";
AXI_W128_NULL constant
constant AXI_W128_NULL : axi_w128_t := (data => (others => '0'), strb => (others => '0'), last => '0', valid => '0', ready => '0');
AXI_W32_NULL constant
constant AXI_W32_NULL : axi_w32_t := (data => (others => '0'), strb => (others => '0'), last => '0', valid => '0', ready => '0');
AXI_W64_NULL constant
constant AXI_W64_NULL : axi_w64_t := (data => (others => '0'), strb => (others => '0'), last => '0', valid => '0', ready => '0');
AXILITE128_A64_INTF_NULL constant
constant AXILITE128_A64_INTF_NULL : axilite128_a64_intf_t := (aw => AXILITE_AW64_NULL, w => AXI_W128_NULL, b => AXI_B_NULL, ar => AXILITE_AR64_NULL, r => AXILITE_R128_NULL);
AXILITE128_A64_SLAVE_I_NULL constant
constant AXILITE128_A64_SLAVE_I_NULL : axilite128_a64_slave_i_t := AXILITE128_A64_INTF_NULL;
AXILITE128_A64_SLAVE_O_NULL constant
constant AXILITE128_A64_SLAVE_O_NULL : axilite128_a64_slave_o_t := AXILITE128_A64_INTF_NULL;
AXILITE32_A16_INTF_NULL constant
constant AXILITE32_A16_INTF_NULL : axilite32_a16_intf_t := (aw => AXILITE_AW16_NULL, w => AXI_W32_NULL, b => AXI_B_NULL, ar => AXILITE_AR16_NULL, r => AXILITE_R32_NULL);
AXILITE32_A16_SLAVE_I_NULL constant
constant AXILITE32_A16_SLAVE_I_NULL : axilite32_a16_slave_i_t := AXILITE32_A16_INTF_NULL;
AXILITE32_A16_SLAVE_O_NULL constant
constant AXILITE32_A16_SLAVE_O_NULL : axilite32_a16_slave_o_t := AXILITE32_A16_INTF_NULL;
AXILITE32_A32_INTF_NULL constant
constant AXILITE32_A32_INTF_NULL : axilite32_a32_intf_t := (aw => AXILITE_AW32_NULL, w => AXI_W32_NULL, b => AXI_B_NULL, ar => AXILITE_AR32_NULL, r => AXILITE_R32_NULL);
AXILITE32_A32_SLAVE_I_NULL constant
constant AXILITE32_A32_SLAVE_I_NULL : axilite32_a32_slave_i_t := AXILITE32_A32_INTF_NULL;
AXILITE32_A32_SLAVE_O_NULL constant
constant AXILITE32_A32_SLAVE_O_NULL : axilite32_a32_slave_o_t := AXILITE32_A32_INTF_NULL;
AXILITE64_A32_INTF_NULL constant
constant AXILITE64_A32_INTF_NULL : axilite64_a32_intf_t := (aw => AXILITE_AW32_NULL, w => AXI_W64_NULL, b => AXI_B_NULL, ar => AXILITE_AR32_NULL, r => AXILITE_R64_NULL);
AXILITE64_A32_SLAVE_I_NULL constant
constant AXILITE64_A32_SLAVE_I_NULL : axilite64_a32_slave_i_t := AXILITE64_A32_INTF_NULL;
AXILITE64_A32_SLAVE_O_NULL constant
constant AXILITE64_A32_SLAVE_O_NULL : axilite64_a32_slave_o_t := AXILITE64_A32_INTF_NULL;
AXILITE64_A64_INTF_NULL constant
constant AXILITE64_A64_INTF_NULL : axilite64_a64_intf_t := (aw => AXILITE_AW64_NULL, w => AXI_W64_NULL, b => AXI_B_NULL, ar => AXILITE_AR64_NULL, r => AXILITE_R64_NULL);
AXILITE64_A64_SLAVE_I_NULL constant
constant AXILITE64_A64_SLAVE_I_NULL : axilite64_a64_slave_i_t := AXILITE64_A64_INTF_NULL;
AXILITE64_A64_SLAVE_O_NULL constant
constant AXILITE64_A64_SLAVE_O_NULL : axilite64_a64_slave_o_t := AXILITE64_A64_INTF_NULL;
AXILITE_AR16_NULL constant
constant AXILITE_AR16_NULL : axilite_ar16_t := (addr => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXILITE_AR32_NULL constant
constant AXILITE_AR32_NULL : axilite_ar32_t := (addr => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXILITE_AR64_NULL constant
constant AXILITE_AR64_NULL : axilite_ar64_t := (addr => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXILITE_AW16_NULL constant
constant AXILITE_AW16_NULL : axilite_aw16_t := (addr => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXILITE_AW32_NULL constant
constant AXILITE_AW32_NULL : axilite_aw32_t := (addr => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXILITE_AW64_NULL constant
constant AXILITE_AW64_NULL : axilite_aw64_t := (addr => (others => '0'), prot => (others => '0'), valid => '0', ready => '0');
AXILITE_R128_NULL constant
constant AXILITE_R128_NULL : axilite_r128_t := (data => (others => '0'), resp => AXI_RESP_OKAY, valid => '0', ready => '0');
AXILITE_R32_NULL constant
constant AXILITE_R32_NULL : axilite_r32_t := (data => (others => '0'), resp => AXI_RESP_OKAY, valid => '0', ready => '0');
AXILITE_R64_NULL constant
constant AXILITE_R64_NULL : axilite_r64_t := (data => (others => '0'), resp => AXI_RESP_OKAY, valid => '0', ready => '0');

Functions

axi4_32_a32_intf function
function axi4_32_a32_intf(awaddr : std_logic_vector(31 downto 0); awvalid : std_logic; awready : std_logic; wdata : std_logic_vector(31 downto 0); wstrb : std_logic_vector(3 downto 0); wlast : std_logic; wvalid : std_logic; wready : std_logic; bresp : axi_resp_t; bvalid : std_logic; bready : std_logic; araddr : std_logic_vector(31 downto 0); arvalid : std_logic; arready : std_logic; rdata : std_logic_vector(31 downto 0); rresp : axi_resp_t; rlast : std_logic; rvalid : std_logic; rready : std_logic) return axi4_32_a32_intf_t;
axi_size_from_bytes function
function axi_size_from_bytes(byte_count : positive) return axi_size_t;
axilite32_a32_intf function
function axilite32_a32_intf(awaddr : std_logic_vector(31 downto 0); awvalid : std_logic; awready : std_logic; wdata : std_logic_vector(31 downto 0); wstrb : std_logic_vector(3 downto 0); wvalid : std_logic; wready : std_logic; bresp : axi_resp_t; bvalid : std_logic; bready : std_logic; araddr : std_logic_vector(31 downto 0); arvalid : std_logic; arready : std_logic; rdata : std_logic_vector(31 downto 0); rresp : axi_resp_t; rvalid : std_logic; rready : std_logic) return axilite32_a32_intf_t;
radhdl_axis_pkg common/hdl/src/radhdl_axis_pkg.vhd

Shared RADHDL AXI-stream record package. Provides fixed-width AXIS records for common payload widths and endpoint-specific records that keep port directions synthesizer-friendly. Vivado synthesis guidance: keep these records fixed-width, use them for internal wiring or carefully validated VHDL-2008 wrappers, and keep external IP-packaged ports scalar until the target Vivado/IP Integrator flow has been checked. The helper constructors are pure combinational field packers.

Records

axis128_intf_t record
type axis128_intf_t is record aclk : std_logic; aresetn : std_logic; tvalid : std_logic; tready : std_logic; tdata : std_logic_vector(127 downto 0); tlast : std_logic; end record;
FieldTypeDescription
aclkstd_logic
aresetnstd_logic
tvalidstd_logic
treadystd_logic
tdatastd_logic_vector(127 downto 0)
tlaststd_logic
axis128_maxis_o_t record
type axis128_maxis_o_t is record tvalid : std_logic; tdata : std_logic_vector(127 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(127 downto 0)
tlaststd_logic
axis128_saxis_i_t record
type axis128_saxis_i_t is record tvalid : std_logic; tdata : std_logic_vector(127 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(127 downto 0)
tlaststd_logic
axis16_intf_t record
type axis16_intf_t is record aclk : std_logic; aresetn : std_logic; tvalid : std_logic; tready : std_logic; tdata : std_logic_vector(15 downto 0); tlast : std_logic; end record;
FieldTypeDescription
aclkstd_logic
aresetnstd_logic
tvalidstd_logic
treadystd_logic
tdatastd_logic_vector(15 downto 0)
tlaststd_logic
axis16_maxis_o_t record
type axis16_maxis_o_t is record tvalid : std_logic; tdata : std_logic_vector(15 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(15 downto 0)
tlaststd_logic
axis16_saxis_i_t record
type axis16_saxis_i_t is record tvalid : std_logic; tdata : std_logic_vector(15 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(15 downto 0)
tlaststd_logic
axis32_intf_t record
type axis32_intf_t is record aclk : std_logic; aresetn : std_logic; tvalid : std_logic; tready : std_logic; tdata : std_logic_vector(31 downto 0); tlast : std_logic; end record;
FieldTypeDescription
aclkstd_logic
aresetnstd_logic
tvalidstd_logic
treadystd_logic
tdatastd_logic_vector(31 downto 0)
tlaststd_logic
axis32_maxis_o_t record
type axis32_maxis_o_t is record tvalid : std_logic; tdata : std_logic_vector(31 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(31 downto 0)
tlaststd_logic
axis32_saxis_i_t record
type axis32_saxis_i_t is record tvalid : std_logic; tdata : std_logic_vector(31 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(31 downto 0)
tlaststd_logic
axis64_intf_t record
type axis64_intf_t is record aclk : std_logic; aresetn : std_logic; tvalid : std_logic; tready : std_logic; tdata : std_logic_vector(63 downto 0); tlast : std_logic; end record;
FieldTypeDescription
aclkstd_logic
aresetnstd_logic
tvalidstd_logic
treadystd_logic
tdatastd_logic_vector(63 downto 0)
tlaststd_logic
axis64_maxis_o_t record
type axis64_maxis_o_t is record tvalid : std_logic; tdata : std_logic_vector(63 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(63 downto 0)
tlaststd_logic
axis64_saxis_i_t record
type axis64_saxis_i_t is record tvalid : std_logic; tdata : std_logic_vector(63 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(63 downto 0)
tlaststd_logic
axis8_intf_t record
type axis8_intf_t is record aclk : std_logic; aresetn : std_logic; tvalid : std_logic; tready : std_logic; tdata : std_logic_vector(7 downto 0); tlast : std_logic; end record;
FieldTypeDescription
aclkstd_logic
aresetnstd_logic
tvalidstd_logic
treadystd_logic
tdatastd_logic_vector(7 downto 0)
tlaststd_logic
axis8_maxis_o_t record
type axis8_maxis_o_t is record tvalid : std_logic; tdata : std_logic_vector(7 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(7 downto 0)
tlaststd_logic
axis8_saxis_i_t record
type axis8_saxis_i_t is record tvalid : std_logic; tdata : std_logic_vector(7 downto 0); tlast : std_logic; end record;
FieldTypeDescription
tvalidstd_logic
tdatastd_logic_vector(7 downto 0)
tlaststd_logic
axis_maxis_i_t record
type axis_maxis_i_t is record tready : std_logic; end record;
FieldTypeDescription
treadystd_logic
axis_saxis_o_t record
type axis_saxis_o_t is record tready : std_logic; end record;
FieldTypeDescription
treadystd_logic

Subtypes

axis128_maxis_i_t subtype
subtype axis128_maxis_i_t is axis_maxis_i_t;
axis128_saxis_o_t subtype
subtype axis128_saxis_o_t is axis_saxis_o_t;
axis16_maxis_i_t subtype
subtype axis16_maxis_i_t is axis_maxis_i_t;
axis16_saxis_o_t subtype
subtype axis16_saxis_o_t is axis_saxis_o_t;
axis32_maxis_i_t subtype
subtype axis32_maxis_i_t is axis_maxis_i_t;
axis32_saxis_o_t subtype
subtype axis32_saxis_o_t is axis_saxis_o_t;
axis64_maxis_i_t subtype
subtype axis64_maxis_i_t is axis_maxis_i_t;
axis64_saxis_o_t subtype
subtype axis64_saxis_o_t is axis_saxis_o_t;
axis8_maxis_i_t subtype
subtype axis8_maxis_i_t is axis_maxis_i_t;
axis8_saxis_o_t subtype
subtype axis8_saxis_o_t is axis_saxis_o_t;

Constants

AXIS128_MAXIS_O_NULL constant
constant AXIS128_MAXIS_O_NULL : axis128_maxis_o_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS128_SAXIS_I_NULL constant
constant AXIS128_SAXIS_I_NULL : axis128_saxis_i_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS16_MAXIS_O_NULL constant
constant AXIS16_MAXIS_O_NULL : axis16_maxis_o_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS16_SAXIS_I_NULL constant
constant AXIS16_SAXIS_I_NULL : axis16_saxis_i_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS32_MAXIS_O_NULL constant
constant AXIS32_MAXIS_O_NULL : axis32_maxis_o_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS32_SAXIS_I_NULL constant
constant AXIS32_SAXIS_I_NULL : axis32_saxis_i_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS64_MAXIS_O_NULL constant
constant AXIS64_MAXIS_O_NULL : axis64_maxis_o_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS64_SAXIS_I_NULL constant
constant AXIS64_SAXIS_I_NULL : axis64_saxis_i_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS8_MAXIS_O_NULL constant
constant AXIS8_MAXIS_O_NULL : axis8_maxis_o_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS8_SAXIS_I_NULL constant
constant AXIS8_SAXIS_I_NULL : axis8_saxis_i_t := (tvalid => '0', tdata => (others => '0'), tlast => '0');
AXIS_MAXIS_I_NULL constant
constant AXIS_MAXIS_I_NULL : axis_maxis_i_t := (tready => '0');
AXIS_SAXIS_O_NULL constant
constant AXIS_SAXIS_O_NULL : axis_saxis_o_t := (tready => '0');

Functions

axis128_intf function
function axis128_intf(aclk : std_logic; aresetn : std_logic; s : axis128_saxis_i_t; o : axis128_saxis_o_t) return axis128_intf_t;
axis128_maxis_o function
function axis128_maxis_o(tvalid : std_logic; tdata : std_logic_vector(127 downto 0); tlast : std_logic) return axis128_maxis_o_t;
axis128_saxis_i function
function axis128_saxis_i(tvalid : std_logic; tdata : std_logic_vector(127 downto 0); tlast : std_logic) return axis128_saxis_i_t;
axis16_intf function
function axis16_intf(aclk : std_logic; aresetn : std_logic; s : axis16_saxis_i_t; o : axis16_saxis_o_t) return axis16_intf_t;
axis16_maxis_o function
function axis16_maxis_o(tvalid : std_logic; tdata : std_logic_vector(15 downto 0); tlast : std_logic) return axis16_maxis_o_t;
axis16_saxis_i function
function axis16_saxis_i(tvalid : std_logic; tdata : std_logic_vector(15 downto 0); tlast : std_logic) return axis16_saxis_i_t;
axis32_intf function
function axis32_intf(aclk : std_logic; aresetn : std_logic; s : axis32_saxis_i_t; o : axis32_saxis_o_t) return axis32_intf_t;
axis32_maxis_o function
function axis32_maxis_o(tvalid : std_logic; tdata : std_logic_vector(31 downto 0); tlast : std_logic) return axis32_maxis_o_t;
axis32_saxis_i function
function axis32_saxis_i(tvalid : std_logic; tdata : std_logic_vector(31 downto 0); tlast : std_logic) return axis32_saxis_i_t;
axis64_intf function
function axis64_intf(aclk : std_logic; aresetn : std_logic; s : axis64_saxis_i_t; o : axis64_saxis_o_t) return axis64_intf_t;
axis64_maxis_o function
function axis64_maxis_o(tvalid : std_logic; tdata : std_logic_vector(63 downto 0); tlast : std_logic) return axis64_maxis_o_t;
axis64_saxis_i function
function axis64_saxis_i(tvalid : std_logic; tdata : std_logic_vector(63 downto 0); tlast : std_logic) return axis64_saxis_i_t;
axis8_intf function
function axis8_intf(aclk : std_logic; aresetn : std_logic; s : axis8_saxis_i_t; o : axis8_saxis_o_t) return axis8_intf_t;
axis8_maxis_o function
function axis8_maxis_o(tvalid : std_logic; tdata : std_logic_vector(7 downto 0); tlast : std_logic) return axis8_maxis_o_t;
axis8_saxis_i function
function axis8_saxis_i(tvalid : std_logic; tdata : std_logic_vector(7 downto 0); tlast : std_logic) return axis8_saxis_i_t;
axis_maxis_i function
function axis_maxis_i(tready : std_logic) return axis_maxis_i_t;
axis_saxis_o function
function axis_saxis_o(tready : std_logic) return axis_saxis_o_t;
radhdl_spi_pkg common/hdl/src/radhdl_spi_pkg.vhd

Shared RADHDL SPI record package. Splits the 4-wire SPI bus into master/slave endpoint records so entity ports can use a single direction per record while preserving standard SCLK/CS/MOSI/MISO names. Vivado synthesis guidance: these records are fixed-width scalar bundles and the helper functions are pure combinational field packers. Keep IP Integrator boundary ports scalar until a wrapper has been checked in the exact target flow.

Records

spi_intf_t record
type spi_intf_t is record sclk : std_logic; cs_n : std_logic; mosi : std_logic; miso : std_logic; end record;
FieldTypeDescription
sclkstd_logic
cs_nstd_logic
mosistd_logic
misostd_logic
spi_master_i_t record
type spi_master_i_t is record miso : std_logic; end record;
FieldTypeDescription
misostd_logic
spi_master_o_t record
type spi_master_o_t is record sclk : std_logic; cs_n : std_logic; mosi : std_logic; end record;
FieldTypeDescription
sclkstd_logic
cs_nstd_logic
mosistd_logic
spi_slave_i_t record
type spi_slave_i_t is record sclk : std_logic; cs_n : std_logic; mosi : std_logic; end record;
FieldTypeDescription
sclkstd_logic
cs_nstd_logic
mosistd_logic
spi_slave_o_t record
type spi_slave_o_t is record miso : std_logic; end record;
FieldTypeDescription
misostd_logic
spi_slave_oe_t record
type spi_slave_oe_t is record miso_oen : std_logic; end record;
FieldTypeDescription
miso_oenstd_logic

Constants

SPI_MASTER_I_IDLE constant
constant SPI_MASTER_I_IDLE : spi_master_i_t := (miso => '0');
SPI_MASTER_O_IDLE constant
constant SPI_MASTER_O_IDLE : spi_master_o_t := (sclk => '0', cs_n => '1', mosi => '0');
SPI_SLAVE_I_IDLE constant
constant SPI_SLAVE_I_IDLE : spi_slave_i_t := (sclk => '0', cs_n => '1', mosi => '0');
SPI_SLAVE_O_IDLE constant
constant SPI_SLAVE_O_IDLE : spi_slave_o_t := (miso => '0');
SPI_SLAVE_OE_OFF constant
constant SPI_SLAVE_OE_OFF : spi_slave_oe_t := (miso_oen => '1');

Functions

spi_intf function
function spi_intf(master_o : spi_master_o_t; master_i : spi_master_i_t) return spi_intf_t;
spi_master_i function
function spi_master_i(miso : std_logic) return spi_master_i_t;
spi_master_i function
function spi_master_i(intf : spi_intf_t) return spi_master_i_t;
spi_master_o function
function spi_master_o(sclk : std_logic; cs_n : std_logic; mosi : std_logic) return spi_master_o_t;
spi_master_o function
function spi_master_o(intf : spi_intf_t) return spi_master_o_t;
spi_slave_i function
function spi_slave_i(sclk : std_logic; cs_n : std_logic; mosi : std_logic) return spi_slave_i_t;
spi_slave_i function
function spi_slave_i(intf : spi_intf_t) return spi_slave_i_t;
spi_slave_o function
function spi_slave_o(miso : std_logic) return spi_slave_o_t;
spi_slave_o function
function spi_slave_o(intf : spi_intf_t) return spi_slave_o_t;
spi_slave_oe function
function spi_slave_oe(miso_oen : std_logic) return spi_slave_oe_t;