Node:The hello word program, Next:A full adder, Previous:Starting with GHDL, Up:Starting with GHDL
To illustrate the large purpose of VHDL, here is a commented VHDL "Hello world" program.
-- Hello world program. use std.textio.all; -- Imports the standard textio package. -- Defines a design entity, without any ports. entity hello_world is end hello_world; architecture behaviour of hello_world is begin process variable l : line; begin l := new String'("Hello world!"); writeline (output, l); wait; end process; end behaviour;
Suppose this program is contained in the file hello.vhdl
. First, you have to compile the file; this is called analysis of a design file in VHDL terms.
$ ghdl -a hello.vhdlThis command generates a file
hello.o
, which is the object file corresponding to your VHDL program. This command also creates or updates a file work-obj93.cf
, which describes the library work
.
Then, you have to build an executable file.
$ ghdl -e hello_worldThe
-e
option means elaborate. With this option, GHDL
creates code in order to elaborate a design, with the hello
entity at the top of the hierarchy.
The result is an executable program called hello
which can be run:
$ ./hello_world
and which should display:
Hello world!