The Plan and Specs
This project was an attempt to emulate an STM32F3 using an Arty S7-25 Xilinx FPGA. The main reason I picked this specific microcontroller was because I wanted to create something with an ARM architecture due to my interest in small consumer electronics. On top of that I thought the Nucleo was the coolest looking development board I had come across.
In order to create this I needed to know the specs of this specific microcontroller. What I created would need to have between 4 and 48kb of SRAM, a 32 bit microprocessor, and no local ecc memory.
Block Diagram
Within the Block Diagram I used a MicroBlaze microprocessor due to its RISC based architecture. I decided to make the microprocessor 32 bit. The QSPI flash memory was included rather than a DDR3 to more closely imitate an STM32. I used 2 different clock signals here. clk_out1 ran at 200MHz and clk_out2 ran at 80MHz. The MicroBlaze Clock was connected to clk_out2 to ensure it ran at a slower rate than the rest of the system. The RTL was focused on ensuring that the microcontroller could do many of the same things an STM32 is known to do like controlling LEDs.
Although the internal logic analyzer was not needed for this project it was included to make debugging easier if any problems were detected.