FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.

PCIe BAR offset

Honored Contributor II



I use DMA chaining app generated by MegaWizard. 

Inside I use  

find_mem_bar(bar_table, 6'b000001, 28, rc_slave_bar), 

which finds my first BAR (that is BAR0 256 MBytes, addr: 10000000, Non-Prefetchable). 


Having found the BAR, I try this: 

ebfm_barwr_imm(bar_table, rc_slave_bar, 17'h1FFFC, 32'hDEAD_BEEF, 4, 0), 

where DEAD_BEEF is my data, 4 is length, 0 is tclass, 17'h1FFFC is offset. 


Well, it works, but I can't use 1FFFF offset size - it won't send anything. I think that's because only 1FFFC can be divided by 4, by why is that so? What do I do if I need offset that is not dividable by 4? 


If the offset can not be divided by 8 (but can be by 4), sop and eop come simultaneously, and there is some mess in the wave (like with 1FFFC). Why? 

Does it mean that I can only use offsets that are aligned like this?
0 Kudos
0 Replies