I have posted a two-part blog post to the public Intel Developer Zone blog, about the “Small Batches Principle” and how simulation helps us achieve it for complicated hardware-software systems. I found the idea of the “small batch” a very good way to frame my thinking about what it is that simulation really brings to system development. The key idea I want to get at is this:
[…] the small batches principle: it is better to do work in small batches than big leaps. Small batches permit us to deliver results faster, with higher quality and less stress.
Which is a quote from a Communication of the ACM* article from 2016 by Tom Limoncelli. How do you get to that when developing hardware, where the question can be boiled down to this:
The answer is to simulate it!
Due to the length and depth of the discussion, it turned into two parts.
Update: Due to changes in the Intel publishing system, the URLs to the blog posts changed in late 2021.
Part 1 is about the general principle: https://software.intel.com/en-us/blogs/2017/08/18/small-batches-with-simulation https://www.intel.com/content/www/us/en/developer/articles/technical/small-batches-with-simulation.html
Part 2 is about how simulation is used: https://software.intel.com/en-us/blogs/2017/08/24/small-batches-in-hardware-design-using-simulation https://www.intel.com/content/www/us/en/developer/articles/technical/small-batches-in-hardware-design-using-simulation.html