SlideShare a Scribd company logo
1 of 28
Download to read offline
Managing Register Banks in
the Cloud with airhdl
Guy Eschemann
1FPGA Kongress 2019
About me
• Electrical Engineer (INSA-Lyon, France)
• 19+ years of experience in FPGA design
• Self-employed FPGA consultant from
2009 – 2019
• Current: Embedded Software Developer
at ATT Nussbaum Prüftechnik GmbH
• Interests
• FPGA design and verification
• Embedded systems development
• EDA tool development
2FPGA Kongress 2019
About airhdl
• Web-based register
generator
• Started 2015 as an
experiment
• Needed the tool for
my FPGA consulting
work
• Arguably one of the
first web-based EDA
tools ever
3FPGA Kongress 2019
The Need for Register Banks
4FPGA Kongress 2019
Caveats
• Register banks are the hardware/software interface
• Used by HW and SW developers
• Many different views (RTL, C, documentation, XML)
• Consistency is key
• Register definitions change all the time
• Must be easy to modify
5FPGA Kongress 2019
Register Management Strategies
• Write everything by hand
• Ad-hoc scripts
• XML-based generator
• Web-based generator
6FPGA Kongress 2019
The airhdl Solution
• Create register map in your browser
• Populate with registers and fields
• Download generated code
• Integrate into your project
7FPGA Kongress 2019
Benefits
• No need to install anything
• No need for license files/servers/dongles
• Very easy to use (GUI)
• Register maps stored in a central place (database)
• Easily keep track of revisions
• Easy collaboration
• Can be accessed from anywhere
8FPGA Kongress 2019
What’s in a Register Bank
• Interface Logic
• Registers
• Fields
9FPGA Kongress 2019
airhdl Data Model
• Register Maps
• Registers
• Fields
10FPGA Kongress 2019
Register Map
• Identifier
• Base address
• Revision ID
• Contains one or more registers
11FPGA Kongress 2019
Register
• Identifier
• Address offset
• Access mode
• Write-only
• Read-only
• Read-write
• Interrupt
• Contains one or more bit fields
• Register types: register, array, memory
12FPGA Kongress 2019
Field
• Identifier
• Bit offset
• Bit width
• Reset value
Note: fields inherit access mode from parent register
13FPGA Kongress 2019
Example Register Map
• Control register
• Access: read/write
• Fields
• Ena: 1 bit
• Status register
• Access: read-only
• Fields
• Value: 8 bits
• Interrupt register
• Access: interrupt
• Fields:
• Done: 1 bit
14FPGA Kongress 2019
Generated Code: RTL
15FPGA Kongress 2019
entity demo_map_regs is
generic(
AXI_ADDR_WIDTH : integer := 32; -- width of the AXI address bus
BASEADDR : std_logic_vector(31 downto 0) := x"00000000" -- the register file's system base address
);
port(
-- Clock and Reset
axi_aclk : in std_logic;
axi_aresetn : in std_logic;
-- AXI Write Address Channel
s_axi_awaddr : in std_logic_vector(AXI_ADDR_WIDTH - 1 downto 0);
s_axi_awprot : in std_logic_vector(2 downto 0); -- sigasi @suppress "Unused port"
s_axi_awvalid : in std_logic;
s_axi_awready : out std_logic;
...
-- AXI Write Response Channel
s_axi_bresp : out std_logic_vector(1 downto 0);
s_axi_bvalid : out std_logic;
s_axi_bready : in std_logic;
-- User Ports
control_strobe : out std_logic; -- Strobe signal for register 'control'
control_ena : out std_logic_vector(0 downto 0); -- Value of register 'control', field 'ena'
status_strobe : out std_logic; -- Strobe signal for register 'status'
status_value : in std_logic_vector(7 downto 0); -- Value of register 'status', field 'value'
interrupt_done_set : in std_logic -- Set signal for register 'interrupt', field 'done'
);
end entity demo_map_regs;
Generated Code: C Header
16FPGA Kongress 2019
/* Revision number of the 'demo_map' register map */
#define DEMO_MAP_REVISION 6
/* Default base address of the 'demo_map' register map */
#define DEMO_MAP_DEFAULT_BASEADDR 0x00000000
/* Register 'control' */
#define CONTROL_OFFSET 0x00000000 /* address offset of the 'control' register */
/* Field 'control.ena' */
#define CONTROL_ENA_BIT_OFFSET 0 /* bit offset of the 'ena' field */
#define CONTROL_ENA_BIT_WIDTH 1 /* bit width of the 'ena' field */
#define CONTROL_ENA_BIT_MASK 0x00000001 /* bit mask of the 'ena' field */
#define CONTROL_ENA_RESET 0x0 /* reset value of the 'ena' field */
/* Register 'status' */
#define STATUS_OFFSET 0x00000004 /* address offset of the 'status' register */
/* Field 'status.value' */
#define STATUS_VALUE_BIT_OFFSET 0 /* bit offset of the 'value' field */
#define STATUS_VALUE_BIT_WIDTH 8 /* bit width of the 'value' field */
#define STATUS_VALUE_BIT_MASK 0x000000FF /* bit mask of the 'value' field */
#define STATUS_VALUE_RESET 0x0 /* reset value of the 'value' field */
/* Register 'interrupt' */
#define INTERRUPT_OFFSET 0x00000008 /* address offset of the 'interrupt' register */
/* Field 'interrupt.done' */
#define INTERRUPT_DONE_BIT_OFFSET 0 /* bit offset of the 'done' field */
#define INTERRUPT_DONE_BIT_WIDTH 1 /* bit width of the 'done' field */
#define INTERRUPT_DONE_BIT_MASK 0x00000001 /* bit mask of the 'done' field */
#define INTERRUPT_DONE_RESET 0x0 /* reset value of the 'done' field */
Generated Code: Documentation
17FPGA Kongress 2019
Demo
18FPGA Kongress 2019
Demo Platform
• Enclustra Mercury KX1 FPGA module
• Enclustra Mercury+ PE1 baseboard
FPGA Kongress 2019 19
Enclustra FPGA Manager
More information at https://www.enclustra.com/en/products/fpga-manager/
FPGA Kongress 2019 20
Demo Design
FPGA Kongress 2019 21
FPGA Kongress 2019 22
Demo Design
• Emulating user logic using Virtual I/O
FPGA Kongress 2019 23
Wrap-Up
FPGA Kongress 2019 24
Plans
25FPGA Kongress 2019
Future Work
• Generate other documentation formats
• Support other memory-mapped interfaces (e.g.
Avalon, AHB/APB)
• Self-hosted version
• See https://airhdl.uservoice.com/forums/279130-
airhdl-feature-requests for other ideas
26FPGA Kongress 2019
Try it Out
• Register for free at https://airhdl.com
• Let me know what you think!
27FPGA Kongress 2019
Contact
Guy Eschemann
noasic GmbH
Bankstr. 7
77694 Kehl / Germany
E-mail: guy@noasic.com
Twitter: @geschema
LinkedIn: https://www.linkedin.com/in/geschemann
28FPGA Kongress 2019

