So, while we can load a pre-compiled bitstream in moments, and perhaps use devicetree overlays / kernel modules to switch in/out whatever drivers are used to interface with it, any change to the Processing System invalidates all these bitstreams - and I would that it were not so.
What I mean is, each time you reconfigure the daughterboard, you have to rebuild the bitstream for each algorithm, so that when running any of your algorithms, the correct peripheral routing is active.
Not being too familiar with the Zynq as of yet, I am not sure what the implications of the fact the multiplexer itself would reside in PL are. For some moments between switching the bitstream and reloading the multiplexer configuration words, lines would return to some predetermined state. This presumably happens anyway simply due to reprogramming the FPGA - it certainly does with other devices I am familiar with. This can be worked around to some extend using external pull resistors - I'm not sure how viable it will actually be.
But that is only the second and maybe less interesting motivation. For the first, this would be a post-boot configuration, so once the kernel is up, it remains configured based on what you specify in the device tree.
I guess a different take on the first motivation is - rather than dealing with a single project and changing peripheral requirements, consider two projects with common aspects, but different peripheral sets. Note this is somewhat hypothetical and contrived - but say my camera platform uses an SPI accelerometer, and someone's UAV based project uses and I2C based one - not to mention all manner of different peripherals. But in other respects, we were not relying on any other IP cores. So the only difference in our FPGA image was the peripheral map. Now say we both wanted to run some computer vision core. We cannot share a bitstream simply because of the peripheral selection. If we had a multiplexer, all of a sudden this is possible. A less contrived example would be two variants of the same project, supporting different peripheral sets from the same bitstream.Statistics: Posted by yanidubin — Tue Sep 23, 2014 8:57 am
]]>