Bartosz Bielawski BE-RF-CS Anthony Rey, Tom Levens

Slides:



Advertisements
Similar presentations
MICHAEL MARINO CSC 101 Whats New in Office Office Live Workspace 3 new things about Office Live Workspace are: Anywhere Access Store Microsoft.
Advertisements

Sundanc e High-tech DSP solutions. Giving you the freedom to design Multiprocessor Technology Ltd SOFTWARE UTILITY TOOLS.
Usage of the memoQ web service API by LSP – a case study
Edoclite and Managing Client Engagements What is Edoclite? How is it used at IU? Development Process?
LINAC 4 – LLRF ELECTRONICS UPDATE BCC-42 A.K. Bhattacharyya, A. Butterworth, F. Dubouchet, J. Molendijk, T. Mastoridis, J. Noirjean(reporter), D. Stellfeld,
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
ASP.NET Programming with C# and SQL Server First Edition
Agenda Adaptation of existing open-source control systems from compact accelerators to large scale facilities.
WorkPlace Pro Utilities.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
W. Sliwinski – eLTC – 7March08 1 LSA & Safety – Integration of RBAC and MCS in the LHC control system.
06/05/2004AB/CO TC RF controls issues Brief overview & status Requested from AB/CO Hardware, Timing, VME/FESA for LEIR, SPS, LHC Controls for LHC RF Power.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
Practical Project of the 2006 Joint International Master’s Degree.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
INTRODUCTION SOFTWARE HARDWARE DIFFERENCE BETWEEN THE S/W AND H/W.
1 3. Computing System Fundamentals 3.1 Language Translators.
ATCA based LLRF system design review DESY Control servers for ATCA based LLRF system Piotr Pucyk - DESY, Warsaw University of Technology Jaroslaw.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Final Review of ITER PBS 45 CODAC – PART 1 – 14 th, 15 th and 16 th of January CadarachePage 1 FINAL DESIGN REVIEW OF ITER PBS 45 CODAC – PART 1.
Session 1 Introduction  What is RADE  Technology  Palette  Tools  Template  Combined Example  How to get RADE  Questions? RADE Applications EN-ICE-MTA.
Managed by UT-Battelle for the Department of Energy CSS Update Matthias Clausen, Helge Rickens, Jan Hatje and DESY Delphy Armstrong, Xihui Chen,
CERN Control Standards Front-End Computer Layer Stéphane Deghaye BE/CO/FE
1 FESA architecture v.1.0 Framework Configuration & Data-entry Tool 5 th December 2003.
Status & development of the software for CALICE-DAQ Tao Wu On behalf of UK Collaboration.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
EPICS and LabVIEW Tony Vento, National Instruments
TRIUMF HLA Development High Level Applications Perform tasks of accelerator and beam control at control- room level, directly interfacing with operators.
Industrial Control Engineering Session 1 Introduction  What is RADE  Technology  Palette  Tools  Template  Combined Example  How to get RADE 
Software tools for digital LLRF system integration at CERN 04/11/2015 LLRF15, Software tools2 Andy Butterworth Tom Levens, Andrey Pashnin, Anthony Rey.
CS section activities Industrial controls Luca Arnaudon David Glenat David Landre Slawomir Totos Ruben Lorenzo-Ortega Digital hardware John Molendijk.
System is a set of interacting or interdependent components forming an integrated whole.
H2LC The Hitchhiker's guide to LSA Core Rule #1 Don’t panic.
Event Sources and Realtime Actions
INTRO. To I.T Razan N. AlShihabi
Product Training Program
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
Operating System Overview
Business rules.
Simulation Production System
Architectures of Digital Information Systems Part 1: Interrupts and DMA dr.ir. A.C. Verschueren Eindhoven University of Technology Section of Digital.
Muen Policy & Toolchain
Overview of TANGO Control system
Software Overview Sonja Vrcic
Athanasios Topaloudis 3rd Forum 15/02/2017
Business Directory REST API
z/Ware 2.0 Technical Overview
LOCO Extract – Transform - Load
LOCO Extract – Transform - Load
Java Beans Sagun Dhakhwa.
GFA Controls IT Alain Bertrand
22-INTEGRATION HUB
Me, FESA classes, Testing
FESA evolution and the vision for Front-End Software
4 different solutions used in BI
Use of Multiple Devices
CMPE419 Mobile Application Development
CSCI/CMPE 3334 Systems Programming
Avalon Switch Fabric.
Increased Efficiency and Effectiveness
Module 01 ETICS Overview ETICS Online Tutorials
Lecture Topics: 11/1 General Operating System Concepts Processes
Teaching slides Chapter 6.
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
CSE 451: Operating Systems Autumn 2003 Lecture 10 Paging & TLBs
PLCs integration into the ICS
Automation of Control System Configuration TAC 18
CMPE419 Mobile Application Development
Presentation transcript:

