FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 02-05-2005, 05:59 PM
Peter Soerensen
Guest
 
Posts: n/a
Default EDK+IPIF: Customizing wizard result

Hi,

I have created a periperal IP device using the "Create/Import.." wizard of the EDK 6.3. The IP has 4 32 bit registers. I have been able to connect the IP as a slave to the OPB and write a small program that can write and read these registers. However when I make changes in the vhdl files of the IP it seems to have no effect. I tried reading one of the four registers return a constant value but it still returns the value I previously read .. Do I have do soemthing to make the EDK update the IP?

thanks
Reply With Quote
  #2 (permalink)  
Old 02-05-2005, 06:35 PM
Duane Clark
Guest
 
Posts: n/a
Default Re: EDK+IPIF: Customizing wizard result

Peter Soerensen wrote:
> Hi,
>
> I have created a periperal IP device using the "Create/Import.."
> wizard of the EDK 6.3. The IP has 4 32 bit registers. I have been
> able to connect the IP as a slave to the OPB and write a small
> program that can write and read these registers. However when I make
> changes in the vhdl files of the IP it seems to have no effect. I
> tried reading one of the four registers return a constant value but
> it still returns the value I previously read .. Do I have do
> soemthing to make the EDK update the IP?
>


First, let me say that I am not using the EDK GUI except to create an
initial project. Thereafter, I make all changes with a normal text
editor, and compile by executing make commands at the command line (on
Linux). So keep that in mind when reading my comments.

I also noticed that when I made changes to one of the cores in my
project's pcores directory, that the changes were not automatically
compiled in. Eventually, I discovered somewhere in the EDK documentation
that you had to set a flag somewhere for that to happen (I don't
remember the flag, or where it was in the docs). Unfortunately, once I
set the flag, EDK insisted on recompiling the core every time, rather
than when a change had been made to the code.

So instead I hand edited the makefiles. In system_incl.make, I added
lines that look 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_DIMM_IMPLN = implementation/my_dimm_wrapper.ngc
MY_DIMM_FILES = pcores/wsoa_dimm_v1_00_a/hdl/vhdl/clock_gen.vhd \
pcores/wsoa_dimm_v1_00_a/hdl/vhdl/command_statemachine.vhd \
pcores/wsoa_dimm_v1_00_a/hdl/vhdl/coregen_comp_defs.vhd \
....

MY_BITS_IMPLN = implementation/my_bits_wrapper.ngc
MY_BITS_FILES = pcores/plb_bits_v1_00_a/hdl/vhdl/bits_core.vhd \
pcores/plb_bits_v1_00_a/hdl/vhdl/plb_ipif_ssp1.vhd \
pcores/plb_bits_v1_00_a/hdl/vhdl/plb_bits.vhd \
....

MY_WRAPPER_NGC_FILES = $(MY_DDR_CLOCKS_IMPLN) \
$(MY_DIMM_IMPLN) $(MY_BITS_IMPLN)

MY_DEVELOPMENT_FILES = $(MY_DDR_CLOCKS_FILES) \
$(MY_DIMM_FILES) $(MY_BITS_FILES)

Then in system.make, I have lines that look like:

################################################## ###############
# 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_DIMM_IMPLN): $(MY_DIMM_FILES)
rm -f implementation/my_dimm_wrapper.ngc
rm -f implementation/cache/my_dimm_wrapper.ngc

$(MY_BITS_IMPLN): $(MY_BITS_FILES)
rm -f implementation/my_bits_wrapper.ngc
rm -f implementation/cache/my_bits_wrapper.ngc

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)

A little extra effort, but well worth it in the end for me.

--
My real email is akamail.com@dclark (or something like that).
Reply With Quote
  #3 (permalink)  
Old 02-06-2005, 11:59 AM
Moti
Guest
 
Posts: n/a
Default Re: EDK+IPIF: Customizing wizard result

Hi Peter,

I think that the easy way for you to update your peripheral
functionally is to re-import your peripheral(using the wizard) after
updating your vhdl files (user_logic.vhd and the peripheral_name??.vhd)
that way (i believe..) it will work just fine.

Regards, Moti.

Reply With Quote
  #4 (permalink)  
Old 02-08-2005, 05:57 PM
Yttrium
Guest
 
Posts: n/a
Default Re: EDK+IPIF: Customizing wizard result

indeed, i did it like that afterwards and i have both (with and without the
wizard) working heheh ...

