Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
learn:programmable-logic:tutorials:pmod-ips:start [2019/03/29 22:10] – [Table] jon peyron | learn:programmable-logic:tutorials:pmod-ips:start [2023/04/27 17:10] (current) – [14. Program the Microblaze/ZYNQ Processor] James Colvin | ||
---|---|---|---|
Line 4: | Line 4: | ||
===== Overview ===== | ===== Overview ===== | ||
+ | <WRAP center round tip 60%> | ||
+ | Digilent Pmod IPs are only supported in Vivado and Xilinx SDK versions 2019.1 and earlier. | ||
+ | </ | ||
Digilent provides several IPs that are designed to make implementing and using a Pmod on an FPGA as straightforward as possible. This guide will describe how to use a Pmod IP core in Vivado Microblaze or Zynq design. | Digilent provides several IPs that are designed to make implementing and using a Pmod on an FPGA as straightforward as possible. This guide will describe how to use a Pmod IP core in Vivado Microblaze or Zynq design. | ||
Line 9: | Line 12: | ||
At the end of this tutorial you will have a Vivado design and demo for your FPGA or Zynq platform that uses a Digilent Pmod IP core. | At the end of this tutorial you will have a Vivado design and demo for your FPGA or Zynq platform that uses a Digilent Pmod IP core. | ||
- | The following two dropdown tables show which platforms | + | The following two dropdown tables show which Digilent FPGA system boards |
- | + | ||
- | **Note**: //Issues have been reported regarding designs that include more than one instance of any one Pmod IP. For projects that require more than one of any one Pmod (for example, two Pmod NAVs), please use Vivado 2017.4.// | + | |
--> Platforms Supported # | --> Platforms Supported # | ||
- | ^ Platform | + | ^ Platform |
- | | Arty | + | | [[programmable-logic: |
- | | Arty S7 | Microblaze | + | | [[programmable-logic: |
- | | Arty Z7 | Zynq | | + | | [[programmable-logic: |
- | | Basys3 | + | | [[programmable-logic: |
- | | Cmod A7 | Microblaze | + | | [[programmable-logic: |
- | | Genesys2 | + | | [[programmable-logic: |
- | | Nexys4 | + | | [[programmable-logic: |
- | | Nexys4-DDR | + | | [[programmable-logic: |
- | | Nexys Video | Microblaze | + | | [[programmable-logic: |
- | | Zybo | + | | [[programmable-logic: |
- | | Zybo Z7 | Zynq | | + | | [[programmable-logic: |
+ | | [[programmable-logic: | ||
+ | | [[programmable-logic: | ||
<-- | <-- | ||
Line 32: | Line 35: | ||
--> Pmods Supported # | --> Pmods Supported # | ||
/*Please keep this table alphabetically sorted*/ | /*Please keep this table alphabetically sorted*/ | ||
- | ^ Pmod ^ Interface Type ^ Reference clock frequency (MHz) ^ Reference Clock signal name ^ Interrupt pin name/ | + | ^ Pmod |
- | ^ 8LD | GPIO | + | ^ 8LD |
- | ^ ACL | SPI | 80 | ext_spi_clk | + | ^ ACL |
- | ^ ACL2 | + | ^ ACL2 | SPI | 50 | ext_spi_clk |
- | ^ AD1 | SPI | - | + | ^ AD1 |
- | ^ AD2 | IIC | - | + | ^ AD2 |
- | ^ AD5 | SPI | 50 | - | + | ^ AD5 |
- | ^ ALS | SPI | 50 | ext_spi_clk | + | ^ ALS |
- | ^ AMP2 | + | ^ AMP2 | GPIO |
- | ^ AQS | IIC | - | + | ^ AQS |
- | ^ BB | + | ^ BB | GPIO |
- | ^ BT2 | UART | + | ^ BLE |
- | ^ BTN | GPIO | + | ^ BT2 |
- | ^ CAN | SPI | 100 | + | ^ BTN |
- | ^ CLS | SPI | 50 | ext_spi_clk | + | ^ CAN |
- | ^ CMPS2 | IIC | - | + | ^ CLS |
- | ^ COLOR | IIC | - | + | ^ CMPS2 |
- | ^ DA1 | SPI | 50 | ext_spi_clk | + | ^ COLOR |
- | ^ DHB1 | + | ^ DA1 |
- | ^ DPG1 | + | ^ DHB1 | PWM/ |
- | ^ ENC | GPIO | + | ^ DPG1 | SPI | 50 | ext_spi_clk |
- | ^ GPS | UART | + | ^ ENC |
- | ^ GYRO | + | ^ ESP32 |
- | ^ HYGRO | IIC | - | + | ^ GPS |
- | ^ JSTK | + | ^ GYRO | SPI | 50 | ext_spi_clk |
- | ^ JSTK2 | SPI | 16 | ext_spi_clk | + | ^ HYGRO |
- | ^ KYPD | + | ^ JSTK | SPI | 16 | ext_spi_clk |
- | ^ LED | GPIO | + | ^ JSTK2 |
- | ^ MAXSONAR | + | ^ KYPD | GPIO |
- | ^ | + | ^ LED |
- | ^ MTDS | + | ^ MAXSONAR |
- | ^ NAV | SPI/ | + | ^ MicroSD |
- | ^ OLED | + | ^ MTDS | SPI | - |
- | ^ | + | ^ NAV |
- | ^ R2R | GPIO | + | ^ OLED | SPI/ |
- | ^ RTCC | + | ^ OLEDrgb |
- | ^ SD | + | ^ PIR |
- | ^ SF3 | SPI | 50 | ext_spi_clk | + | ^ R2R |
- | ^ SSR | GPIO | + | ^ RTCC | IIC | - |
- | ^ SWT | GPIO | + | ^ SD | SPI | - |
- | ^ TC1 | SPI | 50 | ext_spi_clk | + | ^ SF3 |
- | ^ TMP3 | + | ^ SSR |
- | ^ WIFI | + | ^ SWT |
+ | ^ TC1 | ||
+ | ^ TMP3 | IIC | - | ||
+ | ^ WIFI | SPI | - | ||
<-- | <-- | ||
----- | ----- | ||
+ | |||
===== Prerequisites ===== | ===== Prerequisites ===== | ||
=== Hardware === | === Hardware === | ||
- | * **A Supported Digilent 7-Series FPGA or Zynq Board** | + | * **Supported Digilent 7-Series FPGA System |
- | * **USB Cables** | + | * **MicroUSB Cable/s** |
* **One or More Supported Digilent Pmods** | * **One or More Supported Digilent Pmods** | ||
=== Software === | === Software === | ||
- | * **Xilinx Vivado | + | * **Xilinx Vivado |
- | * //Vivado 2015.4 is used in this tutorial// | + | |
* //Other versions of Vivado may work, but functionality is not guaranteed// | * //Other versions of Vivado may work, but functionality is not guaranteed// | ||
- | * **Digilent Board Support Files** | + | |
- | | + | |
* **Digilent Vivado IP Library** | * **Digilent Vivado IP Library** | ||
- | * [[https://github.com/ | + | * // |
- | * // | + | |
----- | ----- | ||
<WRAP round important 660px> | <WRAP round important 660px> | ||
- | ===Important.=== | + | ===Important=== |
If the Pmod IP to be used has a README file, be sure to review it before starting this tutorial. This file can be found in the **vivado-library/ | If the Pmod IP to be used has a README file, be sure to review it before starting this tutorial. This file can be found in the **vivado-library/ | ||
</ | </ | ||
Line 107: | Line 111: | ||
==== 1. Create a New Microblaze/ | ==== 1. Create a New Microblaze/ | ||
- | >To determine whether you need to use Microblaze or Zynq for this tutorial, refer to the entry in the **Platforms Supported** dropdown table found in the [[# | + | >To determine whether you need to use Microblaze or Zynq for this tutorial, refer to the entry in the **Platforms Supported** dropdown table found in the [[# |
--> Microblaze # | --> Microblaze # | ||
- | >Follow the [[https:// | + | >Follow the [[:vivado:getting-started-with-ipi:2018.2|Getting Started with Vivado IP Integrator]] tutorial to obtain a basic MicroBlaze block design. |
> | > | ||
> | > | ||
Line 121: | Line 125: | ||
--> Zynq # | --> Zynq # | ||
- | >Follow the **"Getting Started with Zynq" | + | >Follow the [[: |
> | > | ||
> | > | ||
Line 310: | Line 314: | ||
>8.2) The bit file generation will begin. The tool will run // | >8.2) The bit file generation will begin. The tool will run // | ||
> | > | ||
- | >This process can take anywhere from **5 to 60 minutes** depending on your computer and target | + | >This process can take anywhere from **5 to 60 minutes** depending on the computer |
>8.3) After the bitstream has been generated, a message prompt will pop-up on the screen. You don't have to open the Implemented Design for this demo. Just click **Cancel**. | >8.3) After the bitstream has been generated, a message prompt will pop-up on the screen. You don't have to open the Implemented Design for this demo. Just click **Cancel**. | ||
Line 318: | Line 322: | ||
====9. Export the Hardware Design to SDK==== | ====9. Export the Hardware Design to SDK==== | ||
- | > | + | > |
> | > | ||
> | > | ||
> | > | ||
- | >A new file directory will be created in your project directory under **echo_server.SDK** similar to the Vivado hardware design project name. Two other files, //.sysdef// and //.hdf// are also created. This step essentially creates a new SDK Workspace. | + | >A new file directory will be created in the project directory under **echo_server.SDK** similar to the Vivado hardware design project name. Two other files, //.sysdef// and //.hdf// are also created. This step essentially creates a new SDK Workspace. |
- | >9.2) On the main toolbar, click **File** and then **Launch SDK**. Leave both of the dropdown menus as their default //Local to Project// and click **OK**. This will open Xilinx SDK and import | + | >9.2) On the main toolbar, click **File |
> | > | ||
> | > | ||
Line 330: | Line 334: | ||
----- | ----- | ||
- | ====10. | + | ====10. Xilinx SDK==== |
- | >The HW design specification and included IP blocks are displayed in the //system.hdf// file. Xilinx SDK is independent of Vivado, i.e. from this point, you can create your SW project in C/C++ on top of the exported HW design. If necessary, | + | >The HW design specification and included IP blocks are displayed in the "system.hdf" |
> | > | ||
> | > | ||
- | >Within the //Project Explorer// tab on the left, you can see your hardware platform. | + | >Within the //Project Explorer// tab on the left, you can see the hardware platform |
- | >The drivers for the Pmod IP device | + | >The drivers for any Pmod IPs in the design |
----- | ----- | ||
Line 392: | Line 396: | ||
----- | ----- | ||
- | {{tag> | + | {{tag> |