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

librecores
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Digital hardware design What can we learn from software development – and what not?

LibreCores

Free and Open Digital Hardware

Philipp Wagner @ FOSDEM 2017

slide-2
SLIDE 2

Peter Kemp / Paul Smith via Wikimedia Commons, CC BY 2.0 (edited) https://en.wikipedia.org/wiki/File:Waterfall_model.svg

Hardware Development

Implementation Design Requirements Maintenance Verification

slide-3
SLIDE 3

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

Photo by VFS Digital Design via Flickr, CC-BY 2.0 https://www.fmickr.com/photos/vfsdigitaldesign/5396691102

Software Development

slide-4
SLIDE 4

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

Can we treat FPGA-targeting hardware design like software design?

Gareth Halfacree via Flickr, CC BY-SA 2.0 https://www.fmickr.com/photos/120586634@N05/15455173526

slide-5
SLIDE 5

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

Today we look at ...

  • Be less confjdent in quality.
  • Iterate! Iterate! Iterate!
  • Difgerentiate where it matters most.
slide-6
SLIDE 6

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

Evil Erin via Flickr, CC BY 2.0 https://www.fmickr.com/photos/evilerin/3723714381

slide-7
SLIDE 7

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

confjdence in quality testing efgort

Source: gut feeling

slide-8
SLIDE 8

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

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.

slide-9
SLIDE 9

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

Iterate! Iterate! Iterate!

productivity = f ( feedback time )

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

http://s909.photobucket.com/user/cledford22/media/003.jpg.html

Difgerentiate where it matters most.

slide-14
SLIDE 14

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

What makes your project better?

  • The build system?
  • The way you include dependencies?
  • Your choice of programming language?
  • Your coding style?
  • Your FIFO implementation?
slide-15
SLIDE 15

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

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
slide-16
SLIDE 16

Kevin Dooley via Flickr, CC BY 2.0 https://www.fmickr.com/photos/pagedooley/8435953365

We need more collaboration!

slide-17
SLIDE 17

Say Hello to LibreCores!

slide-18
SLIDE 18

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

Looking Ahead

  • Quality Metrics

– machine-generated

  • commit statistics
  • build/test status

– user-generated

  • reviews, likes, “I’ve taped this
  • ut”, etc.

– more ideas welcome!

Screenshot from Puppet Forge

slide-19
SLIDE 19

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

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.

slide-20
SLIDE 20

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

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.

slide-21
SLIDE 21

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

Rochdale Canal at Hebden Bridge. Poliphilo via Wikimedia Commons, CC0

Isn’t that a nice place?

slide-22
SLIDE 22

ORConf 2017

Hebden Bridge, UK

Save the date for the open source digital design conference

September 8 – 10, 2017 www.orconf.org

slide-23
SLIDE 23

me

Philipp Wagner

mail@philipp-wagner.com www.philipp-wagner.com

let's talk!

FOSSi Foundation

discussion@lists.librecores.org www.fossi-foundation.org #librecores on freenode

You can freely remix this presentatjon under the terms

  • f the Creatjve Commons BY-SA 4.0 license.