Skip to content

Latest commit

 

History

History
106 lines (74 loc) · 4.57 KB

ScriptUsage.md

File metadata and controls

106 lines (74 loc) · 4.57 KB

RePlAce script Usage

There are two python scripts to feed both of bookshelf and lef/def/verilog files.

Configure options to execute scripts

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.

Feed RePlAce with Bookshelf

$ 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, ...)
  1. Directory order

     $ python execute_bookshelf.py 0
    

    User can specify the sub-directory index (in alphabetical order) (0 -> superblue10 // 1 -> superblue14 // 2 -> superblue19)

  2. 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)

  3. 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.

Feed RePlAce with LEF/DEF/VERILOG

$ 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
  1. Directory order

     $ python execute_lefdef.py 0
    

    User can specify the sub-directory index (in alphabetical order) (0 -> CORTEXM0DS // 1 -> leon2 // 2 -> superblue19)

  2. 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)

  3. 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.

Notice

  1. 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 )

  2. 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)

  3. 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)