Where to find Red Pitaya's FPGA memory map exact pin addresses?
Posted: Thu Apr 04, 2024 7:05 pm
Hello , complete beginner to Red Pitaya here... I am helping out on a project with red pitaya and I am trying to program the Red Pitaya FPGA in C to customize the functionality of some FPGA pins. However, I need the exact address for the FPGA pins in order to do so.
I had been searching everywhere, trying to look for an exact mapping of each pin on the Red Pitaya FPGA in the Red Pitaya github, forum, documentation, schematics and even the Zynq7 docs.
I am aware that in the Red Pitaya docs they showed only the range of addresses for a specific module (housekeeping, oscilloscope, etc.) here: https://redpitaya.readthedocs.io/en/lat ... v0.94.html
but never showing the specific address for a specific FPGA pin.
Similarly, in this code I found,
//set up shared memory (please refer to the memory offset table)
slcr = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0xF8000000);
cfg = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40000000);
sts = mmap(NULL, synconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd,
0x40001000);
rx_data = mmap(NULL, 16*sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40010000);
tx_data = mmap(NULL, 16*synconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40020000);
pulseq_memory = mmap(NULL, 16*synconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40030000);
seq_config = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40040000);
They assign the byte address of the different registers in the red pitaya to the variable, allowing us to control the I/O pins and RF ports using those variables.
But it does not say exactly which address is to which FPGA pin...
Would very much appreciate it if anyone can share some insights as well as point me in the direction where I can find the exact address to each Red Pitaya FPGA pin. Thanks in advance!
I had been searching everywhere, trying to look for an exact mapping of each pin on the Red Pitaya FPGA in the Red Pitaya github, forum, documentation, schematics and even the Zynq7 docs.
I am aware that in the Red Pitaya docs they showed only the range of addresses for a specific module (housekeeping, oscilloscope, etc.) here: https://redpitaya.readthedocs.io/en/lat ... v0.94.html
but never showing the specific address for a specific FPGA pin.
Similarly, in this code I found,
//set up shared memory (please refer to the memory offset table)
slcr = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0xF8000000);
cfg = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40000000);
sts = mmap(NULL, synconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd,
0x40001000);
rx_data = mmap(NULL, 16*sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40010000);
tx_data = mmap(NULL, 16*synconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40020000);
pulseq_memory = mmap(NULL, 16*synconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40030000);
seq_config = mmap(NULL, sysconf(_SC_PAGESIZE), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x40040000);
They assign the byte address of the different registers in the red pitaya to the variable, allowing us to control the I/O pins and RF ports using those variables.
But it does not say exactly which address is to which FPGA pin...
Would very much appreciate it if anyone can share some insights as well as point me in the direction where I can find the exact address to each Red Pitaya FPGA pin. Thanks in advance!