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