Lars Risbo, Purifi
Purifi is a startup with a mission to provide advanced audio technology solutions far beyond existing technology. This means that the problems we want to solve are being constantly investigated in depth; many different solutions must then be explored quickly to “fail fast and learn fast.” The fast solution exploration, or rapid prototyping, involves real-world hardware in the form of audio transducers so the prototyping must run in real time with low latencies. Moreover, online parameter tuning and exploration is needed to accelerate the development process. In addition, the prototyping platform must also serve as its own test equipment for monitoring and evaluation of performance metrics. The understanding of the problems to be solved is typically maturing as a model in MATLAB® and Simulink®, with underlying scripts for parameter estimation and mathematical descriptions. The testbeds for evaluation of solution candidates are fairly complex, evolve quickly, and can be best described in MATLAB and Simulink.
The need for real-time operation calls for use of FPGA, and the need for rapid prototyping while using the precious human resources (mainly for the creative work) calls for the use of an automated push-button flow through HDL code generation, synthesis, place, and route to live real-time action. The flow must also allow for later rapid progression to ASIC solutions without labor-intensive recoding and shall use automated verification tools and cosimulation. We were willing to make tradeoffs penalty in terms of area/code efficiency and iron-clad operation to get the described needed workflow speed and flexibility: a working solution prototype is good enough in the shorter run to engage with customers and investors, while optimization and perfection can be added later in the product maturing phase. The SoC design flow with MATLAB and Simulink products and the Zedboard, along with a custom-designed daughter board, was chosen to fulfill the described demanding needs for a rapid prototyping platform.