Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This step guides through the tasks which have to be done inside Intel Quartus Prime. As mentionend in page "Board bring-up overview for TEI0022", this step is for project generation, system setting and output creation. Therefore, the work within this step should be explained in three sections:

  • Project Creation
  • System Setting
  • Output Creation

The section "Project Creation" describes the basic work to create a new project. The second section "System Setting" explains the creation of an HPS instance inside the project. And the third section "Output Creation" shows how to create the result output inside Intel Quartus Prime.

Project Creation

This section guides through the project creation:

Setup of your own project

The project wizard of Quartus lite guides through the setup of a project.

Before using it, it is suggested to create a project directory for storing it via a file browser.
Quartus lite does not create a folder for you. The generation of the bootloaders requires a
SoC EDS Shell with root privileges on a windows systems. Their file system access
is limited to the C drive. Therefore it is best practice for Windows users to store the project
on the C drive.

In essence, the project setup consists pointing to the project directory, naming the project,
and adding a device to it.
This guide uses the folder Project and the project itself is named HPSexample.

...

  • Start Intel Quartus Prime
  • Select:
  • File → New Project Wizard...

...

In the following windows - Project Type - and - Add Files - is nothing further required other
than clicking Next.

In the next window - Family, Device & Board Settings - it is required to select either a
FPGA Device or a Board from the List.
Copy  5CSEMA5F31C8(N)  into the field  Name filter , this reduces the Device list, and select it in the list.

In the window EDA Tool Settings just click Next and Finish in the following window - Summary.

Quartus places the folder db, two files HPSexample.qpf and HPSexample.qsf into the project folder
and the setup is accomplished.

Image Removed  Image Removed

Image Removed

Plattform Designer

- Use the Plattform Designer to configure the resources needed to boot the HPS
(System Memory and SD card access)

- Connect the basic interfaces (Uart and i²c) of the HPS to the board resources

- Compile the project to get the required files and folders for the next steps
HPSexample.sopinfo / PlattformEditorHPS.qip file and (hps_isw_)handoff folder

The Plattform Designer can be opened via  Tools  →  Plattform Designer  and later on, the output must be added into
project. Instead, both steps can be performed through adding a Qsys System File to the project.

File  →  New  ,  select   Qsys System File   and press OK, the Plattform Designer opens in a new window.

...

Now, the following figure should be visible:

Image Added

  • Click Next >
  • Select the project folder and the project name (e.g. HPSexample). Then, click Next >
  • Select an "Empty project" and click Next > in the window "Project Type"
  • Click Next > in the window "Add Files"
  • Select the used FPGA in the window "Family, Device & Board Settings". For the board TEI0022, copy "5CSEMA5F31C8(N)" into the field "Name filter", select the "5CSEMA5F31C8(N)" SoC and click Next >.

Image Added

  • Click Next > in the window "EDA Tool Settings"
  • Click Finish in the window "Summary"
  • The Intel Quartus project is generated and the folder should look like the next figure.

Image Added

System Setting

This section guides through the system setting with the Plattform Designer to generate and configure the HPS according to the physical board resources.

  • Create a Plattform Designer file: File  →  New 
  • Select "Qsys System File"  and press "OK"
  • A new window should open.
  • Look for "hps" inside the search field, as visible in the following figure.

Image Added

  • Select "Arria V/Cyclone V Hard Processor System" via double click from the tree:

...

  • Library → Processors and

...

  • Peripherals → Hard Processor

...

  • Systems → Arria V/Cyclone V Hard Processor System

...

  • The window

...

  • "Arria V/Cyclone V Hard Processor System - hps_0

...

  • " should be opened as visible in the next figure.

Image Added

  • In this window the HPS has to be configured with the following settings:
    • Tab FPGA Interface:
      • Uncheck "Enable MPU standby and event signals" (default)
      • AXI Bridges:

        • FPGA-to-HPS interface width:

...

        • Unused

        • HPS-to-FPGA interface width: 

...

        • Unused

        • Lightweight HPS-to-FPGA interface width:

...

        • Unused

    • Tab Peripheral Pins:
      • Quad SPI Flash Controller

...

        • QSPI pin: HPS I/O Set 0
      • SD/MMC Controller

...

        • SDIO pin: HPS I/O Set 0

...

        • SDIO mode: 4-bit Data

