SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Vayavya Labs 2009
Agenda



 About Vayavya Labs
 Our Vision for ESL (Electronic System Level)
 About DDGEN




                     Vayavya Labs 2009
About Vayavya Labs

 System Level Design Tools and Embedded Design
  services company
 Markets :
          – Semiconductors and
          – Embedded Design Services
 USP :
    Significant improvements in TTM, QOR, COR
    A new market segment for device driver generation



      World’s first automated device driver generator
                     (US patent pending)
                        Vayavya Labs 2009
Agenda



   About Vayavya Labs

 Our Vision for ESL
   About DDGEN




                         Vayavya Labs 2009
Pain Points in Lower Layers -1


     Application, GUI etc                PainPoints
                                                 Hardware/software
                                                  integration – aka device
Middleware          Protocols
                                                  drivers

    Operating System &
                                         Market Needs
   Associated Components                         Productivity improvement
                                                  tools
  Firmware & Device Drivers                      Golden reference model
                                                  for the hardware
                                                  enabling auto-generation
    Embedded hardware                             of the drivers/firmware



                            Vayavya Labs 2009
Pain Points in lower layers -2
                         Number of SOCs                                 2(X86 and MIPS
                                                                        based)
                         App Domain                                     CE, DTV

                         Operating System                               MontaVista Linux

                         On chip peripherals(drivers)                   23

                         On board peripherals(drivers)                  7

                         Effort for first release of firmware/drivers   78

                         Team Size                                      14

                         Engineering Support Team                       5




Automatic Generation of device drivers can significantly reduce the overall cost
& efforts


                               Vayavya Labs 2009
Tools Evolution

                                                           Hardware and Software
                                                            differ in abstractions and
                            ESL 2.0                         design flows
                                                           Vayavya bridges the
2000 & now        ESL                      UML
                                                            design flows
                  HDL                      HLL
                                                              Reuse
90’s & later
                                                              Common Framework
80’s & later   Schematics               Assembly              Automatic code
                                                               generation




                                      Vayavya Labs 2009
Agenda



   About Vayavya Labs
   Our Vision for ESL

 About DDGEN




                         Vayavya Labs 2009
Conventional way of device driver
                 development

                                                                 Software
                                                              architecture
                                                             considerations
                   IC Team


               8.1 LINE CONTROL
                      REGISTER
  Data sheet   .... Details on each of
                      bits in ..                                 SW Team


                                                             F()
                                                             {
                                            Device Drivers
                                                                // …
                                                             }
                                                             F
Currently ad-hoc Methods (Word, Excel etc.) used to communicate
information among IC and Software teams

                                         Vayavya Labs 2009
DDGen Use case


             Device Driver writer                       • DDGEN methodology helps
                                                          formalize communication
DPS file                                       RTS file   between hardware and
      1.   Registers            1.   OS                   software teams
      2.   Interrupts           2.   ISR
      3.   Features             3.   buffer
      4.   …                    4.   …




                        DDGen
                                                          DPS: Device Program Sequence
                                                          RTS: Run Time Specification
  Device Drivers        F()
                                                          DDGen: Device Driver Generator
                        {
                           //
                                              Vayavya Labs 2009
                        }F
Software Space exploration using
                                 DDGEN

           Device Driver writer
                                                                    Sync/Async
DPS file                   RTS file
  1.   Registers     1.   OS
  2.   Interrupts    2.   ISR                     Blocking/non-     Buffering          Polling/
  3.   Features      3.   buffer
  4.   …             4.   …                       blocking API      • Pingpong        Interrupts
                                                                    • Circular

                                                                   Split/Single ISR


               DDGen
                                                 Effective exploration of software design by
                                                 relevant specification in RTS. Think in
            F()
            {   //                               problem domain than implementation domain
                              Device Drivers
            }F

                                               Vayavya Labs 2009
DDGEN- Product details

 ~300% productivity gain in device driver
  development
 Generates
    ANSI C code including OS calls. Fully
     functional device driver
    Unit test code of device driver
 Supports                                           DDGen
    A range of device complexities: UART,
     I2C, USB, Ethernet, PCI, PCI Express, …
    IP-XACT compliant input
    Many popular OS drivers, including null
     OS



                                 Vayavya Labs 2009
DDGEN derived utilities


 DocGen
        – Generates HTML documentation for the device
 RegGen
        – Generates HDL code for the register banks of the device
          from the register specification in DPS
 Verigen
        – Generates SystemVerilog test bench template for
          functional verification




                        Vayavya Labs 2009
DPS Entities

   Device Specification
   Register Specification
   Interrupt Specification
   Feature Specification
   FIFO Specification
   Bus Specification




                          Vayavya Labs 2009
Device Specification

