Microchip Technology Incorporated · NASDAQ:MCHP
Microchip Technology — Technical Presentation (November 2019)
39 slides from Microchip Technology's technical presentation, Nov 7, 2019
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
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
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
Slide 4: Agenda
Agenda • Recap: Ways to add Models • Model Template • Creating and Testing a Basic Register 4
Slide 5: Ways to Add Models
S MICROCHIP Ways to Add Models
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
Slide 7: Ways to Add Models
Ways to Add Models Pre-Compiled JiT 7
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
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
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
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
Slide 12: Model Template
S MICROCHIP Model Template
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
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
Slide 15: Creating and Testing a Basic Register
Creating and Testing a Basic Register
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
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;
Slide 18: Interfacing with Sysbus
Adding the Model: Interfacing with Sysbus
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
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
Slide 21: Interfacing with Sysbus
Adding the Model: Interfacing with Sysbus Renode solution Emulator solution Peripherals folder Bus folder 21
Slide 22: Interfacing with Sysbus
Adding the Model: Interfacing with Sysbus 22
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
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 =
Slide 25: Interfacing with Sysbus
Adding the Model: Interfacing with Sysbus Register model file Custom folder 25
Slide 26: Interfacing with Sysbus
Adding the Model: Interfacing with Sysbus Include the model in the build to be complied 26
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
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
Slide 29: Properties
Adding the Model: Adding Properties
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) {
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
Slide 32: Parameters
Adding the Model: Adding Parameters
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 */ }
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
Slide 35: Parameters
Adding the Model: Adding Parameters 35
Slide 36: Parameters
Adding the Model: Adding Parameters 36
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
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
Slide 39: Thank You
S MICROCHIP Thank You
Microchip Technology — Technical Presentation (November 2019) on 6ix