Atmel and the use of Verilator to create uc Device Models

Similar documents
Native route discovery algorithm

AVR42789: Writing to Flash on the New tinyavr Platform Using Assembly

Atmel QT600 Quick Start Guide Touch Solutions

AT03975: Getting Started with SAM L21. Descripton. Features. SMART ARM-Based Microcontroller APPLICATION NOTE

AT06467: Getting started with SAM D09/D10/D11. Features. Description. SMART ARM-based Microcontrollers APPLICATION NOTE

USER GUIDE. ZigBit USB Stick User Guide. Introduction

AT09381: SAM D - Debugging Watchdog Timer Reset. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE

AT60142H/HT. Rad-Hard 512Kx8 Very Low Power CMOS SRAM ERRATA-SHEET. Active Errata List. Errata History. Abbreviations. 1.

Hardware Prerequisites Atmel Xplained Pro Evaluation Kit Atmel WINC1500 extension USB Micro Cable (TypeA / MicroB)

OLED display with pixels resolution Ambient light sensor CPU load Analog filter Quadrature Encoder with push button Digital I/O

APPLICATION NOTE. AT03324: Atmel REB212BSMA-EK Quick Start Guide. Atmel MCU Wireless. Introduction

USER GUIDE. Atmel QT1 Xplained Pro. Preface

APPLICATION NOTE. Atmel AT03261: SAM D20 System Interrupt Driver (SYSTEM INTERRUPT) SAM D20 System Interrupt Driver (SYSTEM INTERRUPT)

SAM4 Reset Controller (RSTC)

APPLICATION NOTE. Atmel AVR1638: XMEGA RTC Calibration. 8-bit Atmel Microcontrollers. Features. Introduction

ATAES132A Firmware Development Library. Introduction. Features. Atmel CryptoAuthentication USER GUIDE

AVR1518: XMEGA-A1 Xplained Training - XMEGA Clock System. 8-bit Atmel Microcontrollers. Application Note. Prerequisites.

ATECC108/ATSHA204 USER GUIDE. Atmel Firmware Library. Features. Introduction

APPLICATION NOTE. Atmel AT03160: Migrating Bootloader from ATxmega128A1 to other Atmel XMEGA Devices. Atmel AVR XMEGA. Features.

USER GUIDE EDBG. Description

AVR1503: Xplain training - XMEGA Programmable Multi Interrupt Controller 8-bit Microcontrollers Application Note Prerequisites

USER GUIDE. Atmel QT6 Xplained Pro. Preface

Smart RF Device Family - Getting Started Guide. Features. Description. References ATAN0115 APPLICATION NOTE

USER GUIDE. Atmel Segment LCD1 Xplained Pro. Preface

Atmel AVR1619: XMEGA-B1 Xplained Demonstration. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

APPLICATION NOTE. AT6486: Using DIVAS on SAMC Microcontroller. SMART ARM-Based Microcontroller. Introduction. Features

AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Features. Introduction. AVR 8-bit Microcontrollers APPLICATION NOTE

APPLICATION NOTE. Atmel AT01080: XMEGA E Schematic Checklist. Atmel AVR XMEGA E. Features. Introduction

APPLICATION NOTE. Atmel QT4 Xplained Pro User Guide ATAN0114. Preface

EDBG. Description. Programmers and Debuggers USER GUIDE

MySonicWall Secure Upgrade Plus

QT3 Xplained Pro. Preface. Atmel QTouch USER GUIDE

QT2 Xplained Pro. Preface. Atmel QTouch USER GUIDE

Cloud Access Manager How to Deploy Cloud Access Manager in a Virtual Private Cloud

APPLICATION NOTE. Generating Random Secrets. ATSHA204A, ATECC108A, and ATECC508A. Description. Topics

Ethernet1 Xplained Pro

AT11512: SAM L Brown Out Detector (BOD) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE

APPLICATION NOTE. Atmel AT03304: SAM D20 I 2 C Slave Bootloader SAM D20. Description. Features

AT03262: SAM D/R/L/C System Pin Multiplexer (SYSTEM PINMUX) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE

AVR1315: Accessing the XMEGA EEPROM. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

APPLICATION NOTE. Atmel AT02260: Driving AT42QT1085. Atmel QTouch. Features. Description

AVR42772: Data Logger Demo Application on XMEGA A1U Xplained Pro. Introduction. Features. AVR XMEGA Microcontrollers APPLICATION NOTE

AVR32752: Using the AVR32 UC3 Static Memory Controller. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

AVR1303: Use and configuration of IR communication module. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

Atmel ATMXT143E touchscreen controller Capacitive touch ITO 320 x 240 pixel LCD display with SPI interface LED backlight

ATtiny817 QTouch Moisture Demo User Guide. Description. Features. AVR 8-bit Microcontrollers USER GUIDE

USER GUIDE. Atmel OLED1 Xplained Pro. Preface

One Identity Active Roles 7.2

USER GUIDE. ATmega168 Xplained Mini User Guide. Introduction

One Identity Quick Connect Express

Atmel LF-RFID Kit Comparison Chart. Application Note. Atmel LF-RFID Kit Comparison Chart. 1. Description

One Identity Starling Two-Factor Authentication. Administrator Guide

AT21CS Series Reset and Discovery. Introduction. Serial EEPROM APPLICATION NOTE

ATECC508A Public Key Validation. Introduction. Atmel CryptoAuthentication APPLICATION NOTE

APPLICATION NOTE. Atmel AVR3009: Driving QTouch Device with I 2 C Interface. Atmel QTouch. Introduction

AVR1922: Xplain Board Controller Firmware 8-bit Microcontrollers Application Note Features 1 Introduction

APPLICATION NOTE. Atmel AVR057: Internal RC Oscillator Calibration for ATtiny4/5/9/10/20/40. 8-bit Atmel Microcontrollers. Features.

Atmel AVR ATxmega384C3 microcontroller OLED display with 128x32 pixels resolution Analog sensors. Ambient light sensor Temperature sensor

SonicWall Mobile Connect for Chrome OS

APPLICATION NOTE. Atmel AVR2131: Lightweight Mesh Getting Started Guide. Atmel MCU Wireless. Features. Description

AT10942: SAM Configurable Custom Logic (CCL) Driver. Introduction. SMART ARM-based Microcontrollers APPLICATION NOTE

APPLICATION NOTE. Atmel AVR536: Migration from ATmega644 to ATmega644A. 8-bit Atmel Microcontrollers. Introduction

Enabling Agile Database Development with Toad

APPLICATION NOTE. AT11008: Migration from ATxmega16D4/32D4 Revision E to Revision I. Atmel AVR XMEGA. Introduction. Features

USER GUIDE. ATWINC1500 Xplained Pro. Preface

a clock signal and a bi-directional data signal (SCL, SDA)

AVR32917: picopower Board getting started. 32-bit Microcontrollers. Application Note. Preliminary. Features. 1 Introduction

AVR1501: Xplain training XMEGA Timer/Counter 8-bit Microcontrollers Application Note Prerequisites 1 Introduction

OLED display Sensors readout. Light sensor Temperature sensor

One Identity Starling Two-Factor Authentication. Administration Guide

USER GUIDE. Atmel maxtouch Xplained Pro. Preface

This user guide describes how to run the Atmel ATWINC3400 Bluetooth Low Energy (BLE) Provisioning demo from out-of-box conditions.

APPLICATION NOTE. AT05567: TC Capture on External Interrupt with the Event System on SAM D20. Preface ASF PROJECT DOCUMENTATION

STK521. User Guide B AVR 01/12

FPGAs APPLICATIONS. 2012, Sept Copyright Atmel Corporation