More Related Content

What's hot

Interfacing ics for microprocessor
Interfacing ics for microprocessorInterfacing ics for microprocessor
Interfacing ics for microprocessorTHANDAIAH PRABU
 
8085 ppi 8255 and 8155
8085 ppi 8255 and 81558085 ppi 8255 and 8155
8085 ppi 8255 and 8155Nitin Ahire
 
Programmable Peripheral Interface
Programmable Peripheral InterfaceProgrammable Peripheral Interface
Programmable Peripheral InterfaceMeherul1234
 
Microprocessor Part 2
Microprocessor    Part 2Microprocessor    Part 2
Microprocessor Part 2Sajan Agrawal
 
1203 Ppi 8155
1203 Ppi 81551203 Ppi 8155
1203 Ppi 8155techbed
 
Microcontroller avr
Microcontroller avrMicrocontroller avr
Microcontroller avrMahmoud Amr
 
25. 8255 programmable peripheral interface
25. 8255 programmable peripheral interface25. 8255 programmable peripheral interface
25. 8255 programmable peripheral interfacesandip das
 
Microprocessor Interfacing and 8155 Features
Microprocessor Interfacing and 8155 FeaturesMicroprocessor Interfacing and 8155 Features
Microprocessor Interfacing and 8155 FeaturesSrikrishna Thota
 
