You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Report on a design prior to setting up a configuration
3
2
4
3
This configuration allows running synthesis and floorplan
5
4
to extract some basic information useful when setting
@@ -14,43 +13,55 @@ the Verilog files do not have to be located in the OpenROAD-flow-scripts
14
13
git repository, adjust the VERILOG_FILES argument to point to your Verilog
15
14
files:
16
15
17
-
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_synth synth gui_synth
16
+
```
17
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_synth synth gui_synth
18
+
```
18
19
19
20
Where, the exploratory config.mk file to be replaced
20
21
by a design specific config.mk file is:
21
22
22
-
DESIGN_CONFIG=designs/asap7/minimal/config.mk
23
+
```
24
+
DESIGN_CONFIG=designs/asap7/minimal/config.mk
25
+
```
23
26
24
27
Verilog files that to be investigated are specified by:
25
28
26
-
VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)"
29
+
```
30
+
VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)"
31
+
```
27
32
28
33
The Verilog top module name is specified by:
29
34
30
-
DESIGN_NAME=aes_cipher_top
35
+
```
36
+
DESIGN_NAME=aes_cipher_top
37
+
```
31
38
32
39
Synthesis cleaned and re-run by:
33
40
34
-
clean_synth synth
35
-
41
+
```
42
+
clean_synth synth
43
+
```
44
+
36
45
The GUI is opened by the makefile target:
37
46
38
-
gui_synth
47
+
```
48
+
gui_synth
49
+
```
39
50
40
-
`make gui_synth` OpenROAD GUI information
41
-
-----------------------------------------
51
+
## `make gui_synth` OpenROAD GUI information
42
52
43
53

44
54
45
55
The module hierarchy can here be examined to give a sense of
46
56
area required for the default placement density.
47
57
48
-
`make gui_floorplan` OpenROAD GUI information
49
-
---------------------------------------------
58
+
## `make gui_floorplan` OpenROAD GUI information
50
59
51
60
Next to iterate on floorplan settings:
52
61
53
-
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_floorplan floorplan gui_floorplan
62
+
```
63
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_floorplan floorplan gui_floorplan
64
+
```
54
65
55
66
A few more things can be learned from looking at this minimal floorplan:
56
67
@@ -62,12 +73,13 @@ A few more things can be learned from looking at this minimal floorplan:
62
73
63
74

64
75
65
-
`make gui_place` OpenROAD GUI information
66
-
-----------------------------------------
76
+
## `make gui_place` OpenROAD GUI information
67
77
68
78
Next to iterate on placement settings:
69
79
70
-
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_place place gui_place
80
+
```
81
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_place place gui_place
82
+
```
71
83
72
84

73
85
@@ -80,39 +92,26 @@ file can be learned:
80
92
is a chance that the design can be routed.
81
93
- Get a sense of size and location of modules
82
94
83
-
CTS(Clock tree Synthesis)
84
-
-------------------------
95
+
## CTS(Clock tree Synthesis)
85
96
86
97
After placement, CTS (clock tree synthesis is run). However the minimal design does
87
98
not have a clock, so CTS runs quickly, but does nothing.
88
99
89
-
`make gui_grt` OpenROAD GUI information
90
-
-----------------------------------------
100
+
## `make gui_grt` OpenROAD GUI information
91
101
92
102
For non-trivial designs, some more work will need to be done in floorplan and
93
103
placement before there is a chance that global routing will complete:
94
104
95
-
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_place place gui_place
105
+
```
106
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_place place gui_place
107
+
```
96
108
97
109

98
110
99
111
Global routing congestion heatmap can be examined in the GUI.
100
112
101
-
Next steps
102
-
----------
113
+
## Next steps
103
114
104
115
Start creating a config.mk file for your design, write an .sdc file to
105
116
examine timing and find reasonable values for the CORE_UTILIZATION
106
117
and PLACE_DENSITY for your design considering routing congestion.
107
-
108
-
Building from your own git repository
109
-
=====================================
110
-
111
-
ORFS, OpenROAD-flow-scripts, supports setting up a config.mk file
112
-
in your own git repository without the need to fork ORFS. It is
113
-
also possible to perform some preliminary builds of your Verilog
114
-
files to examine the results in the OpenROAD GUI.
115
-
116
-
To build from your own git repository:
117
-
118
-
FLOW_HOME=~/OpenROAD-flow-scripts/flow make --file=~/OpenROAD-flow-scripts/flow/Makefile DESIGN_CONFIG=config.mk ...
0 commit comments