SlideShare a Scribd company logo
1 of 19
POLITECNICO DI MILANO

SiLLis: A Simplified Language
For Monitoring and Debugging
    FPGA-based Systems

          Paolo Roberto Grassi




                  Relatore: Prof. Donatella Sciuto
                  Correlatore: Ing. Marco Domenico Santambrogio
Outline
    Introduction
    Thesis Goals
    State of Art
    Problem Definition
       Listener: General Structure
    SiLLis
       Grammar
       Paths and Guardians
       Translation
    Case Studies
       Reconfiguration Monitor
       Performance Monitor
    Concluding Remarks

2
Introduction
    The process where a system is exercised and its
    resulting response is analyzed to ascertain whether it
    behaved correctly or not is called testing.
    Debugging is a methodical process of finding and
    reducing the number of bugs, or defects, in a
    computer program or a piece of electronic hardware
    thus making it behave as expected




3
Thesis Goals

    Definition of a high level language for the convenient
    description of hardware components for monitoring of
    communication lines on FPGAs

    The project aims at overcoming the following limits
    that affect commercial and non-commercial tools :
      Debugging Invasivity
      Limited Debugging Period
      Quality of Gathered Data


    The project is focused on on-line, self, system-level,
    at-speed, compact, in-circuit testing

4
State of Art
        Lots of solutions were proposed to solve the problem
        of FPGA-debugging:
            External devices connected to the I/O pins of the FPGA
            Internal components with TAP (Test Access Port)
            interface
            Clock Gating [*]




    [*] J.N. Tombs, et al. “The implementation of a FPGA hardware debugger system with
    minimal system overhead”, in FPL, 2004, pg. 1062-1066
5
State of Art – Commercial Solutions

    Xilinx® ChipScope Pro™
        ChipScope inserts logic analyzer, bus analyzer and virtual I/O
        low-profile software cores directly in the system, allowing the
        possibility to view any internal signal or node, including
        embedded hard or soft processors

    Synplicity® Identify®
       It allows you to navigate your design graphically and mark
       signals directly in RTL as probes or sample triggers

    SignalTap® II by Altera®
       Provides a solution that allows you to examine the behavior of
       internal signals, without using extra I/O pins, while the design
       is running at full speed on an FPGA device

6
Problem Definition
    Blind-Monitor: It captures the data every clock cycle,
    store it in memory or transfer it directly to an external
    application
    Monitoring Time                   Memory Requirement
            M0
     t                                  M    t0 ( f n   Tr )
         f n Tr

    Listener: It read the data, filter that and, eventually,
    recognize and understand if something happens
    Monitoring Time                   Memory Requirement
           M0
    t                                 M     t0 ( f n     Tr )
       f n       Tr

7
Listener: General Structure




    In order to have a feasible, non-stopping, debugging
    activity, the following relation must be satisfied:
                nH   1                          nO 1

                         h ( k , i ) f SYS             e ( k , i ) f OUT
             i 0 k 0                         i 0 k 0
8
SiLLis: Simplified Language for Listeners
                                          parameter
                                            LOW_TRIGGER = 3;
    Every listener is composed of:          HIGH_TRIGGER = 9;
                                          end parameter;
        Parameter Definition (optional)
                                          interface
        Interface Definition (required)     input : in STD_LOGIC_VECTOR(0 to 8);
                                            increment : in STD_LOGIC_VECTOR(0 to 8);
        Internal Variable Definition      end interface;

        (opt.)                            internal_variables
                                            data : STD_LOGIC_VECTOR(0 to 8);
                                          end internal_variables;
        External Variable Definition
        (opt.)                            external_variables
                                            reset_data : STD_LOGIC_VECTOR(0 to 8);
                                          end external_variables;
        Paths (optional)
                                          path (increment>0) is
        Guardians (optional)                data = reset_data;
                                            sleep(1);
    It provides some Special                  if input < LOW_TRIGGER then
                                                flush(data);
    (predefined) functions:                   else
                                                loop_until input > HIGH_TRIGGER then
                                                   data = data + increment;
        sleep(n)                                   flush(data)
                                                end loop_until;
        wait(A)                             end if;
                                          end path;
        reset                             guardian (input>HIGH_TRIGGER) is
        flush(A)                            wait(input<LOW_TRIGGER);
                                            reset;
                                          end guardian;

