Github: https://github.com/ultraembedded/cortex_m0_wrapper
This wrapper takes the Cortex-M0 DesignStart IP from ARM and wraps it with some small memories (32KB Instruction, 32KB Data), and adds AXI-4 slave and master interfaces.
This makes it very easy to instance on FPGA and to hookup the Cortex-M0 to various Xilinx AXI-4 IP cores.
This requires the Cortex-M0 DesignStart core from ARM (specifically CORTEXM0INTEGRATION.v/CORTEXM0DS.v and cortexm0ds_logic.v);
- 32KB Instruction Memory (0x00000000 - 0x00007fff)
 - 32KB Data Memory (0x20000000 - 0x20007fff)
 - AXI-4 slave for accessing instruction / data memory (e.g. for loading code / data)
 - AXI-4 master for external peripherals / memory (0x40000000 - 0xffffffff)
 
- Top: cortex_m0_wrapper
 - clk_i - Clock
 - rst_i - Asynchronous reset, active high (AXI-4 Slave / memory access logic)
 - rst_cpu_i: Asynchronous reset, active high (CPU)
 - axi_i: AXI-4 initiator (CPU access to peripherals / memory).
 - axi_t: AXI-4 target (external access to instruction and data memories).
 - intr_i: Interrupt sources
 
Note: ARM, Cortex-M0, AXI-4 and DesignStart are trademarks of ARM Holdings.