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
Copy file name to clipboardExpand all lines: flow/designs/asap7/minimal/README.md
+24-12Lines changed: 24 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,9 +13,14 @@ the Verilog files do not have to be located in the OpenROAD-flow-scripts
13
13
git repository, adjust the VERILOG_FILES argument to point to your Verilog
14
14
files:
15
15
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
-
```
16
+
1. Clean and run flow through synthesis
17
+
```
18
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_all synth do-1_3_synth
19
+
```
20
+
2. Bring up GUI for synthesis.
21
+
```
22
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" gui_synth
23
+
```
19
24
20
25
Where, the exploratory config.mk file to be replaced
21
26
by a design specific config.mk file is:
@@ -36,12 +41,14 @@ The Verilog top module name is specified by:
36
41
DESIGN_NAME=aes_cipher_top
37
42
```
38
43
39
-
Synthesis cleaned and re-run by:
44
+
The entire flow is cleaned and synthesis re-run by:
40
45
41
46
```
42
-
clean_synth synth
47
+
clean_all synth do-1_3_synth
43
48
```
44
49
50
+
`do-1_3_synth` is an unconditional(no dependencies) make target that converts the synthesis Verilog netlist to an .odb file so that the `gui_synth` target is available to view the synthesis result in the OpenROAD GUI. The `gui_...` targets are created dynamically based on the existence of the corresponding .odb files, which is why you can get an error message if you specify `gui_...` on a make command line when the .odb file doesn't exist, even if your command is building the .odb file.
51
+
45
52
The GUI is opened by the makefile target:
46
53
47
54
```
@@ -60,13 +67,15 @@ area required for the default placement density.
60
67
Next to iterate on floorplan settings:
61
68
62
69
```
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
70
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_floorplan floorplan
71
+
```
72
+
73
+
```
74
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" gui_floorplan
64
75
```
65
76
66
77
A few more things can be learned from looking at this minimal floorplan:
67
78
68
-
- The pins are placed randomly on the edges and at least there
69
-
is enough space on the edges to fit the top level pins
70
79
- Check that the floorplan size is not completely unreasonable and
71
80
at least there is a chance that this design could go through
72
81
placement with this density.
@@ -78,7 +87,8 @@ A few more things can be learned from looking at this minimal floorplan:
78
87
Next to iterate on placement settings:
79
88
80
89
```
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
90
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_place place
91
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" gui_place
82
92
```
83
93
84
94

@@ -91,19 +101,21 @@ file can be learned:
91
101
- Examine estimated routing congestion to get a sense if there
92
102
is a chance that the design can be routed.
93
103
- Get a sense of size and location of modules
104
+
- The pins are on the edges and at least there
105
+
is enough space on the edges to fit the top level pins
94
106
95
107
## CTS(Clock tree Synthesis)
96
108
97
-
After placement, CTS (clock tree synthesis is run). However the minimal design does
98
-
not have a clock, so CTS runs quickly, but does nothing.
109
+
After placement, CTS (clock tree synthesis is run). However the minimal design does not have a clock, so CTS runs quickly, but does nothing.
99
110
100
111
## `make gui_grt` OpenROAD GUI information
101
112
102
113
For non-trivial designs, some more work will need to be done in floorplan and
103
114
placement before there is a chance that global routing will complete:
104
115
105
116
```
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
117
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" clean_grt grt
118
+
make DESIGN_CONFIG=designs/asap7/minimal/config.mk DESIGN_NAME=aes_cipher_top VERILOG_FILES="$(ls designs/src/aes/*.v | xargs)" gui_grt
0 commit comments