9
SiLLis: Paths and Guardians
            Paths and guardians contain the code related to the filtering logic
            Each guardian can contain a set of paths, but paths cannot
            contain guardians
            The effect of the activation is different for paths and guardians:
               When a path is activated, it inhibits the activation of other
               paths
               When a guardian is activated, it inhibits the activation of both
               paths and guardians. If a path is activated, its execution is
               temporary frozen
                 Condition   Current State                            Effect
     Path        False       Not important                            Nothing
     Path        True        No guardians or paths activated          Path activated, other paths inhibited
     Path        True        One guardian or path activated           Nothing (path inhibited)
     Guardian    False       Not important                            Nothing
     Guardian    True        No guardians activated                   Guardian activated, everything inhibited
     Guardian    True        No guardians activated, path activated   Guardian activated, path frozen
     Guardian    True        One guardian activated                   Nothing (guardian inhibited)


10
SiLLis State Machine Manager
     Paths State Machine


                                              The Guardians State Machine controls
                                              the output of the two state machines
                                              It is activated by triggers at runtime
                                              It blocks the Paths State Machine in
                                              order to manage the event




       Guardians State Machine




11
SiLLis Translator
       The SiLLis description is translated into synthesizable
       VHDL in order to be integrated into the system
       To easily perform the VHDL composition, SiLLis uses
       vMagic, a Java API that allows to write VHDL from Java
       Class definitions



                               Listener State
       SiLLis                     Machine
     Description                                         VHDL


                   SiLLis                       vMagic   Input/Output
                   Parser

12
First Case Study: Reconfiguration Monitor
     The first case study used to prove the usability of SiLLis is a
     runtime monitor for dynamic reconfigurability
     The system contains a controller for the pendulum that is
     reconfigured at runtime
     A SiLLis component catches the partial bitstream that goes to the
     reconfiguration controller filtering all the other unuseful data



                          Reconfiguration       Pendulum
     SDRAM
                            Controller          Controller
                  BUS




     Processor          SiLLis Listener
                                                                       M    E1   E2

                                                             Motor




                                                                     Encoders


                                            Visualization



13
First Case Study: Reconfiguration Monitor

          SDRAM                    Pendulum Controller




                            Reconfiguration

                      BUS
                              Controller
          Processor


                            SiLLis Listener
                                                                         M    E1   E2

                                                               Motor




                                                                       Encoders


                                               Visualization


     1.   Processor Request
     2.   Reconfiguration Controller SDRAM Access
     3.   Bitstream Transfer
14
First Case Study: Experimental Results
       Blind-Monitor Area Occupation
     Logic Utilization                Used    Available (VP30)   Utilization (VP30)
     Number of Slices                 132     27.392             1%
     Number of Slice Flip-Flops       131     27.392             1%
     Number of 4 input LUTs           193     13.696             1%

       SiLLis Reconfiguration Listener Area Occupation
     Logic Utilization                Used    Available (VP30)   Utilization (VP30)
     Number of Slices                 134     27.392             1%
     Number of Slice Flip-Flops       133     27.392             1%
     Number of 4 input LUTs           234     13.696             1%

       Throughput comparison
     Logic Utilization            Data Size   Available (VP30)   Utilization (VP30)
     Blind-Monitor                64 bit      100 MHz            800 MB/sec
     SiLLis Listener              200 KB      10 Hz              2 MB/sec

     (64-bit PLB bus running at 100 MHz)
15
Second Case Study: Performance Monitor


                        SiLLis listener are integrated
                        into the GigaNoC system
                        During the process of data
                        gathering performed by the
                        listeners (L), additional
                        information is added to the
                        data
                        The information contains the
                        timestamp of the current
                        clock cycle and the
                        indentifier of the signal


17
Second Case Study: Experimental Results
     FPGA-resource requirements on a Xilinx Virtex-II 8000
          Component              Slices    Flip Flops   LUTs     BRAMs
          Processing Element (PE) 15.362   8.719        22.233   80
          Switch Box (SB)        14.133    13.340       16.383   -
          Listeners (L1,L2)      171       110          267      -




                                                   Delay Statistics of
                                                   GigaNoC traffic
                                                   load experiments

