CodingGuildlines
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
76324bbabb
commit
b553e636a0
|
|
@ -105,6 +105,9 @@ private order.
|
||||||
friend class Frobulator;
|
friend class Frobulator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Class member functions should not be defined inside the class unless they
|
||||||
|
are simple accessors that return a member variable.
|
||||||
|
|
||||||
Avoid using [] to lookup a map value because it creates a key/null value
|
Avoid using [] to lookup a map value because it creates a key/null value
|
||||||
pair if the lookup fails. Use map::find or sta::Map::findKey instead.
|
pair if the lookup fails. Use map::find or sta::Map::findKey instead.
|
||||||
|
|
||||||
|
|
@ -114,6 +117,11 @@ Avoid all use of global variables as "caches", even if they are thread local.
|
||||||
OpenSTA goes to great lengths to minimize global state variable that prevent
|
OpenSTA goes to great lengths to minimize global state variable that prevent
|
||||||
multiple instances of the Sta class from coexisting.
|
multiple instances of the Sta class from coexisting.
|
||||||
|
|
||||||
|
Do not use thread_local variables. They are essentially global
|
||||||
|
variables so they prevent multiple instances of an Sta object from
|
||||||
|
existing concurrently, so they sbould also be avoided. Use stack state
|
||||||
|
in each thread instead.
|
||||||
|
|
||||||
Regression Tests
|
Regression Tests
|
||||||
................
|
................
|
||||||
|
|
||||||
|
|
@ -129,11 +137,17 @@ Tests log files and results are in test/results. The result/test.log
|
||||||
is compared to test.ok to determine if a test passes.
|
is compared to test.ok to determine if a test passes.
|
||||||
|
|
||||||
Test scripts are written in tcl and live in the /test directory.
|
Test scripts are written in tcl and live in the /test directory.
|
||||||
Compress large liberty, verilog, and spef, files and use existing
|
Compress large liberty, verilog, and spef, files., Use small or
|
||||||
libraries to prevent repository bloat.
|
existing verilog and liberty files to prevent repository bloat.
|
||||||
|
|
||||||
The test script should use a one line comment at the beginning of the
|
The test script should use a one line comment at the beginning of the
|
||||||
file so head -1 can show what it is for. Use file names to roughly
|
file so head -1 can show what it is for. Use file names to roughly
|
||||||
group regressions and use numeric suffixes to distinguish them.
|
group regressions and use numeric suffixes to distinguish them.
|
||||||
|
|
||||||
The script test/save_ok saves a test/results/<test>.log to test/<test>.okfile.
|
The script test/save_ok saves a test/results/<test>.log to test/<test>.okfile.
|
||||||
|
|
||||||
|
To add a new regression:
|
||||||
|
add <test>.tcl to /tcl
|
||||||
|
add <test> name to test/regression_vars.tcl
|
||||||
|
run <test> with test/regression <test>
|
||||||
|
use save_ok <test> to save the log file to >test>.log
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue