FSMD and Gezel. Jan Madsen



Similar documents
Embedded Systems. introduction. Jan Madsen

Architectures and Platforms

Digital Systems Design! Lecture 1 - Introduction!!

Codesign: The World Of Practice

FPGA-based MapReduce Framework for Machine Learning

Hardware Resource Allocation for Hardware/Software Partitioning in the LYCOS System

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

Seeking Opportunities for Hardware Acceleration in Big Data Analytics

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

FPGA area allocation for parallel C applications

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Preface. Any questions from last time? A bit more motivation, information about me. A bit more about this class. Later: Will review 1st 22 slides

Product Development Flow Including Model- Based Design and System-Level Functional Verification

High-Level Synthesis for FPGA Designs

Exploiting Stateful Inspection of Network Security in Reconfigurable Hardware

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Modeling a GPS Receiver Using SystemC

Extending the Power of FPGAs. Salil Raje, Xilinx

Eingebettete Systeme. 4: Entwurfsmethodik, HW/SW Co-Design. Technische Informatik T T T

Architectures and Design techniques for energy efficient embedded DSP and multimedia processing

ELEC 5260/6260/6266 Embedded Computing Systems

Data Center and Cloud Computing Market Landscape and Challenges

Using a Generic Plug and Play Performance Monitor for SoC Verification

Design Cycle for Microprocessors

Lesson 7: SYSTEM-ON. SoC) AND USE OF VLSI CIRCUIT DESIGN TECHNOLOGY. Chapter-1L07: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

Introducción. Diseño de sistemas digitales.1

The Advanced JTAG Bridge. Nathan Yawn 05/12/09

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic

LEVERAGING HARDWARE DESCRIPTION LANUGAGES AND SPIRAL LEARNING IN AN INTRODUCTORY COMPUTER ARCHITECTURE COURSE

Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University

Jonathan C. Sevy. Software and Systems Engineering Experience

Java and Real Time Storage Applications

MPSoC Virtual Platforms

EVALUATION OF SCHEDULING AND ALLOCATION ALGORITHMS WHILE MAPPING ASSEMBLY CODE ONTO FPGAS

Software-Programmable FPGA IoT Platform. Kam Chuen Mak (Lattice Semiconductor) Andrew Canis (LegUp Computing) July 13, 2016

Serial port interface for microcontroller embedded into integrated power meter

Towards an Ontology-driven Intellectual Properties reuse for Systems On Chip design

Operating System Support for Multiprocessor Systems-on-Chip

Xenomai: integration and qualification of a real time operating system ARMadeus Systems

Software Defined Radio Architecture for NASA s Space Communications

Secured Embedded Many-Core Accelerator for Big Data Processing

SystemC Tutorial. John Moondanos. Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley

Introduction to Digital System Design

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

VHDL DESIGN OF EDUCATIONAL, MODERN AND OPEN- ARCHITECTURE CPU

Dataflow Programming with MaxCompiler

How To Design An Image Processing System On A Chip

Testing of Digital System-on- Chip (SoC)

A Mixed-Signal System-on-Chip Audio Decoder Design for Education

Kirchhoff Institute for Physics Heidelberg

Multi-Threading Performance on Commodity Multi-Core Processors

9/14/ :38

Enhanced Project Management for Embedded C/C++ Programming using Software Components

Using ModelSim, Matlab/Simulink and NS for Simulation of Distributed Systems

ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT

NIOS II Based Embedded Web Server Development for Networking Applications

FPGA Implementation of an Advanced Traffic Light Controller using Verilog HDL

EMBEDDED SYSTEM BASICS AND APPLICATION

7a. System-on-chip design and prototyping platforms

A Low Latency Library in FPGA Hardware for High Frequency Trading (HFT)

Design and Implementation of an On-Chip timing based Permutation Network for Multiprocessor system on Chip

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

Potential Thesis Topics in Networking

ESE566 REPORT3. Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU

High Performance or Cycle Accuracy?

Load Balancing & DFS Primitives for Efficient Multicore Applications

An Interconnection Network for a Cache Coherent System on FPGAs. Vincent Mirian