device_spec
{
   device_name          =   pc16550D;
   manufacturer_name    =   "National Semiconductors";
   device_version       =   "D";
   device_class         =   STD_D_C;
   device_input_clock   =   1.8432M, 3.072M, 18.432M;
}




                   Vayavya Labs 2009           15
Register Specification
8.1 LINE CONTROL REGISTER
                                                                 CONTROL_REGISTERS {
.... Details on each bit follow:
                                                                    LCR [8] @ 1 {
Bits 0 and 1: These two bits specify the number of bits in each transmitted or received serial character.
                                                                     type = RW;
      The encoding of bits 0 and 1 is as follows:                    field wls <0:1> {
Bit 1 Bit 0 Character Length                                            type = RW;
0       0      5 Bits                                                   clearing_mode = DC;
                                                                        value_on_reset = 0;
0       1      6 Bits
                                                                        enum {
1       0      7 Bits                                                     FiveBit = 0;
1       1      8 Bits                                                     SixBit = 1;
                                                                          SevenBit= 2;
Bit 2: This bit specifies the number of Stop bits transmitted and received in each serial character. If bit 2
      is a logic 0, one Stop bit is generated in the transmitted data. If EightBit= 3; 1 when a 5-bit word
                                                                          bit 2 is a logic
                                                                     } generated. If bit 2 is a logic 1 when
      length is selected via bits 0 and 1, one and a half Stop bits are
                                                                     field stb <2:2> {
      either a 6-, 7-, or 8-bit word length is selected, two Stop bits are generated. The Receiver checks the
      first Stopbit only, regardless of the number of Stop bits selected. = RW;
                                                                        type
                                                                        clearing_mode = DC;
Bit 3: This bit is the Parity Enable bit. When bit 3 is a logic 1, a Parity bit is generated (transmit data)
                                                                        value_on_reset = 0;
      or checked (receive data) between the last data word bit and Stop bit of the serial data. (The Parity
                                                                        enum {
      bit is used to produce an even or odd number of 1s when the data word bits and the Parity bit are
                                                                         OneStopBit = 0;
      summed.)                                                           OneAndHalfStopBit = 1 when(LCR.wls==0);
Bit 4: This bit is the Even Parity Select bit. When bit 3 is a logic 1 and bit 4 is a=logic 0, an odd number
                                                                         TwoStopBit      1 when(LCR.wls==1||2||3));
                                                                        }
      of logic 1s is transmitted or checked in the data word bits and Parity bit. When bit 3 is a logic 1 and
                                                                     } checked.
      bit 4 is a logic 1, an even number of logic 1s is transmitted or
                                                                 . . . (contd.)


                                              Vayavya Labs 2009
Interrupt Specification


               interrupt_spec {
                  interrupt_pending   =   IIR.IntPend(0) ;

                 IIR.IntID(RxLineStat) {
                    int_type          = error ;
                    enable_field   = IER.elsi(1) ;
                    disable_field = IER.elsi(0) ;
                    clear_field      = COR LSR ;
                    source_field   = LSR.pe(1)
                                         || LSR.oe(1)‫‏‬
                                         || LSR.fe(1)
                                         || LSR.bi(1)
                                         ||LSR.erxfifo(1);
                 }

                 IIR.IntID(RxDataAv) {
                    int_type         = device_read ;
                    enable_field   = IER.erbfi(1) ;
                    disable_field = IER.erbfi(0) ;
                    clear_field      = AUTO_CLEAR ;
                 }

                 IIR.IntID(TxRegEmpty) {
                    int_type         = device_write ;
                    enable_field   = IER.etbei(1) ;
                    disable_field = IER.etbei(0) ;
                    clear_field      = AUTO_CLEAR ;
                 }
               }
    Vayavya Labs 2009
Feature specification
PROGRAMMABLE BAUD GENERATOR

The UART contains a programmable Baud generator that is capable of taking any
clock input from DC to 24 MHz and dividing it by any divisor from 2 to 216- 1. The
output frequency of the Baud Generator is 16 X the Baud [divisor# = (frequency
input) / (baud rate X 16)]. Two 8 bit latches store the divisor in a 16-bit binary
format. These divisor latches must be loaded during initialization to ensure proper
operation of the Baud Generator. Upon loading either of the configure_baud_rate
                                                      feature divisor latches, a 16-bit
baud counter is immediately loaded. Table III provides decimal divisors to use with
                                                      {
crystal frequencies of 1.8432 MHz, 3.072 MHz and 18.432 MHz, respectively. For
                                                        input int baud (50,75,110,9600,128000);
baud rates of 38400 and below, the error obtained is minimal. The accuracy of the
                                                        local int Divisor;
desired baud rate is dependent on the crystal frequency chosen. Using a divisor of
zero is not recommended.
                                                        Divisor = DEVICE_INPUT_CLOCK
                                                          /(baud * 16);
                                                        LCR.dlab = TRUE;
                                                        DLL = Divisor & 0x00ff;
                                                        DLM = (Divisor >> 8) & 0x00ff;
                                                        LCR.dlab = FALSE;
                                                      }

                                      Vayavya Labs 2009                     18
FIFO Specification

FIFO Rcv{
  associated_feature_name = device_read;
  enable_field      = FCR.FifoEnb(1);
  enabled_status_field = IIR.FifoEnbd(1);
  max_fifo_size       = 16;
  fifo_size       = FCR.RcvTrgr;
}
FIFO Tx{
  associated_feature_name = device_write;
  enable_field       = FCR.FifoEnb(1);
  enabled_status_field = IIR.FifoEnbd(1);
  max_fifo_size       = 16;
  fifo_size        = FCR.RcvTrgr;
}



                             Vayavya Labs 2009   19
Bus Specification

 Example 1: (UART)
  bus_spec
  {
    register_acces_type = memory_mapped, io_mapped;
  }


 Example 2:
  bus_spec
  {
    register_acces_type = memory_mapped, io_mapped;
    data_transfer_type = spi, i2c;
    spi_mode = 1,2;
    base_address = 0xA000 – OxB000;
  }



                                Vayavya Labs 2009     20
RTS Entities‫‏‬

   Processor Specification            Entry point Spec
   OS Specification                   Code Gen Spec
   ISR Specification                  Buffer Spec
   BSP Specification                  Compiler Spec
   Bus Specification
   Error Handling
    Specification




                        Vayavya Labs 2009         21
RTS for UART

    Processor Specification                           BUS Specification
                                        BUS_SPEC
PROCESSOR_SPEC                          {
{                                         REG_ACCESS_TYPE=MEMORY_MAPPED;
  PROCESSOR_NAME = ARM9 ;
                                          TRANSFER_MODE = PIO;
  CLOCK_FREQ = 32Mhz;
}                                         BASE_ADDRESS = 0x22;
                                        }


       ISR Specification                          BSP Specification
                                        BSP_SPEC
ISR_SPEC                                {
{                                         DEVICE_INPUT_CLOCK = 3.072MHz ;
  ISR_TYPE = single;                    }
  ISR_DRIVER_SYNC = global_var;
  ISR_NO = 7;
}




                                  Vayavya Labs 2009             22
continued...

          OS Specification                   Entry Point Specification
OS                                         ENTRY_POINT
{                                          {
  OS_NAME = LINUX ;                          QUALIFIER = blocking;
  RE_ENTRANCY =                            }
  BLOCK_BY_DISABLING_INTERRUPTS;
  KERNEL_VERSION = “2.6.22”;
  VIRTUAL_MEMORY = YES;
}                                          Error Handling Specification
                                          ERROR_HANDLING
                                          {
                                            RETRY = 3;
                                            TIMEOUT = 9ms;
                                          }




                              Vayavya Labs 2009              23
continued...

    Compiler Specification                    Codegen Specification
COMPILER_SPEC                             CODEGEN_SPEC
{                                         {
  COMPILER_NAME = GCC ;                     field_usage_comments = yes;
}                                            TYPEDEFS
                                             {
                                               int = int32 ;
      Buff Specification                       char = int8 ;
BUFF_SPEC                                   }
{
                                          }
  BUFF_MANAGEMENT = DRIVER;
  RECEIVE
  {
    BUFFER_TYPE = circular;
    MTU = 256;
  }
}



                              Vayavya Labs 2009              24
Pilot Results

Customer-1
Device Details                                               SoC for entertainment platform
Peripherals on SoC                                        LCD, PIO, Interrupt Controller, Timers
Application code size, for manual written drivers                         5 KB
Application size using tool generated drivers                            5.28KB
No. of days for manual drivers writing                                   17 days
No. of days for drivers generation (by tool)                             6 days
Effort and Time savings                                              Close to 200%
% Code size overhead (by use of tool)                                     5.6%




                                      Vayavya Labs 2009
Pilot Results -2


Customer-2
                                                               DMA, Interrupt handler,
                                                               Event Handler, Clock
Device Details                                                 distribution Unit

Device Specification Capture                                             19 Days

Validating driver code for functionality                                 10 days

Integrating driver code with environment                                 2 Days

Total number of days for automated driver generation                     31 Days


Total number of days for manual driver generation ( approx)             90+ days

Effort and Time savings                                                  > 300%



                                           Vayavya Labs 2009
Business Model

 Target
    Semiconductor firms
      • SOC, ASIC, FPGA
      • IP vendors
    VLSI and Embedded system design services firms
    OEMs/ODMs
    EDA and embedded tools vendors ( partnerships)
 Business model
    Tool licensing
    Design Services using tool – optimised cost & time benefits
    Tool customization and value-add services
                          Vayavya Labs 2009
DDGEN Roadmap




   Sept 2009        Dec 2009           June 2010


Optimization    DM355 support        ModelGen 1.0
knobs
                Eclipse GUI
IPXACT Vendor
                BSPGEN 1.0
Extensions
                CMSIS support




                 Vayavya Labs 2009
Thank You



   Vayavya Labs 2009

Mais conteúdo relacionado

Mais procurados

Comp tia a+_session_03
Comp tia a+_session_03Comp tia a+_session_03
Comp tia a+_session_03
Niit Care
 
Comp tia a+_session_05
Comp tia a+_session_05Comp tia a+_session_05
Comp tia a+_session_05
Niit Care
 
Comp tia a+_session_09
Comp tia a+_session_09Comp tia a+_session_09
Comp tia a+_session_09
Niit Care
 
RES Software Presentatie - Online seminar 12 april
RES Software Presentatie - Online seminar 12 aprilRES Software Presentatie - Online seminar 12 april
RES Software Presentatie - Online seminar 12 april
RES Software Nederland
 
Comp tia a+_session_04
Comp tia a+_session_04Comp tia a+_session_04
Comp tia a+_session_04
Niit Care
 
J2ME Unit_01
J2ME Unit_01J2ME Unit_01
J2ME Unit_01
Prashanth Shivakumar
 
Comp tia a+_session_08
Comp tia a+_session_08Comp tia a+_session_08
Comp tia a+_session_08
Niit Care
 
Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012
Agora Group
 
Tech Ed09 India Ver M New
Tech Ed09 India Ver M NewTech Ed09 India Ver M New
Tech Ed09 India Ver M New
rsnarayanan
 
Comp tia a+_session_06
Comp tia a+_session_06Comp tia a+_session_06
Comp tia a+_session_06
Niit Care
 

Mais procurados (20)

Comp tia a+_session_03
Comp tia a+_session_03Comp tia a+_session_03
Comp tia a+_session_03
 
Comp tia a+_session_05
Comp tia a+_session_05Comp tia a+_session_05
Comp tia a+_session_05
 
Comp tia a+_session_09
Comp tia a+_session_09Comp tia a+_session_09
Comp tia a+_session_09
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12
 
SDN
SDNSDN
SDN
 
Vision dt solutions vmug leeds
Vision dt solutions vmug leedsVision dt solutions vmug leeds
Vision dt solutions vmug leeds
 
RES Software Presentatie - Online seminar 12 april
RES Software Presentatie - Online seminar 12 aprilRES Software Presentatie - Online seminar 12 april
RES Software Presentatie - Online seminar 12 april
 
Fel Flyer F10
Fel Flyer F10Fel Flyer F10
Fel Flyer F10
 
Web Based Reporting
Web Based ReportingWeb Based Reporting
Web Based Reporting
 
Graphics Passthrough With Vt D V2
Graphics Passthrough With Vt D V2Graphics Passthrough With Vt D V2
Graphics Passthrough With Vt D V2
 
Graphics Passthrough With Vt D
Graphics Passthrough With Vt DGraphics Passthrough With Vt D
Graphics Passthrough With Vt D
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
 
Comp tia a+_session_04
Comp tia a+_session_04Comp tia a+_session_04
Comp tia a+_session_04
 
Best Practices for IT Asset Management Using Novell ZENworks
Best Practices for IT Asset Management Using Novell ZENworksBest Practices for IT Asset Management Using Novell ZENworks
Best Practices for IT Asset Management Using Novell ZENworks
 
J2ME Unit_01
J2ME Unit_01J2ME Unit_01
J2ME Unit_01
 
Compute API –Past & Future
Compute API –Past & FutureCompute API –Past & Future
Compute API –Past & Future
 
Comp tia a+_session_08
Comp tia a+_session_08Comp tia a+_session_08
Comp tia a+_session_08
 
Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012Android. behind the scenes_programatica 2012
Android. behind the scenes_programatica 2012
 
Tech Ed09 India Ver M New
Tech Ed09 India Ver M NewTech Ed09 India Ver M New
Tech Ed09 India Ver M New
 
Comp tia a+_session_06
Comp tia a+_session_06Comp tia a+_session_06
Comp tia a+_session_06
 

Destaque

Ancient Landscape Painting
Ancient Landscape PaintingAncient Landscape Painting
Ancient Landscape Painting
XUERWEI
 
Softlib Overview 09 05 28
Softlib Overview 09 05 28Softlib Overview 09 05 28
Softlib Overview 09 05 28
Wil Huijben
 
συνομηλικοι
συνομηλικοισυνομηλικοι
συνομηλικοι
aelef
 
Müller-Guttenbrunn WEEE Recycling
Müller-Guttenbrunn WEEE RecyclingMüller-Guttenbrunn WEEE Recycling
Müller-Guttenbrunn WEEE Recycling
MBA Polymers Inc
 

Destaque (18)

Catalogo Alpha
Catalogo AlphaCatalogo Alpha
Catalogo Alpha
 
环保展厅111
环保展厅111环保展厅111
环保展厅111
 
Ancient Landscape Painting
Ancient Landscape PaintingAncient Landscape Painting
Ancient Landscape Painting
 
Master Creds
Master CredsMaster Creds
Master Creds
 
Softlib Overview 09 05 28
Softlib Overview 09 05 28Softlib Overview 09 05 28
Softlib Overview 09 05 28
 
El incienso de_la_alabanza
El incienso de_la_alabanzaEl incienso de_la_alabanza
El incienso de_la_alabanza
 
ICM Conference Shanghai 2009 Chinese
ICM Conference Shanghai 2009 ChineseICM Conference Shanghai 2009 Chinese
ICM Conference Shanghai 2009 Chinese
 
ICM conference Shanghai 2007
ICM conference Shanghai 2007ICM conference Shanghai 2007
ICM conference Shanghai 2007
 
IERC Salzburg MBA Polymers
IERC Salzburg MBA PolymersIERC Salzburg MBA Polymers
IERC Salzburg MBA Polymers
 
IARC Münich 2008 Plastics Recycling
IARC Münich 2008 Plastics RecyclingIARC Münich 2008 Plastics Recycling
IARC Münich 2008 Plastics Recycling
 
ICM Conference Shanghai Nov 2009 Green Electronics
ICM Conference Shanghai Nov 2009 Green ElectronicsICM Conference Shanghai Nov 2009 Green Electronics
ICM Conference Shanghai Nov 2009 Green Electronics
 
From Supply Chain To Supply Cycle
From Supply Chain To Supply CycleFrom Supply Chain To Supply Cycle
From Supply Chain To Supply Cycle
 
συνομηλικοι
συνομηλικοισυνομηλικοι
συνομηλικοι
 
Presentaton MBA Polymers
Presentaton MBA PolymersPresentaton MBA Polymers
Presentaton MBA Polymers
 
Sesiones clinicas de la ugc de biotecnologia ch torrecardenas 2015
Sesiones clinicas de la ugc de biotecnologia ch torrecardenas 2015Sesiones clinicas de la ugc de biotecnologia ch torrecardenas 2015
Sesiones clinicas de la ugc de biotecnologia ch torrecardenas 2015
 
Mba Eu Paper Final
Mba Eu Paper FinalMba Eu Paper Final
Mba Eu Paper Final
 
Müller-Guttenbrunn WEEE Recycling
Müller-Guttenbrunn WEEE RecyclingMüller-Guttenbrunn WEEE Recycling
Müller-Guttenbrunn WEEE Recycling
 
Müller Guttenbrunn WEEE Recycling Brief Presentation
Müller Guttenbrunn WEEE Recycling Brief PresentationMüller Guttenbrunn WEEE Recycling Brief Presentation
Müller Guttenbrunn WEEE Recycling Brief Presentation
 

Semelhante a V Labs Product Presentation

Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
Me3D: A Model-driven Methodology  Expediting Embedded Device  Driver DevelopmentMe3D: A Model-driven Methodology  Expediting Embedded Device  Driver Development
Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
huichenphd
 
Component Based Distributed System Development
Component Based Distributed System DevelopmentComponent Based Distributed System Development
Component Based Distributed System Development
Emmanuel Fuchs
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overview
QA Club Kiev
 
VVDN Presentation
VVDN PresentationVVDN Presentation
VVDN Presentation
vibansal
 
Intro (lesson1)comp arch
Intro (lesson1)comp archIntro (lesson1)comp arch
Intro (lesson1)comp arch
Roger Duran
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec Presentation
FPGA Central
 
0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab
National Cheng Kung University
 
Virtualization for Development
Virtualization for DevelopmentVirtualization for Development
Virtualization for Development
elliando dias
 

Semelhante a V Labs Product Presentation (20)

DDGen Product Brief
DDGen Product BriefDDGen Product Brief
DDGen Product Brief
 
Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
Me3D: A Model-driven Methodology  Expediting Embedded Device  Driver DevelopmentMe3D: A Model-driven Methodology  Expediting Embedded Device  Driver Development
Me3D: A Model-driven Methodology Expediting Embedded Device Driver Development
 
Arm
ArmArm
Arm
 
ARM
ARMARM
ARM
 
Embedded system-Introduction to development cycle and development tool
Embedded system-Introduction to development cycle and development  toolEmbedded system-Introduction to development cycle and development  tool
Embedded system-Introduction to development cycle and development tool
 
Android and Intel Inside
Android and Intel InsideAndroid and Intel Inside
Android and Intel Inside
 
Component Based Distributed System Development
Component Based Distributed System DevelopmentComponent Based Distributed System Development
Component Based Distributed System Development
 
Android Optimization: Myth and Reality
Android Optimization: Myth and RealityAndroid Optimization: Myth and Reality
Android Optimization: Myth and Reality
 
Jnode
JnodeJnode
Jnode
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overview
 
SET NSF Final Presentation
SET NSF Final PresentationSET NSF Final Presentation
SET NSF Final Presentation
 
VVDN Presentation
VVDN PresentationVVDN Presentation
VVDN Presentation
 
Accelerated Android Development with Linaro
Accelerated Android Development with LinaroAccelerated Android Development with Linaro
Accelerated Android Development with Linaro
 
Snug2007 Presentation
Snug2007 PresentationSnug2007 Presentation
Snug2007 Presentation
 
Intro (lesson1)comp arch
Intro (lesson1)comp archIntro (lesson1)comp arch
Intro (lesson1)comp arch
 
FPGA Camp - Aldec Presentation
FPGA Camp - Aldec PresentationFPGA Camp - Aldec Presentation
FPGA Camp - Aldec Presentation
 
Faults inside System Software
Faults inside System SoftwareFaults inside System Software
Faults inside System Software
 
0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab0xdroid -- community-developed Android distribution by 0xlab
0xdroid -- community-developed Android distribution by 0xlab
 
Virtualization for Development
Virtualization for DevelopmentVirtualization for Development
Virtualization for Development
 
Leland Hamilton120320
Leland Hamilton120320Leland Hamilton120320
Leland Hamilton120320
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

V Labs Product Presentation

  • 2. Agenda  About Vayavya Labs  Our Vision for ESL (Electronic System Level)  About DDGEN Vayavya Labs 2009
  • 3. About Vayavya Labs  System Level Design Tools and Embedded Design services company  Markets : – Semiconductors and – Embedded Design Services  USP :  Significant improvements in TTM, QOR, COR  A new market segment for device driver generation World’s first automated device driver generator (US patent pending) Vayavya Labs 2009
  • 4. Agenda  About Vayavya Labs  Our Vision for ESL  About DDGEN Vayavya Labs 2009
  • 5. Pain Points in Lower Layers -1 Application, GUI etc  PainPoints  Hardware/software integration – aka device Middleware Protocols drivers Operating System &  Market Needs Associated Components  Productivity improvement tools Firmware & Device Drivers  Golden reference model for the hardware enabling auto-generation Embedded hardware of the drivers/firmware Vayavya Labs 2009
  • 6. Pain Points in lower layers -2 Number of SOCs 2(X86 and MIPS based) App Domain CE, DTV Operating System MontaVista Linux On chip peripherals(drivers) 23 On board peripherals(drivers) 7 Effort for first release of firmware/drivers 78 Team Size 14 Engineering Support Team 5 Automatic Generation of device drivers can significantly reduce the overall cost & efforts Vayavya Labs 2009
  • 7. Tools Evolution  Hardware and Software differ in abstractions and ESL 2.0 design flows  Vayavya bridges the 2000 & now ESL UML design flows HDL HLL  Reuse 90’s & later  Common Framework 80’s & later Schematics Assembly  Automatic code generation Vayavya Labs 2009
  • 8. Agenda  About Vayavya Labs  Our Vision for ESL  About DDGEN Vayavya Labs 2009
  • 9. Conventional way of device driver development Software architecture considerations IC Team 8.1 LINE CONTROL REGISTER Data sheet .... Details on each of bits in .. SW Team F() { Device Drivers // … } F Currently ad-hoc Methods (Word, Excel etc.) used to communicate information among IC and Software teams Vayavya Labs 2009
  • 10. DDGen Use case Device Driver writer • DDGEN methodology helps formalize communication DPS file RTS file between hardware and 1. Registers 1. OS software teams 2. Interrupts 2. ISR 3. Features 3. buffer 4. … 4. … DDGen DPS: Device Program Sequence RTS: Run Time Specification Device Drivers F() DDGen: Device Driver Generator { // Vayavya Labs 2009 }F
  • 11. Software Space exploration using DDGEN Device Driver writer Sync/Async DPS file RTS file 1. Registers 1. OS 2. Interrupts 2. ISR Blocking/non- Buffering Polling/ 3. Features 3. buffer 4. … 4. … blocking API • Pingpong Interrupts • Circular Split/Single ISR DDGen Effective exploration of software design by relevant specification in RTS. Think in F() { // problem domain than implementation domain Device Drivers }F Vayavya Labs 2009
  • 12. DDGEN- Product details  ~300% productivity gain in device driver development  Generates  ANSI C code including OS calls. Fully functional device driver  Unit test code of device driver  Supports DDGen  A range of device complexities: UART, I2C, USB, Ethernet, PCI, PCI Express, …  IP-XACT compliant input  Many popular OS drivers, including null OS Vayavya Labs 2009
  • 13. DDGEN derived utilities  DocGen – Generates HTML documentation for the device  RegGen – Generates HDL code for the register banks of the device from the register specification in DPS  Verigen – Generates SystemVerilog test bench template for functional verification Vayavya Labs 2009
  • 14. DPS Entities  Device Specification  Register Specification  Interrupt Specification  Feature Specification  FIFO Specification  Bus Specification Vayavya Labs 2009
  • 15. Device Specification device_spec { device_name = pc16550D; manufacturer_name = "National Semiconductors"; device_version = "D"; device_class = STD_D_C; device_input_clock = 1.8432M, 3.072M, 18.432M; } Vayavya Labs 2009 15
  • 16. Register Specification 8.1 LINE CONTROL REGISTER CONTROL_REGISTERS { .... Details on each bit follow: LCR [8] @ 1 { Bits 0 and 1: These two bits specify the number of bits in each transmitted or received serial character. type = RW; The encoding of bits 0 and 1 is as follows: field wls <0:1> { Bit 1 Bit 0 Character Length type = RW; 0 0 5 Bits clearing_mode = DC; value_on_reset = 0; 0 1 6 Bits enum { 1 0 7 Bits FiveBit = 0; 1 1 8 Bits SixBit = 1; SevenBit= 2; Bit 2: This bit specifies the number of Stop bits transmitted and received in each serial character. If bit 2 is a logic 0, one Stop bit is generated in the transmitted data. If EightBit= 3; 1 when a 5-bit word bit 2 is a logic } generated. If bit 2 is a logic 1 when length is selected via bits 0 and 1, one and a half Stop bits are field stb <2:2> { either a 6-, 7-, or 8-bit word length is selected, two Stop bits are generated. The Receiver checks the first Stopbit only, regardless of the number of Stop bits selected. = RW; type clearing_mode = DC; Bit 3: This bit is the Parity Enable bit. When bit 3 is a logic 1, a Parity bit is generated (transmit data) value_on_reset = 0; or checked (receive data) between the last data word bit and Stop bit of the serial data. (The Parity enum { bit is used to produce an even or odd number of 1s when the data word bits and the Parity bit are OneStopBit = 0; summed.) OneAndHalfStopBit = 1 when(LCR.wls==0); Bit 4: This bit is the Even Parity Select bit. When bit 3 is a logic 1 and bit 4 is a=logic 0, an odd number TwoStopBit 1 when(LCR.wls==1||2||3)); } of logic 1s is transmitted or checked in the data word bits and Parity bit. When bit 3 is a logic 1 and } checked. bit 4 is a logic 1, an even number of logic 1s is transmitted or . . . (contd.) Vayavya Labs 2009
  • 17. Interrupt Specification interrupt_spec { interrupt_pending = IIR.IntPend(0) ; IIR.IntID(RxLineStat) { int_type = error ; enable_field = IER.elsi(1) ; disable_field = IER.elsi(0) ; clear_field = COR LSR ; source_field = LSR.pe(1) || LSR.oe(1)‫‏‬ || LSR.fe(1) || LSR.bi(1) ||LSR.erxfifo(1); } IIR.IntID(RxDataAv) { int_type = device_read ; enable_field = IER.erbfi(1) ; disable_field = IER.erbfi(0) ; clear_field = AUTO_CLEAR ; } IIR.IntID(TxRegEmpty) { int_type = device_write ; enable_field = IER.etbei(1) ; disable_field = IER.etbei(0) ; clear_field = AUTO_CLEAR ; } } Vayavya Labs 2009
  • 18. Feature specification PROGRAMMABLE BAUD GENERATOR The UART contains a programmable Baud generator that is capable of taking any clock input from DC to 24 MHz and dividing it by any divisor from 2 to 216- 1. The output frequency of the Baud Generator is 16 X the Baud [divisor# = (frequency input) / (baud rate X 16)]. Two 8 bit latches store the divisor in a 16-bit binary format. These divisor latches must be loaded during initialization to ensure proper operation of the Baud Generator. Upon loading either of the configure_baud_rate feature divisor latches, a 16-bit baud counter is immediately loaded. Table III provides decimal divisors to use with { crystal frequencies of 1.8432 MHz, 3.072 MHz and 18.432 MHz, respectively. For input int baud (50,75,110,9600,128000); baud rates of 38400 and below, the error obtained is minimal. The accuracy of the local int Divisor; desired baud rate is dependent on the crystal frequency chosen. Using a divisor of zero is not recommended. Divisor = DEVICE_INPUT_CLOCK /(baud * 16); LCR.dlab = TRUE; DLL = Divisor & 0x00ff; DLM = (Divisor >> 8) & 0x00ff; LCR.dlab = FALSE; } Vayavya Labs 2009 18
  • 19. FIFO Specification FIFO Rcv{ associated_feature_name = device_read; enable_field = FCR.FifoEnb(1); enabled_status_field = IIR.FifoEnbd(1); max_fifo_size = 16; fifo_size = FCR.RcvTrgr; } FIFO Tx{ associated_feature_name = device_write; enable_field = FCR.FifoEnb(1); enabled_status_field = IIR.FifoEnbd(1); max_fifo_size = 16; fifo_size = FCR.RcvTrgr; } Vayavya Labs 2009 19
  • 20. Bus Specification  Example 1: (UART) bus_spec { register_acces_type = memory_mapped, io_mapped; }  Example 2: bus_spec { register_acces_type = memory_mapped, io_mapped; data_transfer_type = spi, i2c; spi_mode = 1,2; base_address = 0xA000 – OxB000; } Vayavya Labs 2009 20
  • 21. RTS Entities‫‏‬  Processor Specification  Entry point Spec  OS Specification  Code Gen Spec  ISR Specification  Buffer Spec  BSP Specification  Compiler Spec  Bus Specification  Error Handling Specification Vayavya Labs 2009 21
  • 22. RTS for UART Processor Specification BUS Specification BUS_SPEC PROCESSOR_SPEC { { REG_ACCESS_TYPE=MEMORY_MAPPED; PROCESSOR_NAME = ARM9 ; TRANSFER_MODE = PIO; CLOCK_FREQ = 32Mhz; } BASE_ADDRESS = 0x22; } ISR Specification BSP Specification BSP_SPEC ISR_SPEC { { DEVICE_INPUT_CLOCK = 3.072MHz ; ISR_TYPE = single; } ISR_DRIVER_SYNC = global_var; ISR_NO = 7; } Vayavya Labs 2009 22
  • 23. continued... OS Specification Entry Point Specification OS ENTRY_POINT { { OS_NAME = LINUX ; QUALIFIER = blocking; RE_ENTRANCY = } BLOCK_BY_DISABLING_INTERRUPTS; KERNEL_VERSION = “2.6.22”; VIRTUAL_MEMORY = YES; } Error Handling Specification ERROR_HANDLING { RETRY = 3; TIMEOUT = 9ms; } Vayavya Labs 2009 23
  • 24. continued... Compiler Specification Codegen Specification COMPILER_SPEC CODEGEN_SPEC { { COMPILER_NAME = GCC ; field_usage_comments = yes; } TYPEDEFS { int = int32 ; Buff Specification char = int8 ; BUFF_SPEC } { } BUFF_MANAGEMENT = DRIVER; RECEIVE { BUFFER_TYPE = circular; MTU = 256; } } Vayavya Labs 2009 24
  • 25. Pilot Results Customer-1 Device Details SoC for entertainment platform Peripherals on SoC LCD, PIO, Interrupt Controller, Timers Application code size, for manual written drivers 5 KB Application size using tool generated drivers 5.28KB No. of days for manual drivers writing 17 days No. of days for drivers generation (by tool) 6 days Effort and Time savings Close to 200% % Code size overhead (by use of tool) 5.6% Vayavya Labs 2009
  • 26. Pilot Results -2 Customer-2 DMA, Interrupt handler, Event Handler, Clock Device Details distribution Unit Device Specification Capture 19 Days Validating driver code for functionality 10 days Integrating driver code with environment 2 Days Total number of days for automated driver generation 31 Days Total number of days for manual driver generation ( approx) 90+ days Effort and Time savings > 300% Vayavya Labs 2009
  • 27. Business Model  Target  Semiconductor firms • SOC, ASIC, FPGA • IP vendors  VLSI and Embedded system design services firms  OEMs/ODMs  EDA and embedded tools vendors ( partnerships)  Business model  Tool licensing  Design Services using tool – optimised cost & time benefits  Tool customization and value-add services Vayavya Labs 2009
  • 28. DDGEN Roadmap Sept 2009 Dec 2009 June 2010 Optimization DM355 support ModelGen 1.0 knobs Eclipse GUI IPXACT Vendor BSPGEN 1.0 Extensions CMSIS support Vayavya Labs 2009
  • 29. Thank You Vayavya Labs 2009