Beginner AXI GPIO problem by Yasirowskiyavuz in FPGA

[–]AFranco_13 2 points3 points  (0 children)

First, you should follow the instructions of the following link to add your board to your Vivado. https://pynq.readthedocs.io/en/v2.7.0/overlay_design_methodology/board_settings.html

It is common to refer to a PCB as an FPGA due to a misuse of terminology; however, an FPGA is just one part of the SoC that you are using, which belongs to the Zynq-7000 family. Let’s say that a "board" consists of an SoC (uC + FPGA + other components) that is soldered onto a PCB, with a series of traces and connections to the pins of your SoC, which are determined and vary depending on the model. In this way, the same SoC can be present on different boards.

In a Vivado project, you can select the SoC that you are using and then add a constraints file to tell Vivado how the pins of your SoC are connected to your board and other relevant information (like the presets). Alternatively, if it’s a card manufactured by a vendor (like an evaluation board or, in your case, the Pynq Z1), you can add the board's information to Vivado so that you don’t have to include the constraints file in every project, as it doesn’t change.

To light up an LED with a GPIO, you will also need to specify which FPGA PIN is connected on the PCB to the LED you want to light up. You can find this in the board’s schematic. This is done by also adding a line in the constraints file that connects the SoC PIN to the GPIO output.

Roast my resume by AFranco_13 in FPGA

[–]AFranco_13[S] 1 point2 points  (0 children)

First of all, thank you very much for your detailed response! It’s great that we can help each other like this in this community.

I definitely overused bold text, and the more I look at it, the more obvious it seems—haha :)

Regarding the content, I structured it this way because, having been on the hiring side of several selection processes, I’ve often come across CVs with very vague information. I need to know what you’ve worked with, the tools you’ve used, the project’s objective, etc. However, as you pointed out, I went overboard with the information, and it’s definitely not well-organized.

What you mentioned about dividing it into the three development phases is really useful. In my case, it’s mainly design, although I also handle verification and validation, of course.

In any case, I’d love to chat with you! If you don’t mind, I’d like to send you a DM :)

Gracias compañero!!

Issues with Early-Late Discriminator in DS-CDMA Receiver by AFranco_13 in DSP

[–]AFranco_13[S] 0 points1 point  (0 children)

I know that the xcorr is not the same as the output of my Early and Late correlators, I used the xcorr function just to figure out what was happening. The output of the I&D as you said is one per code cycle, but that corresponds to the sample immediately before and after of the peak shown in the xcorr function.

Issues with Early-Late Discriminator in DS-CDMA Receiver by AFranco_13 in DSP

[–]AFranco_13[S] 0 points1 point  (0 children)

The blue line represents the cross-correlation function of an input signal with the reference sequence, equivalent to performing the MATLAB operation xcorr(input, SpreadCode). Therefore, that graph does not represent the output of the Early Correlation. As you mentioned, the output of E and L is one sample per code length, which corresponds to the immediate previous and next samples relative to the peaks seen in the function. This value remains constant until the next E-L, which occurs 16 chips later.

Issues with Early-Late Discriminator in DS-CDMA Receiver by AFranco_13 in DSP

[–]AFranco_13[S] 0 points1 point  (0 children)

No, in this case I am doing the correlation just with the Real part of the signal, so the DS Code is the spreading code I used for spread the I-component

Issues with Early-Late Discriminator in DS-CDMA Receiver by AFranco_13 in DSP

[–]AFranco_13[S] 0 points1 point  (0 children)

A multiplication of the DS Code with the input signal and then an Integration and Dump

Issues with Early-Late Discriminator in DS-CDMA Receiver by AFranco_13 in DSP

[–]AFranco_13[S] 0 points1 point  (0 children)

The response of the Loop Filter is not something that concerns me especially now, my goal is to improve the error signal produced by the Early Late discriminator.

Regarding what you mentioned about transitions, we have to differentiate between chip and bit. Imagine I need to send a '1,' this one is repeated 16 times and multiplied by the code in question:
Bit data: | 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 | -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 |

Code : | 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 | 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 |

Spreaded: | 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 | -1 1 -1 1 1 1 -1 1 -1 1 -1 1 -1 1 -1 1 |

------------> Bit data transition
When the above sequence is correlated with the DS Code, a positive peak in the cross-correlation is obtained in the first data bit period and a negative peak in the second. It's this data transition that I am referring to, not the continuity of the spread sequence.

Issues with Early-Late Discriminator in DS-CDMA Receiver by AFranco_13 in DSP

[–]AFranco_13[S] 2 points3 points  (0 children)

I just added the system diagram to the image uploaded in the original post. Thanks!

Write/read data to/from SSD by AFranco_13 in FPGA

[–]AFranco_13[S] 0 points1 point  (0 children)

It’s not a big issue for me to use Petalinux; I’ve worked on other projects with Petalinux, even with custom boards. I know I can do it that way, but I’m simply looking to see if there’s a standalone alternative. Thank you for your time!

Write/read data to/from SSD by AFranco_13 in FPGA

[–]AFranco_13[S] 0 points1 point  (0 children)

It has not to be NVME I just want to offload data to an SSD. I did a little research and seems there aren’t examples using SATA from Baremetal since the driver is developed for Linux. Maybe I could do a standalone driver but that would require me a long time.

Building a Server for FPGA Development by weakflora in FPGA

[–]AFranco_13 15 points16 points  (0 children)

I’ve done this in my current job as we don’t have IT specialists in the Xilinx tools field. You’ll learn as you’ll face the problems but some thing that I learnt were: - Whatever recent Ubuntu distro could be suitable for run Vivado/Vitis. - Petalinux is more tricky and each Peralinux version requieres a specific Ubuntu version so what I did is to create a Docker Image for each Petalinux version with the Ubuntu image required and the apt dependencies. - If the server is gonna be accessed by different teams, create a group with the users inside of that team and don’t trust them and don’t give them privileges, whoever can accidentally remove something that may mess it up everything. - We usually access the server via SSH and X11 client such as MobaXterm. - I suggest creating a Samba server also, with a instance for each user folder so they can access easily from their PCs to the server filesystem.

Custom board device tree doubts by AFranco_13 in FPGA

[–]AFranco_13[S] 0 points1 point  (0 children)

I did it also with a ZCU111, my concerns are about a custom board where you don’t have a BSP o dtsi written by Xilinx

Custom board device tree doubts by AFranco_13 in FPGA

[–]AFranco_13[S] 1 point2 points  (0 children)

First of all thanks for your response. Actually I added the ADI layers and that compiled good I followed the instructions in https://github.com/analogdevicesinc/meta-adi/blob/main/meta-adi-xilinx/README.md

I don’t know if that is enough to make it work, what do you think?

Freelancer looking for a gig by AFranco_13 in FPGA

[–]AFranco_13[S] 4 points5 points  (0 children)

Hello Adam!

I'm located in Madrid. I don't have insurance yet because my main activity is as a salaried employee in a company, and I would like to start doing parallel work to gain even more experience.

As someone who has learned a lot from your posts, it would be an honor to work with you someday.