Closed jhegeman closed 4 years ago
Thanks again for opening this pull request!
I spotted that the two main files implementing the slave - i.e. components/ipbus_util/firmware/hdl/{ipbus_device_dna_usp.vhd,device_dna_usp.vhd}
- both have a _usp
suffix. However, it looks to me that their implementations could also work on Ultrascale devices (here, I'm assuming that the DNA_PORTE2
primitive can be used on Ultrascale). Is that the case? If so, it may be clearer to alter/remove _usp
suffix (but beyond just shortening to _us
, which could be interpreted as "Ultrascale (not U+) only", I haven't thought of a better alternate suffix this evening - suggestions welcome).
Hi Tom,
This one is now rebased on your master after #144 got merged, and updated along the lines of what was discussed in #144. I tried the instructions from scratch, and tweaked them a bit. Should be good to go now.
Cheers, Jeroen
Thanks again for opening this pull request!
I spotted that the two main files implementing the slave - i.e.
components/ipbus_util/firmware/hdl/{ipbus_device_dna_usp.vhd,device_dna_usp.vhd}
- both have a_usp
suffix. However, it looks to me that their implementations could also work on Ultrascale devices (here, I'm assuming that theDNA_PORTE2
primitive can be used on Ultrascale). Is that the case? If so, it may be clearer to alter/remove_usp
suffix (but beyond just shortening to_us
, which could be interpreted as "Ultrascale (not U+) only", I haven't thought of a better alternate suffix this evening - suggestions welcome).
Myeah.... Not sure about that one. For consistency we should probably append both '_us' and '_usp', but we will never be able to keep up with that kind of naming. (For consistency they should probably also contain 'xilinx' (even though that is inferred by the US(+) part).)
But the DNA_PORTE2
primitive indeed exists in both UltraScale and UltraScale+ families.
Should we remove the suffix completely under the pretext that 'no information is better than misleading information'?
Actually, after a bit more thought: I'd say that we should be explicit and keep both the 'us' and 'usp' suffixes. It looks a bit clumsy, but it's the only complete and consistent way to handle this, as far as I see.
To make sure there's no confusion: By keep both suffixes, you mean e.g. naming the IPbus slave ipbus_device_dna_us_usp
?
Yes, indeed.
OK, thanks. Yes, I agree that it's the simplest way to avoid (or at least minimise) ambiguity.
So, to summarise, the resulting changes would be:
components/ipbus_util/firmware/hdl/{ipbus_device_dna_usp.vhd,device_dna_usp.vhd}
to components/ipbus_util/firmware/hdl/{ipbus_device_dna_us_usp.vhd,device_dna_us_usp.vhd}
Also, can you remove projects/example/firmware/cfg/top_vcu118_sgmii_device_dna.dep
, since I think that's leftover from before the SYSMON & DNA example designs were merged?
Ok, never been closer. Let's see what the tests make of this version.
run tests, please
One other minor thing: Any thoughts on changing the address tables nodes byte{0,1,2}
to word{0,1,2}
?
Although it's a relatively minor issue compared to everything discussed so far, I thought I should ask the question now, as if it's only asked after the next release it might lead to a backward incompatible change affecting more people.
Good point. Done.
Branch has been merged. Thanks again for implementing the refinements requested above!
This should address the IPbus wrapper for the Xilinx UltraScale(+) device DNA discussed in issue #151.
Instructions on building and running the 'device DNA' example design and script.