Overview



Notes :

Refer to http://trenz.org/teg2000-info for the current online version of this manual and other available documentation.

This page describes briefly how to generate the fpga configuration file (Bitstream/cfg file) from the blink-example and how to program the FPGA. For a more detailed description of the tools follow the Quick start section of colognechip ug1002

Key Features

Notes :

  • Add basic key features, which can be tested with the design


  • USB(JTAG/UART)
  • LED

Revision History

Notes :

  • add every update file on the download
  • add design changes on description

DateProject BuiltAuthorsDescription
2024-04-15

TEG2000-test-board-cc-toolchain-win-trenz_20240415.zip

Waldemar Hanemann
  • initial release



Release Notes and Know Issues

Notes :
  • add known Design issues and general notes for the current revision
  • do not delete known issue, add fixed version time stamp if issue fixed


IssuesDescriptionWorkaroundTo be fixed version
No known issues---------


Requirements

Software

Notes :

  • list of software which was used to generate the design


SoftwareVersionNote
Yosys0.37+39needed for RTL synthesis
GateMate EasyConvert Place&Route2024.02-001needed for implementation
openFPGALoaderv.0.11.0needed for loading bitstream into FPGA


Hardware

Notes :

  • list of hardware which was used to generate the design
  • mark the module and carrier board, which was used tested with an *

Design supports following modules:

Module ModelBoard Part Short NamePCB Revision SupportDDRQSPI FlashEMMCOthersNotes
TEG2000-01-P001*--REV01--16MB--

*used as reference


Design supports following carriers:

Carrier ModelNotes
TE0703*We only support TE0703 up until now.

*used as reference


Content

Notes :

  • content of the zip file

Design Sources

TypeLocationNotes
Toolchain<project folder>\binscript-based tools for synthesis, implementation,
bitfile generation and programming
fpga project

<project folder>\workspace\blink\log

<project folder>\workspace\blink\net

<project folder>\workspace\blink\sim

<project folder>\workspace\blink\src

.bat scripts can be used for synthesis & implementation & programming



Prebuilt

Notes :

  • prebuilt files
  • Template Table:

    • File

      File-Extension

      Description

      BIF-File*.bifFile with description to generate Bin-File
      BIN-File*.binFlash Configuration File with Boot-Image (Zynq-FPGAs)
      BIT-File*.bitFPGA (PL Part) Configuration File
      Boot Script-File*.scr

      Distro Boot Script file

      DebugProbes-File*.ltxDefinition File for Vivado/Vivado Labtools Debugging Interface

      Debian SD-Image

      *.img

      Debian Image for SD-Card

      Diverse Reports---Report files in different formats
      Device Tree*.dtsDevice tree (2 possible, one for u-boot and one for linux)
      Hardware-Platform-Description-File*.xsaExported Vivado hardware description file for Vitis and PetaLinux
      LabTools Project-File*.lprVivado Labtools Project File

      MCS-File

      *.mcs

      Flash Configuration File with Boot-Image (MicroBlaze or FPGA part only)

      MMI-File

      *.mmi

      File with BRAM-Location to generate MCS or BIT-File with *.elf content (MicroBlaze only)

      OS-Image*.ubImage with Linux Kernel (On Petalinux optional with Devicetree and RAM-Disk)
      Software-Application-File*.elfSoftware Application for Zynq or MicroBlaze Processor Systems

      SREC-File

      *.srec

      Converted Software Application for MicroBlaze Processor Systems




File

File-Extension

Description

Constraint-File*.ccfFPGA pin constraint for pin-location, naming, input-output setting etc. 
Design source-files*.v  , *.vhdhdl design files describing the fpga functional description and I/O signals
Config File *.cfgConfig File Data for FPGA. Comments included. 
BIT-File*.bitFPGA (PL Part) Configuration File


Download

Reference Design is available on:

It contains the tools, the example project blink and several other sample projects(those are not documented here).

Design Flow & Launch



Notes :
  • Basic Design Steps

  • Add/ Remove project specific description


  1. After downloading the test design go into the directory <project folder>\workspace\blink\
  2. On Windows you can now run the *.bat scripts.
  3. Run synth.bat 
  4. Run impl.bat
  5. Connect the Board (TEG2000 + TE0703 carrier) to power and USB, see Getting started
  6. Run flash.bat to program the on-board qspi flash
  7. Press reset, the green LED D2 should be blinking

System Design



Note:

  • Description of Block Design, Constrains... BD Pictures from Export...


HDL Sources

The design source files exist in verilog and in vhdl.

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity blink is
	port (
		clk : in std_logic;
		rst : in std_logic;
		led : out std_logic
	);
end entity;

