Friday, 16 December 2016

chip design - How is VHDL used?


I'm new to hobby electronics/robotics and am trying to understand the use case for VHDL. The syntax is easy enough to understand, but I'm not seeing the "forest through the trees" on a few items.


For one, I'm trying to ascertain exactly what components of a digital system can be represented in VHDL. Can it be used for describing the behavior of CPUs? MCUs? PCBs? System-on-a-chip-type components?



Second, does VHDL compile to anything? Since it's describing hardware behavior, I'd imagine the answer would be no, but then my next question is: so then what happens to VHDL? Is there some kind of magic machine that takes VHDL as input and spits out chips & circuitry that accurately reflects the hardware modeled by the VHDL?



Answer



VHDL is used in ASIC and FPGA development, as is Verilog. Pretty much all commercial chip design is done in one of those two.


There's not so much a magic machine as a pipeline of large expensive pieces of software. The flow looks like this:



  • humans write VHDL, then simulate in a program such as Modelsim to validate design.

  • this is converted to a gate level netlist, which is usually also in Verilog but replaces all logic expressions by instantiations of logic gates (AND/OR/NOT/D-type flipflop). This is vaguely similar to a software compiler outputting machine code.

  • another round of software does place and route, assigning those gates to locations on a chip. At this point it becomes possible to calculate timing and power consumption.

  • additional bits of hardware are substituted in for things that aren't made out of logic gates (memories, analog subcomponents)

  • For ASIC, finally the gates are converted into a sort of vector graphics format called GDSII, which is sent to the factory.



No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...