Atmel AVR32847: Migration from/to the UC3L0 64/32/16 from/to the UC3L0 256/ bit Atmel Microcontrollers. Application Note.

SUPPORT MATRIX. HYCU OMi Management Pack for Citrix

Section 5 SERCOM. Tasks SPI. In this section you will learn:

AVR4018: Inertial Two (ATAVRSBIN2) Hardware User's Guide. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

APPLICATION NOTE. 3-lead CONTACT Package Usage. ATSHA204A, ATECC108A, and ATECC508A. Introduction. 3-lead CONTACT Package

AT88CK101 HARDWARE USER GUIDE. Atmel CryptoAuthentication Development Kit. Atmel CryptoAuthentication AT88CK101 Daughterboard

How to Show Grouping in Scatterplots using Statistica

AVR532: Migration from ATmega48/88/168 to ATmega48A/88A/168A. 8-bit Microcontrollers. Application Note. 1 Introduction

voptimizer Pro Version What s New

One Identity Password Manager User Guide

Management Console for SharePoint

One Identity Active Roles Diagnostic Tools 1.2.0

APPLICATION NOTE. How to Securely Switch Atmel s LIN Transceiver ATA6662/ATA6662C to Sleep Mode ATA6662/ATA6662C. Concerning Atmel ATA6662

SUPPORT MATRIX. Comtrade OMi Management Pack for Citrix

Terms of Use. Changes. General Use.

Atmel AVR1926: XMEGA-B1 Xplained Getting Started Guide. 8-bit Atmel Microcontrollers. Application Note. Features. 1 Introduction

KACE GO Mobile App 5.0. Release Notes

AVR32401: AVR32 AP7 Linux Interfacing DataFlash. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

DGILib USER GUIDE Atmel-42771A-DGILib_User Guide-09/2016

AVR1508: Xplain training - XMEGA DAC 8-bit Microcontrollers Application Note Features 1 Introduction

SAMA5D2 Quad SPI (QSPI) Performance. Introduction. SMART ARM-based Microprocessor APPLICATION NOTE

APPLICATION NOTE. AT06863: SAM4L Peripheral Event Controller (PEVC) SAM4L Peripheral Event Controller (PEVC) ASF PROGRAMMERS MANUAL

Toad Intelligence Central 3.3 New in This Release

AT697E. Application Note. Checking AT697E Code for Occurrence of LDF/FPOPd Instructions Sequence with a dependency on an Odd-Numbered Register

Getting Started with the SAM4L-EK Demo

Transcription:

Atmel and the use of Verilator to create uc Device Models Dag Braend Sr Director Atmel MCU Tools Roland Kruse Jie Xu Jan Egil Ruud Atmel Co-simulation Team 1 2012 Copyright Atmel Corporation 14/Jan/2013

Background Atmel is a major provider of 8 and 32 bit MCU solutions AVR proprietary architecture for consumer and industrial 8 bit devices ARM Cortex M4 architecture for consumer and industrial 32 bit devices maxtouch proprietary architecture for capacitive display touch applications Atmel specializes in picopower technologies latest offering is the lowest power ARM Cortex M4 based device SAM4L Atmel MCU Tools is the primary marketing channel for our devices Atmel Studio Complete Integrated Development Platform Atmel Gallery Atmel and 3rd party functional extensions Atmel Spaces Collaborative workspace with Atmel Studio integration 2 2012 Copyright Atmel Corporation 14/Jan/2013

Simulator Atmel uses MCU simulators as a debugging tool for customers doing application development We currently do NOT use simulators as a way to validate the IC development We do NOT use simulators in a systems simulations fashion (why? They are too slow) We use simulators as a target where the customers can validate their C/C++ MCU code before they deploy the code on an actual HW target Simulators are integrated as targets in the Atmel Studio IDE The IDE does not see the difference between a simulated target and an actual HW target they should behave the same For this scenario to work we need Cycle accurate simulation of the complete device, including different memory types and analog front-ends. Only way to do this is to re-use the code for the actual device when making the simulator model Atmel currently sells > 350 uc models. We need a simulator model for each. Thus the model creation process is extremely important 3 2012 Copyright Atmel Corporation 14/Jan/2013

