03-08-2017 04:00 PM
I'd like to add a MicroBlaze to an existing legacy (Verilog) RTL project (using Vivado 2016.4).
The existing project includes much RTL and Xilinx IP's (FIFO's, PLL's, Communication-IP's, etc.), and was built with the traditional Synthesis/Implementation/Bitstream-Generation tools (NOT with the 'IP Integrator' tools). I have customized and added a 'simple' MicroBlaze-MCS (with only the DEBUG&UART and without any IO features as a first step) into the design and was able to regenerate a bit-file that runs on the target HW. I then EXPORT the (updated) design into an HDF file.
When I start SDK pointing to the above HDF file, the SDK 'Project Explorer' icon for the HDF has a question-mark ('?') . Further, when I create a 'New/Application-Project' (with the HDF file as the HW-Platform) and select the 'Hello World' template, I get Warning ('return' with no value) and Info ('Xil_AssertVoid') messages, followed by the two newly created icons (Hello_World and Hello_World_bsp) that also have the '?' associated with them. Not surprising, when run, the 'Hello World' program does not appear to print the expected message in the Console nor COM Serial ports.
So... Does the SDK tool REQUIRE that Exported files were created with the 'IP Integrator' (which could be months of rework) or is there a simpler explanation for the icons, Warnings, and apparent lack of output (note SDK log attached)?
Your assistance would be greatly appreciated.
03-19-2017 12:20 AM
A question here:
1) Did you update the legacy RTL to 2016.4 and then integrated it with MCS IP?
Yes, SDK need handoff from IPI because that is where the address space for processor and its IP are generated which later on is passed as HDF to tool.
03-19-2017 07:21 PM
@mike_g What is the purpose of adding MB to your design and what does it need to talk to?
integration with existing RTL is only necessary to the extend that you want to control the existing IP through MB. If you want to control stuff with MB, SDK needs to know the address of the IP blocks which need to be controlled from MB which in turn needs the HDF file. You only have to expose the blocks which MB needs access through the BD editor so that address editor can assign addresses to them. Otherwise the rest of the blocks can stay in RTL only format.
03-21-2017 06:16 AM
All the IP's have been updated (to latest in 2016.4) and project was rebuilt (running through Synthesis, Implementation, and BitGen). Have NOT run through IPI (project precedes IPI!).
When SDK starts, it DOES show address space as expected ('dlmb_cntlr, 'iomodule, and 'mdm at 0x0, 0x80000000, and 0x40000000 respectively).
Able to program device and it appears (HelloWorld) program downloads and runs, however... Do not see output (on virtual terminal as indicated in Video Tutorial).