Designing PCBs for FPGA on FPGA

Designing PCBs for FPGA on FPGA

Installed various EE design applications (including KiCad) on the Ubuntu 22.04 desktop image on FPGA (Zynq™ UltraScale+™ MPSoC) and designed PCBs with it.

Steps

Download the latest boot firmware for K260 from the Kria SOM wiki (https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/1641152513/Kria+SOMs+Starter+Kits#K26-Boot-Firmware-Updates) and upload the firmware to the KV260’s QSPI flash memory using the instructions provided with the boot image recovery tool.

Designing PCBs for FPGA on FPGA
Designing PCBs for FPGA on FPGA

Create Ubuntu 22.04 SD Card for FPGA

After updating the boot firmware, you can directly download the image file for Krias’s Ubuntu 22.04 desktop image from the Canonical website (https://ubuntu.com/download/amd):

Designing PCBs for FPGA on FPGA

Then use a tool to flash the SD card image. Here, balenaEtcher is recommended.

Designing PCBs for FPGA on FPGA

Choose a larger SD card (>= 32GB), as you will need to install other software later.

Hardware Setup

Connect the keyboard, mouse, and HDMI display to the KV260, and connect the Ethernet to the router:

Designing PCBs for FPGA on FPGA
Designing PCBs for FPGA on FPGA

Preparing the Ubuntu Environment

First, the PWM logic in the FPGA bitstream conflicts with the fan control logic in Ubuntu. Therefore, to ensure that the CPU fan runs at full speed continuously, you need to stop the fancontrol service in Ubuntu:

ubuntu@kria:~$ sudo service fancontrol stop

Xlnx -config (https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/2057043969/Snaps+-+xlnx-config+Snap+for+Certified+Ubuntu+on+Xilinx+Devices) is a command-line tool that needs to be installed to configure the system according to ZynqMP specific requirements (e.g., custom Xilinx gstreamer):

ubuntu@kria:~$ sudo snap install xlnx-config --classic --channel=2.x
ubuntu@kria:~$ sudo xlnx-config.sysinit

Finally, update and upgrade the system:

ubuntu@kria:~$ sudo apt update
ubuntu@kria:~$ sudo apt upgrade

Restart the FPGA to ensure that all changes take effect.

Installing KiCad

Install the entire science-electronics package to try out other commonly used applications such as GnuRadio, Fritzing, etc.

ubuntu@kria:~$ sudo apt-get install science-electronics
Designing PCBs for FPGA on FPGA

Using KiCad for PCB Design

Designing PCBs for FPGA on FPGA

Use the content provided in the KiCad default library to layout a simple common-emitter BJT circuit driving an LED.

Designing PCBs for FPGA on FPGA

The layout has no issues, although it is not as flexible as on a PC, it is definitely sufficient.

Designing PCBs for FPGA on FPGA

After completing the layout, the 3D rendering tool takes some time to load:

Designing PCBs for FPGA on FPGA
Designing PCBs for FPGA on FPGA

Conclusion

Honestly, this is a start: designing PCBs for FPGA using FPGA. Considering the powerful scalability of FPGA, you can even design acceleration for your software~

Designing PCBs for FPGA on FPGA

Leave a Comment

×