Industrial LED Display Solutions
Industrial LED Display SolutionsIndustrial LED Display Solutions
Industrial LED Display SolutionsCompucare
 
An application of 8085 register interfacing with LED
An application  of 8085 register interfacing with LEDAn application  of 8085 register interfacing with LED
An application of 8085 register interfacing with LEDTaha Malampatti
 
Operation of 8255A
Operation of 8255AOperation of 8255A
Operation of 8255AAnuj Yadav
 
Best-embedded-system-classes-in-mumbai
Best-embedded-system-classes-in-mumbaiBest-embedded-system-classes-in-mumbai
Best-embedded-system-classes-in-mumbaiUnmesh Baile
 

What's hot (20)

Interfacing ics for microprocessor
Interfacing ics for microprocessorInterfacing ics for microprocessor
Interfacing ics for microprocessor
 
8085 ppi 8255 and 8155
8085 ppi 8255 and 81558085 ppi 8255 and 8155
8085 ppi 8255 and 8155
 
Programmable Peripheral Interface
Programmable Peripheral InterfaceProgrammable Peripheral Interface
Programmable Peripheral Interface
 
Microprocessor Part 2
Microprocessor    Part 2Microprocessor    Part 2
Microprocessor Part 2
 
1203 Ppi 8155
1203 Ppi 81551203 Ppi 8155
1203 Ppi 8155
 
8255 ppi
8255 ppi8255 ppi
8255 ppi
 
8255 Programmable parallel I/O
8255 Programmable parallel I/O 8255 Programmable parallel I/O
8255 Programmable parallel I/O
 
Lec14
Lec14Lec14
Lec14
 
Microcontroller avr
Microcontroller avrMicrocontroller avr
Microcontroller avr
 
25. 8255 programmable peripheral interface
25. 8255 programmable peripheral interface25. 8255 programmable peripheral interface
25. 8255 programmable peripheral interface
 
Lec13
Lec13Lec13
Lec13
 
Microprocessor Interfacing and 8155 Features
Microprocessor Interfacing and 8155 FeaturesMicroprocessor Interfacing and 8155 Features
Microprocessor Interfacing and 8155 Features
 
Industrial LED Display Solutions
Industrial LED Display SolutionsIndustrial LED Display Solutions
Industrial LED Display Solutions
 
8255 Introduction
8255 Introduction8255 Introduction
8255 Introduction
 
An application of 8085 register interfacing with LED
An application  of 8085 register interfacing with LEDAn application  of 8085 register interfacing with LED
An application of 8085 register interfacing with LED
 
Chapter
ChapterChapter
Chapter
 
Operation of 8255A
Operation of 8255AOperation of 8255A
Operation of 8255A
 
The 8255 PPI
The 8255 PPIThe 8255 PPI
The 8255 PPI
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Best-embedded-system-classes-in-mumbai
Best-embedded-system-classes-in-mumbaiBest-embedded-system-classes-in-mumbai
Best-embedded-system-classes-in-mumbai
 

Similar to Managing register banks in the cloud with airhdl

chapter2-part1-140329134839-phpapp02.pptx
chapter2-part1-140329134839-phpapp02.pptxchapter2-part1-140329134839-phpapp02.pptx
chapter2-part1-140329134839-phpapp02.pptxSangeetaTripathi8
 
