NIOS II Instantiating the Off-chip Trace Logic

Similar documents
NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip

Introduction to the Altera SOPC Builder Using Verilog Design

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Laboratory Exercise 5

Debugging Nios II Systems with the SignalTap II Logic Analyzer

Disassemble the machine code present in any memory region. Single step through each assembly language instruction in the Nios II application.

NIOS CPU Based Embedded Computer System on Programmable Chip

DDR & DDR2 SDRAM Controller Compiler

Designing with Nios II Processor for Hardware Engineers

University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA

DE2 Board & Quartus II Software

Designing with ALTERA SoC Hardware

3-D Accelerator on Chip

Nios II Embedded Design Suite 7.1 Release Notes

Building A Custom System-On-A-Chip

Creating projects with Nios II for Altera De2i-150. By Trace Stewart CPE 409

TRACE32 Getting Started... ICD In-Circuit Debugger Getting Started... ICD Introduction... 1

DDR & DDR2 SDRAM Controller Compiler

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Nios II Embedded Design Suite 6.1 Release Notes

9. Building Memory Subsystems Using SOPC Builder

DDR and DDR2 SDRAM Controller Compiler User Guide

Chapter 2 Getting Hands on Altera Quartus II Software

QUARTUS II Altera Corporation

ECE332, Week 2, Lecture 3. September 5, 2007

ECE332, Week 2, Lecture 3

SignalTap II with Verilog Designs. 1 Introduction. For Quartus II 13.1

openpowerlink FPGA Slave Reference Design Author: Zelenka Joerg Version: V1.0 Date: 27/10/2009 User Guide.doc

HyperBus Memory Controller (HBMC) Tutorial

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND:

4. SOPC Builder Components

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE

Employing Multi-FPGA Debug Techniques

DDR & DDR2 SDRAM Controller Compiler

Support for RISC-V. Lauterbach GmbH. Bob Kupyn Lauterbach Markus Goehrle - Lauterbach GmbH

4K Format Conversion Reference Design

Customizable Flash Programmer User Guide

Designing Embedded Processors in FPGAs

Using the SDRAM on Altera s DE1 Board with Verilog Designs. 1 Introduction. For Quartus II 13.0

Designing with ALTERA SoC

ECE-6170 Embedded Systems Laboratory Exercise 3

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2

Physics 536 Spring Illustrating the FPGA design process using Quartus II design software and the Cyclone II FPGA Starter Board.

Embedded Systems. "System On Programmable Chip" Design Methodology using QuartusII and SOPC Builder tools. René Beuchat LAP - EPFL

DESIGN OF STANDARD AND CUSTOM PERIPHERAL USING NIOS II PROCESSOR

EARTH PEOPLE TECHNOLOGY. ODIN-LINK BLE + MAXPROLOGIC Development System User Manual

Using Tightly Coupled Memory with the Nios II Processor

Introduction to VHDL Design on Quartus II and DE2 Board

DDR & DDR2 SDRAM Controller Compiler

Digital Systems Design. System on a Programmable Chip

EE 231 Fall EE 231 Lab 2

NIOS Character. Last updated 7/16/18

Microtronix Avalon I 2 C

NIOS II Pixel Display

PRELAB! Read the entire lab, and complete the prelab questions (Q1-Q3) on the answer sheet before coming to the laboratory.

Chapter 2: Hardware Design Flow Using Verilog in Quartus II

Application Note Debug Cable XC800

Tools for Intel x86/x64

Introduction to the Altera Qsys System Integration Tool. 1 Introduction. For Quartus Prime 15.1

SOPC LAB1. I. Introduction. II. Lab contents. 4-bit count up counter. Advanced VLSI Due Wednesday, 01/08/2003

Terasic DE0 Field Programmable Gate Array (FPGA) Development Board

MICROTRONIX AVALON MOBILE DDR MEMORY CONTROLLER IP CORE

Embedded Systems. "System On Programmable Chip" Design Methodology using QuartusII and SOPC Builder tools. René Beuchat LAP - EPFL

System Debugging Tools Overview

Introduction to the Qsys System Integration Tool

FPGA for Software Engineers

Embedded Systems. "System On Programmable Chip" NIOS II Avalon Bus. René Beuchat. Laboratoire d'architecture des Processeurs.

TUTORIAL: Adding non-traditional properties for embedded systems design Indira Jayaram, 2011

Microtronix Firefly II Module

1 Do not confuse the MPU with the Nios II memory management unit (MMU). The MPU does not provide memory mapping or management.

Simple Excalibur System

AN 462: Implementing Multiple Memory Interfaces Using the ALTMEMPHY Megafunction

Design of Embedded Hardware and Firmware

University of Florida EEL 3701 Dr. Eric M. Schwartz Department of Electrical & Computer Engineering Revision 0 12-Jun-16

Microtronix ViClaro II Development Board

Contents. Version 1.01

CSE P567 - Winter 2010 Lab 1 Introduction to FGPA CAD Tools

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Laboratory Exercise 7

Application Note Debug Cable C166

System Cache (CMS-T002/CMS-T003) Tutorial

Laboratory Exercise 8

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide

Nios II Embedded Design Suite 6.0 Service Pack 1 Release Notes

Proposal for an Open Source Flash Failure Analysis Platform (FLAP)

Altera EP4CE6 Mini Board. Hardware User's Guide

ARM-ETM Programming Dialog

Microtronix ViClaro IV GX Camera Link Development Kit

Laboratory 4 Design a Muti-bit Counter and Programming a FPGA

Tutorial for Altera DE1 and Quartus II