...

      • UART Controllers

      SPI Controllers

      ...

            • UART0 pin: HPS I/O Set 0

      ...

            • UART0 mode: no Flow Control
          • I2C Controllers

      ...

            • I2C0 pin: HPS I/O Set 1

      ...

            • I2C1 pin: HPS I/O Set 0

      ...

        • Tab HPS Clocks:
          • As is / Accept the default values (for both subtabs)
        • Tab SDRAM

      ...

          • Subtab Phy Settings:
            • Memory clock frequency: 333.3 MHz
            • PLL reference clock frequency: 25 MHz

      ...

          • Subtab -

      ...

          • Memory Parameters:

            • Memory device speed grade: 800.0 MHz

            • Total interface width: 32

            • Row Address width: 16

            • Column Address width: 10

          • Memory Initialization Options
            • Memory CAS latency setting: 5

            • ODT Rtt nominal value: RZQ/6

            • Memory write CAS latency settings: 5

      ...

        • Subtab -

      ...

        • Memory Timing:
          • tIS (base): 180

      ...

          • ps
          • tIH (base): 140 ps

      ...

          • tDS (base): 30 ps

      ...

          • tDH (base):

      ...

          • 65

      ...

          • ps
          • tDQSQ: 100

      ...

          • ps
          • tQH: 0.38

      ...

          • cycles
          • tDQSCK

      ...

          • : 225 ps
          • tDQSS: 0.27 cycles

      ...

          • tQSH: 0.4

      ...

          • cycles
          • tDSH: 0.18

      ...

          • cycles
          • tDSS: 0.18

      ...

          • cycles
          • tINIT: 500

      ...

          • us
          • tMRD (tMRW): 4

      ...

          • cycles
          • tRAS: 35.0

      ...

          • ns
          • tRCD: 13.75

      ...

          • ns
          • tRP: 13.75

      ...

          • ns
          • tREFI (tREFIab): 7.8

      ...

          • us
          • tRFC (tRFCab): 350.0

      ...

          • ns
          • tWR: 15.0 ns
          • tWTR: 4

      ...

          • cycles
          • tFAW: 40

      ...

          • ns
          • tRRD: 12.0

      ...

          • ns
          • tRTP: 12.0 n

      ...

        • Subtab - Board Settings:

          • Board Skews

            • Maximum CK delay to DIMM/device:                        0.03

            • Maximum

      ...

            • DQS delay to DIMM/device:                     0.02

            • Minimum delay difference between CK and DQS:      0.09

            • Maximum

      ...

            • delay difference between CK and DQS:     0.16

            • Maximum skew within DQS group:                           0.01

            • Maximum skew between DQS groups:                      0.08

            • Maximum skew within address and command bus:   0.03

      • Click "Finish

      ...

      • " to close the window

      ...

      • "Arria V/Cyclone V Hard Processor System - hps_0".

      ...

      Image Removed

      ...

      • Add connections via clicking into the circle marked with a red rectangle in

      ...

      • the next figure:

        • hps_0 - h2f_reset     →          clk_0 - clk_in_reset

        • clk_0 - clk                →          hps_0 - f2h_sdram0_data

          Image Added
      • The HPS is nearly

      ...

      • configured. Apply some auto functions:
        • System  →  Assign Base Addresses

        • System  →  Assign Interrupt Numbers

        • System  →  Assign Custom Instruction Opcodes

        • System  →  Create Global Reset Network

      ...

      • Click Generate HDL

      ...

      • ... to generate the hardware description language file.
      • Window "Generation" opens.
      • In this window, under "Synthesis", select via

      ...

      • dropdown menu in which

      ...

      • Hardware Language your HDL will be created, Verilog or VHDL,

      ...

      • Uncheck Create timing and resource estimate... .

      ...

      • Check Create block symbole file (.bsf).
      • Click Generate, as visible in the next figure.

      Image Added

      • Save the changes according to the opened saving dialogue, which is shown in the next figure.

      Image Added

      • Name the file (e.g. PlatformEditorHPS.qsys) and press Save, as visible in the next figure.

      Image Added

      • After saving, the message "Save System: Completed successfully." should be shown and the view should be similar to the next figure.

      Image Added

      • Press Close

      ...

      • .
      • Wait until the generation is finished and the message "Generation: Completed successfully

      ...

      • ." is shown according to the next figure.

      Image Added

      • Press Close.
      • Leave

      ...

      • the Plattform Designer by pressing Finish.
      • A notification appears, reminding to add files into the project,

      ...

      • press OK.

      Image Removed Image Removed

      Image Removed Image Removed

      Image Removed Image Removed

      FRAGE: Enable MPU Interrupts auswählen, dann muss das verbunden werden oder Exportiert, wohin / womit?

      Notification opens, add file PlattformEditorHPS.qip / .sip (Not Generated, uncheckt simulate)

      ...

      Image Added


      Close the Plattform Designer by pressing Finish.

      Output Creation

      This section guides through the output creation:

      • Add the file "PlatformEditorHPS.qsys" to the project by using Project  →  Add/Remove Files in Project ...

      ...

      • Click onto the button with three dots (inside the red rectangle) in the opened window as visible in the next figure.

      Image Modified

      Add File PlattformEditorHPS.qip into Quartus via  Project  →  Add/Remove Files in Project ...

      window Settings - HPSexample opens
      Hit  Rectangle ...  and select path:
      C:\temp\Project\PlatformEditorHPS\synthesis  click open
      In window Settings - HPSexample click OK

      In Project Navigator use the Drop-down Menu for changing from Hierarchy to Files and right click onto the file to set it on top

      ...

      • In the "Select File" window select the file ... > PlatformEditorHPS → synthesis → PlatformEditorHPS.qip.
      • Click OK.
      • Change the view from "Hierarchy" to "Files" inside the drop-down menu withing the "Project Navigator".
      • Set file "PlatformEditorHPS.qip" as top-level entity by right clicking onto the file and selecting Set as Top-Level Entity.
      • Select Tools → Tcl Scripts... 
      • Select Project  →  PlatformEditorHPS  →  synthesis  →  submodules  →  hps_sdram_p0_pin_assignments.tcl

      ...

      When finished, new window opens, showing ... click OK
      In TCL Scripts window click Close

      ...

      • and click Run.
      • Confirm the notification and close the previous window through Close.
      • Press Processing  →  Start Compilation

      ...

      • Compilation process has to be finished without errors. Fix errors if there are some.
      • The project folder should look like the following figure.

      Image Added

      After this doing this guide, following files and folders are generated with the given purpose which are relevant for the next guide.

      File/FolderPurpose
      .sopcinfoSOPC Info File containing hardware description for the Device Tree Generator
      hps_isw_handoffFolder containing a hardware description for the Preloader Generator