Forum Discussion
Approach to changing IO assignments in Qsys with script
- 2 years ago
Just to close this item out here is what I ended up doing, best way? probably not.
I decided against using the revision feature because we use git version control using it would complicate things. If we didn't use git I would have definitely looked into using it.
So what I ended up with is a bash script that copies each of the uniquely named .qsys files to the soc_system.qsys file and runs a makefile which builds the fpga. Only the uniquely named .qsys files are checked into git, the soc_system.qsys is not. If the I/O ever needs to be modified the working pair of uniquely named .qsys files will need to be updated manually but that is very rare in our system (we are in production support mode).
Thanks for the different ideas.
The part I want to change is stored in .qsys file
<parameter name="LOANIO_Enable">No,No,No,No,No,No,No,No,No,No,No,No,No,Yes,No,Yes,No,Yes,Yes,No,Yes,No,No,Yes,No,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,Yes,No,Yes,No,No,No,No,No,Yes,No,Yes,No,No,No,Yes,Yes,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No</parameter>
My goal is to script the whole dual build so it's a simple matter to build after code changes. I'll look into the revision thing. Thanks for the info.
OK you didn't mention that this was loaner I/O for the HPS and you don't mention which device this is. Loaner I/O are fixed pins from the HPS that the FPGA has access to as GPIO. The use of those pins is governed by the first-stage bootloader for the processor, which is created based on the parameter settings for the HPS in Platform Designer.
Are you saying you want to keep using the same physical pins and connect different signals to them or you want to use completely different pins for different revisions? The revisions thing may work but if you need to change which physical pins should be used as loaner I/O, you have to change the HPS parameters, regenerate the Platform Designer system, and recreate the bootloader.
Not sure why you need to switch between two setups this often. I'd just create two projects since this is essentially two different boards you are designing for.