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.

Recommend


More recommend