architecture rtl of blink is

	component CC_PLL is
	generic (
		REF_CLK         : string;  -- reference input in MHz
		OUT_CLK         : string;  -- pll output frequency in MHz
		PERF_MD         : string;  -- LOWPOWER, ECONOMY, SPEED
		LOW_JITTER      : integer; -- 0: disable, 1: enable low jitter mode
		CI_FILTER_CONST : integer; -- optional CI filter constant
		CP_FILTER_CONST : integer  -- optional CP filter constant
	);
	port (
		CLK_REF             : in  std_logic;
		USR_CLK_REF         : in  std_logic;
		CLK_FEEDBACK        : in  std_logic;
		USR_LOCKED_STDY_RST : in  std_logic;
		USR_PLL_LOCKED_STDY : out std_logic;
		USR_PLL_LOCKED      : out std_logic;
		CLK0                : out std_logic;
		CLK90               : out std_logic;
		CLK180              : out std_logic;
		CLK270              : out std_logic;
		CLK_REF_OUT         : out std_logic
	);
	end component;

	signal clk0    : std_logic;
	signal counter : unsigned(26 downto 0);

begin
	socket_pll : CC_PLL
	generic map (
		REF_CLK         => "10.0",
		OUT_CLK         => "100.0",
		PERF_MD         => "ECONOMY",
		LOW_JITTER      => 1,
		CI_FILTER_CONST => 2,
		CP_FILTER_CONST => 4
	)
	port map (
		CLK_REF             => clk,
		USR_CLK_REF         => '0',
		CLK_FEEDBACK        => '0',
		USR_LOCKED_STDY_RST => '0',
		USR_PLL_LOCKED_STDY => open,
		USR_PLL_LOCKED      => open,
		CLK0                => clk0,
		CLK90               => open,
		CLK180              => open,
		CLK270              => open,
		CLK_REF_OUT         => open
	);

	process(clk0)
	begin
		if rising_edge(clk0) then
			if rst = '0' then
				counter <= (others => '0');
			else
				counter <= counter + 1;
			end if;
		end if;
	end process;

	led <= counter(26);

end architecture;


Constraints

Basic module constraints

## blink.ccf
#
# Date: 2022-10-21
#
# Format:
# <pin-direction> "<pin-name>" Loc = "<pin-location>" | <opt.-constraints>;
#
# Additional constraints can be appended using the pipe symbol.
# Files are read line by line. Text after the hash symbol is ignored.
#
# Available pin directions:
#
# Pin_in
#   defines an input pin
# Pin_out
#   defines an output pin
# Pin_inout
#   defines a bidirectional pin
#
# Available pin constraints:
#
# SCHMITT_TRIGGER={true,false}
#   enables or disables schmitt trigger (hysteresis) option
# PULLUP={true,false}
#   enables or disables I/O pullup resistor of nominal 50kOhm
# PULLDOWN={true,false}
#   enables or disables I/O pulldown resistor of nominal 50kOhm
# KEEPER={true,false}
#   enables or disables I/O keeper option
# SLEW={slow,fast}
#   sets slew rate to slow or fast
# DRIVE={3,6,9,12}
#   sets output drive strength to 3mA..12mA
# DELAY_OBF={0..15}
#   adds an additional delay of n * nominal 50ps to output signal
# DELAY_IBF={0..15}
#   adds an additional delay of n * nominal 50ps to input signal
# FF_IBF={true,false}
#   enables or disables placing of FF in input buffer, if possible
# FF_OBF={true,false}
#   enables or disables placing of FF in output buffer, if possible
# LVDS_BOOST={true,false}
#   enables increased LVDS output current of 6.4mA (default: 3.2mA)
# LVDS_TERM={true,false}
#   enables on-chip LVDS termination resistor of nominal 100Ohm, in output mode only
#
# Global IO constraints can be set with the default_GPIO statement. It can be
# overwritten by individual settings for specific GPIOs, e.g.:
#   default_GPIO | DRIVE=3; # sets all output strengths to 3mA, unless overwritten
#

Pin_in   "clk"  Loc = "IO_SB_A8" | SCHMITT_TRIGGER=true;
Pin_in   "rst"  Loc = "IO_EB_B0"; # SW3
Pin_out  "led"  Loc = "IO_SB_B4"; # D1




Additional Software



No additional software is needed.

App. A: Change History and Legal Notices


Document Change History

To get content of older revision go to "Change History" of this page and select older document revision number.

  • Note this list must be only updated, if the document is online on public doc!
  • It's semi automatically, so do following
    • Add new row below first

    • Copy "Page Information Macro (date)" Macro-Preview, Metadata Version number, Author Name and description to the empty row. Important Revision number must be the same as the Wiki document revision number Update Metadata = "Page Information Macro (current-version)" Preview+1 and add Author and change description. --> this point is will be deleted on newer pdf export template

    • Metadata is only used of compatibility of older exports


DateDocument Revision

Authors

Description

  • add download link to test board subfolder

2024-04-16

v.13

Waldemar Hanemann

  • initial release blinky
--all

--


Legal Notices




<style>
.wiki-content .columnLayout .cell.aside {
width: 0%;
}</style>




Table of contents