The Zynq is a family of Xilinx FPGAs which incorporate both programmable logic and one or more dedicated ARM Cortex-A9 processors (because of the inclusion of the processor, it can be referred to as a SoC instead of an FPGA).
PL - Programmable Logic. This refers to the programmable FPGA logic (a.k.a. fabric) inside the Zynq-7000.
PS - Processing System. This refers to the Cortex-A9 subsystem inside the Zynq-7000.
There are two main variants of the Zynq, the Zynq-7000S, a cheaper cost-optimised FPGA (with one Cortex-A9 processor), and the Zynq-7000, the more powerful and expensive FPGA (with more logic cores and dual Cortex-A9 processors).
Microblaze, a soft-core CPU architecture provided by Xilinx, can be run on the programmable logic inside the Zynq, in addition to the dedicated Cortex-A9 processor.
The Xilinx Software Development Kit (SDK) can be used to design and debug Zynq FPGAs.
You can run a number of different operating systems on the Cortex-A9 processor inside the Zynq FPGA. These include:
- Yocto-based builds (Xilinx provides device and dev board support through meta-xilinx)
- Ubuntu (limited support, usually with a GUI)
- Arch Linux ARM (the ARM port of Arch Linux)
meta-xilinx is the Yocto layer provided by Xilinx to build Yocto-based images for the Zynq architecture.
The device trees are located at:
In particular, zynq7-base.dtsi located at meta-xilinx/recipes-bsp/device-tree/files/common/ could be of particular interest because it defines hardware such as the ethernet, UART, I2C, CAN, USB, ADC e.t.c.