Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyTELKOMNIKA JOURNAL
LDPC code and digital image watermarking technology, which is an effective method of digital copyright protection and information security, has been widely used. But this is a multi-disciplinary, multi technology application scheme. In order to realize FPGA design of LDPC decoder in the application scheme, an effective implementation method of digital watermarking application system must be found. In this paper, MATLAB software and Qt development environment are combined to achieve the digital watermarking application software design. It could get real-time input data for the LDPC decoder. Then the hardware of the LDPC decoder is primarily implemented by FPGA in the digital image watermarking system. And the serial port is used to make the output data of the decoder back to computer for verification. Through the simulation results, the Modelsim time simulation diagram is given, and the watermark image compared with the original image is got. The results show that the resource usage of our system is few, and the decoding rate is fast. It has a certain practical value.
Implementation of Soft-core processor on FPGA (Final Presentation)Deepak Kumar
Implementation of Soft-core processor(PicoBlaze) on FPGA using Xilinx.
Establishing communication between two PicoBlaze processors.
Creating an application using the multi-core processor.
A review of the history of digital design throughout the years until the era of programmable logic, and a detailed exploration of the architecture of FPGA chips, followed by an introduction to SoC FPGAs and some of their benefits.
Design of LDPC Decoder Based On FPGA in Digital Image Watermarking TechnologyTELKOMNIKA JOURNAL
LDPC code and digital image watermarking technology, which is an effective method of digital copyright protection and information security, has been widely used. But this is a multi-disciplinary, multi technology application scheme. In order to realize FPGA design of LDPC decoder in the application scheme, an effective implementation method of digital watermarking application system must be found. In this paper, MATLAB software and Qt development environment are combined to achieve the digital watermarking application software design. It could get real-time input data for the LDPC decoder. Then the hardware of the LDPC decoder is primarily implemented by FPGA in the digital image watermarking system. And the serial port is used to make the output data of the decoder back to computer for verification. Through the simulation results, the Modelsim time simulation diagram is given, and the watermark image compared with the original image is got. The results show that the resource usage of our system is few, and the decoding rate is fast. It has a certain practical value.
Implementation of Soft-core processor on FPGA (Final Presentation)Deepak Kumar
Implementation of Soft-core processor(PicoBlaze) on FPGA using Xilinx.
Establishing communication between two PicoBlaze processors.
Creating an application using the multi-core processor.
A review of the history of digital design throughout the years until the era of programmable logic, and a detailed exploration of the architecture of FPGA chips, followed by an introduction to SoC FPGAs and some of their benefits.
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLinaro
LAS16-300: Mini Conference 2 RTOS-Zephyr - Device Configuration
Speakers: Andy Gross
Date: September 28, 2016
★ Session Description ★
SoC Vendors, board vendors, software middle layers, scripting languages, etc all need to have access to system configuration information (pin muxes, what sensors are on a system, what amount of memory, flash, etc, etc). We need a means to convey this in a vendor neutral mechanism but also one that is friendly for Cortex-M/constrained footprint devices. This session will be to discuss the topic, how its done today, what kinda tooling might exist from different vendors, what we could utilize (device tree) and what issues that creates.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-300
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-300/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
FPGA introduction for absolute beginners
- What is inside FPGA (Altera example)
- What are the major differences between firmware development for MCU and FPGA
- Some very basics of Verilog HDL language (by similarities with C/C++)
- Testbench approach and Icarus simulator demonstration
- Altera Quartus IDE demonstration -- creating project, compilation, and download
- Signal-Tap internal logic analyzer demonstration
(Verilog source code examples attached inside presentation)
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case StudyAltera Corporation
This presentation compares the impact of traditional FPGA engineering design flow to one employed with an SoC FPGA. The two approaches will be contrasted in terms of their impacts on system architecture design, debugging, risk mitigation, system integration, bring-up, feature enhancements, design obsolescence, and engineering effort. A case study is presented that explores these impacts within a video pipeline development effort.
Linux Conference Australia 2018 : Device Tree, past, present, futureNeil Armstrong
Since the switch of the ARM Linux support from the stable PowerPC Device Tree support, it became an important piece of software used to describe all sorts of devices based on very different hardware architectures.
Currently, BSD* Unixes and even the Zephyr RTOS has switched to Device Tree to describe the hardware. U-boot has also a file format using the Device Tree blob format.
Neil will present you the history of Device Tree from its origins, how it has been used for ARM from the PowerPC codebase, all the very different current usage and an overview of its future application and evolutions.
LAS16-403: GDB Linux Kernel Awareness
Speakers: Peter Griffin
Date: September 29, 2016
★ Session Description ★
The presentation will look at the ways in which GDB can be enhanced when debugging the Linux kernel to give it better knowledge of the underlying operating system to enable a better debugging experience. It will also provide a status of the current work being undertaken in this area by the ST landing team, a demo and potential future work.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-403
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-403/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...Neil Armstrong
Porting and maintaining Linux for a Multimedia SoC is one thing (already very complex), but without a proper Bootloader, how would we do ? For the last 4 Years, we were pushing Upstream Linux support for the Amlogic Multimedia SoCs with very well-known Single Board Computers like Odroid-C2, Libre Computer Le Potato, Khadas VIMs... but a key point was missing until 2 years ago: a clean Bootloader. We only relied on the Vendor Bootloader, but it quickly became an issue for various reasons: - was complex to rebuild - even more complex to enhance and fix - did some weird and quirkly hardware enablement before linux - was confusing because the vendor Bootloader behavior changed over time So we implemented an all-most complete U-Boot support for these Amlogic SoCs, including HDMI video support and support Android AOSP boot. And a big bonus appeared: we got UEFI support for free ! Neil will go through all the development process, what we achieved, the remaining work and how U-Boot maintenance and code quality evolved over time.
David and Kanwen and Carlos implemented a speech recognition system on an FPGA development board (Altera DE2 Board) for the Design Project course at McGill (ECSE 494).
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLinaro
LAS16-300: Mini Conference 2 RTOS-Zephyr - Device Configuration
Speakers: Andy Gross
Date: September 28, 2016
★ Session Description ★
SoC Vendors, board vendors, software middle layers, scripting languages, etc all need to have access to system configuration information (pin muxes, what sensors are on a system, what amount of memory, flash, etc, etc). We need a means to convey this in a vendor neutral mechanism but also one that is friendly for Cortex-M/constrained footprint devices. This session will be to discuss the topic, how its done today, what kinda tooling might exist from different vendors, what we could utilize (device tree) and what issues that creates.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-300
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-300/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
FPGA introduction for absolute beginners
- What is inside FPGA (Altera example)
- What are the major differences between firmware development for MCU and FPGA
- Some very basics of Verilog HDL language (by similarities with C/C++)
- Testbench approach and Icarus simulator demonstration
- Altera Quartus IDE demonstration -- creating project, compilation, and download
- Signal-Tap internal logic analyzer demonstration
(Verilog source code examples attached inside presentation)
Traditional vs. SoC FPGA Design Flow A Video Pipeline Case StudyAltera Corporation
This presentation compares the impact of traditional FPGA engineering design flow to one employed with an SoC FPGA. The two approaches will be contrasted in terms of their impacts on system architecture design, debugging, risk mitigation, system integration, bring-up, feature enhancements, design obsolescence, and engineering effort. A case study is presented that explores these impacts within a video pipeline development effort.
Linux Conference Australia 2018 : Device Tree, past, present, futureNeil Armstrong
Since the switch of the ARM Linux support from the stable PowerPC Device Tree support, it became an important piece of software used to describe all sorts of devices based on very different hardware architectures.
Currently, BSD* Unixes and even the Zephyr RTOS has switched to Device Tree to describe the hardware. U-boot has also a file format using the Device Tree blob format.
Neil will present you the history of Device Tree from its origins, how it has been used for ARM from the PowerPC codebase, all the very different current usage and an overview of its future application and evolutions.
LAS16-403: GDB Linux Kernel Awareness
Speakers: Peter Griffin
Date: September 29, 2016
★ Session Description ★
The presentation will look at the ways in which GDB can be enhanced when debugging the Linux kernel to give it better knowledge of the underlying operating system to enable a better debugging experience. It will also provide a status of the current work being undertaken in this area by the ST landing team, a demo and potential future work.
★ Resources ★
Etherpad: pad.linaro.org/p/las16-403
Presentations & Videos: http://connect.linaro.org/resource/las16/las16-403/
★ Event Details ★
Linaro Connect Las Vegas 2016 – #LAS16
September 26-30, 2016
http://www.linaro.org
http://connect.linaro.org
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...Neil Armstrong
Porting and maintaining Linux for a Multimedia SoC is one thing (already very complex), but without a proper Bootloader, how would we do ? For the last 4 Years, we were pushing Upstream Linux support for the Amlogic Multimedia SoCs with very well-known Single Board Computers like Odroid-C2, Libre Computer Le Potato, Khadas VIMs... but a key point was missing until 2 years ago: a clean Bootloader. We only relied on the Vendor Bootloader, but it quickly became an issue for various reasons: - was complex to rebuild - even more complex to enhance and fix - did some weird and quirkly hardware enablement before linux - was confusing because the vendor Bootloader behavior changed over time So we implemented an all-most complete U-Boot support for these Amlogic SoCs, including HDMI video support and support Android AOSP boot. And a big bonus appeared: we got UEFI support for free ! Neil will go through all the development process, what we achieved, the remaining work and how U-Boot maintenance and code quality evolved over time.
David and Kanwen and Carlos implemented a speech recognition system on an FPGA development board (Altera DE2 Board) for the Design Project course at McGill (ECSE 494).
The presentation is dedicated to advantages and disadvantages of FPGA (Field-Programmable Gate Array): its construction and speed features, as well as security elements. It also deals with such issues as new devices synthesis and expanding the existing hardware functionality, realisation of microprocessors for specialized tasks, as well as OpenCL, a system for parallel calculations.
This presentation by Andriy Smolskyy (Lead Software Engineer, GlobalLogic) was delivered at Embedded TechTalk Lviv on June 17, 2015.
This presentation given at Imperial College London focused on the myriad of applications of Field Programmable Gate Arrays in Finance. On how FPGAs work, why there has been an increased interest, and why it is important to adopt this technology.
FPGA are a special form of Programmable logic devices(PLDs) with higher densities as compared to custom ICs and capable of implementing functionality in a short period of time using computer aided design (CAD) software....by mathewsubin3388@gmail.com
This slideshow gives feedback about using Linux in industrial projects. It is part of a conference held by our company CIO Informatique Industrielle at ERTS 2008, the European Embedded Real Time software Congress in Toulouse
For the full video of this presentation, please visit:
https://www.embedded-vision.com/platinum-members/embedded-vision-alliance/embedded-vision-training/videos/pages/may-2019-embedded-vision-summit-montgomery
For more information about embedded vision, please visit:
http://www.embedded-vision.com
Clay D. Montgomery, Freelance Embedded Multimedia Developer at Montgomery One, presents the "Building Complete Embedded Vision Systems on Linux—From Camera to Display" tutorial at the May 2019 Embedded Vision Summit.
There’s a huge wealth of open-source software components available today for embedding vision on the latest SoCs from suppliers such as NXP, Broadcom, TI and NVIDIA, at lower power and cost points than ever before. Testing vision algorithms is the first step, but what about the rest of your system? In this talk, Montgomery considers the best open-source components available today and explains how to select and integrate them to build complete video pipelines on Linux—from camera to display—while maximizing performance.
Montgomery examines and compares popular open-source libraries for vision, including Yocto, ffmpeg, gstreamer, V4L2, OpenCV, OpenVX, OpenCL and OpenGL. Which components do you need and why? He also summarizes the steps required to build and test complete video pipelines, common integration problems to avoid and how to work around issues to get the best performance possible on embedded systems.
This presentation covers the motivation that led the Samsung OSG to port Tizen to the Raspberry Pi2. It also goes over the technical hurdles that have been overcome and provides insight to where this project is headed in the future.
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...Toradex
Read our blog for the latest on demystifying the development of embedded systems using Heterogeneous Multicore Processing architecture powered SoCs! This might provide you with the jump start you need for your development. https://www.toradex.com/blog/first-steps-developing-embedded-applications-using-heterogeneous-multicore-processors
Software Update Mechanisms: Selecting the Best Solutin for Your Embedded Linu...ICS
Updating device software has always been a complicated process. Today, widespread use of connected IoT device fleets, along with escalating concern over cybersecurity, has made that process even more complex. Fortunately, there are a number of well-established open source solutions to help you address software update needs. But, with so many options, how do you determine which solution is right for your device?
This webinar will provide the foundation you need to make an informed decision. We’ll examine several different industry approaches, including A/B updates with a dual-redundant scheme, delta updates, container-based updates and combined strategies, as well as the leading technologies that support these approaches. Open source technologies such as Mender, RAUC and libostree-based solutions implement these strategies and provide tools to manage updates of multiple devices.
We’ll also review a variety of open source Linux software update technologies, and offer practical examples for integrating them using the Yocto Project and OpenEmbedded. In order to help you better understand the strengths and weaknesses of each technology, we’ll deep dive into various real-world use cases, including leveraging CAAM (Cryptographic Accelerator and Assurance Module) hardware on Freescale i.MX6 hardware for encrypted and signed updates and using Microsoft Azure IoT to host software updates from the cloud.
Using open source software to build an industrial grade embedded linux platfo...SZ Lin
Building an embedded Linux platform is like a puzzle; placing the suitable software components in the right positions will constitute an optimal platform. However, selecting suitable components is difficult since it depends on different application scenarios. The essential components of an embedded Linux platform include the bootloader, Linux kernel, toolchain, root filesystem; it also needs the tools for image generation, upgrades, and testing. There are abundant resources in the Linux ecosystem with these components and tools; however, selecting the suitable modules and tools is still a key challenge for system designers.
Slides présentés lors du Meetup Aix Marseille Embedded Linux du 16 Juin.
Présentation sur les GNU/Autotools accompagné d'un exemple Hello World basé sur les autotools.
Créer sa distribution Linux embarqué avec Yocto ou AngströmChristian Charreyre
Création d'une distribution Linux embarqué riche à l'aide des outils de build de distribution Yocto et Angström : slides présentés lors du 5e meetup de Paris Embedded meetup
Concevoir un système Linux embarqué avec Yocto Project - Version réviséeChristian Charreyre
These slides (in French language) explain how to build an embedded Linux distribution with reach features, without compromise on quality, using the tools offered by the Yocto Project. This is the up to date version presented on December 4th, 2014.
These slides (in French language) explain how to build an embedded Linux distribution with reach features, without compromise on quality, using the tools offered by the Yocto Project.
They were presented in a seminar organized by Captronic in Aix en Provence, on May 15th, 2014
Yocto une solution robuste pour construire des applications à fort contenu ap...Christian Charreyre
Ce document est la présentation effectuée par CIO Informatique Industrielle lors de la conférence "Yocto et Linux, un couple d'avenir" du salon RTS 2013
Les slides de la présentation faite par CIO Informatique Industrielle lors du salon Synergie NTIC, sur les utilisations de Linux en contexte embarqué et industriel
Ce slideshow est issu de la contribution de CIO Informatique Industrielle à la conférence / débat Comment travailler avec les logiciels Open Source, qui s'est tenue en Avril 2008 sur le salon RTS Embedded Systems
Cette présentation décrit des utilisations de logiciel libre (Linux) pour des développements informatiques dans des projets industriels, embarqués et temps réel.
Le portage d'une application écrite pour des RTOS traditionnels vers Linux est également abordé.
Le document a été présenté lors de Solutions Linux 2007
This paper describes return of experiences about using Linux technologies for industrial software developments. It gives feedback about embedded and real time usages of Linux.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Developing an embedded video application on dual Linux + FPGA architecture
1. 11 Avenue Marigny 13014 Marseille www.ciose.fr christian.charreyre@ciose.fr
Developing an embedded video application on dual Linux + FPGA architecture 109/26/17
Developing an embedded videoDeveloping an embedded video
application on dual Linux + FPGAapplication on dual Linux + FPGA
architecturearchitecture
C. CharreyreC. Charreyre
christian.charreyre@ciose.frchristian.charreyre@ciose.fr
http://www.ciose.frhttp://www.ciose.fr
https://twitter.com/CIO_SysEmbhttps://twitter.com/CIO_SysEmb
http://fr.slideshare.net/charreyrehttp://fr.slideshare.net/charreyre
2. License
Developing an embedded video application on dual Linux + FPGA architecture 209/26/17
Attribution-Noncommercial-Share Alike 4.0 International
● You are free:
to Share - copy and redistribute the material in any medium or format
to Adapt - remix, transform, and build upon the material
The licensor cannot revoke these freedoms as long as you follow the license terms.
● Under the following conditions:
Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so
in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
NonCommercial — You may not use the material for commercial purposes.
ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license
as the original.
● No additional restrictions — You may not apply legal terms or technological measures that
legally restrict others from doing anything the license permits.
● License text : http://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
3. Small company dedicated to embedded solutions (16 persons)
Electronics and software developments
Embedded Linux expertise since 15 years
Open Embedded and Yocto expertise since 7 years
Headquarters in Saint-Etienne
Agency in Marseilles
Embedded Linux expert for Cap’tronic program
Developing an embedded video application on dual Linux + FPGA architecture 309/26/17
Presentation of CIO Systèmes Embarqués
4. Developing an embedded video application on dual Linux + FPGA architecture 4
Responsible of Embedded Linux technologies in CIO Systèmes Embarqués
Embedded Linux trainer
30 years in embedded and Unix / Linux world
Developer and maintainer of kernel, u-boot ports on Arm boards
Developer and maintainer of Yocto layers
09/26/17
Presentation of the speaker
5. Developing an embedded video application on dual Linux + FPGA architecture 509/26/17
The embedded video application
● High performance video acquisition, real time treatments and
display
● Merge and synchronization of 2 images issued by 2 cameras
● Deployed in a device with safety constraints related to video
● Latency between real world and display < 200 ms
● Video must be available 7 s after Power On
● Device developed on an ARM architecture (CIO’s skills) →
embedded Linux software environment
6. Developing an embedded video application on dual Linux + FPGA architecture 609/26/17
Why use a FPGA ?
● Previous video applications developed on iMX.6 processor with
gstreamer to manage video pipeline
● This architecture can’t be used here :
– Safety certification problem on Linux
– Real time performances (latency, jitter) ???
● High performance IP for FPGA dedicated to video applications available
● We decided to share the application between Embedded Linux on ARM
processor and FPGA
– Video processing is done by the FPGA
– Configuration, errors monitoring and utilities done by Embedded
Linux distribution
7. Developing an embedded video application on dual Linux + FPGA architecture 709/26/17
The hardware platform
● The choosen hardware platform is a PicoZed board mounted on a custom base board developed
by CIO
● PicoZed = System On Module based on the Xilinx Zynq®-7000 All Programmable (AP) SoC
● Zynq 7000 offers a dual core ARM processor + FPGA in the same chip
● ARM processor is called Processing System (PS)
● FPGA is called Programmable Logic (PL)
8. Developing an embedded video application on dual Linux + FPGA architecture 809/26/17
Linux software environment
● PicoZed Linux environment proposed with 2 options :
– Petalinux is the Linux environment proposed by Xilinx
– Wind River Pulsar Linux, a Yocto based environment
● CIO has great experience of OpenEmbedded and Yocto tools :
– Petalinux quickly eliminated as Yocto is a de facto standard in
Embedded Linux
– Wind River Pulsar Linux evaluated :
● Rejected due to the presence of containerization in the solution. We did
not want to loose time with this technology
– We finally selected meta-xilinx layer and assembled it with other
layers to build our Embedded Linux environment
9. Developing an embedded video application on dual Linux + FPGA architecture 909/26/17
Linux software environment
● All necessary layers selected from OpenEmbedded Layer Index
● Layer coherency assured by repo tool
● Finally we have made a Yocto based build system tailored for the
embedded distribution
● The embedded distribution is built by customizing Yocto recipes
and creating new ones for in house applications
● A more complex Board Support Package due to interactions
between PS and PL (detailed later)
10. Developing an embedded video application on dual Linux + FPGA architecture 1009/26/17
FPGA developments
● FPGA developments made with Xilinx Vivado tool (Eclipse based)
11. Developing an embedded video application on dual Linux + FPGA architecture 1109/26/17
FPGA developments
● FPGA engineer designs its IPs inside Vivado
● When the design is finished, the final VHDL code for the FPGA is
generated
● But we don’t want to have 2 isolated parts : Embedded Linux
distribution & logic design. AXI interface allow us to communicate
between PS and PL.
– AXI stream : dedicated to stream data
– AXI ACP : allow copy data to cache memory (close to the processor)
– AXI light : allow exchange of some data
– AXI HP : allow access to the DDR and store data like images without
bandwidth issues.
12. Developing an embedded video application on dual Linux + FPGA architecture 1209/26/17
How can PS and PL interact ?
● It is possible to design hardware components in the PL that can be
seen by the PS
● Potential use cases :
– Add additional hardware resources for the embedded Linux
distribution, normally not available on PS → extend PS capabilities
● Create an additional serial line
– Use dedicated hardware to communicate between PL and PS
● Create GPIOs in the PL and make Embedded Linux use them to read / write
logic data from / to the VHDL application
– Allow dynamic customization of IPs
● Perform a specific crop on an image which can be changed from Linux
(position, size).
13. Developing an embedded video application on dual Linux + FPGA architecture 1309/26/17
Technically, how does it work ?
● We have seen
– The application constraints
– The selected hardware and software architecture
– The tools
● But of does it work ?
14. Developing an embedded video application on dual Linux + FPGA architecture 1409/26/17
Boot Mechanism
● PicoZed needs a First Stage Boot Loader (FSBL) before u-boot
● FSBL code is generated by Vivado according to the design
– This code can be compiled inside Vivado or externally with
and ARM toolchain
● FSBL then starts u-boot which in turn starts Linux
● The FPGA code (bitstream) must be loaded by FSBL or by u-boot
– The FPGA can’t start alone
– The VHDL code is reloaded at each boot → impact on boot
time
15. Developing an embedded video application on dual Linux + FPGA architecture 1509/26/17
Interactions between PS and PL
● The Xilinx Linux kernel (founder specific) has dedicated drivers for
hardware resources implemented by PL and shared with PS
● These resources are appended to the device tree, thus making
them available to Linux kernel
● Vivado automatically generates a pl.dtsi file that is included
in the board device tree
● pl.dtsi reflects selection and design of hardware resources of
the PL accessible to the PS
16. Developing an embedded video application on dual Linux + FPGA architecture 1609/26/17
Interactions between PS and PL
/*
* CAUTION: This file is automatically generated by Xilinx.
* Version: HSI 2016.4
* Today is: Fri Aug 4 16:29:54 2017
*/
/ {
amba_pl: amba_pl {
#addresscells = <1>;
#sizecells = <1>;
compatible = "simplebus";
Ranges ;
RS485_PL: serial@42c00000 {
clocknames = "ref_clk";
clocks = <&clkc 0>;
compatible = "xlnx,xpsuartlite1.00.a";
currentspeed = <115200>;
device_type = "serial";
interruptparent = <&intc>;
interrupts = <0 35 1>;
portnumber = <0>;
reg = <0x42c00000 0x10000>;
xlnx,baudrate = <0x2580>;
xlnx,databits = <0x8>;
xlnx,oddparity = <0x0>;
xlnx,saxiaclkfreqhzd = "50.0";
xlnx,useparity = <0x0>;
};
Additional serial line
Link with Xilinx driver
17. Developing an embedded video application on dual Linux + FPGA architecture 1709/26/17
Interactions between PS and PL
…
video_in_0_Status: gpio@41230000 {
#gpiocells = <2>;
compatible = "xlnx,xpsgpio1.00.a";
gpiocontroller ;
reg = <0x41230000 0x10000>;
xlnx,allinputs = <0x1>;
xlnx,allinputs2 = <0x0>;
xlnx,alloutputs = <0x0>;
xlnx,alloutputs2 = <0x0>;
xlnx,doutdefault = <0x00000000>;
xlnx,doutdefault2 = <0x00000000>;
xlnx,gpiowidth = <0x5>;
xlnx,gpio2width = <0x20>;
xlnx,interruptpresent = <0x0>;
xlnx,isdual = <0x0>;
xlnx,tridefault = <0xFFFFFFFF>;
xlnx,tridefault2 = <0xFFFFFFFF>;
};
};
};
Information towards PS
Link with Xilinx driver
18. Developing an embedded video application on dual Linux + FPGA architecture 1809/26/17
Device tree generation
● In fact, Vivado generates the whole device tree :
– PS part through zynq7000.dtsi
– PL part through pl.dtsi
– And the final system.dts that includes PS and PL part, + nodes
customizations according to Vivado design
● Vivado covers PL but also parameters impacting PS
● Device tree must be rebuilt after each change in Vivado → automation
of the workflow welcome
– Development of dedicated Yocto recipes to manage generation and
dispatch of all these files in Board Support Package dedicated recipes
● U-boot and device tree recipes impacted
19. Developing an embedded video application on dual Linux + FPGA architecture 1909/26/17
Boot time optimization
● The requirement is to have the image completely stable at much 7 s
after Power ON
● Tasks necessary before image :
– FSBL
– U-boot
– Bitstream loading and FPGA programming
– Kernel initialization
– Userland startup (system V init)
– Cameras initialization through spi communication
– FPGA video IP configuration
20. Developing an embedded video application on dual Linux + FPGA architecture 2009/26/17
Boot time optimization
● Misc techniques used to minimize image arrival time :
– Activation of bootstage report feature of u-boot
– Use of bootchart to identify where boot time is consumed during Linux start-up
– U-boot optimization to reduce peripherals inits
– Linux kernel optimization to reduce kernel size (media access time) and
peripherals init
– System console removal
– Completely reorder init scripts to start video application as early as possible
– Use of read only root file system to avoid file system checks and corrections
(power off without halt)
– Maximize spi speed on spi bus with camera
● Finally image is here and stable 5.6 s after Power On.
21. Developing an embedded video application on dual Linux + FPGA architecture 2109/26/17
Consequences of safety requirements
● The design has been done so that the safety certification will impact
only the FPGA
– Linux developments not directly impacted by certification
process
● But the software must be updated through IP communication over
Ethernet
● As FPGA software is updated through Linux IP features, the
installation & upgrade process must be secured to avoid potential
hacking
● Installer and updater utilities use asymmetric cryptography
mechanism to authenticate all software elements before
installation / update
22. Developing an embedded video application on dual Linux + FPGA architecture 2209/26/17
Conclusion
● At the beginning of the project, 2 major decisions :
– Use a mixed design based on Embedded Linux + FPGA
– Use meta-xilinx layer and assemble layers by ourself instead
of standard solutions (Petalinux or Wind River Pulsar Linux)
● What are the results ?
23. Developing an embedded video application on dual Linux + FPGA architecture 2309/26/17
Conclusion
● The main concerns regarding the dual architecture was about :
– Splitted design
– Communication between PS and PL
– Kernel management of peripherals built in PL part
● Splitted design is a constraint but the advantages of using a FPGA are more
important than the drawbacks
● AXI interface offers many solutions to implement communications between PS and
PL
● Drivers available in Xilinx kernel + automatic generation of device tree make the
peripherals designed in PL well supported by the kernel
● PL design make the final platform easily adaptive to new requirements
– Ex : debug GPIOs useful only during development phase synthesized in the PL
part then removed
24. Developing an embedded video application on dual Linux + FPGA architecture 2409/26/17
Conclusion
● Using meta-xilinx and assembling them by ourselves with other
layers from OE layers repository was a good choice
– Good quality of meta-xilinx layer
– We select exactly the layers we need
– Finally we have a very well adapted distribution
● This was also possible because we have good skills on Yocto build
tool and layers architecture and features.
25. Developing an embedded video application on dual Linux + FPGA architecture 2509/26/17
Questions ?
● Thank you for your attention
● Time for questions