The document discusses a software engineering methodology for designing hardware applications targeting reconfigurable architectures (RAs). It presents an object-oriented design flow called MADEO that allows applying software techniques like simulation, testing, and debugging. The flow includes modeling RAs and applications, multi-level simulation from behavioral to hardware, and interfacing with third-party EDA tools through code generation.
Towards Automated Design Space Exploration and Code Generation using Type Tra...waqarnabi
Slides for talk at First International Workshop on Heterogeneous High-performance Reconfigurable Computing (H2RC'15), Austin, Texas, Nov 15 2015. Held in conjunction with SC15.
Towards Automated Design Space Exploration and Code Generation using Type Tra...waqarnabi
Slides for talk at First International Workshop on Heterogeneous High-performance Reconfigurable Computing (H2RC'15), Austin, Texas, Nov 15 2015. Held in conjunction with SC15.
Slides fra InfInIT arrangement i interessegruppen for Embedded Systems Engineering
http://www.infinit.dk/dk/arrangementer/tidligere_arrangementer/sweet---a-tool-for-wcet-flow-analysis.htm
An integrated approach for designing and testing specific processorsVLSICS Design
This paper proposes a validation method for the des
ign of a CPU on which, in parallel with the
development of the CPU, it is also manually describ
ed a testbench that performs automated testing on t
he
instructions that are being described. The testbenc
h consists of the original program memory of the CP
U
and it is also coupled to the internal registers, P
ORTS, stack and other components related to the pro
ject.
The program memory sends the instructions requested
by the processor and checks the results of its
instructions, progressing or not with the tests. Th
e proposed method resulted in a CPU compatible with
the
instruction set and the CPU registers present into
the PIC16F628 microcontroller. In order to shows th
e
usability and success of the depuration method empl
oyed, this work shows that the CPU developed is
capable of running real programs generated by compi
lers existing on the market. The proposed CPU was
mapped in FPGA, and using Cadence tools, was synthe
sized on silicon.
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...waqarnabi
Slides for our paper at RAW, nominated for best paper award, related to our work on developing an optimizing compiler for running scientific code on FPGAs.
Linaro Connect 2016 (BKK16) - Introduction to LISAPatrick Bellasi
This presentation introduces the tutorial on the Linux Integrated System Analysis toolkit and provides a short description of its main modules. The tutorial is available on GitHub at this URL:
https://github.com/ARM-software/lisa/blob/master/ipynb/tutorial/00_LisaInANutshell.ipynb
Slides fra InfInIT arrangement i interessegruppen for Embedded Systems Engineering
http://www.infinit.dk/dk/arrangementer/tidligere_arrangementer/sweet---a-tool-for-wcet-flow-analysis.htm
An integrated approach for designing and testing specific processorsVLSICS Design
This paper proposes a validation method for the des
ign of a CPU on which, in parallel with the
development of the CPU, it is also manually describ
ed a testbench that performs automated testing on t
he
instructions that are being described. The testbenc
h consists of the original program memory of the CP
U
and it is also coupled to the internal registers, P
ORTS, stack and other components related to the pro
ject.
The program memory sends the instructions requested
by the processor and checks the results of its
instructions, progressing or not with the tests. Th
e proposed method resulted in a CPU compatible with
the
instruction set and the CPU registers present into
the PIC16F628 microcontroller. In order to shows th
e
usability and success of the depuration method empl
oyed, this work shows that the CPU developed is
capable of running real programs generated by compi
lers existing on the market. The proposed CPU was
mapped in FPGA, and using Cadence tools, was synthe
sized on silicon.
A Fast and Accurate Cost Model for FPGA Design Space Exploration in HPC Appli...waqarnabi
Slides for our paper at RAW, nominated for best paper award, related to our work on developing an optimizing compiler for running scientific code on FPGAs.
Linaro Connect 2016 (BKK16) - Introduction to LISAPatrick Bellasi
This presentation introduces the tutorial on the Linux Integrated System Analysis toolkit and provides a short description of its main modules. The tutorial is available on GitHub at this URL:
https://github.com/ARM-software/lisa/blob/master/ipynb/tutorial/00_LisaInANutshell.ipynb
Mirabilis_Design AMD Versal System-Level IP LibraryDeepak Shankar
Mirabilis Design provides the VisualSim Versal Library that enable System Architect and Algorithm Designers to quickly map the signal processing algorithms onto the Versal FPGA and define the Fabric based on the performance. The Versal IP support all the heterogeneous resource.
Nowadays software systems are essential to the environment of most organizations, and their maintenance is a key point to support business dynamics. Thus, reverse engineering legacy systems for knowledge reuse has become a major concern in software industry. This article, based on a survey about reverse engineering tools, discusses a set of functional and nonfunctional requirements for an effective tool for reverse engineering, and observes that current tools only partly support these requirements. In addition, we define new requirements, based on our group’s experience and industry feedback, and present the architecture and implementation of LIFT: a Legacy InFormation retrieval Tool, developed based on these demands. Furthermore, we discuss the compliance of LIFT with the defined requirements. Finally, we applied the LIFT in a reverse engineering project of a 210KLOC NATURAL/ADABAS system of a financial institution and analyzed its effectiveness and scalability, comparing data with previous similar projects performed by the same institution.
Learn more about the tremendous value Open Data Plane brings to NFV
Bob Monkman, Networking Segment Marketing Manager, ARM
Bill Fischofer, Senior Software Engineer, Linaro Networking Group
Moderator:
Brandon Lewis, OpenSystems Media
One of the biggest issues for a developer – whether they are an engineer at an OEM or working for a mobile AI application startup – is that their apps are at the mercy of pre-set power and performance settings as defined by OEMs or Silicon vendors. So how can a developer break through that barrier when it seems their hands are tied behind their backs? The Snapdragon Power Optimization SDK allows developers to control the CPU and GPU frequency much more finely from their own application logic. This provides developers with more control within the bounds of the power/thermal framework.
This presentation is a short introduction to issues in Hardware-Software Codesign. It discusses definition of codesign, its significance, design issues in Hardware-software codesign, Abstraction levels, Duality of harware and software
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
1. Software Engineering Methodology for Reconfigurable Platforms Damien Picard and Loic Lagadec Architectures et Systèmes, Lab-STICC Université de Bretagne Occidentale, France ESUG’09 Brest, France, 2009
15. Global Flow Smalltalk Method High-level CDFG Low-level CDFG SoC Model Multi-Level Simulator Export Testing Netlist Back-end Tools System Simulator Global Simulation System Behavior Gantt Diagram Interaction Diagram Application Behavior Waveform Components Framework Debugging Iterations Synthesis CDFG
16. Platypus tool CDFG design CDFG EXPRESS model Tool X Tool Y HLL CDFG API (Java) CDFG instances (STEP files) CDFG Checker Madeo+ synthesis tool CDFG Use Target 3 Specific Assembly code Target 2 C like code Target 1 EDIF Target architecture description HLL CDFG API (Smalltalk) ENTITY HierarchicalNode SUBTYPE OF (Node); localVariables : LIST OF AbstractData; subOperators : LIST [1 : ?] OF Node; END_ENTITY ; ENTITY AccumulatorNode SUBTYPE OF (HierarchicalNode); init : AbstractData; --”AccumulatorNode.init” the initial value we start accumulating from . toBeAccumulated: AbstractData; DERIVE cumulatedArguments : LIST OF AbstractData := subOperators [ SIZEOF (subOperators)].outputs; WHERE toBeAccumulatedSource: SIZEOF ( cumulatedArguments )=1; typeCompat: cumulatedArguments[1]. type = init. type ; END_ENTITY ; APPLICATION APPLICATION [Lagadec, ESUG08]
Software simulation at Register Tranfer Level (e.g. Modelsim) Use of embedded logic analyzer (e.g. ChipScope) modelling, automated testing, code generation…
The presentation is organized as follow. In a first part i will explain the framework for modeling execution platform and the way an application is specified. We will also see how the application and the platform are simulated. In a second part I will detail the tools and the software approach we used for designing and validating the application. The third part will give simulation results of the system and the application. And finally I will come to the conclusion and will give some perspectives.
The presentation is organized as follow. In a first part i will explain the framework for modeling execution platform and the way an application is specified. We will also see how the application and the platform are simulated. In a second part I will detail the tools and the software approach we used for designing and validating the application. The third part will give simulation results of the system and the application. And finally I will come to the conclusion and will give some perspectives.
Software simulation at Register Tranfer Level (e.g. Modelsim) Use of embedded logic analyzer (e.g. ChipScope)
Une architecture reconfigurable est un circuit dont la fonctionnalité est déterminée par une configuration chargée dans les mémoires internes du circuit. Du fait qu’elles soit reconfigurables ce type d’architecture se rapproche de la flexibilité logicielle tout en bénéficiant de performances élevées proche des circuits dédiés. Ce type d’architecture est donc un compromis entre flexibilité et performance. Elles trouvent leurs applications dans des domaines tels que les télécommunications, le prototypage de circtuis dédiés … et sont bien adaptées pour répondre aux besoins évolutifs des systèmes embarqués.
Le schéma montre une architecture reconfigurable générique et les deux ressources principales la composant. Les ressources de calcul permettent de mettre en œuvre n’importe quelle fonction dans une table de lookup ou LUT. Les ressources de routage connectent les différentes cellules entre elles pour réaliser le calcul spécifié. .
The presentation is organized as follow. In a first part i will explain the framework for modeling execution platform and the way an application is specified. We will also see how the application and the platform are simulated. In a second part I will detail the tools and the software approach we used for designing and validating the application. The third part will give simulation results of the system and the application. And finally I will come to the conclusion and will give some perspectives.
Avantage d’une spec smalltalk -> executable, debuggable dans l’environnement facilement.
Flot + captures d ‘écrans ? Flot MADEO-FET Spécification en C (dataflow) Synthèse logique Floorplan Placement/Routage Définition des IOBs Extraction du bitstream
Software simulation at Register Tranfer Level (e.g. Modelsim) Use of embedded logic analyzer (e.g. ChipScope)
The talk is organized around the global flow of the methodology implemented in a framework. - At the highest level the application is specified in Smalltalk and then refined to an high-level intermediate representation called CDFG, and then to a low-level representation at RTL level. Automated transformations applied on CDFGs are represented by the blue ellipses. 2 - The application is simulated on a model of the target platform. This model is described from an object framework defining components and communication links. 3 - The application can be simulated from functional specification in Smalltalk down to RTL level. This simulation is integrated in the system-level simulation for a global simulation. It produces Gantt and interaction diagrams giving information on the system behavior, and also signals waveforms generated by the application at RTL level. 4 - According to the extreme programming methodology, iterations are performed on debugging and testing steps during application development. These iterations are dependent of debug done at the different levels and simulation results. 5 - Once the application is validated the low level intermediate representation is taken as input of synthesis tool. For now we target the M2000 FPGA but the synthesis issue is not in the scope of this talk. The test and debugging steps are also applied to the synthesis results.
Here it is an example of CDFG. The CDFG model defines all the element for describing concurrent applications as communicating processes. There are two types of nodes: hierarchical or atomic. Hierarchical nodes can contain atomic and hierarchical, there are four main types of nodes. Structuring nodes holds information about the application structure for example they can represent function call or processes. Sequencing nodes gives information about the scheduling of their sub operators. They can be executed in parallel or sequentially. Iteration nodes correspond to loop with fixed indices or conditional loops. Conditional are for if-then-else or switch-case control instructions. Atomic nodes represent classical comuting operators. They can also correspond to constant used by the program or memory access operations. The communication between processes are performed by send or receive operation represented by atomic nodes.
The low level CDFG model is an extension of the high level model. It is produced from the mapping of a high level CDFG to a reconfigurable architecture. It defines additional constructs specific to RTL level such as registers, primitive operators from libraries, nodes holding finite state machine description in KISS and also nodes holding logic in BLIF format. This CDFG is taken as input of the synthesis tools for producing an EDIF. It is also used by the RTL-level simulator for debugging purpose and also for generating signal waveforms.
Design pattern: Composite Feature very useful when simulation of a same application is performed at different abstraction level. It enables to analyze both the variables and their corresponding signals.
We have seen the different specification levels of the applications and particularly the CDFG model which is used for multi-level simulation. The simulation of the application starts from a behavioural description in Smalltalk processes communicating by channels. At this level probes from the system level simulator API are inserted in the code for producing events in the simulator and generating Gantt diagram of the process activities. It gives a coarse view of how the processes behave. The high-level CDFG is also simulated by the system level simulator API. Compared to the functional simulation in Smalltalk each operator activity is traced on a Gantt diagram giving a detailed execution of the graph with the instruction level parallelism. Then the low level CDFG is simulated by a cycle accurate simulator embedded in the system level simulation of the platform. The RTL level involves a different notion of time compare to the system-level. The RTL level simulator with its application is embedded in the system model as a component and it is seen as an atomic task. A start signal is send to the application for activating the RTL simulator which returns the total latency of the application once it is done, then this latency is used at the system level for simulating an event. A correspondence is kept in the simulator between the low level and the high level CDFG for example the loop indices or operators for easing the debug. It is also possible to configure the simulation with conditional breakpoints in order to stop the simulation on a particular state. Typically these conditions can be set on signals. They also can be probed for producing waveforms and helping for debugging the application.
In order to take into account all the system activities of a SoC during the execution of an application it is necessary to have a model of the execution platform. A model is built from an object framework defining components that can be composed hierarchically. A component approach enhances reusability and modularity in the model, moreover the hierarchical organization enables to abstract complex subsystem when they are connected. A component declares and schedules a set of processes or sub-components representing its behaviour. For communication, it defines an interface holding a set of input and output ports. These ports are connected by communication channels that can be FIFO or blocking channel. Local communications between processes are also performed through channels. Connections between components are declared by the encapsulating hierarchy. For example on the figure the component, Main declares the two sub-components Unit1 and Unit2 as well as the connection between their interfaces. Unit1 encapsulates three processes communicating through channels and P1, P2 communicate with Unit2.
The framework is organized around two class hierarchies. An abstract component defines all the methods for declaring subcomponents, interface connectivity, processes, etc. The designer can defines his own model by sub-classing this framework and creating a new extension which can be reused. Two types of connection are defined which are FIFO with limit size that can be configured and blocking channel performing synchronization by rendez-vous. In this work the connection are used without modifications but it is possible to extend the model and to define new communication links with specific semantics.
In order to obtain a simulation of the execution platform model, the modeling framework is coupled to an event driven simulator. The simulator provides an API for simulating operator latencies, scheduling and stopping activities. In order to use this API the modeling framework inherits from the simulation class hierarchy. The components and connections are SimulationObject and have access to the A PI. For being able to run the simulation and perform initializations the user has to subclass the Simulation class on the right, which has access to the simulation kernel managing the event queue. In other word it corresponds to the simulator entry in the model. For summarizing a model defined by a designer corresponds to an extension of the simulator and modeling class hierarchies where elements of the model are at the most abstract level simulation objects.
As an example, we consider is the execution of an application specified as communicating processes and executed on a reconfigurable unit belonging to a system on chip. The structure of the system on chip is depicted by the figure. The component describes in the modeling framework are the CPU, a DMA, a main memory and a reconfigurable accelerator connected to a set of local memories. All the components are connected by a bus. The application is composed of three processes with two processes performing operations on local memories and feeding a computing function. The CDFG of the application is given here.
The visualization tools enable to study the interactions or communications between the components with interaction diagram and the activities of the system with Gantt diagrams. The interaction diagram gives the communications between the components in function of the simulations steps. Here the CPU sends a start signal to the DMA which in turn sends requests through the bus to the memory in order to start the transfer of data to the local memories of the reconfigurable unit. A Gantt diagram is generated giving the activities of the components. The thr ee traces are the data transfers performed on the bus and these traces correspond to tasks performed by the application specified as Smalltalk processes. A process read the data, the computing process receive and send the result to the another process writing back in local memories. The three processes create a pipeline.
The application simulated as a low level CDFG can be analyzed by probing signals. The values of the signals are given by waveforms. This waveform corresponds to the start and stop signal of the application. It gives the total latency of the execution. It is also possible to probe loop indices. The received values on a channel. Simulation results are used to perform tests on values produced. Traces recorded values for each cycle so it is easy to make SUnit methods to check result at given cycles.
The two types of test can be illustrated as follow. Test1 is a unit test. It checks if the result return by the mapping of a high level CDFG are correct. Basically, the test verify if the CDFGSynthesis API has produced a netlist. If not a debugging step is necessary. The second example test2 shows a characterization test which compares two configurations for a mapping. In the first case the CDFG uses primitive operators from a library and in the second case the operator are converted in random logic. Then a simulation of both low level CDFGs is performed and the results are compared for equality ensuring that the behavior of the CDFG is not changed in function of the mapping.
The two types of test can be illustrated as follow. Test1 is a unit test. It checks if the result return by the mapping of a high level CDFG are correct. Basically, the test verify if the CDFGSynthesis API has produced a netlist. If not a debugging step is necessary. The second example test2 shows a characterization test which compares two configurations for a mapping. In the first case the CDFG uses primitive operators from a library and in the second case the operator are converted in random logic. Then a simulation of both low level CDFGs is performed and the results are compared for equality ensuring that the behavior of the CDFG is not changed in function of the mapping.
Dependencies are very flexible and can also be defined with an array of actions to trigger for a single signal.
The presentation is organized as follow. In a first part i will explain the framework for modeling execution platform and the way an application is specified. We will also see how the application and the platform are simulated. In a second part I will detail the tools and the software approach we used for designing and validating the application. The third part will give simulation results of the system and the application. And finally I will come to the conclusion and will give some perspectives.
Software simulation at Register Tranfer Level (e.g. Modelsim) Use of embedded logic analyzer (e.g. ChipScope)
Software simulation at Register Tranfer Level (e.g. Modelsim) Use of embedded logic analyzer (e.g. ChipScope)
Synthesis time-consuming -> debugging in situ
We have shown a methodology implemented in a framework for simulating and validating an application running on a reconfigurable accelerator of a system on chip. The intermediate format CDFG is used for enabling a mutli level simulation and is taken as input of synthesis tools. The execution platform is modeled by an object framework defining components and communication links. The global simulation includes the simulation of the application and the platform. This methodology aims at bringing to hardware application design advantages from software engineering techniques by the use of the high level language Smalltalk and its environment enabling to debug and explore the model under simulation. These concept are extended to the synthesis with the possibility to synthesize the probes in hardware and to keep a high level interface for inspecting the application. Additionally the use of Extreme programming methodology is proposed for safe and more productive development. Of course the framework has some limitations. The execution platform is modeled and simulated only at one level of abstraction, only the application can be analyzed at different levels. Currently the low level CDFG is synthesize on one target which is M2000. And the framework lacks of interface with external tools for example with a Xilinx toolchain.
The first perspective is to improve the interface with the external toolchain and also of simulation tools for simulating netlists. The impact of the synthesized probes is not quantified and would give relevant information concerning the overheads in term of frequency and surface on the application. We plan to also investigate the possibility to add probes dynamically in the application loaded on the reconfigurable unit by exploiting partial reconfiguration technology. Finally the synthesized application has to be interfaced at high level in the framework with the possibility to inspect the circuit’s state and to control the execution in order to keep a software approach.