SlideShare a Scribd company logo
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 microprocessor
THANDAIAH PRABU
 
8085 ppi 8255 and 8155
8085 ppi 8255 and 81558085 ppi 8255 and 8155
8085 ppi 8255 and 8155
Nitin Ahire
 
Programmable Peripheral Interface
Programmable Peripheral InterfaceProgrammable Peripheral Interface
Programmable Peripheral Interface
Meherul1234
 
Microprocessor Part 2
Microprocessor    Part 2Microprocessor    Part 2
Microprocessor Part 2
Sajan Agrawal
 
1203 Ppi 8155
1203 Ppi 81551203 Ppi 8155
1203 Ppi 8155
techbed
 
8255 ppi
8255 ppi8255 ppi
8255 ppi
Suraj Bora
 
8255 Programmable parallel I/O
8255 Programmable parallel I/O 8255 Programmable parallel I/O
8255 Programmable parallel I/O
Muhammed Afsal Villan
 
Lec14
Lec14Lec14
Microcontroller avr
Microcontroller avrMicrocontroller avr
Microcontroller avr
Mahmoud Amr
 
25. 8255 programmable peripheral interface
25. 8255 programmable peripheral interface25. 8255 programmable peripheral interface
25. 8255 programmable peripheral interface
sandip das
 
Lec13
Lec13Lec13
Microprocessor Interfacing and 8155 Features
Microprocessor Interfacing and 8155 FeaturesMicroprocessor Interfacing and 8155 Features
Microprocessor Interfacing and 8155 Features
Srikrishna Thota
 
Industrial LED Display Solutions
Industrial LED Display SolutionsIndustrial LED Display Solutions
Industrial LED Display Solutions
Compucare
 
8255 Introduction
8255 Introduction8255 Introduction
8255 Introduction
SharmilaChidaravalli
 
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
Taha Malampatti
 
Chapter
ChapterChapter
Chapter
Manan Patel
 
Operation of 8255A
Operation of 8255AOperation of 8255A
Operation of 8255A
Anuj Yadav
 
The 8255 PPI
The 8255 PPIThe 8255 PPI
The 8255 PPI
Srikrishna Thota
 
Best-embedded-system-classes-in-mumbai
Best-embedded-system-classes-in-mumbaiBest-embedded-system-classes-in-mumbai
Best-embedded-system-classes-in-mumbai
Unmesh 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.pptx
SangeetaTripathi8
 
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 technologies
VishalMalhotra58
 
embedded system and AVR
embedded system and AVRembedded system and AVR
embedded system and AVR
Urvashi Khandelwal
 
Linkmeup v076(2019-06).2
Linkmeup v076(2019-06).2Linkmeup v076(2019-06).2
Linkmeup v076(2019-06).2
eucariot
 
knowledge in daily life.ppt
knowledge in daily life.pptknowledge in daily life.ppt
knowledge in daily life.ppt
SunilSharma941036
 
8085 alp programs
8085 alp programs8085 alp programs
8085 alp programs
Prof. Dr. K. Adisesha
 
MICROCONTROLLER.pptx
MICROCONTROLLER.pptxMICROCONTROLLER.pptx
MICROCONTROLLER.pptx
fiqrie mohd
 
8086 Microprocessor
8086 Microprocessor8086 Microprocessor
8086 Microprocessor
Avinash Rouniyar
 
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
 
Atmega 16 drdo report
Atmega 16 drdo reportAtmega 16 drdo report
Atmega 16 drdo report
Himanshu baunthiyal
 
Microprocessor Architecture-III
Microprocessor Architecture-IIIMicroprocessor Architecture-III
Microprocessor Architecture-III
Dr.YNM
 
8085_LAB_PROGRAMS.pdf
8085_LAB_PROGRAMS.pdf8085_LAB_PROGRAMS.pdf
8085_LAB_PROGRAMS.pdf
Koteswari Kasireddy
 
Introduction to 8085 Microprocessors
Introduction to 8085 MicroprocessorsIntroduction to 8085 Microprocessors
Introduction to 8085 Microprocessors
Veerakumar S
 
8086 module 1 & 2 work
8086 module 1 & 2   work8086 module 1 & 2   work
8086 module 1 & 2 work
Suhail Km
 
Microprocessor lab manual
Microprocessor lab manualMicroprocessor lab manual
Microprocessor lab manual
Dhaval 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 AVR
Mohamed 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

RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
WENKENLI1
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
karthi keyan
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
R&R Consult
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
BrazilAccount1
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
Divya Somashekar
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
SamSarthak3
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
bakpo1
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 

Recently uploaded (20)

RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdfGoverning Equations for Fundamental Aerodynamics_Anderson2010.pdf
Governing Equations for Fundamental Aerodynamics_Anderson2010.pdf
 
CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxCFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptx
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
AP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specificAP LAB PPT.pdf ap lab ppt no title specific
AP LAB PPT.pdf ap lab ppt no title specific
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdfAKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
AKS UNIVERSITY Satna Final Year Project By OM Hardaha.pdf
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
一比一原版(SFU毕业证)西蒙菲莎大学毕业证成绩单如何办理
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 

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