EDK speed issue

Every time I make a minor change to one of my local pcores I have to do a "Clean Netlist" to ensure that the change is carried out. I find this very painful since it then rebuilds all the other IPs.

Is there a way I can just compile the changed file?

Is it more efficient to use a .vhdl file or a .ngd which I can generate with ISE. Would this save much time?

Reply to
Fred
Loading thread data ...

The "OPTION CORE_STATE=DEVELOPMENT", mentioned elsewhere, will cause that particular core to always be recompiled, regardless of whether it has changed (at least last time I tried it). Probably not what you want.

Are you still using the GUI? If you have abandoned that, then you can edit the makefiles by hand to do this. EDK uses plain makefiles, so it is puzzling why they don't already handle such a simple task.

Anyway, in system_incl.make, immediately after PROGRAMCLEAN_TARGETS = ppc405_1_default_programclean I added entries like:

MY_DDR_CLOCKS_IMPLN = implementation/my_ddr_clocks_wrapper.ngc MY_DDR_CLOCKS_FILES = pcores/ddr_clocks_v1_00_a/hdl/vhdl/ddr_clocks.vhd \ pcores/ddr_clocks_v1_00_a/data/ddr_clocks_v2_1_0.mpd \ pcores/ddr_clocks_v1_00_a/data/ddr_clocks_v2_1_0.pao

MY_REGS_IMPLN = implementation/my_regs_wrapper.ngc MY_REGS_FILES = pcores/plb_regs_v1_00_a/hdl/vhdl/regs_core.vhd \ pcores/plb_regs_v1_00_a/hdl/vhdl/plb_ipif_ssp1.vhd \ pcores/plb_regs_v1_00_a/hdl/vhdl/plb_regs.vhd \ pcores/plb_regs_v1_00_a/data/plb_regs_v2_1_0.mpd \ pcores/plb_regs_v1_00_a/data/plb_regs_v2_1_0.pao

MY_WRAPPER_NGC_FILES = $(MY_DDR_CLOCKS_IMPLN) \ $(MY_BITS_IMPLN)

MY_DEVELOPMENT_FILES = $(MY_DDR_CLOCKS_FILES) \ $(MY_REGS_FILES)

Then in system.make, I added immediately after: ################################################################# # HARDWARE IMPLEMENTATION FLOW #################################################################

$(MY_DDR_CLOCKS_IMPLN): $(MY_DDR_CLOCKS_FILES) rm -f implementation/my_ddr_clocks_wrapper.ngc rm -f implementation/cache/my_ddr_clocks_wrapper.ngc

$(MY_REGS_IMPLN): $(MY_REGS_FILES) rm -f implementation/my_regs_wrapper.ngc rm -f implementation/cache/my_regs_wrapper.ngc

Then changed the lines (note the addition of MY_WRAPPER... and MY_DEVELOP...:

implementation/$(SYSTEM).bmm \ $(CORE_WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \ $(MY_DEVELOPMENT_FILES)

@echo "****************************************************" @echo "Creating system netlist for hardware specification.." @echo "****************************************************" platgen $(PLATGEN_OPTIONS) -st xst $(MHSFILE)

$(POSTSYN_NETLIST): $(MY_WRAPPER_NGC_FILES) $(CORE_WRAPPER_NGC_FILES) implementation/$(SYSTEM).bmm @echo "Running synthesis..." bash -c "cd synthesis; ./synthesis.sh; cd .."

Reply to
Duane Clark

Hi Fred,

XPS keeps track of the .mhs settings for each core and stores a copy for it in implementation/cache

So what I usually do is to go in the implementation directory and deletes the files associated with the core. So when I work with microblaze I delete the microblaze_0_wrapper.ngc in the implementation and in implementation/cache In order to for a new system to be generated, I just touch the system.mhs file since this is a file that is used in the makefile. Now just microblaze will be regenerated when I generated a bitfile.

On other option that I use with MicroBlaze is to change a parameter in the .mhs file which don't change the actual implementation. Ex. if I don't have HW debug enabled, I can freely change the number of breakpoints in the .mhs. XPS will see a difference of the parameter settings in the .mhs file compared to the cached version and will regenerate the core

Göran

Reply to
Göran Bilski

I have tried deleting the files and directory in the "implementation" directory and this doesn't update the design. I have since noticed there is a synthesis directory and perhaps I should have deleted the files there as well.

Many thanks for your help..

Reply to
Fred

Many thanks for your reply. I've been aware of these make files but I've always been reluctant to make any changes in fear of the possible consequences. I find the EDK system very fickle and it's not the first time I've had to reload a saved copy!

Perhaps this is the time I ought to start! Many thanks again for your trouble and will later digest the contents of your post. Greatly appreciated.

Reply to
Fred

es

hs

the

is

You do not need to delete anything in the sysnthesis directory. If you want to force the rebuild of a pcore, delete its .ngc in both implementation and implementation/cache, and delete the sub directory in implementation that is named after the pcore. Get rid of those three things, and EDK will remake the core.

Regards,

John McCaskill

formatting link

Reply to
John McCaskill

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.