Intro to PSS
9 parts, in reading order.
Automating Bare-Metal Tests with PSS
As a technologist, it's tempting to focus on what is new (at least, new to me) -- especially when choosing what to write about. I'm periodically reminded that there is immense value in returning to topics. Returning to a topic might raise awareness with a dif…
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…
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…
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…
Modeling DMA Test Scenarios with PSS
If you've been following the blog for any length of time, you've likely noticed that I like to work with examples and applications when it comes to learning and understanding technology. I certainly like the tendency of applications to take knowledge out of t…
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…
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…
Interacting with Devices via PSS Registers
We've been looking at properly modeling the types of behaviors that we want to exercise on our DMA IP for the last few posts. Of course, until we can actually start programming the DMA registers, all of our modeling won't actually do anything. PSS provides t…
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…