I want to send data via uart from my laptop to the board and then do some data processing on it via verilog on the pl and then send it back to laptop via uart. As far as I understand the uart on the board is connected to the PS so I would have to either stream the data via dma to my IP? Or use the pmod?
Is there no other way to this?
Also I still don’t full understand, having read the documentation, what is meant by something being connected to the PS as opposed to the PL?
Why do you want to send back the data processing from the board to your laptop? I think the UART port is only to reprogram the PL of the board by sending a bitstream to the board. I do not know if the board can send back data to the laptop via this UART port.
For your other question, can you explain what is the PS and what is the PL of the board, what do they mean?
I want to send the processed data back to the laptop, how do you know that it can only receive the bitstream?
PS - processing system, PL - programmable logic
I never saw someone use the UART port to send data from the board to the laptop. Which board you want to use?
“what is meant by something being connected to the PS as opposed to the PL?” When it is connected to the PS, it is connected to the processor, which has an OS and can have many communication protocols.
When it is connected to the PL, you are reprogramming your FPGA part, the LUTs and registers. You need to add communication protocols as there is nothing at the start.
The best would be to send your data from the PL of the board to the PS, and then from the PS to your laptop.
Hi @rgbblue,
You will not be able to use the on-board micro USB for this as this peripheral is mapped to the PS.
You will need to use a PMOD with an UART if you would like to process the UART data directly on the PL.
Mario
Ok - since that is the case, am I correct in saying that I have to stream data to PL with DMA from PS? How can I do this without using python? (i know it is counterintuitive when I have a PYNQ board)
Regarding the PMOD solution - I assume I will have to get a module to connect to the PMOD pins, however, after connection how can I use PMOD in the PL? do you recommend any guides? thank you.
Ok - since that is the case, am I correct in saying that I have to stream data to PL with DMA from PS? How can I do this without using python? (i know it is counterintuitive when I have a PYNQ board)
DMA is one way if you’d like to use AXI4-Stream. You can also access to the data using AXI4 directly. You can check the Vitis embedded development documentation to see how’s done.
If you search for DMA with Vivado or Vitis you’ll find documentation and videos. For instance, AMD Customer Community
I assume I will have to get a module to connect to the PMOD pins, however, after connection how can I use PMOD in the PL? do you recommend any guides? thank you.
You can design your own UART module or use one of the IP available in Vivado. This depends on what you would like to do. If it’s for learning, you may want to implement the UART yourself.
See an example. GitHub - Xilinx/xup_fpga_vivado_flow: AMD Xilinx University Program Vivado tutorial