FPGA Code Development and Management in LFAA Matt
- Slides: 9
FPGA Code Development and Management in LFAA Matt Roberts Electronic System Design Group Rutherford Appleton Laboratory, UK
Overview • • • Version Management Firmware Development Software and Firmware Integration Issue Tracking and Wiki Documentation 04/10/2016 Matt Roberts 2
Version Management • Subversion Repository • Libraries/Projects/Vendor IP/Boards • Source Code, Constraints and Scripts • Traceability • Hosted by Technology @ RAL • External Access for Collaborative Projects • Promote Code Re-Use • Reduce Development Time • Minimise Errors 04/10/2016 Matt Roberts 3
Firmware Development • • • Sigasi VHDL Plugin for Eclipse VHDL Code Navigation Context Sensitive Auto-Complete On-the-Fly Syntax Checking Modelsim Integration • Compile Modelsim Libraries Automatically • Auto-Generate Diagrams • Block Diagrams/State-Machines • Reduce Time to Synthesis 04/10/2016 Matt Roberts 4
Software/Firmware Integration • • XML Defined Memory Maps Scripted XML to VHDL Generation XML Stored in FPGA Configuration Automatic Documentation 04/10/2016 Matt Roberts 5
Issue Tracking and Wiki • Subversion and Trac • Ownership of Libraries/Projects/Vendor IP/Boards • Web View and Wiki • Web Based File Diffing • Tickets and Milestones • Tickets based on Workflow • Tickets Linked to Milestones and Timelines • Plugin Based Enhancements • Agile SCRUM • Virtual Whiteboards • Burndown Charts 04/10/2016 Matt Roberts 6
Trac • Subversion Commits • Cross Reference to Ticket and/or Milestone • Wiki Page References • Improved Traceability 04/10/2016 Matt Roberts 7
Documentation • Doxygen • Generate Documentation from Source Code Comments • Custom Script to Generate Memory-Map Tables • From XML Definitions used to Generate VHDL Memory Maps • Generates HTML Webpages • Example Pages • Eclipse and Trac Integration • Promote Good Comments 04/10/2016 Matt Roberts 8
Summary • Vendor Independent • Vendor Specific IP only at Board Wrapper Top-Level • Promoting Code Re-Use • Minimise Errors • Reduce Development Time • Useful Focussed Comments • Documentation • Full Circle Traceability • Tickets/Problem Reports/Fixes • Working towards: • Script Based Compilation and Verification 04/10/2016 Matt Roberts 9