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
B.W. Boehm. Software Engineering Economics, 1981
time
cost
cost to fix increases over time
exponentially
v
log
1
10
100
1000
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
Shortening the feedback loop: faster and better code development

Shortening the feedback loop: faster and better code development