Cheburashka and Gena Tools for memory map management and HDL, driver and FESA class generation Bartosz Bielawski BE-RF-CS Anthony Rey, Tom Levens Andrey Pashnin, Bruno Kremel, Michael Jaussi, John Molendijk, Miguel Ojeda Sandonis, Greg Hagmann, Bartosz Bielawski, Andy Butterworth, Przemysław Plutecki, Frederic Dubouchet and many others from BE-RF-FB and BE-RF-CS 02.11.2017 BE-BI-TB

Outline Original motivation: (in)consistency between firmware & FE software Memory map definition (Cheburashka) HDL generation (Gena) Upgrade plans Intergroup collaboration 02.11.2017 BE-BI-TB

Seen by the LLRF designer: VME bus VHDL register declarations Memory map 02.11.2017 BE-BI-TB

Seen by the software developer: LSA/InCA, MATLAB… LabVIEW, Python… CMW Java client API CMW C++ client API Controls MiddleWare (CMW) Device/property interface Linux Front End Computer (FEC) CMW server API Server task FESA class (generated + device-specific user code) Data store Real-time task Real-time task accesses the HW via the device driver, synchronized to the accelerator timing system. It accesses the data store which is MULTIPLEXED in order to handle multi-cycling machines where you may have a different setting for each cycle. The server task allows clients to access the data store and/or the hardware. Driver (generated by Encore tool) Device access library Device driver VME bus VME board VME board 02.11.2017 BE-BI-TB

Device drivers (pre-2013) Excel file Hardware Database Entered by hand Encore Driver generation tool Device driver is installed on the front end computer and the user code (FESA class) is compiled against the library and header. So far so good, with an obvious caveat. Must match driver and HW Compilation of FESA class libmydevice.a Device access library libmydevice.h Device driver 02.11.2017 BE-BI-TB

Mismatches possible Mismatch between compiled user code and driver: Error in deploying driver Installed new driver, FESA class not correctly redelivered FESA class Device access library Mismatch between firmware and driver: Error in Excel file or while manually entering memory map in database Flashed new firmware, forgot to redeliver driver and rebuild software Device driver VME bus VME board Both cases result in access to wrong registers and unpredictable behaviour 02.11.2017 BE-BI-TB

Solution Master memory map description in XML file mydevice.xml Master memory map description in XML file Generate driver configuration file and VHDL from same master file driver configuration VHDL memory map Encore libmydevice.a libmydevice.h FPGA firmware Keep driver, software and firmware in sync 02.11.2017 BE-BI-TB

Memory map editor A. Rey Enter attributes: name, size, width, read/write… Edit register and memory map Memory map tree browser. Typical functionalities of tree browser: Can add/delete/clone/expand/move up/down etc. nodes in the tree. Attributes: in this case of the whole memory map. Nodes: register or memory nodes, table shows for each node in the tree the data width and calculated address. Once the memory map is entered it is saved as an XML file. There are buttons to validate it and generate VHDL and driver configuration. Validate Generate VHDL Generate driver Automatic address calculation and alignment 02.11.2017 BE-BI-TB

Documentation Web pages Web documentation generated from XML via XSLT 02.11.2017 BE-BI-TB

