Microchip Technology Incorporated · NASDAQ:MCHP

Microchip Technology — Technical Presentation (November 2019)

39 slides from Microchip Technology's technical presentation, Nov 7, 2019

  1. Slide 1: First / Second Thursdays

    First / Second Thursdays Nov. 7 - Webinar 7: How to Write Custom Models – Filters, Offloading, Acceleration, etc. Dec. 5 - Webinar 8: Refresh SC 6.2 Jan. 9 - Webinar 9: Bare metal? Feb. 13 - Webinar 10: Build Applications for Linux on PolarFire SoC Mar. 12 - Webinar 11: Introduction to PolarFire SoC

  2. Slide 2: Supporting Content

    Supporting Content www.microsemi.com/Mi-V “Renode Webinar Series” Webinar 1: Discover Renode for PolarFire® SoC Design and Debug Webinar 2: How to Get Started with Renode for PolarFire SoC Webinar 3: Learn to Debug a Bare-Metal PolarFire SoC Application with Renode Webinar 4: Tips and Tricks for Eve

  3. Slide 3: How to Write Custom Models – Filters, Offloading, Acceleration, etc

    Getting Started with the RISC-V Based PolarFire® SoC FPGA Webinar Series Session 7: “How to Write Custom Models – Filters, Offloading, Acceleration, etc” Hugh Breslin, Embedded Linux Engineer Thursday Nov. 7, 2019

  4. Slide 4: Agenda

    Agenda • Recap: Ways to add Models • Model Template • Creating and Testing a Basic Register 4

  5. Slide 5: Ways to Add Models

    S MICROCHIP Ways to Add Models

  6. Slide 6: Ways to Add Models

    Ways to Add Models Pre-Compiled JiT (Just-in-Time compiled) Built in with Renode Standalone file separate to Renode Run faster Can be modified without having to re- build, just relaunch Can’t be edited without rebuilding Run slower than pre-compiled Renode Models included with Renode are Develop mod

  7. Slide 7: Ways to Add Models

    Ways to Add Models Pre-Compiled JiT 7

  8. Slide 8: How to Add a Just-in-Time (JIT) Compiled Model

    How to Add a Just-in-Time (JIT) Compiled Model • Include the C# file for the model • include @[path_to_file] • Add the model to the system • machine LoadPlatformDescriptionFromString “[sysbus_name]: [namesace].[name] @ sysbus [address]” [sysbus_name]: [namespace].[name] @ sysbus [address] 8

  9. Slide 9: How to Add a Just-in-Time (JIT) Compiled Model

    How to Add a Just-in-Time (JIT) Compiled Model ⚫ Example commands for the Renode console: 1. include $CWD/../My_models/HUGH_CoreTimer.cs 2. machine LoadPlatformDescriptionFromString “Hugh_timer: Timers.Hugh_CoreTimer @sysbus 0x70000000” 9

  10. Slide 10: How to Add a Just-in-Time (JIT) Compiled Model

    How to Add a Just-in-Time (JIT) Compiled Model Alternatively add commands to the launch script include $CWD/../My_models/HUGH_CoreTimer.cs machine LoadPlatformDescriptionFromString “Hugh_timer: Timers.Hugh_CoreTimer @sysbus 0x70000000” 10

  11. Slide 11: How to Compile a Model

    How to Compile a Model “Custom” namespace Renode solution Extensions solution Peripherals project Peripherals folder “Custom” folder Models 11

  12. Slide 12: Model Template

    S MICROCHIP Model Template

  13. Slide 13: Model Template

    Model Template using Antmicro.Renode.Peripherals.Bus; namespace Antmicro.Renode.Peripherals./* NAMESPACE DECLARATION */ { public class /* CLASS DECLARATION */ : /* INTERFACE DECLARATIONS [ 1, 2, 3, ... ] */ { /* VARIABLE DECLARATIONS */ public void Reset() { /* ACTION ON RESET */ } /* INTERFACE FUNC

  14. Slide 14: Model Template

    Model Template using Antmicro.Renode.Peripherals.Bus; using Antmicro.Renode.Peripherals.Bus; namespace Antmicro.Renode.Peripherals./* NAMESPACE DECLARATION */ namespace Antmicro.Renode.Peripherals.Custom { { public class BASIC_REGISTER : IDoubleWordPeripheral, IKnownSize public class /* CLASS DECLAR

  15. Slide 15: Creating and Testing a Basic Register

    Creating and Testing a Basic Register

  16. Slide 16: Creating and Testing a Basic Register

    Creating and Testing a Basic Register ⚫ Basic Register Model ⚫ Adding the Model ⚫ Interfacing with Sysbus ⚫ Testing ⚫ Adding Properties ⚫ Adding Parameters 16

  17. Slide 17: Basic Register Model

    Basic Register Model using Antmicro.Renode.Peripherals.Bus; namespace Antmicro.Renode.Peripherals.Custom // Custom namespace { public class BASIC_REGISTER : IDoubleWordPeripheral, IKnownSize // Declare class and interface { private uint Value = 0; // Declare variable public void Reset() { Value = 0;

  18. Slide 18: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus

  19. Slide 19: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus Declare class : interface0, interface 1…… public class BASIC_REGISTER : IDoubleWordPeripheral, IKnownSize IDoubleWordPeripheral: IKnownSize: I: Interface I: Interface DoubleWord: 32 bit transactions KnownSize: Address space 19

  20. Slide 20: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus using Antmicro.Renode.Peripherals.Bus; namespace Antmicro.Renode.Peripherals.Custom // Custom namespace { public class BASIC_REGISTER : IDoubleWordPeripheral, IKnownSize // Declare class and interface { private uint Value = 0; // Declare variable public void

  21. Slide 21: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus Renode solution Emulator solution Peripherals folder Bus folder 21

  22. Slide 22: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus 22

  23. Slide 23: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus using Antmicro.Renode.Peripherals.Bus; namespace Antmicro.Renode.Peripherals.Custom // Custom namespace { public class BASIC_REGISTER : IDoubleWordPeripheral, IKnownSize // Declare class and interface Sysbus { private uint Value = 0; // Declare variable publ

  24. Slide 24: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus Sysbus Machine LoadPlatformDescriptionFromString “REG: Custom.BASIC_REGISTER @ sysbus 0x70009000” Must provide “Size” when Start address IDoubleWord IKnown connecting to sysbus using End address? Peripheral Size IKnownSize Size = Value = int 32 End address =

  25. Slide 25: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus Register model file Custom folder 25

  26. Slide 26: Interfacing with Sysbus

    Adding the Model: Interfacing with Sysbus Include the model in the build to be complied 26

  27. Slide 27: Peripherals/Custom/BASIC_REGISTER.cs in MonoDevelop

    Peripherals Peripherals/Custom/BASIC_REGISTER.cs MonoDevelop - og x ’ © Clean: 1 error. 0 warnings e Solution c BASIC REGISTER.cs aT Edt View Search Project Buld Run Jools Window Help DP) _Renode >| Debug . Renode Z) © sasic resister » ( Size > Ey Cores »g Ant micro. Renode. Peripherals. Bus © [Dy E

  28. Slide 28: Edt Source Navigate Search Pr Window Help !

    Edt Source Navigate Search Pr Window Help ! alebal main 1 u Button) 0 he * Button) wee a P eGPIO platform. smartfusion-corte ac 0901F smart e, 6 OF FFF + 4 amer 70803000, 0x7000301B: EI operties $f Debug 8% > riscv64-urknonn-elf-acb ADB” NG eronore To 1047

  29. Slide 29: Properties

    Adding the Model: Adding Properties

  30. Slide 30: Properties

    Adding the Model: Adding Properties using Antmicro.Renode.Peripherals.Bus; IKnownSize namespace Antmicro.Renode.Peripherals.Custom { public class BASIC_REGISTER : IDoubleWordPeripheral, IKnownSize { private uint Value = 0; public void Reset() { Value = 0; } public uint ReadDoubleWord(long offset) {

  31. Slide 31: Properties

    Adding the Model: Adding Properties public long Property1 { get; private set; } = 1; public uint Property2 { get; set; } = 2; public ushort Property3 { private get; set; } = 3; public long Size => 32; Property1 get Property2 get Property2 set 0x5 Property2 get Property3 get Property3 set 31

  32. Slide 32: Parameters

    Adding the Model: Adding Parameters

  33. Slide 33: Parameters

    Adding the Model: Adding Parameters using Antmicro.Renode.Peripherals.Bus; namespace Antmicro.Renode.Peripherals./* NAMESPACE DECLARATION */ { public class /* CLASS DECLARATION */ : /* INTERFACE DECLARATIONS [ 1, 2, 3, ... ] */ { public /* CLASS */ ( /* PARAMETERS */) { /* ASSIGNMENTS / ACTIONS */ }

  34. Slide 34: Parameters

    Adding the Model: Adding Parameters using Antmicro.Renode.Peripherals.Bus; using Antmicro.Renode.Peripherals.Bus; namespace Antmicro.Renode.Peripherals./* NAMESPACE DECLARATION */ namespace Antmicro.Renode.Peripherals.Custom { { public class BASIC_REGISTER_PROPERTY : IDoubleWordPeripheral, IKnownSiz

  35. Slide 35: Parameters

    Adding the Model: Adding Parameters 35

  36. Slide 36: Parameters

    Adding the Model: Adding Parameters 36

  37. Slide 37: First / Second Thursdays

    First / Second Thursdays Dec. 5 - Webinar 8: Handling Binaries Jan. 9 - Webinar 9: Run Linux® on Renode (PolarFire® SoC Model as a Quad-Core SMP) – this is not a Linux/Buildroot tutorial Feb. 13 - Webinar 10: Build Applications for Linux on PolarFire SoC Mar. 12 - Webinar 11: Introduction to PolarFi

  38. Slide 38: Supporting Content

    Supporting Content www.microsemi.com/Mi-V “Renode Webinar Series” Webinar 1: Discover Renode for PolarFire® SoC Design and Debug Webinar 2: How to Get Started with Renode for PolarFire SoC Webinar 3: Learn to Debug a Bare-Metal PolarFire SoC Application with Renode Webinar 4: Tips and Tricks for Eve

  39. Slide 39: Thank You

    S MICROCHIP Thank You

Microchip Technology — Technical Presentation (November 2019) on 6ix