Constrained Random
13 posts
Zuspec: Pythonic Model-Driven Hardware Development
Designing and implementing hardware is challenging, and is getting more difficult each year as systems become more complex. Design and verification teams are looking to boost productivity as a way to keep pace, while also looking for ways to provide models …
Relating Actions with Dataflow Part2 -- Parallelism
A few posts back ([Relating Actions with Dataflow](/blog/relating-actions-with-dataflow/)), we talked about using buffer objects to form a relationship between actions that execute sequentially. Because the actions execute sequentially, this relationship lo…
PSS Concurrency and Resources
Resource contention is a challenge that arises any time concurrency and shared resources (data, hardware accelerators, etc) are involved. It's one of the big challenges, and source of bugs, in implementing code that takes advantage of parallelism. When it co…
PSS Memory Management Fundamentals
Storage (memory) is right in the middle of all the work with do with computer architecture. We have different kinds of memory that each have different trade-offs around performance (latency / throughput), cost per unit, and power consumption. We arrange memori…
Relating Actions with Dataflow
Modularity and reuse are key concerns when it comes to programming languages. While languages without many modularity and reuse features may be quick and easy to write -- think shell scripts -- they ultimately fail to scale. PSS provides a wealth of mechanism…
Declarative Programming and Multi-Core Tests
As humans, we often pride ourselves on our ability to multi-task. Not only can we participate in a meeting, we can we simultaneously prepare the slides for the next meeting. Sadly, science has some bad news about our perception to multitask vs our actual ab…
PSS Fundamentals: Actions, Components, and Test Generation
Complex engineering endeavors require complex calculations. It's open to debate as to when the first engineering project that required complex calculations occurred. What we do know is that those calculations would have been done by hand. And this state la…
2020: Nights and Weekends Projects in Review
[](/legacy-img/splash-2.png) 2020 in Review Last year was my first year-end blog post looking back at the prior year's projects, and I thought I'd continue the (now) tradition this year. 2020 has definitely been a different year for me, and not just bec…
Arrays, Dynamic Arrays, Queues: One List to Rule them All
[](/legacy-img/splash-13.png) Randomizable lists are, of course, very important in modeling more-complex stimulus, and I've been working to support these within PyVSC recently. Thus far, PyVSC has attempted to stay as close as possible to both the feature…
Python Verification Stimulus and Coverage: Constraints
[](/legacy-img/splashconstraints.png) Over the past few blog posts, we've looked at: - [The fundamentals of modeling stimulus and functional coverage in Python](/blog/modeling-random-stimulus-and-functional-coverage-in-python/) - [Modeling verificati…
Python Verification Stimulus and Coverage: Data Types
[](/legacy-img/ModelingRandomStimulusSplash-2.png) In my last post, [Modeling Random Stimulus and Functional Coverage in Python](/blog/modeling-random-stimulus-and-functional-coverage-in-python/), I introduced a Python library for modeling random vari…
Modeling Random Stimulus and Functional Coverage in Python
[](/legacy-img/ModelingRandomStimulusSplash.png) If you've been following the blog over the last year, you've probably noticed that I've spent quite a bit of time over the last year learning and using Python. For several reasons, it's become my new favor…
2019 - The "Nights and Weekends Projects" Year in Review
[](/legacy-img/splash-16.png) It's almost the end of 2019, and I've been thinking back over the year as well as thinking ahead to 2020. In past years, I've often evaluated my "nights and weekends" projects using the same metrics I'm evaluated on at work:…