The-OpenROAD-Project / OpenROAD-flow-scripts

OpenROAD's scripts implementing an RTL-to-GDS Flow. Documentation at https://openroad-flow-scripts.readthedocs.io/en/latest/
https://theopenroadproject.org/
Other
283 stars 262 forks source link

nangate45/tinyRocket does not place SRAMs #4

Closed davidmetz closed 3 years ago

davidmetz commented 3 years ago

Describe the bug [Design] [Flow] When generating the tinyRocket sample design (make DESIGN_CONFIG=./designs/nangate45/tinyRocket/config.mk) SRAMs are not placed. 2_2_floorplan_io.log includes the following error messages:

[ERROR] Macro dcache.data.data_arrays_0.data_arrays_0_ext.mem is not placed
[ERROR] Macro frontend.icache.data_arrays_0.data_arrays_0_0_ext.mem is not placed

I also checked the final GDS and it does not include the dummy SRAMs. I encountered this because I am trying to use OpenRAM generated SRAMs in combination with OpenROAD for Rocket. After realizing that they were not included I checked the example design and observed the same behavior. Expected behavior SRAM macros should be placed

Environment (please complete the following information): docker under linux mint - generated with current master (872b051)

rovinski commented 3 years ago

The placement errors are actually false errors. Macros are placed in step 2_4. You should be able to open up any DEF after 2_4 and see the macros placed.

FakeRAM does not have GDS views and is a pitfall of the nangate45 process. You will also see the following error during 6_1 GDS merge:

[ERROR] LEF Cell 'fakeram45_64x32' has no matching GDS cell. Cell will be empty

LEF & Lib views exist, however, and it is useful to use them up until GDS.

If you are using OpenRAM in order to get back-end views, you probably need to add the GDS files to your config file.

export ADDITIONAL_GDS  = PATH/TO/RAM1.gds \
                         PATH/TO/RAM2.gds
rovinski commented 3 years ago

Is this still an issue? Or can it be closed?

davidmetz commented 3 years ago

Hi - thanks for the reply! You are right - they are placed.