Non-Volatile Configuration Scheme for the Stratix II EP2S60 DSP Development Board

Synaptic Labs HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices

Lab 2: Introduction to Verilog HDL and Quartus

Laboratory Exercise 1

TKT-2431 SoC design. Introduction to exercises. SoC design / September 10

Laboratory Exercise 3

Transcription:

NIOS II Instantiating the Off-chip Trace Logic TRACE32 Online Help TRACE32 Directory TRACE32 Index TRACE32 Documents... ICD In-Circuit Debugger... Processor Architecture Manuals... NIOS... NIOS II Application Note... NIOS II Instantiating the Off-chip Trace Logic... 1 Disable Automatic PLL Instantiation... 3 Using Extra Registers for Better Timing... 4 Multiplexing Trace Outputs of Multiple CPUs... 5 NIOS II Instantiating the Off-chip Trace Logic 1

NIOS II Instantiating the Off-chip Trace Logic Version 22-Mar-2018 First of all, you have to tell the SOPC Builder in the Quartus II design software from Altera, that you want to enable Off-Chip tracing for your core. This is done by selecting Level 4 in the JTAG Debug Module tab of the CPU settings window in the SOPC Builder. After the SOPC Builder regenerated your system, you will have some additional off chip trace related output pins on your system, which are called: jtag_debug_offchip_trace_clk jtag_debug_offchip_trace_data[17..0] jtag_debug_trigout Trace clock for the trace data. 18 Bit trace data. Trigger for off chip trace. NIOS II Instantiating the Off-chip Trace Logic 2

Disable Automatic PLL Instantiation Without further modifications a compilation of the system will automatically implement an additional PLL, which is used to clock the internal trace buffer logic of the system. This PLL is needed, because the internal trace buffer logic needs a clock, which has to have twice the frequency of the cpu clock. Especially for Cyclone devices this automatic PLL instantiation is not optimal, because Cyclone devices only have two PLLs available. Another issue is that you don t get access to the trace buffer clock if the PLL is instantiated automatically. Having access to this clock enables the implementation of further improvements. To use the resources more efficiently and to get access to the clock for the internal trace buffer logic do the following steps: 1. Close the SOPC Builder. 2. Open the.ptf file, in which the SOPC Builder stores all settings for your system 3. In this file, look for a line which looks like oci_embedded_pll = 1 ; and change this line to oci_embedded_pll = 0 ; If you can t find a line like the above (this happens with older Quartus II versions), look for a line which looks like oci_offchip_trace = 1 and insert a new line under the above line, with the content oci_embedded_pll = 0 ; 4. Open the SOPC Builder and Re-Generate the system. In recent Quartus II versions (7.1 and later) you will have to modify the.sopc file instead of the.ptf file.in this file you have to: Look for a line which reads: <parameter valuestring= true name = debug_embeddedpll /> and change this line to: <parameter valuestring= false name = debug_embeddedpll /> After this modification, you should let the SOPC builder regenerate your system. Then you should have an additional input which is called clkx2_to_the_ This extra input is used to clock the system internal trace buffer logic. You have to connect a clock to it, which has twice the frequency of the cpu clock. The simplest way to achieve that is to use the PLL which generates the cpu clock and add an additional output to this PLL, which has twice the frequency of the CPU clock. In this way you only need an additional PLL output to use the off chip trace and not a whole additional PLL. NIOS II Instantiating the Off-chip Trace Logic 3

Using Extra Registers for Better Timing Another modification is needed to guarantee a unified timing on the trace pins and to improve the timing relations of the trace clock and the trace data. To achieve this we recommend to insert a buffer stage between the trace outputs of your system and the output pins. LAUTERBACH provides such a buffer stage on the DVD in the directory ~~/demo/nios/trace. When this buffer stage is used it is ensured that the trace pins use IO registers, which guarantees a uniform timing; additionally the trace clock is center aligned to the trace data eyes, which improves the reliability of the trace data a lot. Additionally the extra buffer stage improves the maximum frequency of the design, because the extra layer of registers simplifies fitting. Here is an example of an extremely compact design schematic which uses an Off-Chip trace port. NIOS II Instantiating the Off-chip Trace Logic 4

Multiplexing Trace Outputs of Multiple CPUs Recently multi-core designs become more and more popular. If you implement a Design which contains multiple Nios II CPUs and several of the Nios II CPUs implement an off-chip Trace Port, then LAUTERBACH offers a solution to multiplex these outputs to only one set of Trace Pins. With this approach it is possible to decide which CPU will be selected to output its trace via the off chip trace pins. To use this multiplexer approach, several constraints have to be met: One CPU clock No internal Trace PLL All CPUs, which you want to connect to the off-chip trace pins have to run with the same CPU clock. You have to follow the above recommendation about Disabling automatic PLL instantiation. So you need access to the trace clock, which runs with twice the frequency of the CPU clock. Here is an excerpt of an extremely compact design schematic, which shows how to include the Trace Multiplexer: NIOS II Instantiating the Off-chip Trace Logic 5

The Trace Multiplexer module can also be found in the demo/nios/trace on the CD. If your design contains a Trace Multiplexer module, then in the PowerView Software you can switch the TraceMultiplexer to the CPU you are currently debugging with the command SYStem.Option TracePortEna On. This will automatically happen, when you only debug one CPU at the same time. Since only one CPU can be switched onto the Trace Port, the command will be ignored, if you already assigned the trace port to another CPU. In this case you first have to disable the use of the TracePort in all CPUs, before you can enable the TracePort for a different CPU. NIOS II Instantiating the Off-chip Trace Logic 6