18
Concluding Remarks
     The state of art presents a set of commercial and non-commercial
     solutions
     In order to solve problems of blind-monitors, listeners were
     proposed
     Pre-defined structure of a listener permits the definition of
     languages for its convenient description
     SiLLis combines an easy grammar and a powerful set of
     instructions
     The power of SiLLis has been shown in the areas of network-on-
     chip and reconfigurable architectures

     Future Works:
        Additional functions can be integrated, which will be useful to
        describe the desired behavior more confortably
        Different application fields: Parallel Computing, Multi-
        Procesor Systems, Multi-FPGA Systems, Adaptive Systems
19
Questions
     Thanks for your attention...




20

More Related Content

What's hot

[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC [DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC DefconRussia
 
(2) logic design lec foe-rd
(2) logic design lec   foe-rd(2) logic design lec   foe-rd
(2) logic design lec foe-rdwhataaa99
 
DSP_Assign_2 (Autosaved)
DSP_Assign_2 (Autosaved)DSP_Assign_2 (Autosaved)
DSP_Assign_2 (Autosaved)Joseph Chandler
 
Verilog HDL Training Course
Verilog HDL Training CourseVerilog HDL Training Course
Verilog HDL Training CoursePaul Laskowski
 
Introduction to VHDL
Introduction to VHDLIntroduction to VHDL
Introduction to VHDLYaser Kalifa
 
At 89s51
At 89s51At 89s51
At 89s51Mr Giap
 
Tpm faq for oem
Tpm faq for oemTpm faq for oem
Tpm faq for oemDaniel Lin
 
PA Develops an LTE PHY for Catapult
PA Develops an LTE PHY for CatapultPA Develops an LTE PHY for Catapult
PA Develops an LTE PHY for Catapultgrahambell
 
Introduction to-vhdl
Introduction to-vhdlIntroduction to-vhdl
Introduction to-vhdlNeeraj Gupta
 
Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang FinalSinarShebl
 
Fpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adderFpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adderSomsubhra Ghosh
 
Everybody be cool, this is a roppery!
Everybody be cool, this is a roppery!Everybody be cool, this is a roppery!
Everybody be cool, this is a roppery!zynamics GmbH
 
37471656 interrupts
37471656 interrupts37471656 interrupts
37471656 interruptstt_aljobory
 

What's hot (20)

[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC [DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
 
(2) logic design lec foe-rd
(2) logic design lec   foe-rd(2) logic design lec   foe-rd
(2) logic design lec foe-rd
 
DSP_Assign_2 (Autosaved)
DSP_Assign_2 (Autosaved)DSP_Assign_2 (Autosaved)
DSP_Assign_2 (Autosaved)
 
Verilog HDL Training Course
Verilog HDL Training CourseVerilog HDL Training Course
Verilog HDL Training Course
 
Introduction to VHDL
Introduction to VHDLIntroduction to VHDL
Introduction to VHDL
 
At 89s51
At 89s51At 89s51
At 89s51
 
Session1
Session1Session1
Session1
 
What is CANopen? | ElmoMC
What is CANopen? | ElmoMCWhat is CANopen? | ElmoMC
What is CANopen? | ElmoMC
 
Tpm faq for oem
Tpm faq for oemTpm faq for oem
Tpm faq for oem
 
At89c4051
At89c4051At89c4051
At89c4051
 
PA Develops an LTE PHY for Catapult
PA Develops an LTE PHY for CatapultPA Develops an LTE PHY for Catapult
PA Develops an LTE PHY for Catapult
 
Introduction to-vhdl
Introduction to-vhdlIntroduction to-vhdl
Introduction to-vhdl
 
Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang Final
 
Fpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adderFpga based implementation of a double precision ieee floating point adder
Fpga based implementation of a double precision ieee floating point adder
 
Vhdl 1 ppg
Vhdl 1 ppgVhdl 1 ppg
Vhdl 1 ppg
 
Class8
Class8Class8
Class8
 
Flash Programming F28x
Flash Programming F28xFlash Programming F28x
Flash Programming F28x
 
Vhdl programming
Vhdl programmingVhdl programming
Vhdl programming
 
Everybody be cool, this is a roppery!
Everybody be cool, this is a roppery!Everybody be cool, this is a roppery!
Everybody be cool, this is a roppery!
 
37471656 interrupts
37471656 interrupts37471656 interrupts
37471656 interrupts
 

Viewers also liked

Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...
Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...
Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...AQAL Capital
 
La decisión de Abraham, Génesis 13
La decisión de Abraham, Génesis 13 La decisión de Abraham, Génesis 13
La decisión de Abraham, Génesis 13 Obed Góngora
 
The 23rd Statistical Survey Report On The Internet Development In China
The 23rd Statistical Survey Report On The Internet Development In ChinaThe 23rd Statistical Survey Report On The Internet Development In China
The 23rd Statistical Survey Report On The Internet Development In ChinaSteven Chow
 
Dr.BozesanOnIntegralventuresITCConference2013
Dr.BozesanOnIntegralventuresITCConference2013Dr.BozesanOnIntegralventuresITCConference2013
Dr.BozesanOnIntegralventuresITCConference2013AQAL Capital
 
無硫金針的認識
無硫金針的認識無硫金針的認識
無硫金針的認識花東宏宣
 
LOS OBSTÁCULOS A LA COMUNIÓN CRISTIANA
LOS OBSTÁCULOS A LA COMUNIÓN CRISTIANALOS OBSTÁCULOS A LA COMUNIÓN CRISTIANA
LOS OBSTÁCULOS A LA COMUNIÓN CRISTIANAObed Góngora
 
LAS EVIDENCIAS DE UNA VIDA DE FE
LAS EVIDENCIAS DE UNA VIDA DE FELAS EVIDENCIAS DE UNA VIDA DE FE
LAS EVIDENCIAS DE UNA VIDA DE FEObed Góngora
 
Un cristiano anti orgullo
Un cristiano anti orgulloUn cristiano anti orgullo
Un cristiano anti orgulloObed Góngora
 
生命中的三種人
生命中的三種人生命中的三種人
生命中的三種人花東宏宣
 
修心 青山無所爭.福田用心耕(Nx)
修心  青山無所爭.福田用心耕(Nx)修心  青山無所爭.福田用心耕(Nx)
修心 青山無所爭.福田用心耕(Nx)花東宏宣
 
Tjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommun
Tjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommunTjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommun
Tjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommunKatrineholmskommun
 
Zivotopis
ZivotopisZivotopis
Zivotopisbrankec
 
孝順需要被教育
孝順需要被教育孝順需要被教育
孝順需要被教育花東宏宣
 
誰拿走我的餅乾
誰拿走我的餅乾誰拿走我的餅乾
誰拿走我的餅乾花東宏宣
 

Viewers also liked (17)

Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...
Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...
Dr.Bozesan on Economic Empowerment of Women Global Summit of Women Kuala Lump...
 
La decisión de Abraham, Génesis 13
La decisión de Abraham, Génesis 13 La decisión de Abraham, Génesis 13
La decisión de Abraham, Génesis 13
 
Easypay generica en
Easypay generica enEasypay generica en
Easypay generica en
 
The 23rd Statistical Survey Report On The Internet Development In China
The 23rd Statistical Survey Report On The Internet Development In ChinaThe 23rd Statistical Survey Report On The Internet Development In China
The 23rd Statistical Survey Report On The Internet Development In China
 
Dr.BozesanOnIntegralventuresITCConference2013
Dr.BozesanOnIntegralventuresITCConference2013Dr.BozesanOnIntegralventuresITCConference2013
Dr.BozesanOnIntegralventuresITCConference2013
 
無硫金針的認識
無硫金針的認識無硫金針的認識
無硫金針的認識
 
格局
格局格局
格局
 
LOS OBSTÁCULOS A LA COMUNIÓN CRISTIANA
LOS OBSTÁCULOS A LA COMUNIÓN CRISTIANALOS OBSTÁCULOS A LA COMUNIÓN CRISTIANA
LOS OBSTÁCULOS A LA COMUNIÓN CRISTIANA
 
LAS EVIDENCIAS DE UNA VIDA DE FE
LAS EVIDENCIAS DE UNA VIDA DE FELAS EVIDENCIAS DE UNA VIDA DE FE
LAS EVIDENCIAS DE UNA VIDA DE FE
 
Un cristiano anti orgullo
Un cristiano anti orgulloUn cristiano anti orgullo
Un cristiano anti orgullo
 
愛情天梯
愛情天梯愛情天梯
愛情天梯
 
生命中的三種人
生命中的三種人生命中的三種人
生命中的三種人
 
修心 青山無所爭.福田用心耕(Nx)
修心  青山無所爭.福田用心耕(Nx)修心  青山無所爭.福田用心耕(Nx)
修心 青山無所爭.福田用心耕(Nx)
 
Tjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommun
Tjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommunTjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommun
Tjänstemannaunderlag till planeringsdirektiv 2011-2013 Katrineholms kommun
 
Zivotopis
ZivotopisZivotopis
Zivotopis
 
孝順需要被教育
孝順需要被教育孝順需要被教育
孝順需要被教育
 
誰拿走我的餅乾
誰拿走我的餅乾誰拿走我的餅乾
誰拿走我的餅乾
 

Similar to SiLLis: Simplified Language for Listener

Practical file
Practical filePractical file
Practical filerajeevkr35
 
hdl timer ppt.pptx
hdl timer ppt.pptxhdl timer ppt.pptx
hdl timer ppt.pptxChethaSp
 
Ch7 OS
Ch7 OSCh7 OS
Ch7 OSC.U
 
Bharath Ram Chandrasekar_Tele 6603_SDN &NFV
Bharath Ram Chandrasekar_Tele 6603_SDN &NFVBharath Ram Chandrasekar_Tele 6603_SDN &NFV
Bharath Ram Chandrasekar_Tele 6603_SDN &NFVBharath Ram Chandrasekar
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllThomas Wuerthinger
 
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...Orgad Kimchi
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingMichelle Holley
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusJulien Pivotto
 
SCSI Protocol
SCSI ProtocolSCSI Protocol
SCSI ProtocolRakesh T
 
Writing more complex models (continued)
Writing more complex models (continued)Writing more complex models (continued)
Writing more complex models (continued)Mohamed Samy
 
Architecture of 8051
Architecture of 8051Architecture of 8051
Architecture of 8051OGAGA OTOBOR
 
Micro c lab2(led patterns)
Micro c lab2(led patterns)Micro c lab2(led patterns)
Micro c lab2(led patterns)Mashood
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationWayne Jones Jnr
 
VHDL PROGRAMS FEW EXAMPLES
VHDL PROGRAMS FEW EXAMPLESVHDL PROGRAMS FEW EXAMPLES
VHDL PROGRAMS FEW EXAMPLESkarthik kadava
 

Similar to SiLLis: Simplified Language for Listener (20)

Joel Falcou, Boost.SIMD
Joel Falcou, Boost.SIMDJoel Falcou, Boost.SIMD
Joel Falcou, Boost.SIMD
 
Practical file
Practical filePractical file
Practical file
 
Coding style for good synthesis
Coding style for good synthesisCoding style for good synthesis
Coding style for good synthesis
 
hdl timer ppt.pptx
hdl timer ppt.pptxhdl timer ppt.pptx
hdl timer ppt.pptx
 
Vhdl introduction
Vhdl introductionVhdl introduction
Vhdl introduction
 
Ch7 OS
Ch7 OSCh7 OS
Ch7 OS
 
Bharath Ram Chandrasekar_Tele 6603_SDN &NFV
Bharath Ram Chandrasekar_Tele 6603_SDN &NFVBharath Ram Chandrasekar_Tele 6603_SDN &NFV
Bharath Ram Chandrasekar_Tele 6603_SDN &NFV
 
Backtrack Manual Part8
Backtrack Manual Part8Backtrack Manual Part8
Backtrack Manual Part8
 
Vhdl
VhdlVhdl
Vhdl
 
Graal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them AllGraal and Truffle: One VM to Rule Them All
Graal and Truffle: One VM to Rule Them All
 
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
Performance analysis in a multitenant cloud environment Using Hadoop Cluster ...
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet Processing
 
Monitor your CentOS stack with Prometheus
Monitor your CentOS stack with PrometheusMonitor your CentOS stack with Prometheus
Monitor your CentOS stack with Prometheus
 
SCSI Protocol
SCSI ProtocolSCSI Protocol
SCSI Protocol
 
Writing more complex models (continued)
Writing more complex models (continued)Writing more complex models (continued)
Writing more complex models (continued)
 
Architecture of 8051
Architecture of 8051Architecture of 8051
Architecture of 8051
 
Micro c lab2(led patterns)
Micro c lab2(led patterns)Micro c lab2(led patterns)
Micro c lab2(led patterns)
 
Spdas2 vlsibput
Spdas2 vlsibputSpdas2 vlsibput
Spdas2 vlsibput
 
Chapter 6 - Process Synchronization
Chapter 6 - Process SynchronizationChapter 6 - Process Synchronization
Chapter 6 - Process Synchronization
 
VHDL PROGRAMS FEW EXAMPLES
VHDL PROGRAMS FEW EXAMPLESVHDL PROGRAMS FEW EXAMPLES
VHDL PROGRAMS FEW EXAMPLES
 

SiLLis: Simplified Language for Listener

  • 1. POLITECNICO DI MILANO SiLLis: A Simplified Language For Monitoring and Debugging FPGA-based Systems Paolo Roberto Grassi Relatore: Prof. Donatella Sciuto Correlatore: Ing. Marco Domenico Santambrogio
  • 2. Outline Introduction Thesis Goals State of Art Problem Definition Listener: General Structure SiLLis Grammar Paths and Guardians Translation Case Studies Reconfiguration Monitor Performance Monitor Concluding Remarks 2
  • 3. Introduction The process where a system is exercised and its resulting response is analyzed to ascertain whether it behaved correctly or not is called testing. Debugging is a methodical process of finding and reducing the number of bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected 3
  • 4. Thesis Goals Definition of a high level language for the convenient description of hardware components for monitoring of communication lines on FPGAs The project aims at overcoming the following limits that affect commercial and non-commercial tools : Debugging Invasivity Limited Debugging Period Quality of Gathered Data The project is focused on on-line, self, system-level, at-speed, compact, in-circuit testing 4
  • 5. State of Art Lots of solutions were proposed to solve the problem of FPGA-debugging: External devices connected to the I/O pins of the FPGA Internal components with TAP (Test Access Port) interface Clock Gating [*] [*] J.N. Tombs, et al. “The implementation of a FPGA hardware debugger system with minimal system overhead”, in FPL, 2004, pg. 1062-1066 5
  • 6. State of Art – Commercial Solutions Xilinx® ChipScope Pro™ ChipScope inserts logic analyzer, bus analyzer and virtual I/O low-profile software cores directly in the system, allowing the possibility to view any internal signal or node, including embedded hard or soft processors Synplicity® Identify® It allows you to navigate your design graphically and mark signals directly in RTL as probes or sample triggers SignalTap® II by Altera® Provides a solution that allows you to examine the behavior of internal signals, without using extra I/O pins, while the design is running at full speed on an FPGA device 6
  • 7. Problem Definition Blind-Monitor: It captures the data every clock cycle, store it in memory or transfer it directly to an external application Monitoring Time Memory Requirement M0 t M t0 ( f n Tr ) f n Tr Listener: It read the data, filter that and, eventually, recognize and understand if something happens Monitoring Time Memory Requirement M0 t M t0 ( f n Tr ) f n Tr 7
  • 8. Listener: General Structure In order to have a feasible, non-stopping, debugging activity, the following relation must be satisfied: nH 1 nO 1 h ( k , i ) f SYS e ( k , i ) f OUT i 0 k 0 i 0 k 0 8
  • 9. SiLLis: Simplified Language for Listeners parameter LOW_TRIGGER = 3; Every listener is composed of: HIGH_TRIGGER = 9; end parameter; Parameter Definition (optional) interface Interface Definition (required) input : in STD_LOGIC_VECTOR(0 to 8); increment : in STD_LOGIC_VECTOR(0 to 8); Internal Variable Definition end interface; (opt.) internal_variables data : STD_LOGIC_VECTOR(0 to 8); end internal_variables; External Variable Definition (opt.) external_variables reset_data : STD_LOGIC_VECTOR(0 to 8); end external_variables; Paths (optional) path (increment>0) is Guardians (optional) data = reset_data; sleep(1); It provides some Special if input < LOW_TRIGGER then flush(data); (predefined) functions: else loop_until input > HIGH_TRIGGER then data = data + increment; sleep(n) flush(data) end loop_until; wait(A) end if; end path; reset guardian (input>HIGH_TRIGGER) is flush(A) wait(input<LOW_TRIGGER); reset; end guardian; 9
  • 10. SiLLis: Paths and Guardians Paths and guardians contain the code related to the filtering logic Each guardian can contain a set of paths, but paths cannot contain guardians The effect of the activation is different for paths and guardians: When a path is activated, it inhibits the activation of other paths When a guardian is activated, it inhibits the activation of both paths and guardians. If a path is activated, its execution is temporary frozen Condition Current State Effect Path False Not important Nothing Path True No guardians or paths activated Path activated, other paths inhibited Path True One guardian or path activated Nothing (path inhibited) Guardian False Not important Nothing Guardian True No guardians activated Guardian activated, everything inhibited Guardian True No guardians activated, path activated Guardian activated, path frozen Guardian True One guardian activated Nothing (guardian inhibited) 10
  • 11. SiLLis State Machine Manager Paths State Machine The Guardians State Machine controls the output of the two state machines It is activated by triggers at runtime It blocks the Paths State Machine in order to manage the event Guardians State Machine 11
  • 12. SiLLis Translator The SiLLis description is translated into synthesizable VHDL in order to be integrated into the system To easily perform the VHDL composition, SiLLis uses vMagic, a Java API that allows to write VHDL from Java Class definitions Listener State SiLLis Machine Description VHDL SiLLis vMagic Input/Output Parser 12
  • 13. First Case Study: Reconfiguration Monitor The first case study used to prove the usability of SiLLis is a runtime monitor for dynamic reconfigurability The system contains a controller for the pendulum that is reconfigured at runtime A SiLLis component catches the partial bitstream that goes to the reconfiguration controller filtering all the other unuseful data Reconfiguration Pendulum SDRAM Controller Controller BUS Processor SiLLis Listener M E1 E2 Motor Encoders Visualization 13
  • 14. First Case Study: Reconfiguration Monitor SDRAM Pendulum Controller Reconfiguration BUS Controller Processor SiLLis Listener M E1 E2 Motor Encoders Visualization 1. Processor Request 2. Reconfiguration Controller SDRAM Access 3. Bitstream Transfer 14
  • 15. First Case Study: Experimental Results Blind-Monitor Area Occupation Logic Utilization Used Available (VP30) Utilization (VP30) Number of Slices 132 27.392 1% Number of Slice Flip-Flops 131 27.392 1% Number of 4 input LUTs 193 13.696 1% SiLLis Reconfiguration Listener Area Occupation Logic Utilization Used Available (VP30) Utilization (VP30) Number of Slices 134 27.392 1% Number of Slice Flip-Flops 133 27.392 1% Number of 4 input LUTs 234 13.696 1% Throughput comparison Logic Utilization Data Size Available (VP30) Utilization (VP30) Blind-Monitor 64 bit 100 MHz 800 MB/sec SiLLis Listener 200 KB 10 Hz 2 MB/sec (64-bit PLB bus running at 100 MHz) 15
  • 16. Second Case Study: Performance Monitor SiLLis listener are integrated into the GigaNoC system During the process of data gathering performed by the listeners (L), additional information is added to the data The information contains the timestamp of the current clock cycle and the indentifier of the signal 17
  • 17. Second Case Study: Experimental Results FPGA-resource requirements on a Xilinx Virtex-II 8000 Component Slices Flip Flops LUTs BRAMs Processing Element (PE) 15.362 8.719 22.233 80 Switch Box (SB) 14.133 13.340 16.383 - Listeners (L1,L2) 171 110 267 - Delay Statistics of GigaNoC traffic load experiments 18
  • 18. Concluding Remarks The state of art presents a set of commercial and non-commercial solutions In order to solve problems of blind-monitors, listeners were proposed Pre-defined structure of a listener permits the definition of languages for its convenient description SiLLis combines an easy grammar and a powerful set of instructions The power of SiLLis has been shown in the areas of network-on- chip and reconfigurable architectures Future Works: Additional functions can be integrated, which will be useful to describe the desired behavior more confortably Different application fields: Parallel Computing, Multi- Procesor Systems, Multi-FPGA Systems, Adaptive Systems 19
  • 19. Questions Thanks for your attention... 20