At QBayLogic, we develop high performance, right-first-time hardware accelerators to help with your business's needs. To achieve this, we've created our own tooling and a methodology that makes sure we deliver on time and according to specification.
Want to know what that looks like in practice? Keep on reading!
The first step towards developing a product is creating a precise, mutual understanding of what we need to build. We can start from just a sketch on the back of a napkin to a fully developed solution in any programming language. Based on this, we will create a rigorous mathematical specification of the problem. In our experience, making such a specification allows us to communicate precisely and succinctly while not getting bogged down by the nitty-gritty implementation details.
Thanks to our in-house developed tooling, we can trivially convert a mathematical specification to a program specification, ready to be executed by any computer. Beholden requirement changes, we will use this as a golden reference to test all our future implementations. You might want to use this same program to develop any peripherals while waiting on the hardware implementation to finish. In the meantime, we will use it to create visualizations of the hardware we have yet to develop.
We'll develop test cases to verify that the mathematical model works as intended. To ensure we get all the corner cases, we'll use state of the art, randomized testing as popularized by the programming language Haskell. After both parties are happy with the results, we'll move onto the last step: implementing the accelerator.
After producing a golden reference and verifying that it works as intended, it is time to realize a hardware design. We use the same language to develop the accelerator as we used for the golden references. This allows us to hit the ground running and produce a minimal viable product on time and within spec.