thanx for the advice ...
"Moti" <[email protected]> wrote in message
news:[email protected] oups.com...
> Hi Peter,
>
> I think that the easy way for you to update your peripheral
> functionally is to re-import your peripheral(using the wizard) after
> updating your vhdl files (user_logic.vhd and the peripheral_name??.vhd)
> that way (i believe..) it will work just fine.
>
> Regards, Moti.
>



Reply With Quote
  #5 (permalink)  
Old 02-08-2005, 05:58 PM
Yttrium
Guest
 
Posts: n/a
Default Re: EDK+IPIF: Customizing wizard result

idd, that was one of the reasons ... i also started to do everything in a
different editor and just compile in EDK ... thanx for the information ...


"Duane Clark" <[email protected]> wrote in message
news:[email protected]...
> Peter Soerensen wrote:
> > Hi,
> >
> > I have created a periperal IP device using the "Create/Import.."
> > wizard of the EDK 6.3. The IP has 4 32 bit registers. I have been
> > able to connect the IP as a slave to the OPB and write a small
> > program that can write and read these registers. However when I make
> > changes in the vhdl files of the IP it seems to have no effect. I
> > tried reading one of the four registers return a constant value but
> > it still returns the value I previously read .. Do I have do
> > soemthing to make the EDK update the IP?
> >

>
> First, let me say that I am not using the EDK GUI except to create an
> initial project. Thereafter, I make all changes with a normal text
> editor, and compile by executing make commands at the command line (on
> Linux). So keep that in mind when reading my comments.
>
> I also noticed that when I made changes to one of the cores in my
> project's pcores directory, that the changes were not automatically
> compiled in. Eventually, I discovered somewhere in the EDK documentation
> that you had to set a flag somewhere for that to happen (I don't
> remember the flag, or where it was in the docs). Unfortunately, once I
> set the flag, EDK insisted on recompiling the core every time, rather
> than when a change had been made to the code.
>
> So instead I hand edited the makefiles. In system_incl.make, I added
> lines that look 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_DIMM_IMPLN = implementation/my_dimm_wrapper.ngc
> MY_DIMM_FILES = pcores/wsoa_dimm_v1_00_a/hdl/vhdl/clock_gen.vhd \
> pcores/wsoa_dimm_v1_00_a/hdl/vhdl/command_statemachine.vhd \
> pcores/wsoa_dimm_v1_00_a/hdl/vhdl/coregen_comp_defs.vhd \
> ...
>
> MY_BITS_IMPLN = implementation/my_bits_wrapper.ngc
> MY_BITS_FILES = pcores/plb_bits_v1_00_a/hdl/vhdl/bits_core.vhd \
> pcores/plb_bits_v1_00_a/hdl/vhdl/plb_ipif_ssp1.vhd \
> pcores/plb_bits_v1_00_a/hdl/vhdl/plb_bits.vhd \
> ...
>
> MY_WRAPPER_NGC_FILES = $(MY_DDR_CLOCKS_IMPLN) \
> $(MY_DIMM_IMPLN) $(MY_BITS_IMPLN)
>
> MY_DEVELOPMENT_FILES = $(MY_DDR_CLOCKS_FILES) \
> $(MY_DIMM_FILES) $(MY_BITS_FILES)
>
> Then in system.make, I have lines that look like:
>
> ################################################## ###############
> # 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_DIMM_IMPLN): $(MY_DIMM_FILES)
> rm -f implementation/my_dimm_wrapper.ngc
> rm -f implementation/cache/my_dimm_wrapper.ngc
>
> $(MY_BITS_IMPLN): $(MY_BITS_FILES)
> rm -f implementation/my_bits_wrapper.ngc
> rm -f implementation/cache/my_bits_wrapper.ngc
>
> 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)
>
> A little extra effort, but well worth it in the end for me.
>
> --
> My real email is akamail.com@dclark (or something like that).



Reply With Quote
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to optimize this comparator for better synthesis result? [email protected] Verilog 3 05-02-2008 06:35 PM
EDK IPIF Wizard : How to get started? Peter Soerensen FPGA 0 02-03-2005 12:43 AM
IPIF Norbert Abel FPGA 1 01-31-2005 05:22 PM
Xilinx ISE 6.1 Clocking Wizard - no hdl generated? Pete Dudley FPGA 1 09-26-2003 10:18 PM


All times are GMT +1. The time now is 12:07 PM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved