04-01-2009 09:28 AM
Is it possible to change the BAR size after having already configured the core from coregen?
In other words, is there any way to change the amount of the requested memory space without having first to re-run coregen?
Thanks in advance,
04-02-2009 12:04 AM
As far as I know, there are some informations maybe useful to you.
1.In PCIE Specification, the root read memory space request in your design stored in a register at the initializing process, and then give the PCIE endpoint a memory space less or equal to the request. I mean it is quite possible for the Endpoint to get more memory space than it required only if the root are designed to do so in your system.
2.The function of memory space is that when a TLP using memory-routing method such as a memory write TLP, the bridge transmit the TLP to the correct endpoint according to the memory space. So a large memory space is not necessary, unless you are designing a RAM or such thing like that. You can defer different TLP by the content rather than by memory address.
note :I am a non-native English speaker, but I've tried to inllustrate my view as clear as possible. If there are any mistakes plz point out, thank you very much.
04-02-2009 09:05 AM
Unfortunately, no, there is no way to change the size of space requested by a BAR in the Endpoint core without re-generating via coregen. The read/write-able bits in each BAR in the core are set when the core is generated.
01-30-2014 01:56 PM
The BAR mask is auto-generated by Coregen... But can you simply change the value in the source directly? For example, I have a PCIe Endpoint core entitled s6_pcie_v2_4. Can't I change the value of BAR0 directly in that source without regenerating the core? I think I can, because my host is recognizing the new allocated space after changing just that parameter. Are there any other dependencies other than the BAR parameters in the core source?
01-30-2014 04:06 PM
I've exposed the the BAR1/BAR0 paremeters from the generated core, and reconfigured them at my top level design, with no issues.
We do this often with Xilinx "wizard" generated IP. Sometimes if we're unsure we'll do A/B comparison with two autogenerated cores to confirm that the auto-generated core is just changing the parameter.
More often we just give the code a quick inspection, expose the paramater, and move on without the A/B comparison check.
01-31-2014 07:13 AM