[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] mixed EDK and ISE projects



On Tue, 2005-05-17 at 16:00 +1000, John Williams wrote:
> Hi everyone,
> 
> Previously I've worked mostly with EDK generating and synthesising the 
> top level designs, but am now looking into the combined EDK+ISE flow. 
> This is primarily for integrating custom cores that do not wrap nicely 
> within the EDK pcores structure.
> 
> I used EDK to create my main MicroBlaze system, with the "heirarchy and 
> flow" project options identifying it as a submodule, and to use the ISE 
> flow.  This created a couple of VHDL files and a ProjNav project:
> 
> * system.vhd - the microblaze system wrapper
> 
> * system-stub.vhd - a true toplevel vhdl file, which instantiates the 
> microblaze subsystem
> 
> * The ISE project file defaults to using the system-stub as the top level.
> 
> Two facts (or observations at least):
> 
> 1. These files are overwritten each time you run "tools->export to 
> ProjNav" from XPS.
> 
> 2. The purpose of using ISE for toplevel synthesis implies that wou will 
> be modifying the system-stub.vhd and ProjNav project file, ven if only 
> trivially.
> 
> These two facts suggest that the export EDK project to ProjNav is really 
> a one-way process.   If you make any change to the EDK projec, 
> re-exporting will cause any changes at the top level (system-stub.vhd) 
> to be lost.  Also last are any changes to the actual ProjNav project.
> 
> Once you add the UCF and ELF files into the ISE project (as per Xilinx 
> documentation), they too will be lost after running the "export to 
> ProjNav" in XPS.
> 
> What is the recommended approach here if you want to develop both the 
> toplevel (ISE) design as well as the EDK project?  Copy/rename the 
> system-stub.vhd and projnav files, then just cut and paste any changes 
> which are subsequently exported from XPS?
> 
> Any suggestions or clarifications would be greatly appreciated.
> 
> Thanks,
> 
> John


John,

I am following the same strategy as you describe. ;*)

I completely ignore system-stubs and just use system.v as
a sub module, containing the SoC (miscroblaze, memory
controller rs232, etc). I instantiate that in my own top level
with my custom ip, as well, as appropriate DCMs. I found that
you can safely ignore the IO buffers that are instantiated in
system-stubs, as ISE will automatically insert any missing IOs.
For bi directional signals I use verilog to define bi-dir IOs:

assign data_in = phy_data;
assign phy_data = data_oe ? data_out : 8'hz;

This works great for my custom projects in house, but is not
very easily portable, unless you know the setup in & out. I
use scripts on linux to build and compile it all ...

Best Regards,
rudi
=============================================================
Rudolf Usselmann,  ASICS World Services,  http://www.asics.ws
Your Partner for IP Cores, Design, Verification and Synthesis

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/