Skip to content

Latest commit

 

History

History
54 lines (43 loc) · 1.89 KB

README.md

File metadata and controls

54 lines (43 loc) · 1.89 KB

pulpinoexperiment

An experimental repository containing IP-XACT packaging of PULPino RISC-V microcontroller by pulp-project.org: https://github.com/pulp-platform/pulpino

Based on PULPino release in August 2017.

Setup

Update submodule pulpino:

git submodule init
git submodule update

Update all pulpino IPs, see README.md in pulpino for full instructions:

cd pulpino
./update-ips.py

Directories

  • ip-xact: IP-XACT description files
  • pulpino: Submodule directory for original PULPino implementation
  • rtl: RTL implementation files for glue logic and wrappers

Notes on packaging

The following lists problems faced in the design in IP-XACT point of view:

  • top.sv, peripherals.sv:
    • gpio_padcfg is 2-dimensional([6][32]) - Can't be used in bus definition
    • Left as ad-hoc port
  • axi_node_intf_wrap.sv:
    • a vector of buses declared - Cant' be expressed in bus interfaces
    • Within the project the number of interfaces is always a constant
    • Created a new wrapper with bare ports and a set number of interfaces
  • riscv-core.sv:
    • Parameter N_EXT_PERF_COUNTERS = 0 => signal ext_perf_counters_i boundaries are [-1:0] - IP-XACT port boundaries must be positive
    • Set default value to 1 which sets signal width to 1, not connected
  • zero-riscy-core: zeroriscy_cs_registers
    • Parameter N_EXT_CNT = 0 => signal ext_counters_i boundaries are [-1:0]
    • Set default value to 1 which sets signal width to 1, not connected
  • ifdefs
    • To be replaced with design configurations and isPresent attribute
  • generate loops - IP-XACT cannot express n instances
    • Replaced with static number of instances
  • hierarchical modules with additional logic, usually muxes -- Split stray(glue) logic into new components in directory rtl

New RTL components split from stray logic in hierarchical files:

  • core_region_demux
  • csr_logic
  • csr_mux
  • mux_mem
  • spi_master_fsm
  • uart_registers
  • zero_riscy_registers