feature article
Subscribe Now

MATLAB to Hardware

MathWorks Automates HDL Creation

Quick! What’s the fourth largest EDA company in the world? Most of us in the industry can rattle off the “Big 3” right? “Daisy, Mentor, Valid.” Oops, my time machine was off by about 30 years. How about “Synopsys, Mentor, Cadence”? After that, it gets a bit dicey – if we counted Magma, that would be a possibility, but we need to chalk them up to Synopsys now. For those of us who think FPGA companies are actually EDA companies with a different business model, Xilinx and Altera would be in the top four or five. Beyond that, it drops off — a lot.

Most people would not immediately say “MathWorks”. In fact, even MathWorks would not say “MathWorks”. However, a growing but still unknown part of the company’s around $600M annual revenue is derived from tools that directly apply to electronic system design – both hardware and software. The company was founded on the lucrative principle of doing math for everyone, but math for electronic design turns out to be some of the most profitable math around. As a result, MathWorks has been playing an increasingly aggressive role in recent years – winding their way down from differential equations to DSP, and from simulations and graphs to working hardware.

This week, MathWorks introduced HDL Coder – which automatically generates synthesizable VHDL and Verilog directly from MATLAB. This introduction tears down some of the existing walls in many electronic system design houses. Typically, “someone” wearing long-flowing robes sits away in an ivory cubicle all day – experimenting with algorithms in MATLAB. That “someone” doesn’t do HDL. They don’t even do fixed point. They spend their time adjusting coefficients, evaluating alternative algorithms, and doing their darn-theoretical-best to get the future system fine-tuned to perfection. They polish their algorithm until it glows – eking out every ounce of efficiency and elegance from the formulas and equations that form the basis of their design. They place their perfected conceptual jewel in a velvet-lined box inlaid with exotic hardwoods and precious metal appointments. They emerge from their cubicle with music of violins and inexplicable beams of light illuminating their creation from the heavens.

Then, our special “someone” sends this prized package down the aisle to the hardware and software engineering teams – who proceed to attack the box with Sawzalls, sledgehammers, and pile drivers – re-doing the floating point in fixed point, re-coding the algorithm in HDL, and doing all manner of evil pipelining, resource sharing, unrolling, and re-jiggering – until the hardware version of the thing bears no resemblance whatsoever to the original, optimized, algorithmic amuse bouche. Except, of course, that it happens to sort-of do the same function. 

“Someone” is usually not bothered by this defacement of their work. They’ve long since returned to their lair and begun working on the next version of the algorithm.

Now, Mathworks has built some automation and accountability into this process. Yep, that means you can put away the Sawzall (dang, I know – that was a fun part for me too). HDL Coder generates both portable HDL and testbenches directly from both MATLAB and Simulink. At the same time, Mathworks announced “HDL Verifier” which provides FPGA-based hardware-in-the-loop capabilities. This allows execution of the algorithm you’re evaluating to be done at hardware speeds, allowing a much more exhaustive set of stimulus and test data to be applied. 

So, to summarize, you can start in MATLAB or Simulink and go directly to synthesizable, simulatable HDL, and then to an FPGA-based hardware-in-the-loop prototype platform. When you change or tune your algorithm in MATLAB, you don’t have to go back down the hall to the ivory cubicle, break out the pile driver, and re-do all your HDL coding work. HDL Coder can re-generate HDL, and you’re back in the evaluation part of the loop quickly.

This should dramatically accelerate the iteration loop for algorithmic designs or subsystems – particularly those that are datapath-oriented (such as signal processing.) Auto-generation of HDL generally makes synthesis and timing closure easier (as we human coders tend to push things pretty hard on the levels of logic and critical paths). Furthermore, it adds a level of rigor to our design flow that makes it easier to conform to high-reliability standards like DO-254.

MathWorks has partnered with both Xilinx and Altera on this project, has actually automated the flow with both vendors, and supports a number of FPGA development boards for the hardware-in-the-loop function. They have also partnered with a number of EDA suppliers including Cadence (Incisive), and Mentor Graphics (ModelSim and Questa) for support of co-simulation interfaces to MATLAB and Simulink for FPGA hardware-in-the-loop verification (through HDL Verifier). 

All of this partnering means that you can use the most popular FPGAs and development boards, along with the most popular simulation engines, and enjoy the new capabilities of HDL Coder and HDL Verifier.

