Skip to content

Commit 2b52c77

Browse files
authored
Merge pull request #3643 from Pinata-Consulting/docs-minimal-update
minimal: docs update
2 parents 0e8bca6 + 3151302 commit 2b52c77

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

flow/designs/asap7/minimal/README.md

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,14 @@ the Verilog files do not have to be located in the OpenROAD-flow-scripts
1313
git repository, adjust the VERILOG_FILES argument to point to your Verilog
1414
files:
1515

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+
```
1924

2025
Where, the exploratory config.mk file to be replaced
2126
by a design specific config.mk file is:
@@ -36,12 +41,14 @@ The Verilog top module name is specified by:
3641
DESIGN_NAME=aes_cipher_top
3742
```
3843

39-
Synthesis cleaned and re-run by:
44+
The entire flow is cleaned and synthesis re-run by:
4045

4146
```
42-
clean_synth synth
47+
clean_all synth do-1_3_synth
4348
```
4449

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+
4552
The GUI is opened by the makefile target:
4653

4754
```
@@ -60,13 +67,15 @@ area required for the default placement density.
6067
Next to iterate on floorplan settings:
6168

6269
```
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
6475
```
6576

6677
A few more things can be learned from looking at this minimal floorplan:
6778

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
7079
- Check that the floorplan size is not completely unreasonable and
7180
at least there is a chance that this design could go through
7281
placement with this density.
@@ -78,7 +87,8 @@ A few more things can be learned from looking at this minimal floorplan:
7887
Next to iterate on placement settings:
7988

8089
```
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
8292
```
8393

8494
![Alt text](gui_place_heatmap.png)
@@ -91,19 +101,21 @@ file can be learned:
91101
- Examine estimated routing congestion to get a sense if there
92102
is a chance that the design can be routed.
93103
- 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
94106

95107
## CTS(Clock tree Synthesis)
96108

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

100111
## `make gui_grt` OpenROAD GUI information
101112

102113
For non-trivial designs, some more work will need to be done in floorplan and
103114
placement before there is a chance that global routing will complete:
104115

105116
```
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
107119
```
108120

109121
![Alt text](gui_grt.png)

0 commit comments

Comments
 (0)