Hardware design languages (HDL) like VHDL and Verilog have significant benefits over high-level sythesis of hardware from C/C++ or graphical drag-and-drop interfaces.
HDLs do not execute sequentially, which means that every statement outside of certain constructs will execute almost at once.
There is not currently a open source synthesis tool, but they are license free. Typically you pay for specific IP. There are both license free and open source IDEs.
Simulation is nearly as important at synthesis.
--
if ... then
...
elsif
...
end if;
entity
, which includes the definition of its interface to other circuits, which consists of signals that may be in
, out
or inout
and a data type (e.g. std_logic
)entity
is referred to as a architecture
port
can be associated with a signalstd_logic_vector
allows you to bundle signals
to
or downto
downto
is big-endian, while to
is little-endianlibrary IEEE; use IEEE.std_logic_1164.all;
allows 9 different signal values including 0
, 1
, U
, X
, Z
W
, L
, H
, -
bit
can only be 0
or 1
use IEEE.numeric_std.all;
imports a library for unsigned type and various arithmetic operatorsbegin
keyword, and are assigned using <=
process
construct, and are assigned using :=
architecture circuit_1 of <entity-name> is
signal sig_1 : std_logic;
begin
process (a,b,c)
variable var_1 : integer;
begin
port_f <= not (port_a and port_b and port_c);
sig_1 <= port_a;
var_1 := 34;
end process;
end circuit_1;
process
construct provides sequential execution of statements, but the process
itself is concurrent