Register block reuse Certain register blocks occur in many designs acquisition memories, function generators… Can be saved as sub-maps in separate XML files and included in memory map C++ libraries written for complex functionalities e.g. acquisition memory buffers 02.11.2017 BE-BI-TB

Sub-maps Submap Functionalities/register blocks which are used in many different modules can be reused by defining them as submaps which can be included in other memory maps. Can use all the same features as top-level memory maps. 02.11.2017 BE-BI-TB

FESA class generation HW designers: Lots of tedious coding in FESA C++ want access to every functionality of the board (whole register map) want it yesterday reserve the right to change the register map whenever they want Lots of tedious coding in FESA C++ We have the memory map description; why not generate the FESA code as well? 02.11.2017 BE-BI-TB

FESA class generation my_device.xml driver configuration FESA class design file & C++ source libmy_device.a libmy_device.h HW designers like to have access to every single register. This means a lot of tedious coding. Since we already have the memory map description, why not generate a FESA class as well? Lots of additional information needed for this: semantic information about each register. FESA class for testing Generate design file and C++ source for FESA class Meant for testing: exposes registers as FESA device properties 02.11.2017 BE-BI-TB

FESA class generation Simple access to registers is not enough Need to know the semantics of the register numeric type or bit field composed of sub-registers? conversion factors/algorithms 02.11.2017 BE-BI-TB

Register semantics Sub-registers Bit-field A register can be divided into sub-registers with their own bit ranges: here 15 downto 8, 7 downto 0. 02.11.2017 BE-BI-TB

Register semantics Code-field (enum) Register or sub-register can be defined as a code-field or enumeration with attributed values. 02.11.2017 BE-BI-TB

Other FESA class functionality Additional features added to support FESA class functionality: Virtual registers: only exist in FESA class Alarm generation for fault bits Multiplexed data store and RT code for PPM classes … Allows to have a fully working FESA class generated automatically (for commissioning purposes). Represents a substantial time saving for SW developers. 02.11.2017 BE-BI-TB

Further HDL generation The main tool (Cheburashka) generates only the VHDL register declarations A companion tool Gena has been developed which can generate a complete register block. It can be launched directly form the Cheburashka application. The companion tool Gena can be launched to generate the full VHDL register block 02.11.2017 BE-BI-TB

Gena Generates large amount of HDL previously done by hand. T. Levens Python script which reads master XML memory map file Produces VHDL code for the entire register control block Supports all standard register types (R/W/RW/RMW). Registers are auto-split into bits/sub-registers if these are defined. Supports multiple memories, each with own data and strobe inputs. Supports multiple “areas” of registers, each gets its own multiplexer set. Memory maps are also used in the firmware to connect to DSP AMI bus, I2C etc. Generates large amount of HDL previously done by hand. Represents a substantial time saving for firmware developers. 02.11.2017 BE-BI-TB

Upgrade plans P. Plutecki Since September 2017 BE-RF-CS has a Fellow dedicated to development of Cheburashka. Creation of supporting code and configuration of infrastructure: Moving code to Gitlab, Continuous Integration if possible, Extra code to allow plugin based architecture, Upgrade of PyCheb: Merging all the versions, Making it work with Python3, Generation of Python direct access package for testing on FECs C++ Code generation: Moving code generation to an external plugin and making use of Jinja2 templating engine, Template creation based on hand-written code, Has to follow the evolution of the FESA framework, Better encapsulation: structure using libraries rather than FESA actions. GUI: Evolution of current Java application 02.11.2017 BE-BI-TB

Intergroup collaboration Informal discussions between RF, BI and CO suggest there is an interest in looking for a common solution: GUI for memory map editing Agree on standard for memory map format Backends for HDL, drivers, FESA classes… This is a good moment to look at our requirements and the feasibility of a common approach 02.11.2017 BE-BI-TB

Thank you for your attention! Links: https://wikis.cern.ch/display/BERF/Cheburashka+Documentation http://accelconf.web.cern.ch/AccelConf/ICALEPCS2013/papers/tuppc116.pdf 02.11.2017 BE-BI-TB