Taking this discussion one level deeper – we wondered how HDL Coder compares with “high-level synthesis” tools currently on the market. Indeed, much like high-level synthesis tools, HDL Coder is converting un-timed algorithms (captured in MATLAB) to specific, timed microarchitectures in HDL. High-level synthesis tools do that and quite a bit more – including user-controlled architectural exploration, flexible memory generation, and interface synthesis. However, in our brief demo, HDL Coder offers control over the most commonly used datapath optimizations like pipelining, resource sharing, and loop unrolling. HDL Coder also offers both manual and automatic floating- to fixed-point conversion. That capability alone will expedite many design flows, as getting bit-widths optimized for your desired dynamic range is a bit of a tricky art all in itself. Is HDL Coder a replacement for high-level synthesis? No. Will it give you a lot of the same capabilities with less hassle? Probably so. 

For hard-core custom chip designs, teams may still often end up doing hand-coded optimization of their HDL code. However, for most prototyping and FPGA work, HDL Coder should provide an express lane from algorithm to implementation, and it should allow us to try a lot more variations and iterations on our design before settling in on our favorite. It should also make the path from algorithm to verified hardware much more deterministic – giving us peace of mind that our design actually implements the thing we simulated in MATLAB or Simulink. 

MathWorks says that HDL Coder and HDL Verifier are available now, with list prices for HDL Coder starting at $10K USD and for HDL Verifier at $3250 USD. While these prices are pretty steep for the typical MATLAB “I just wanna do math” user, they are relative bargains in the world of automated algorithm-to-hardware tools. 

14 thoughts on “MATLAB to Hardware”

  1. This is very complementary functionality to System Generator from Xilinx. HDL Coder 2012A also introduced interoperability with System Generator that allows both environments to be used together. Xilinx customers can continue to develop designs in Simulink using our device optimized Xilinx DSP blockset that includes IP compilers such as the FIR and FFT while creating new blocks using untimed, floating-point MATLAB. It also provides a direct path from MATLAB to Xilinx programmable logic for rapid prototyping that is not directly available in System Generator.


  2. Tom is correct, and the new interoperability helps users combine the complementary capabilities of both products, including:

    – MATLAB support: HDL Coder can be used with an algorithm written purely in the MATLAB language without using Simulink.
    – Simulink blocks: HDL Coder works with models built from standard Simulink blocks. With System Generator, you build models using Xilinx-specific blocks.
    – Device-independence or device-specificity: HDL Coder generates portable HDL code for FPGAs or ASICs. System Generator gives fine-grained control over the detailed settings of DSP blocks available in Xilinx FPGAs.

  3. “Is HDL Coder a replacement for high-level synthesis? No.”

    Can you tell me why, especially after HDL Coder added something like directive to control the arch-exploration?

  4. Pingback: Top
  5. Pingback: TechUnmasked.com/
  6. Pingback: Political Diyala
  7. Pingback: casino online

Leave a Reply

featured blogs
May 21, 2022
May is Asian American and Pacific Islander (AAPI) Heritage Month. We would like to spotlight some of our incredible AAPI-identifying employees to celebrate. We recognize the important influence that... ...
May 20, 2022
I'm very happy with my new OMTech 40W CO2 laser engraver/cutter, but only because the folks from Makers Local 256 helped me get it up and running....
May 19, 2022
Learn about the AI chip design breakthroughs and case studies discussed at SNUG Silicon Valley 2022, including autonomous PPA optimization using DSO.ai. The post Key Highlights from SNUG 2022: AI Is Fast Forwarding Chip Design appeared first on From Silicon To Software....
May 12, 2022
By Shelly Stalnaker Every year, the editors of Elektronik in Germany compile a list of the most interesting and innovative… ...

featured video

Building safer robots with computer vision & AI

Sponsored by Texas Instruments

Watch TI's demo to see how Jacinto™ 7 processors fuse deep learning and traditional computer vision to enable safer autonomous mobile robots.

Watch demo

featured paper

Introducing new dynamic features for exterior automotive lights with DLP® technology

Sponsored by Texas Instruments

Exterior lighting, primarily used to illuminate ground areas near the vehicle door, can now be transformed into a projection system used for both vehicle communication and unique styling features. A small lighting module that utilizes automotive-grade digital micromirror devices, such as the DLP2021-Q1 or DLP3021-Q1, can display an endless number of patterns in any color imaginable as well as communicate warnings and alerts to drivers and other vehicles.

Click to read more

featured chalk talk

Clamping Down on Failure: Protecting 24 V Digital Outputs

Sponsored by Mouser Electronics and Skyworks

If you're designing IEC61131 compliant digital outputs for these PLCs or industrial controllers, you need to have a plan to protect these outputs from a variety of unknowns. In this episode of Chalk Talk, Amelia Dalton chats with Asa Kirby from Skyworks about an innovative new isolated smart switch device from Skyworks that gives you an unprecedented level of channel flexibility and protection, letting you offer customers a truly “set it and forget it” solution when it comes to your next PLC design.

Click here for more information about Skyworks Solutions Inc. Si834x Isolated Smart Switches