Embedded system (Chapter 2) part A
Embedded system (Chapter 2) part AEmbedded system (Chapter 2) part A
Embedded system (Chapter 2) part AIkhwan_Fakrudin
 
Ip interfaces by faststream technologies
Ip interfaces by faststream technologiesIp interfaces by faststream technologies
Ip interfaces by faststream technologiesVishalMalhotra58
 
Linkmeup v076(2019-06).2
Linkmeup v076(2019-06).2Linkmeup v076(2019-06).2
Linkmeup v076(2019-06).2eucariot
 
MICROCONTROLLER.pptx
MICROCONTROLLER.pptxMICROCONTROLLER.pptx
MICROCONTROLLER.pptxfiqrie mohd
 
8085 microprocessor(1)
8085 microprocessor(1)8085 microprocessor(1)
8085 microprocessor(1)Reevu Pal
 
Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...
Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...
Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...Anne Nicolas
 
Microprocessor Architecture-III
Microprocessor Architecture-IIIMicroprocessor Architecture-III
Microprocessor Architecture-IIIDr.YNM
 
Introduction to 8085 Microprocessors
Introduction to 8085 MicroprocessorsIntroduction to 8085 Microprocessors
Introduction to 8085 MicroprocessorsVeerakumar S
 
8086 module 1 & 2 work
8086 module 1 & 2   work8086 module 1 & 2   work
8086 module 1 & 2 workSuhail Km
 
Microprocessor lab manual
Microprocessor lab manualMicroprocessor lab manual
Microprocessor lab manualDhaval Shukla
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACTDVClub
 
Writing c code for the 8051
Writing c code for the 8051Writing c code for the 8051
Writing c code for the 8051Quản Minh Tú
 
Hardware interfacing basics using AVR
Hardware interfacing basics using AVRHardware interfacing basics using AVR
Hardware interfacing basics using AVRMohamed Abdallah
 

Similar to Managing register banks in the cloud with airhdl (20)

chapter2-part1-140329134839-phpapp02.pptx
chapter2-part1-140329134839-phpapp02.pptxchapter2-part1-140329134839-phpapp02.pptx
chapter2-part1-140329134839-phpapp02.pptx
 
Embedded system (Chapter 2) part A
Embedded system (Chapter 2) part AEmbedded system (Chapter 2) part A
Embedded system (Chapter 2) part A
 
Ip interfaces by faststream technologies
Ip interfaces by faststream technologiesIp interfaces by faststream technologies
Ip interfaces by faststream technologies
 
embedded system and AVR
embedded system and AVRembedded system and AVR
embedded system and AVR
 
Linkmeup v076(2019-06).2
Linkmeup v076(2019-06).2Linkmeup v076(2019-06).2
Linkmeup v076(2019-06).2
 
knowledge in daily life.ppt
knowledge in daily life.pptknowledge in daily life.ppt
knowledge in daily life.ppt
 
8085 alp programs
8085 alp programs8085 alp programs
8085 alp programs
 
MICROCONTROLLER.pptx
MICROCONTROLLER.pptxMICROCONTROLLER.pptx
MICROCONTROLLER.pptx
 
8086 Microprocessor
8086 Microprocessor8086 Microprocessor
8086 Microprocessor
 
8085 microprocessor(1)
8085 microprocessor(1)8085 microprocessor(1)
8085 microprocessor(1)
 
Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...
Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...
Kernel Recipes 2018 - New GPIO interface for linux user space - Bartosz Golas...
 
Atmega 16 drdo report
Atmega 16 drdo reportAtmega 16 drdo report
Atmega 16 drdo report
 
Microprocessor Architecture-III
Microprocessor Architecture-IIIMicroprocessor Architecture-III
Microprocessor Architecture-III
 
8085_LAB_PROGRAMS.pdf
8085_LAB_PROGRAMS.pdf8085_LAB_PROGRAMS.pdf
8085_LAB_PROGRAMS.pdf
 