Embedded System Hardware - Processing (Part II)

International Workshop on Field Programmable Logic and Applications, FPL '99

BUILD VERSUS BUY. Understanding the Total Cost of Embedded Design.

MAJORS: Computer Engineering, Computer Science, Electrical Engineering

Eli Levi Eli Levi holds B.Sc.EE from the Technion.Working as field application engineer for Systematics, Specializing in HDL design with MATLAB and

CFD Implementation with In-Socket FPGA Accelerators

Microelectronic System-on-Chip Modeling using Objects and their Relationships

ECE 5745 Complex Digital ASIC Design Course Overview

OpenSoC Fabric: On-Chip Network Generator

How To Write Security Enhanced Linux On Embedded Systems (Es) On A Microsoft Linux (Amd64) (Amd32) (A Microsoft Microsoft 2.3.2) (For Microsoft) (Or

Multiprocessor System-on-Chip

Master Specialization in Digital Design: Design and Programming of Embedded Systems

Hardware Implementation of the Stone Metamorphic Cipher

Chapter 3 Operating-System Structures

Offline HW/SW Authentication for Reconfigurable Platforms

Driving force. What future software needs. Potential research topics

Computer Engineering: Incoming MS Student Orientation Requirements & Course Overview

Freescale Semiconductor, I

Power Reduction Techniques in the SoC Clock Network. Clock Power

Xeon+FPGA Platform for the Data Center

Levels of Programming Languages. Gerald Penn CSC 324

How To Get A Computer Science Degree

FPGA Implementation of a Hybrid On-line Process Monitoring in PC Based Real-Time Systems*

System on Chip Design. Michael Nydegger

INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE

International Journal of Scientific & Engineering Research, Volume 4, Issue 6, June ISSN

Modeling Latches and Flip-flops

Implementation of emulated digital CNN-UM architecture on programmable logic devices and its applications

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

Compiling PCRE to FPGA for Accelerating SNORT IDS

APPLICATION NOTE AN-409

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

System-On Chip Modeling and Design A case study on MP3 Decoder

Transcription:

FSMD and Gezel Jan Madsen Informatics and Mathematical Modeling Technical University of Denmark Richard Petersens Plads, Building 321 DK2800 Lyngby, Denmark jan@imm.dtu.dk Processors Pentium IV General-purpose func if... then... else... for {... IJVM Application-specific.. ASIC Single-purpose 02131 Embedded Systems Jan Madsen [2] 02131 Embedded Systems 1

Domain-Specific Processors MEMORY CPU RF Baseband Processing Crypto Chip Reconfigurable Interconnect Software Domain- Specific Hardware Networking Medium access Baseband Proc? Architecture Circuit Networking Protocol Algorithm Architecture? Architectre Circuit Security Courtesy Patrick Schaumont 02131 Embedded Systems Jan Madsen [3] Agenda inst mem controller datapath data mem FSMD execution Modeling Gezel Gezel example 02131 Embedded Systems Jan Madsen [4] 02131 Embedded Systems 2

FSMD execution Executes in a number of steps Step i-1 Step i Step i+1 Steps are controlled by a clock period T frequency f = 1/T Within a period we have to read, compute and save For now, all we need to know is that there is a clock 02131 Embedded Systems Jan Madsen [10] FSMD execution Step i-1 Step i Step i+1 F i-1 F i F i+1 02131 Embedded Systems Jan Madsen [11] 02131 Embedded Systems 3

Simple example +1 +1 +1 time 0 0 0 0 0+1 0+1 0+1 0 1 1 1 0+1 1+1 1+1 0 1 2 2 0+1 1+1 1+1 0 1 2 3 0+1 1+1 1+1 0 1 2 3 02131 Embedded Systems Jan Madsen [12] Modelling 02131 Embedded Systems Jan Madsen [13] 02131 Embedded Systems 4

Modeling model type Mathematical domain model type model instance model instance When go==1 then blink leds five times specification Physical domain implementation 02131 Embedded Systems Jan Madsen [14] Modeling: Hardware design Gezel: fdlsim FSMD Mathematical domain FSMD VHDL: Modelsim Gezel Gezel: fdlvhd VHDL Xilinx When go==1 then blink leds five times specification Physical domain Xilinx FPGA 02131 Embedded Systems Jan Madsen [15] 02131 Embedded Systems 5

Modeling: Software design Imperative languages Mathematical domain Imperative languages C Compiler: gcc ASM linker When go==1 then blink leds five times specification Physical domain Pentium III 02131 Embedded Systems Jan Madsen [16] Gezel 02131 Embedded Systems Jan Madsen [17] 02131 Embedded Systems 6

Gezel 02131 Embedded Systems Jan Madsen [18] Domain-Specific Processors MEMORY CPU RF Baseband Processing Crypto Chip Reconfigurable Interconnect Software Domain- Specific Hardware Networking Medium access Baseband Proc? Architecture Circuit Networking Protocol Algorithm Architecture? Architectre Circuit Security Courtesy Patrick Schaumont 02131 Embedded Systems Jan Madsen [19] 02131 Embedded Systems 7

Purpose of GEZEL Create a Flexible Use-Model Software Domain- Specific Hardware Protocol Algorithm Architecture? Architectre Circuit Security Instruction Set Design Integration MoC-component Reduce Structural Flexibility with Domain Specialization Performance Energy Efficiency Area Courtesy Patrick Schaumont 02131 Embedded Systems Jan Madsen [20] GEZEL Design Flow Stepwise Refinement of high-level, functional descriptions into a hierarchy of descriptions at lower levels of abstraction. Software Domain- Specific Hardware Protocol Algorithm Architecture? Architectre Circuit Security System Model (SW) Gezel Processor Courtesy Patrick Schaumont 02131 Embedded Systems Jan Madsen [21] 02131 Embedded Systems 8

Elements in a Gezel Co-Processor Datapaths containing instructions Controllers to select datapath instructions Library Blocks Datapaths are composed in a System control control Gezel system data path data path library block Courtesy Patrick Schaumont 02131 Embedded Systems Jan Madsen [22] GEZEL Tool Architecture.fdl Domain Specific Description Language Simulation Kernel parser Object structure Simulation API Gezel Tool Codegen API Other domains System Simulation C++ HW SW Courtesy Patrick Schaumont 02131 Embedded Systems Jan Madsen [23] 02131 Embedded Systems 9

Gezel: FSMD dp Name 0 ( port list ) { local register and signal declarations possibly: use Name i (n 0, n 1, ); (i=0) sfg name 1 { simple (non-branching) actions sfg name 2 { simple (non-branching) actions... + fsm controller_name ( Name 0 ) { initial state declaration auxiliary state declarations @state 0 transition 0 @state 1 transition 1... hardwired controller_name ( Name 0 ) { action_name; sequencer controller_name ( Name 0 ) { action_name;... + system id {Name k ; 02131 Embedded Systems Jan Madsen [24] Gezel: adder x y adder z dp adder(in x, y: tc(32); out z: tc(32)) { sfg add { z = x + y; hardwired ctl(adder) { add; controller datapath controller datapath 02131 Embedded Systems Jan Madsen [25] 02131 Embedded Systems 10

Gezel: Testbench x y adder z dp adder(in x, y: tc(32); out z: tc(32)) { sfg add { z = x + y; hardwired ctl(adder) { add; y x adder_test z 02131 Embedded Systems Jan Madsen [26] Gezel: Testbench dp adder_test(in z: tc(32); out y, x: tc(32)) { sig sx, sy, sz: tc(32); sfg rep { sz = z; x = sx; y = sy; $display($dec,"x: ",sx, ", y: ",sy, ", z: ",sz); sfg a1 { sx = 100; sy = 350; sfg a2 { sx = 333; sy = 666; sfg a3 { sx = 20; sy = -99; dp adder(in x, y: tc(32); out z: tc(32)) { sfg add { z = x + y; hardwired ctl(adder) { add; fsm test(adder_test){ initial s0; state s1, s2; @s0 (rep,a1) -> s1; @s1 (rep,a2) -> s2; @s2 (rep,a3) -> s0; 02131 Embedded Systems Jan Madsen [27] 02131 Embedded Systems 11

Gezel: System dp adder_test(in z: tc(32); out y, x: tc(32)) { sig sx, sy, sz: tc(32); sfg rep { sz = z; x = sx; y = sy; $display($dec,"x: ",sx, ", y: ",sy, ", z: ",sz); sfg a1 { sx = 100; sy = 350; sfg a2 { sx = 333; sy = 666; sfg a3 { sx = 20; sy = -99; fsm test(adder_test){ initial s0; state s1, s2; @s0 (rep,a1) -> s1; @s1 (rep,a2) -> s2; @s2 (rep,a3) -> s0; dp adder(in x, y: tc(32); out z: tc(32)) { sfg add { z = x + y; hardwired ctl(adder) { add; system x y y x adder adder_ test z z 02131 Embedded Systems Jan Madsen [28] Gezel: System dp adder_test(in z: tc(32); out y, x: tc(32)) { sig sx, sy, sz: tc(32); sfg rep { sz = z; x = sx; y = sy; $display($dec,"x: ",sx, ", y: ",sy, ", z: ",sz); sfg a1 { sx = 100; sy = 350; sfg a2 { sx = 333; sy = 666; sfg a3 { sx = 20; sy = -99; fsm test(adder_test){ initial s0; state s1, s2; @s0 (rep,a1) -> s1; @s1 (rep,a2) -> s2; @s2 (rep,a3) -> s0; dp adder(in x, y: tc(32); out z: tc(32)) { sfg add { z = x + y; hardwired ctl(adder) { add; dp topcell() { sig a,b,c: tc(32); use adder(a,b,c); use adder_test(c,b,a); hardwired ctl(topcell) { system testbench {topcell; 02131 Embedded Systems Jan Madsen [29] 02131 Embedded Systems 12

Gezel: A complete example dp adder_test(in z: tc(32); out y, x: tc(32)) { sig sx, sy, sz: tc(32); sfg rep { sz = z; x = sx; y = sy; $display($dec,"x: ",sx, ", y: ",sy, ", z: ",sz); sfg a1 { sx = 100; sy = 350; sfg a2 { sx = 333; sy = 666; sfg a3 { sx = 20; sy = -99; fsm test(adder_test){ initial s0; state s1, s2; @s0 (rep,a1) -> s1; @s1 (rep,a2) -> s2; @s2 (rep,a3) -> s0; dp adder(in x, y: tc(32); out z: tc(32)) { sfg add { z = x + y; hardwired ctl(adder) { add; dp topcell() { sig a,b,c: tc(32); use adder(a,b,c); use adder_test(c,b,a); Hardwaired ctl(topcell) { system testbench {topcell; 02131 Embedded Systems Jan Madsen [30] Simple example in Gezel +1 +1 +1 dp timing( out data : ns(32) ){ reg r1, r2, r3, r4 : ns(32); sfg init{r1 = 0; r2 = 0; r3 = 0; r4 = 0; data = r4; $display("start simulation"); sfg exec{ r2 = r1+1; r3 = r2+1; r4 = r3+1; data = r4; sfg dump{ $display($cycle," r1=",r1," r2=",r2, " r3=",r3," r4=",r4," data=",data); fsm run(timing){ initial s0; state s1; @s0 (init, dump) -> s1; @s1 (exec, dump) -> s1; dp topcell() { sig a: ns(32); use timing(a); system S { topcell; 02131 Embedded Systems Jan Madsen [31] 02131 Embedded Systems 13

Simple example in Gezel +1 +1 +1 start simulation 0 r1=0/0 r2=0/0 r3=0/0 r4=0/0 data=0 1 r1=0/0 r2=0/1 r3=0/1 r4=0/1 data=0 2 r1=0/0 r2=1/1 r3=1/2 r4=1/2 data=1 3 r1=0/0 r2=1/1 r3=2/2 r4=2/3 data=2 4 r1=0/0 r2=1/1 r3=2/2 r4=3/3 data=3 5 r1=0/0 r2=1/1 r3=2/2 r4=3/3 data=3 02131 Embedded Systems Jan Madsen [32] 02131 Embedded Systems 14