23

Shortening the feedback loop: faster and better code development

  • Upload
    sigasi

  • View
    564

  • Download
    0

Embed Size (px)

Citation preview

xkcd

.com

30 recompiles in half a day =

15 %of time wasted

How long do you type before testing your code?

shortening the feedback loop

Philippe Faes, PhD

Outline

• The loop design feedback loop• Time scales: seconds or months?• Shortening the loop• What’s next?

B.W. Boehm. Software Engineering Economics, 1981

time

cost

cost to fix increases over time

exponentially v

B.W. Boehm. Software Engineering Economics, 1981

time

cost

cost to fix increases over time

exponentially v

exponentially v

log

110

1001000

Time scale

• After a few hours when you compile• Next day by your colleague• During weekly code review• Simulation• After synthesis / P&R• In “linting” phase before tape out• After tape-out• In the field

Examples

• After a few seconds?• After a few minutes?• Linting phase• After a few hours by a machine• Next day by your colleague• During weekly code review • Simulation (automatic)• After synthesis / P&R (automatic)• In “linting” phase before tape out• After tape-out

compile

simulate

synthesis

(etcetera)

typing

$

$$

$$$

save file compile

simulate

synthesis

(etcetera)

typing

$

$$

$$$

save file compile

simulate

synthesis

(etcetera)

typing

$

$$

$$$

save file compile

simulate

synthesis

(etcetera)

typing

$

$$

$$$

¢¢

¢

Regression testing

(not the subject of this talk)

Save-time compilation

• Integration with ISim (Xilinx) ModelSim and Riviera-PRO

• Error markers in the text!= right where you can fix the code.

Save-time linting

• Linting is no longer a separate phase!• Integrated in development

= much less effort = cheaper

• Available for Aldec ALINT on request.

Type-time compilation

• Compare this to spell check in Word• BUT: also Grammar, Semantics• Built in parser

• type-time• recovering

Type-time compilation

• Compare this to spell check in Word• BUT: also Grammar, Semantics• Built in parser

• type-time• recovering

Checking in bad code makes you look bad

Examples

• After a few seconds?• After a few minutes?• Linting phase• After a few hours by a machine• Next day by your colleague• During weekly code review • Simulation (automatic)• After synthesis / P&R (automatic)• In “linting” phase before tape out• After tape-out

What you can do

• Try out Sigasi Pro at www.sigasi.com

• Save and compile often!• Integrate linting checks in development

process• Set up Regression Testing