f-cpu/vhdl/compile/COMPILE_ORDER.txt
created lun dec 31 04:42:04 GMT 2001 by whygee@f-cpu.org

The VHDL sources are located in separate directories
to help the separate development and test of the units.

Depending on what you want to do, the compilation order
will vary but the same order will roughly be kept :

 * configuration Makefile
 * configuration
 * common
 * execution units and control units (possibly in parallel)
 * top level

First, if you modify any of the m4 or .in files located
in f-cpu/configuration, you will have to run the Makefile
in this directory. It will update other files in several
directories.

Then you will have to compile the VHDL configuration files
in f-cpu/vhdl/configuration. These files "reflect" the
choices indicated in the m4 files, transposed in the VHDL
langage. These configuration files influence the rest
of the source tree.

Next comes the f-cpu/vhdl/common directory which contains
utilities, generic entities etc. Since they are generic,
they are not directly dependent on the configuration files
but it is safer to not assume this.

Once the "base" files are compiled, we have a better programming
environment. Every "physical" unit can be compiled
independently.

Finally, the "top level" gathers all the units and connects
them together, inserting additional pipeline buffers where
the FC0 model defines them.

In this description, we have only addressed the compilation
(and possibly the synthesis) of the model. Most architectures
and even some packages (when they provide complex functions)
are provided with their own testbench which has to be run
for verification purpose during the development and the
regression tests. These testbenches are naturally not
run when the FC0 model is simply compiled but the
verification is an integral part of the development process.

