librecores
play

LibreCores Free and Open Digital Hardware Requirements Design - PowerPoint PPT Presentation

Digital hardware design What can we learn from software development and what not? Philipp Wagner @ FOSDEM 2017 LibreCores Free and Open Digital Hardware Requirements Design Implementation Hardware Verification Development Maintenance


  1. Digital hardware design What can we learn from software development – and what not? Philipp Wagner @ FOSDEM 2017 LibreCores Free and Open Digital Hardware

  2. Requirements Design Implementation Hardware Verification Development Maintenance Peter Kemp / Paul Smith via Wikimedia Commons, CC BY 2.0 (edited) https://en.wikipedia.org/wiki/File:Waterfall_model.svg

  3. Software Development Photo by VFS Digital Design via Flickr, CC-BY 2.0 2017-02-05 What can we learn from software development – and what not? 3 https://www.fmickr.com/photos/vfsdigitaldesign/5396691102

  4. https://www.fmickr.com/photos/120586634@N05/15455173526 Gareth Halfacree via Flickr, CC BY-SA 2.0 Can we treat FPGA-targeting hardware design like software design? 2017-02-05 What can we learn from software development – and what not? 4

  5. Today we look at ... ● Be less confjdent in quality. ● Iterate! Iterate! Iterate! ● Difgerentiate where it matters most. 2017-02-05 What can we learn from software development – and what not? 5

  6. Evil Erin via Flickr, CC BY 2.0 2017-02-05 What can we learn from software development – and what not? 6 https://www.fmickr.com/photos/evilerin/3723714381

  7. confjdence in quality testing efgort Source: gut feeling 2017-02-05 What can we learn from software development – and what not? 7

  8. Be less confjdent in quality ● FPGAs enable cheap respins ● You don’t need to get it right the fjrst time. Win big going 80:20! ● What does an FPGA-targeting testing and verifjcation fmow look like? ● Prerequisite for most software development approaches. 2017-02-05 What can we learn from software development – and what not? 8

  9. Iterate! Iterate! Iterate! productivity = f ( feedback time ) 2017-02-05 What can we learn from software development – and what not? 9

  10. 2017-02-05 What can we learn from software development – and what not? 10

  11. Iterate! Iterate! Iterate! ● FPGAs enable cheap iterations. ● But do we have the tools for fast iterations? ● Intelligent IDEs ● Linting and static analysis ● Automation – Continuous Integration, Continuous Delivery – Very nice side efgect: reproducible results 2017-02-05 What can we learn from software development – and what not? 11

  12. Screenshot from Mentor Graphics HDL Designer v2016.1 (own work)

  13. Difgerentiate where it matters most. 2017-02-05 What can we learn from software development – and what not? 13 http://s909.photobucket.com/user/cledford22/media/003.jpg.html

  14. What makes your project better? ● The build system? ● The way you include dependencies? ● Your choice of programming language? ● Your coding style? ● Your FIFO implementation? 2017-02-05 What can we learn from software development – and what not? 14

  15. Finding common ground ● Use an intelligent HDL build system – fusesoc, hdlmake ● Speak a common language ● Work across tools – Polyfjlls for unsupported language features? ● Go for a common coding style 2017-02-05 What can we learn from software development – and what not? 15

  16. We need more collaboration! Kevin Dooley via Flickr, CC BY 2.0 https://www.fmickr.com/photos/pagedooley/8435953365

  17. Say Hello to LibreCores!

  18. Looking Ahead ● Quality Metrics – machine-generated ● commit statistics ● build/test status – user-generated ● reviews, likes, “I’ve taped this out”, etc. – more ideas welcome! Screenshot from Puppet Forge 2017-02-05 What can we learn from software development – and what not? 18

  19. Looking Ahead (II) ● Integration with package managers (like fusesoc) – prior art: npm, packagist, cargo, puppet forge, Linux package managers, and many more ● document FOSSi best practices – license choices – project hosting – testing/verifjcation ● LibreCores Continuous Integration (CI) Currently in prototyping, see https://librecores.org/static/librecores-ci for details. 2017-02-05 What can we learn from software development – and what not? 19

  20. Contributing ● Add your project to LibreCores ● Add your blog to Planet LibreCores just open a GH issue, or write me a mail → ● Write, edit and comment on documentation ● Write code http://librecores-web.readthedocs.io/en/latest/contributing.html has a list of contribution opportunities, good fjrst bugs, and contact information. 2017-02-05 What can we learn from software development – and what not? 20

  21. Isn’t that a nice place? 2017-02-05 Rochdale Canal at Hebden Bridge. Poliphilo via Wikimedia Commons, CC0 What can we learn from software development – and what not? 21

  22. Save the date for the open source digital design conference ORConf 2017 Hebden Bridge, UK September 8 – 10, 2017 www.orconf.org

  23. let's talk! FOSSi Foundation me discussion@lists.librecores.org Philipp Wagner www.fossi-foundation.org mail@philipp-wagner.com #librecores on freenode www.philipp-wagner.com You can freely remix this presentatjon under the terms of the Creatjve Commons BY-SA 4.0 license.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend