From d81242229433c0f8c580980322b5e9f9ac93f5ed Mon Sep 17 00:00:00 2001
From: Erik Kooistra <kooistra@astron.nl>
Date: Tue, 19 Apr 2016 06:12:59 +0000
Subject: [PATCH] Added description of 3e) hdllib.cfg key sections

---
 tools/hdltool_readme.txt | 38 +++++++++++++++++++++++++++++++-------
 1 file changed, 31 insertions(+), 7 deletions(-)

diff --git a/tools/hdltool_readme.txt b/tools/hdltool_readme.txt
index 1b40cfb94f..deadaf9540 100644
--- a/tools/hdltool_readme.txt
+++ b/tools/hdltool_readme.txt
@@ -20,8 +20,10 @@ Contents:
 3) HDL environment configuration files
   a) Tools and libraries
   b) Target configuration scripts
-  c) hdltool_<toolset>.cfg key descriptions
-  d) hdllib.cfg key descriptions 
+  c) hdltool_<toolset>.cfg key sections
+  d) hdltool_<toolset>.cfg key descriptions
+  e) hdllib.cfg key sections
+  f) hdllib.cfg key descriptions 
   
 4) Porting from $UNB to $RADIOHDL
   a) History
@@ -496,7 +498,12 @@ See also the docstring help text in the Python code:
   >> help(quartus_config.py)
 
 
-c) hdltool_<toolset>.cfg key descriptions
+c) hdltool_<toolset>.cfg key sections
+
+The hdltool_<toolset>.cfg has no key sections yet. Hence all toolset keys are visible to target scripts.
+
+
+d) hdltool_<toolset>.cfg key descriptions
 
 - lib_root_dir =
     Root directory from where all HDL library configuration files (hdllib.cfg) are searched
@@ -530,8 +537,23 @@ c) hdltool_<toolset>.cfg key descriptions
     is not in the list of technology_names will not be in the build.
 
 
+e) hdllib.cfg key sections
+
+The hdllib.cfg can be devided into sections to group the keys that are used for a specific target. The sections headers are
+identified between [section_name] like in a ini file. The first part of the hdllib.cfg has no section header is these 
+keys are available for all target scripts. The keys within in a section are only available for the target script that 
+has selected the section_name in its libFileSections list. The libFileSections argument is a list because it is allowed for a target
+script to use keys from more than one section.
+
+   hdllib.cfg section name      target script
+  [modelsim_project_file]   --> modelsim_config.py (with libFileSections=['modelsim_project_file'])
+  [quartus_project_file]    --> quartus_config.py (with libFileSections=['quartus_project_file'])
+
+Future target scripts will have their own [section name] header in the hdllib.cfg. In this way the hdllib.cfg remains more organised and the
+keys per target are independ.
+
 
-d) hdllib.cfg key descriptions 
+f) hdllib.cfg key descriptions 
 
 - hdl_lib_name =
     The name of the HDL library, e.g. common, dp, unb1_minimal.
@@ -721,8 +743,8 @@ The binaries for Modelsim get build in a separate directory tree with absolute p
 Currently the path is set to $HDL_BUILD_DIR = $RADIOHDL/build. Using a completely separate absolute build tree is more clear than
 building the library in a local build directory. To create the Modelsim project files for all HDL libraries in the $RADIOHDL tree do:
 
-  $RADIOHDL> rm -rf build
-  $RADIOHDL> python modelsim_config.py
+  > rm -rf $RADIOHDL/build/unb1/modelsim                              # optional
+  > python $RADIOHDL/tools/oneclick/base/modelsim_config.py -t unb1 
 
 See also the docstring help text in the Python code:
 
@@ -733,7 +755,7 @@ See also the docstring help text in the Python code:
   
 b) Compilation
 
- > run_modelsim &
+ > run_modelsim unb1 &
  
 In Modelsim do:
 
@@ -775,6 +797,8 @@ a) Creating the Quartus project files
 
 The quartus_config.py creates the Quartus qpf, qsf and or qip files for a design library.
 
+  > rm -rf $RADIOHDL/build/unb1/quartus                              # optional
+  > python $RADIOHDL/tools/oneclick/base/quartus_config.py -t unb1 
 
 
 8) Design revisions
-- 
GitLab