IP SoC Generator
IP SoC gen is a framework to generate MP/SoCs with different configurations through a set of masters/slaves for fast
digital design development. To install through pip:
pip install --upgrade ipsocgen
Template projects
In order to get started generating your own designs, check the template
repository which contains an example of SoC and MPSoC using
NoX
processor as the main CPU. The configuration files that were used for the ipsocgen_template are available in ipsocgen/examples/template_soc.yaml
and ipsocgen/examples/template_mpsoc.yaml
.
To contribute/develop/extend the work
Please follow the steps below to build the virtual environment and install the dependencies.
python3 -m venv venv
source venv/bin/activate
python3 setup.py install
Configuration file reference
Here is a list of all inputs that can be listed for the IPSoCGen configuration file in yaml format.
proj_name:
desc:
type:
soc_desc:
bus_name:
bus_type:
addr_width:
data_width:
txn_id_width:
num_masters:
num_slaves:
proc_required:
mmap_type:
clk:
name:
clk_int:
io_in_clk:
type:
pll:
divclk_divide:
clkfbout_mult:
clkout_divide:
io_rst_pin:
rst_in_type:
clkin_period:
rst:
name:
rst_int:
io_in_rst:
rst_in_type:
type:
proc:
name:
type:
clk:
rst:
boot:
type:
signal:
slave:
value:
irq_mapping:
timer:
software:
external:
masters:
x:
name:
desc:
type:
if:
...
slaves:
x:
name:
desc:
type:
base_addr:
addr_width:
mem_size_kib:
irq_timer:
rst_def_addr:
rst_addr_out:
rst_pulse_width:
io_bootloader:
bootloader_type:
irq_dma_done:
irq_dma_error:
io_tx:
io_rx:
irq_uart_rx:
irq_type:
irq_summary:
vec_mapping:
- highest_prior_irq_1
- …
- lowest_prior_irq_n
irq_noc:
pkt_recv_irq:
pkt_sent_irq:
pkt_recv_full_irq:
eth_type:
...
mpsoc_desc:
clk:
name:
clk_int:
io_in_clk:
type:
pll:
divclk_divide:
clkfbout_mult:
clkout_divide:
io_rst_pin:
rst_in_type:
clkin_period:
rst:
name:
rst_int:
io_in_rst:
rst_in_type:
type:
noc:
type:
name:
size_x:
size_y:
flit_data_width:
flit_buff:
h_priority:
n_virt_chn:
routing_alg:
max_sz_pkt:
base_addr:
tiles:
x:
....