There are two python scripts to feed both of bookshelf and lef/def/verilog files.
You can easily find this part inside of the python scripts.
- bmflag : (mms/ispd/sb/ibm/etc) Benchmark flag. Default is 'sb'
- dpflag : (NTU3/NTU4) Detail placer flag. Current RePlAce can take 'NTU3' or 'NTU4'
- dploc : (string) Detail placer binary location
- dirpos : (string) Benchmark directory position
- binaryName : (string) Compiled RePlAce binary name
- outpos : (string) Set a output folder location - The binary saves 'jpg/def/bookshelf' files
- logpos : (string) Set a log folder location - The binary saves standard-output log like superblue9_2018-07-30_20:46:56.log
- numThread : (int) Define the number of threads RePlAce can use
- isOnlyGP : (T/F) Determine whether RePlAce stops after Global placement
- isPlot : (T/F) Determine whether RePlAce generates visualized images (using CImg)
- isValgrind : (T/F) Use Valgrind to debug
- isNohup : (T/F) Execute RePlAce in background mode using nohup
- useScreen : (T/F) Execute RePlAce in background mode using screen
* Note that isNohup and useScreen should not be True at the same time.
$ python execute_bookshelf.py [directory order | benchmark Name | all]
For example, if you have bookshelf benchmarks as
bookshelf_bench/superblue10/superblue10.aux
bookshelf_bench/superblue10/superblue10.(nodes, nets, pl, shapes, ...)
bookshelf_bench/superblue14/superblue14.aux
bookshelf_bench/superblue14/superblue14.(nodes, nets, pl, shapes, ...)
bookshelf_bench/superblue19/superblue19.aux
bookshelf_bench/superblue19/superblue19.(nodes, nets, pl, shapes, ...)
-
Directory order
$ python execute_bookshelf.py 0
User can specify the sub-directory index (in alphabetical order) (0 -> superblue10 // 1 -> superblue14 // 2 -> superblue19)
-
Directory Name
$ python execute_bookshelf.py superblue19
User can also specify the exact name of a sub-folder name
(superblue10 -> superblue10 // superblue14 -> superblue14 // superblue19 -> superblue19) -
All directory simultaneously (+ background)
$ python execute_bookshelf.py all
It'll execute all files in sequentially.
If you set useScreen = True or nohup = True, all benchmarks are executed simultaneously as background processes.
$ python execute_lefdef.py [directory order | benchmark Name | all]
For example, if you have LEF/DEF/verilog benchmarks as
ReplaceBench/CORTEXM0DS/floorplan.def
ReplaceBench/CORTEXM0DS/techlib.lef
ReplaceBench/leon2/leon2.def
ReplaceBench/leon2/techlib.lef
ReplaceBench/leon2/leon2.v
ReplaceBench/superblue19/superblue19.def
ReplaceBench/superblue19/superblue19.lef
-
Directory order
$ python execute_lefdef.py 0
User can specify the sub-directory index (in alphabetical order) (0 -> CORTEXM0DS // 1 -> leon2 // 2 -> superblue19)
-
Directory Name
$ python execute_lefdef.py CORTEXM0DS
User can also specify the exact name of a sub-folder name
(CORTEXM0DS -> CORTEXM0DS // leon2 -> leon2 // superblue19 -> superblue19) -
All directory simultaneously (+ background)
$ python execute_lefdef.py all
Then, it can execute all files in sequentially. If you set useScreen = True or nohup = True, all benchmarks are executed simultaneously as background processes.
-
The name of DEF/LEF/verilog need not to be same as the folder name.
It automatically detects whether the '*.lef/*.def/*.v' files exist or not. However, the name of 'output' folder will be set as 'DEF' name. ( superblue19/floorplan_good.def -> {outpos}/{bmflag}/floorplan_good/floorplan_good_placed.def ) -
Verilog is optional to feed RePlAce.
If netlist is found in both of verilog and DEF, RePlAce shows WARNING, and parses netlist from the DEF file.
(DEF > Verilog) -
Current RePlAce doesn't support multiple LEF files.
I recommend to concatenate 'Multiple LEF files' into one LEF file using below command.$ cat techlib.lef leon2.lef > leon2_concat.lef
Be sure that concatenated-LEF file must have the single END LIBRARY statement.
(I’ll try to fix this issue later)