Introduction to 8085 Microprocessors
Introduction to 8085 MicroprocessorsIntroduction to 8085 Microprocessors
Introduction to 8085 Microprocessors
 
8086 module 1 & 2 work
8086 module 1 & 2   work8086 module 1 & 2   work
8086 module 1 & 2 work
 
Microprocessor lab manual
Microprocessor lab manualMicroprocessor lab manual
Microprocessor lab manual
 
Verification Automation Using IPXACT
Verification Automation Using IPXACTVerification Automation Using IPXACT
Verification Automation Using IPXACT
 
Writing c code for the 8051
Writing c code for the 8051Writing c code for the 8051
Writing c code for the 8051
 
Hardware interfacing basics using AVR
Hardware interfacing basics using AVRHardware interfacing basics using AVR
Hardware interfacing basics using AVR
 

Recently uploaded

Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxhumanexperienceaaa
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Recently uploaded (20)

Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 

Managing register banks in the cloud with airhdl

  • 1. Managing Register Banks in the Cloud with airhdl Guy Eschemann 1FPGA Kongress 2019
  • 2. About me • Electrical Engineer (INSA-Lyon, France) • 19+ years of experience in FPGA design • Self-employed FPGA consultant from 2009 – 2019 • Current: Embedded Software Developer at ATT Nussbaum Prüftechnik GmbH • Interests • FPGA design and verification • Embedded systems development • EDA tool development 2FPGA Kongress 2019
  • 3. About airhdl • Web-based register generator • Started 2015 as an experiment • Needed the tool for my FPGA consulting work • Arguably one of the first web-based EDA tools ever 3FPGA Kongress 2019
  • 4. The Need for Register Banks 4FPGA Kongress 2019
  • 5. Caveats • Register banks are the hardware/software interface • Used by HW and SW developers • Many different views (RTL, C, documentation, XML) • Consistency is key • Register definitions change all the time • Must be easy to modify 5FPGA Kongress 2019
  • 6. Register Management Strategies • Write everything by hand • Ad-hoc scripts • XML-based generator • Web-based generator 6FPGA Kongress 2019
  • 7. The airhdl Solution • Create register map in your browser • Populate with registers and fields • Download generated code • Integrate into your project 7FPGA Kongress 2019
  • 8. Benefits • No need to install anything • No need for license files/servers/dongles • Very easy to use (GUI) • Register maps stored in a central place (database) • Easily keep track of revisions • Easy collaboration • Can be accessed from anywhere 8FPGA Kongress 2019
  • 9. What’s in a Register Bank • Interface Logic • Registers • Fields 9FPGA Kongress 2019
  • 10. airhdl Data Model • Register Maps • Registers • Fields 10FPGA Kongress 2019
  • 11. Register Map • Identifier • Base address • Revision ID • Contains one or more registers 11FPGA Kongress 2019
  • 12. Register • Identifier • Address offset • Access mode • Write-only • Read-only • Read-write • Interrupt • Contains one or more bit fields • Register types: register, array, memory 12FPGA Kongress 2019
  • 13. Field • Identifier • Bit offset • Bit width • Reset value Note: fields inherit access mode from parent register 13FPGA Kongress 2019
  • 14. Example Register Map • Control register • Access: read/write • Fields • Ena: 1 bit • Status register • Access: read-only • Fields • Value: 8 bits • Interrupt register • Access: interrupt • Fields: • Done: 1 bit 14FPGA Kongress 2019
  • 15. Generated Code: RTL 15FPGA Kongress 2019 entity demo_map_regs is generic( AXI_ADDR_WIDTH : integer := 32; -- width of the AXI address bus BASEADDR : std_logic_vector(31 downto 0) := x"00000000" -- the register file's system base address ); port( -- Clock and Reset axi_aclk : in std_logic; axi_aresetn : in std_logic; -- AXI Write Address Channel s_axi_awaddr : in std_logic_vector(AXI_ADDR_WIDTH - 1 downto 0); s_axi_awprot : in std_logic_vector(2 downto 0); -- sigasi @suppress "Unused port" s_axi_awvalid : in std_logic; s_axi_awready : out std_logic; ... -- AXI Write Response Channel s_axi_bresp : out std_logic_vector(1 downto 0); s_axi_bvalid : out std_logic; s_axi_bready : in std_logic; -- User Ports control_strobe : out std_logic; -- Strobe signal for register 'control' control_ena : out std_logic_vector(0 downto 0); -- Value of register 'control', field 'ena' status_strobe : out std_logic; -- Strobe signal for register 'status' status_value : in std_logic_vector(7 downto 0); -- Value of register 'status', field 'value' interrupt_done_set : in std_logic -- Set signal for register 'interrupt', field 'done' ); end entity demo_map_regs;
  • 16. Generated Code: C Header 16FPGA Kongress 2019 /* Revision number of the 'demo_map' register map */ #define DEMO_MAP_REVISION 6 /* Default base address of the 'demo_map' register map */ #define DEMO_MAP_DEFAULT_BASEADDR 0x00000000 /* Register 'control' */ #define CONTROL_OFFSET 0x00000000 /* address offset of the 'control' register */ /* Field 'control.ena' */ #define CONTROL_ENA_BIT_OFFSET 0 /* bit offset of the 'ena' field */ #define CONTROL_ENA_BIT_WIDTH 1 /* bit width of the 'ena' field */ #define CONTROL_ENA_BIT_MASK 0x00000001 /* bit mask of the 'ena' field */ #define CONTROL_ENA_RESET 0x0 /* reset value of the 'ena' field */ /* Register 'status' */ #define STATUS_OFFSET 0x00000004 /* address offset of the 'status' register */ /* Field 'status.value' */ #define STATUS_VALUE_BIT_OFFSET 0 /* bit offset of the 'value' field */ #define STATUS_VALUE_BIT_WIDTH 8 /* bit width of the 'value' field */ #define STATUS_VALUE_BIT_MASK 0x000000FF /* bit mask of the 'value' field */ #define STATUS_VALUE_RESET 0x0 /* reset value of the 'value' field */ /* Register 'interrupt' */ #define INTERRUPT_OFFSET 0x00000008 /* address offset of the 'interrupt' register */ /* Field 'interrupt.done' */ #define INTERRUPT_DONE_BIT_OFFSET 0 /* bit offset of the 'done' field */ #define INTERRUPT_DONE_BIT_WIDTH 1 /* bit width of the 'done' field */ #define INTERRUPT_DONE_BIT_MASK 0x00000001 /* bit mask of the 'done' field */ #define INTERRUPT_DONE_RESET 0x0 /* reset value of the 'done' field */
  • 19. Demo Platform • Enclustra Mercury KX1 FPGA module • Enclustra Mercury+ PE1 baseboard FPGA Kongress 2019 19
  • 20. Enclustra FPGA Manager More information at https://www.enclustra.com/en/products/fpga-manager/ FPGA Kongress 2019 20
  • 23. Demo Design • Emulating user logic using Virtual I/O FPGA Kongress 2019 23
  • 26. Future Work • Generate other documentation formats • Support other memory-mapped interfaces (e.g. Avalon, AHB/APB) • Self-hosted version • See https://airhdl.uservoice.com/forums/279130- airhdl-feature-requests for other ideas 26FPGA Kongress 2019
  • 27. Try it Out • Register for free at https://airhdl.com • Let me know what you think! 27FPGA Kongress 2019
  • 28. Contact Guy Eschemann noasic GmbH Bankstr. 7 77694 Kehl / Germany E-mail: guy@noasic.com Twitter: @geschema LinkedIn: https://www.linkedin.com/in/geschemann 28FPGA Kongress 2019