CAPI=2: name : pulp-platform.org::axi:0.29.2 filesets: rtl: files: - include/axi/assign.svh : {is_include_file : true, include_path : include} - include/axi/typedef.svh : {is_include_file : true, include_path : include} # Source files grouped in levels. Files in level 0 have no dependencies on files in this # package. Files in level 1 only depend on files in level 0, files in level 2 on files in # levels 1 and 0, etc. Files within a level are ordered alphabetically. # Level 0 - src/axi_pkg.sv # Level 1 - src/axi_intf.sv # Level 2 - src/axi_atop_filter.sv - src/axi_burst_splitter.sv - src/axi_cdc_dst.sv - src/axi_cdc_src.sv - src/axi_cut.sv - src/axi_delayer.sv - src/axi_demux.sv - src/axi_dw_downsizer.sv - src/axi_dw_upsizer.sv - src/axi_id_prepend.sv - src/axi_isolate.sv - src/axi_join.sv - src/axi_lite_demux.sv - src/axi_lite_join.sv - src/axi_lite_mailbox.sv - src/axi_lite_mux.sv - src/axi_lite_regs.sv - src/axi_lite_to_apb.sv - src/axi_lite_to_axi.sv - src/axi_modify_address.sv - src/axi_mux.sv - src/axi_serializer.sv # Level 3 - src/axi_cdc.sv - src/axi_err_slv.sv - src/axi_dw_converter.sv - src/axi_multicut.sv - src/axi_to_axi_lite.sv # Level 4 - src/axi_lite_xbar.sv - src/axi_xbar.sv file_type : systemVerilogSource depend : - ">=pulp-platform.org::common_cells:1.21.0" generators: axi_intercon_gen: interpreter: python3 command: scripts/axi_intercon_gen.py description: Generate a wrapper around PULP AXI xbar interconnect usage: | axi_intercon_gen wraps axi_xbar by expanding arrays of signals into human-readable buses. Memory map can be set with generator parameters. It will also generate a verilog include file containing the wire definitions and module instantiation which can be `included in the module where the interconnect wrapper is intended to be used. Parameters: masters: A dictionary where each key names a master interface connecting to the interconnect and the associated value contains configuration for that interface. id_width (int): Width of the id signals for the master slaves: A dictionary where each key names a slave interface connecting to the interconnect and the associated value contains configuration for that interface. The following configuration keys are defined offset (int): Base address for the slave size (int): Size of the allocated memory map for the slave Example usage: The following config will generate an interconnect wrapper to which two AXI4 master interfaces (dma and ibus) with different id widths are connected, and connects downstream to three AXI4 slaves (rom, gpio, ram) soc_intercon: generator: axi_intercon_gen parameters: masters: dma: id_width : 1 ibus: id_width : 2 slaves: ram: offset : 0 size: 0x10000000 gpio: offset: 0x91000000 size: 0x1000 rom: offset : 0xffff0000 size : 32768 targets: default: filesets : [rtl]