Quick Start
The most Trenz Electronic FPGA Reference Designs are TCL-script based projects.
The "normal" Quartus project will be generated in the subfolder "/quartus/" and the additional software part will be generated in the subfolder "/software/" after executing scripts.
To create project do the following steps:
- Execute "create_project_win.cmd" or "create_project_linux.sh"
- Select your board in "Board selection" section
- Click on "Create project" button
If you don't use predefined quartus installation path, open "design_basic_settings.cmd/.sh" with text editor and set correct quartus installation path.
See Reference Design: Getting Started for more details.
Zip Project Delivery
Zip Name Description
Description | PCB Name |
| Project Name+(opt. Variant) |
| supported Quartus Version |
| Date |
|
---|
Example: | TEI0006 | - | test_board(_noprebuilt) | - | quartus_19.4 | - | 20200229145924 | .zip |
Last supported Release
Type or File | Version |
---|
Quartus Prime | 19.1 lite / 19.4 pro |
Trenz Project Scripts | 19.4.0 |
Trenz <board_series>_devices.csv | 1.0 |
Trenz zip_ignore_list.csv | 1.1 |
Trenz mod_list.csv | 1.1 |
Currently limitations of functionality
- no current limitations of functionality
Directory structure
File or Directory | Type | Description |
---|
<design_name> | work, base directory | Base directory with predefined batch files (*.cmd, *.sh) to generate or open quartus project or program device |
<design_name>/backup/ | generated | (Optional) Directory for project backups |
<design_name>/board_files/ | source | Local list of available board variants (<board_series>_devices.csv) |
<design_name>/console | source | Folder with different command files |
<design_name>/log/ | generated | (Temporary) Directory with quartus log files (used only with predefined commands from tcl scripts, otherwise this logs will be writen into the Quartus work directory) |
<design_name>/prebuilt/ | prebuilt | Contains subfolders for different board variants |
<design_name>/prebuilt/<board_part_shortname> | prebuilt | Directory with prebuilt programming files (*.pof, *.sof or *.jic) for FPGA and different source files for hardware (*.sopcinfo) and software (*.elf) included in subfolders |
<design_name>/prebuilt/<board_part_shortname>/programming_files/ | prebuilt | Directory with prebuilt programming files (*.pof, *.sof or *.jic) |
<design_name>/prebuilt/<board_part_shortname>/hardware/ | prebuilt | Directory with prebuilt hardware sources (*.sopcinfo) |
<design_name>/prebuilt/<board_part_shortname>/software/ | prebuilt | Directory with prebuilt software sources (*.elf) |
<design_name>/quartus/ | generated | (Temporary) Directory where Quartus project is created. Quartus project file is <design_name>.qpf |
<design_name>/scripts/ | source | TCL scripts to build a project |
<design_name>/settings/ | source | (Optional) Additional design settings: zip_ignore_list.csv, mod_list.csv, preset_qsys.qprs |
<design_name>/software/ | generated | (Temporary) Directory with additional software |
<design_name>/source_files/ | source | Directory with source files needed for creating project
|
<design_name>/source_files/quartus/ | source | Source files for Quartus project |
<design_name>/source_files/software/ | source | Source files for additional software |
Command Files
create_project_win.cmd/create_project_linux.sh
Use to create project, open project or program device.
Create project
Select your board from listed modules. To find easier the correct board you can use the filter function. Click on "clear filter" button to reset the filter and show all available modules.
Some links to more information about the board, reference design and create_project_win.cmd/create_project_linux.sh gui.
Messagebox shows different info, warning and error messages.
- Buttons
- Create project→ start create project from source files for selected board in "Board selection".
- Open project → open existing project in quartus prime gui.
- Program device → opens "Program device" window:
Program device
- Select between "Program prebuilt file" (if available, download reference design with prebuilt files is required) and "Program other file" (select your own generated file via "Browse ..." button).
- Buttons:
- Browse ... → choose path to own generated programming file
- Start program device → start program device with selected programming file
- Open programmer GUI → open Quartus Programmer GUI
- Cancel → Quit "Program device" window
- Exit → Quit "Create Project" window
design_basic_settings.cmd/sh
Settings for the *.cmd files. Following settings are avaliable:
- Intel settings:
- QUADIR: Set Intel installation path
- default for quartus lite version: Win OS: C:/intelFPGA_lite - Linux OS: ~/intelFPGA_lite
- default for quartus pro version: Win OS: C:/intelFPGA_pro - Linux OS: ~/intelFPGA_pro
- QUARTUS_VERSION: Current Quartus Version (quartus lite version → 19.1 / quartus pro version → 19.4). Don't change quartus version.
- QUARTUS_EDITION:
- quartus lite version: Lite
- quartus pro version: Pro
- General Settings:
- (optional) DO_NOT_CLOSE_SHELL: Shell do not closed after processing
Design Environment: Usage
Reference-Design: Getting Started
Create project:
- Run "create_project_win.cmd" or "create_project_linux.sh"
- "desgin_basic_settings.cmd/sh" will be copied to basefolder and configured automatically.
- select your Board in "Board selection" section.
- click on "Create project" to generate project for selected board
Manual configuration of the design basic settings (Note: batch/bash files works only in the basefolder of the project, use "create_project_win.cmd"/"create_project_linux.sh" or copy manually)
- Open “design_basic_settings.cmd/.sh” with a text-editor:
Set correct quartus environment:
Example for quartus lite edition:
@set QUADIR=C:/intelFPGA_lite (example for Win OS)
@set QUARTUS_VERSION=19.1
@set QUARTUS_EDITION=Lite
Example for quartus pro edition:
@set QUADIR=C:/intelFPGA_pro (example for Win OS)
@set QUARTUS_VERSION=19.4
@set QUARTUS_EDITION=Pro
Program settings are searched in:
%QUADIR%/%QUARTUS_VERSION%/quartus/
%QUADIR%/%QUARTUS_VERSION%/nios2eds/
Example directory: C:/intelFPGA_pro/19.4/
Attention: Scripts are supported only with predefined Quartus Version!
Programming FPGA or flash memory:
- General steps:
1. Connect your Hardware-Modul to the PC via JTAG
2. Open "create_project_win.cmd/create_project_linux.sh
3. Click on "Program device" button → The "Program device" window opens. - Program with prebuilt files: (download reference design with prebuilt files is required)
4. Select "Program prebuilt file"
5. Click on "Start program device" button - Program with own generated files:
6. Select "Program other file"
7. Click on "Browse ..." to choose path to your own generated file (supported file types: *.jic, *.pof, *.sof)
8. Click on "Start program device" button - Program device via Quartus Programmer:
9. Click on "Open programmer GUI"
10. Select from Programmer top menu: Edit → Hardware Setup, select "Arrow-USB-Blaster [USB0]" and close window
11. Click on "Add File..." and choose correct programming file
12. Enable "Program/Configure" checkbox and click on "Start" to program the device with the selected programming file
Hardware Design
Device list CSV Description
Device list csv file is used for TE-Scripts only.
Name | Description | Value |
---|
ID | ID to identify the board variant of the module series, used in TE-Scripts | Number, should be unique in csv list |
PRODID | Product ID | Product Name |
FAMILY | FPGA family, used in Quartus and TE-Scripts | device family, which is available in Quartus, ex. MAX 10 |
DEVICE | FPGA device, used in Quartus and TE-Scripts | device, which is available in Quartus, ex. 10M08SAU169C8G |
SHORTNAME | Subdirectory name, used for multi board projects to get correct sources and save prebuilt data | name to save prebuilt files or search for sources |
FLASHTYP | Flash typ used for programming Devices via Quartus/LabTools | "<Flash Name from Quartus>|<SPI Interface>" or "NA" , NA is not defined |
FLASH_SIZE | Size of Module Flash | use MB, for ex. "64MB" or "NA" if not available |
DDR_DEV | DDR Module | DDR module name |
DDR_SIZE | Size of Module DDR | use GB or MB, for ex. "2GB" or "512MB" or "NA" if not available |
PCB_REV | Supported PCB Revision | "<supported PCB Revision>|<supported PCB Revision>", for ex. "REV02" or "REV03|REV02" |
SDC Conventions
- All *.sdc from <design_name>/source_files/quartus/ are load into the quartus project on project creation.
Advanced Usage
Attention not all features of the TE-Scripts are supported in the advanced usage!
User defined device list csv file
To modifiy current device csv list, make a copy of the original csv and rename with suffix "_mod.csv", ex.TEI0006_devices.csv as TEI0006_devices_mod.csv. Scripts use modified csv instead of the original file.
User defined Settings
ZIP ignore list:
Files which should not be added in the backup file can be defined in this file: "<design_name>/settings/zip_ignore_list.csv". This file will be loaded automatically on script initialisation.
mod list:
List with commands to modify source files during project creation. (<design_name>/settings/mod_list.csv)
Qsys presets file:
Predefined settings for Qsys IP Components (<design_name>/settings/presets_qsys.qprs)
HDL-Design
HDL files can be saved in the subfolder "<design_name>/hdl/". They will be loaded automatically on project creation. Available formats are *.vhd, *.v and *.sv.
Checklist / Troubleshoot
- Are you using exactly the same Quartus version? If not then the scripts will not work, no need to try.
- Are you using Quartus on Windows PC? Quartus works in Linux also, but the scripts are tested on Windows only.
- Win OS only: Use short path name, OS allows only 256 characters in normal path.
- Linux OS only: Use bash as shell and add access rights to bash files. Check with "ls /bin/sh". It should be display: /bin/sh -> bash. Access rights can be changed with "chmod"
- Are space character on the project path? Somtimes TCL-Scripts can't handle this correctly. Remove spaces from project path.
- Did you have the newest reference design build version? Maybe it's only a bug from a older version.
- On project creation process old files will be deleted. Sometimes the access will be denied by os (synchronisiation problem) and the scripts canceled. Please try again.
- If nothing helps, send a mail to Trenz Electronic Support (support[at]trenz-electronic.de) with subject line "[TE-Reference Designs] ", the complete zip-name from your reference design.
References
- Intel Quartus Prime User Guide: Getting Started (UG-20129)
- Intel Quartus Prime User Guide: Platform Designer (UG-20130)
- Intel Quartus Prime User Guide: Design Compilation (UG-20132)
- Intel Quartus Prime User Guide: Scripting (UG-20144)
Document Change History
To get content of older revision got to "Change History" of this page and select older revision number.
Date | Revision | Quartus Version | Authors | Description |
---|
Error rendering macro 'page-info' Ambiguous method overloading for method jdk.proxy244.$Proxy3578#hasContentLevelPermission.
Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between:
[interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]
[interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] | Error rendering macro 'page-info' Ambiguous method overloading for method jdk.proxy244.$Proxy3578#hasContentLevelPermission.
Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between:
[interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]
[interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] | 19.1 Lite 19.4 Pro | Error rendering macro 'page-info' Ambiguous method overloading for method jdk.proxy244.$Proxy3578#hasContentLevelPermission.
Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between:
[interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]
[interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject] | - Quartus Prime update to 19.1 lite and 19.4 pro
- change to tcl/tk
|
2019-11-11 | v.5 | 18.1 | Thomas Dück
| - add description for *.sh files (Linux OS)
|
2019-10-29 | v.4 | 18.1 | Thomas Dück | |
| All |
| Error rendering macro 'page-info' Ambiguous method overloading for method jdk.proxy244.$Proxy3578#hasContentLevelPermission.
Cannot resolve which method to invoke for [null, class java.lang.String, class com.atlassian.confluence.pages.Page] due to overlapping prototypes between:
[interface com.atlassian.confluence.user.ConfluenceUser, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]
[interface com.atlassian.user.User, class java.lang.String, class com.atlassian.confluence.core.ContentEntityObject]
|
|