When working with custom peripherals in EDK, is there a better way to make
sure changes to the hardware design take effect than trying to re-import
the peripheral? I spent several hours last night debugging a design that
was failing because EDK wasn't loading the updated hardware design (just
logic, no change in external ports). I made sure it did a fresh synth+impl
run every time, but somehow the functionality never changed even though the
hw design did. Even after removing the instance and re-importing and re-connecting
it. I finally got it to work by creating a completely new hw design (in
name only) with the same logical functionality and using it in place of the
previous block.
Matthew Hicks wrote:
> When working with custom peripherals in EDK, is there a better way to
> make sure changes to the hardware design take effect than trying to
> re-import the peripheral? I spent several hours last night debugging a
> design that was failing because EDK wasn't loading the updated hardware
> design (just logic, no change in external ports). I made sure it did a
> fresh synth+impl run every time, but somehow the functionality never
> changed even though the hw design did. Even after removing the instance
> and re-importing and re-connecting it. I finally got it to work by
> creating a completely new hw design (in name only) with the same logical
> functionality and using it in place of the previous block.
I think Project->Rescan User Repositories will solve your problem.
Thanks for trying to help, but it didn't work. I updated a simple piece
of hardware to use a different bit to drive an LED (1/2 as fast blinking),
saved, hit the refresh repositories button, after implementation... same
old results.
---Matthew Hicks
> Matthew Hicks wrote:
>
>> When working with custom peripherals in EDK, is there a better way to
>> make sure changes to the hardware design take effect than trying to
>> re-import the peripheral? I spent several hours last night debugging
>> a design that was failing because EDK wasn't loading the updated
>> hardware design (just logic, no change in external ports). I made
>> sure it did a fresh synth+impl run every time, but somehow the
>> functionality never changed even though the hw design did. Even
>> after removing the instance and re-importing and re-connecting it. I
>> finally got it to work by creating a completely new hw design (in
>> name only) with the same logical functionality and using it in place
>> of the previous block.
>>
> I think Project->Rescan User Repositories will solve your problem.
>
Matthew Hicks schrieb:
> When working with custom peripherals in EDK, is there a better way to
> make sure changes to the hardware design take effect than trying to
> re-import the peripheral? I spent several hours last night debugging a
> design that was failing because EDK wasn't loading the updated hardware
> design (just logic, no change in external ports). I made sure it did a
> fresh synth+impl run every time, but somehow the functionality never
> changed even though the hw design did. Even after removing the instance
> and re-importing and re-connecting it. I finally got it to work by
> creating a completely new hw design (in name only) with the same logical
> functionality and using it in place of the previous block.
>
>
> ---Matthew Hicks
>
>
hello Matthew,
you can for development of IP-Cores set in the .mpd file the OPTION
CORE_STATE to "DEVELOPMENT".
OPTION CORE_STATE = DEVELOPMENT
See also in the EDK doc directory the Manual Platform Specification
Format Reference Manual (psf_rm.pdf) Page 42 (EDK 8.2 Version).
The core will every time synthesized if you change any bit.
Matthew Hicks wrote:
> When working with custom peripherals in EDK, is there a better way to make
> sure changes to the hardware design take effect than trying to re-import
> the peripheral? I spent several hours last night debugging a design that
> was failing because EDK wasn't loading the updated hardware design (just
> logic, no change in external ports). I made sure it did a fresh synth+impl
> run every time, but somehow the functionality never changed even though the
> hw design did. Even after removing the instance and re-importing and re-connecting
> it. I finally got it to work by creating a completely new hw design (in
> name only) with the same logical functionality and using it in place of the
> previous block.
Remove the corresponding generated .ngc files, including the ones in the
cache directory:
rm implementation/my_wrapper.ngc
rm implementation/cache/my_wrapper.ngc
(rm is a Linux command, in case you are on Windows)
When you rerun the synthesis, it will rebuild the files from the new code.
Following your advice, I edited the .mpd file for the core to include the
"CORE_STATE" option. After going back into EDK and refreshing repositories,
the .mpd change was reflected in EDK. After going through the complete implementation
process, everything works as it should. Thanks for this tip (I wish it would
be default behavior, or more evident that this option exists during import),
you saved me many more hours of uneeded hassel. Also, thanks for the reference
where I can read-up more on other options.
---Matthew Hicks
> Matthew Hicks schrieb:
>
>> When working with custom peripherals in EDK, is there a better way to
>> make sure changes to the hardware design take effect than trying to
>> re-import the peripheral? I spent several hours last night debugging
>> a design that was failing because EDK wasn't loading the updated
>> hardware design (just logic, no change in external ports). I made
>> sure it did a fresh synth+impl run every time, but somehow the
>> functionality never changed even though the hw design did. Even
>> after removing the instance and re-importing and re-connecting it. I
>> finally got it to work by creating a completely new hw design (in
>> name only) with the same logical functionality and using it in place
>> of the previous block.
>>
>> ---Matthew Hicks
>>
> hello Matthew,
> you can for development of IP-Cores set in the .mpd file the OPTION
> CORE_STATE to "DEVELOPMENT".
> OPTION CORE_STATE = DEVELOPMENT
>
> See also in the EDK doc directory the Manual Platform Specification
> Format Reference Manual (psf_rm.pdf) Page 42 (EDK 8.2 Version).
>
> The core will every time synthesized if you change any bit.
>
> Best regards,
> Daniel
> Matthew Hicks wrote:
>
>> When working with custom peripherals in EDK, is there a better way to
>> make sure changes to the hardware design take effect than trying to
>> re-import the peripheral? I spent several hours last night debugging
>> a design that was failing because EDK wasn't loading the updated
>> hardware design (just logic, no change in external ports). I made
>> sure it did a fresh synth+impl run every time, but somehow the
>> functionality never changed even though the hw design did. Even
>> after removing the instance and re-importing and re-connecting it. I
>> finally got it to work by creating a completely new hw design (in
>> name only) with the same logical functionality and using it in place
>> of the previous block.
>>
> Remove the corresponding generated .ngc files, including the ones in
> the
> cache directory:
> rm implementation/my_wrapper.ngc
> rm implementation/cache/my_wrapper.ngc
> (rm is a Linux command, in case you are on Windows)
> When you rerun the synthesis, it will rebuild the files from the new
> code.
>