I have currently made a GUI in PyQT5 (the client) and have made a server using C code. The goal is to send input from the GUI to the server, and then the server interfacing with the FPGA to produce a signal that I will read from an oscilloscope (I am using a Red Pitaya as my board). I have currently made the GUI and am able to send data to the server which it successfully receives (while the server running on the red pitaya), however, I am unsure on how to use Vivado 2019.1 to send the data received by the server to a specific input I have created in my block diagram. Im assuming
I have to assign the input pin with one of the red pitaya ports, but unsure where/how to do that in Vivado or in C server.
Basically, can anyone point me in the direction of how to interface my C server code with the input of my block diagram in Vivado.
My red pitaya board is connected to my PC via ethernet and has its own IP address that I use to run its linux server in PuTTY. I run the server in the PuTTY shell using gcc.
EDIT: Sorry about the ambiguity. What I am trying to do is to load the .bit file generated by Vivado to my Red Pitaya, and then run my server (TCP/IP) in the red pitaya linux shell (using PuTTY). The point being, I want to be able to send data I input from the GUI to the server (which will be running on the red pitaya's linux server) and then that data is sent to an input that was made in my Vivado project which would be on the .bit file (the input) that was loaded to the board.
If what Im saying is a unclear or I'm approaching this in the wrong way please let me know!
Here I am assuming the ARM part of the FPGA SoC (your board most probably has Xilinx Zynq 7010 SoC or something similar) reachable now (using ethernet connection).
Firstly, you need to create a custom IP core for your block to make your custom block conform with AXI4 protocol (there is a tool in Vivado which can generate the interface code automatically, you just need to correctly instantiate your module and make proper port connections). Using the block design tool (in Vivado), you need to properly connect your custom IP to the processor IP core (connect AXI master of the processor to the AXI slave of your custom IP core), the tool helps you to make the proper connections.
A header file for your custom design can be automatically generated (for properly addressing). You can use the generated header to write a C code that gets instructions coming from the server, converts to ones that your custom IP can understand and sends them to correct address to be able to control your custom block correctly.
EDIT 1: These YouTube tutorials might be helpful for you: 1, 2, 3