Simulators - History Atmel has worked with creating simulator models for many years and has employed different tool chains for the job VTOC Carbon Design Systems The use of commercial tool chains has proven difficult This is a complex and specialized field with not so many customers = expensive tools The companies that support the tools tend to be small = will support their major key customer at any given time but if you are not the largest you suffer Some of the providers have business models and license agreements that does not fit well with free distribution of unlimited number of licenses Some of the providers have business models that makes Atmel a competitor of the company providing the technology Conclusion: Atmel wanted to explore the use of open source tools for this development 4 2012 Copyright Atmel Corporation 14/Jan/2013

Main advantages of working with open source tools No license fees. What we pay goes into real work, either development of new features, or real support. If we choose to not pay for these services anymore, we still have the tools. Tools will always be available, no matter what happens to the project. Both our earlier changes of tools were enforced by non-technical issues with the companies owning the tools. No concerns with software license management Atmel can deploy the tool chain at multiple design locations without difficult license negotiations We benefit from work contributed by others, at no additional cost. Source code access Having the source code of the tool is very helpful when problems occur, or when we create in-house tools to support our workflow. Reduced bug fixing cycle time The open source model have the potential of drastically shortens the cycle when bugs are fixed, we don t have to wait until the vendor produces a new version (if ever). But it requires an active community and a certain level of use 5 2012 Copyright Atmel Corporation Jan. 14 2013

The psychology of SW purchases Companies (read Atmel) are less willing to buy expensive SW SW license management is always a hassle and multinational companies like Atmel don t like it when you start talking of site licenses, licenses located to geographies, encounter different pricing schemes in different regions Companies are however willing to pay consultant fees in order to have required SW modifications done An open source model where companies (like Atmel) 6 2012 Copyright Atmel Corporation Select Insert > Header & Footer > Type Title in Footer field 06/10/2012

Simulator Atmel and Verilator Atmel has visited the Verilator project on several occasions over the years and previously the feel was that the tool was immature and would not fit Atmel s needs. Atmel revisited the tool in 2011 and found that the situation had changed the tool seemed much improved In 2012 Atmel engaged with Embecosm in order to make Verilator support the required Atmel device implementation and development flow. There has been a number of technical issues to be resolved, and in addition Embecosm has implemented System Verilog support. The experience with getting Verilator to work has been comparable to the commercial tools there is no out of the box experience to be had in this respect 7 2012 Copyright Atmel Corporation Select Insert > Header & Footer > Type Title in Footer field 06/10/2012

Verilator work flow Simplified view of the simulator model architecture. 8 2012 Copyright Atmel Corporation Jan. 14 2013

Verilator work flow Main steps of model creation Replace top level module. Remove non-synthesizable parts of the hierarchy. Adapt top level I/O ports to fit C++ wrapper. Create replacements for modules that cannot be used with Verilator. This includes NVM, UDPs, etc. Make the design compile with Verilator. This may require minor changes in RTL code throughout the hierarchy. Create DPI functions to access memories, CPU registers, and I/O from C++ code. This process is partially based on machine-generating Verilog and C++ code from an XML description. Write the device-dependent part of the C++ wrapper. This part is responsible for driving the model (reset, clocks, etc). Test the completed model. Set up for production build. This includes creation of the Windows version of the model (cross-compiled on Linux) The model is tied to Atmel Studio with a small XML file (binding device name to DLL file name) 9 2012 Copyright Atmel Corporation Jan. 14 2013

2012 Atmel Corporation. All rights reserved. Atmel, Atmel logo and combinations thereof, Enabling Unlimited Possibilities, and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be trademarks of others. Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS AND PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and products descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life. 10 2012 Copyright Atmel Corporation 14/Jan/2013