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
{{ message }}
Repository navigation
Please Help: LVS error on 1024x8bit ROM (new user) #319
I've recently discovered the OpenRAM project, thanks much for sharing it!
To acquaint myself with the project and its tooling, I have made a
first-pass attempt at creating a 1024x8bit ROM populated with random
data. Here are the steps I followed (after installing all necessary
prerequisites):
git clone https://github.com/VLSIDA/OpenRAM
cd OpenRAM
nix develop
export OPENRAM_HOME=$(pwd)/compiler
export OPENRAM_TECH=$(pwd)/technology
export PDK_ROOT=$(pwd)
export PYTHONPATH=$OPENRAM_HOME:$PYTHONPATH
make sky130-pdk
make sky130-install
# create (random) 1K hex data file:
for ((i=0; i<1024; i++)); do
let VAL=$RANDOM%256
printf "%02X" $VAL
done > rom_1kbyte.hex
I am using the following content as rom_1kbyte.py:
On Wed, Oct 7, 2026 at 2:31 PM gsomlo ***@***.***> wrote:
*gsomlo* created an issue (VLSIDA/OpenRAM#319)
<#319>
Hi,
I've recently discovered the OpenRAM project, thanks much for sharing it!
To acquaint myself with the project and its tooling, I have made a
first-pass attempt at creating a 1024x8bit ROM populated with random
data. Here are the steps I followed (after installing all necessary
prerequisites):
git clone https://github.com/VLSIDA/OpenRAM
cd OpenRAM
nix develop
export OPENRAM_HOME=$(pwd)/compiler
export OPENRAM_TECH=$(pwd)/technology
export PDK_ROOT=$(pwd)
export PYTHONPATH=$OPENRAM_HOME:$PYTHONPATH
make sky130-pdk
make sky130-install
# create (random) 1K hex data file:
for ((i=0; i<1024; i++)); do
let VAL=$RANDOM%256
printf "%02X" $VAL
done > rom_1kbyte.hex
I am using the following content as rom_1kbyte.py:
word_size = 1check_lvsdrc = Truerom_data = "rom_1kbyte.hex"data_type = "hex"tech_name = "sky130"output_path = "rom_1kbyte"output_name = "rom_1kbyte"nominal_corner_only = Trueroute_supplies = "ring"keep_temp = True
I then ran the following build command:
./rom_compiler.py rom_1kbyte.py
and received the following output:
|==============================================================================|
|========= OpenRAM v1.2.49 =========|
|========= =========|
|========= VLSI Design and Automation Lab =========|
|========= Computer Science and Engineering Department =========|
|========= University of California Santa Cruz =========|
|========= =========|
|========= Usage help: ***@***.*** =========|
|========= Development help: ***@***.*** =========|
|========= See LICENSE for license info =========|
|==============================================================================|
** Start: 10/07/2026 15:40:28
Output files are:
/home/user/OpenRAM/rom_1kbyte/rom_1kbyte.sp
/home/user/OpenRAM/rom_1kbyte/rom_1kbyte.v
/home/user/OpenRAM/rom_1kbyte/rom_1kbyte.lef
/home/user/OpenRAM/rom_1kbyte/rom_1kbyte.gds
create rom of word size 1 with 1024 num of words
** Submodules: 44.0 seconds
** Placement: 0.0 seconds
** Routing: 77.5 seconds
WARNING: file magic.py: line 254: DRC Errors rom_1kbyte 830
ERROR: file magic.py: line 385: rom_1kbyte LVS mismatch (results in /tmp/openram_user_373924_temp/rom_1kbyte.lvs.report)
** Verification: 929.6 seconds
** ROM creation: 1051.1 seconds
SP: Writing to /home/user/OpenRAM/rom_1kbyte/rom_1kbyte.sp
** Spice writing: 0.3 seconds
GDS: Writing to /home/user/OpenRAM/rom_1kbyte/rom_1kbyte.gds
** GDS: 0.3 seconds
LEF: Writing to /home/user/OpenRAM/rom_1kbyte/rom_1kbyte.lef
** LEF: 0.0 seconds
LVS: Writing to /home/user/OpenRAM/rom_1kbyte/rom_1kbyte.lvs.sp
** LVS writing: 0.3 seconds
Config: Writing to /home/user/OpenRAM/rom_1kbyte/rom_1kbyte.py
** Config: 0.0 seconds
Verilog: Writing to /home/user/OpenRAM/rom_1kbyte/rom_1kbyte.v
** Verilog: 0.0 seconds
[openram.globals/cleanup_paths]: Preserving temp directory: /tmp/openram_user_373924_temp/
** End: 1052.0 seconds
I'm attaching rom_1kbyte.lvs.report.gz
<https://github.com/user-attachments/files/33178151/rom_1kbyte.lvs.report.gz>
(file mentioned in the error message), as well as rom_1kbyte.lvs.out.txt
<https://github.com/user-attachments/files/33178172/rom_1kbyte.lvs.out.txt>
.
Any comments/advice on how serious this error might be, and on just how
"broken" my resulting 1K ROM design might be would be much appreciated!
Many thanks in advance!
—
Reply to this email directly, view it on GitHub
<#319?email_source=notifications&email_token=AC67SL2SUGEHAGAM2LCV3EL5S2Y3DA5CNFSL4Z3JMQ5C6L3HNF2C22DVMIXUS43TOVSS6NJXGUZDCNRYGE2TPJTSMVQXG33OVJZXKYTTMNZGSYTFMSSWK5TFNZ2KYZTPN52GK4S7MNWGSY3L>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AC67SL6CT3YRMKCOQBMGLDL5S2Y3DAVCNFSNUABEKJSXA33TNF2G64TZHM3TENRWGI3TKMZ3JFZXG5LFHM2TONJSGE3DQMJVG6QXMAQ>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
--
Matthew Guthaus
Professor, Computer Science & Engineering
Baskin School of Engineering
University of California Santa Cruz
https://vlsida.github.io/
On Wed, Oct 07, 2026 at 03:16:09PM -0700, Matt Guthaus wrote:
●mguthaus left a comment (VLSIDA/OpenRAM#319)
ROMs are not well supported or debugged.
That seems to be the consensus so far.
So, please contribute a fix if you find a problem.
Looks like I just found a problem. I'm not opposed to contributing a fix.
I have some idea how memories work (built an sram by hand using
cadence virtuoso and gpdk045 as part of a class project, just to
provide a baseline of where I'm at capability-wise).
I'm not (yet) familiar with sky130, `magic`, `netgen`, etc.
I was hoping for a "concept of a checklist" on what someone familiar
with the tooling (and OpenRAM) would do to start troubleshooting the
problem I've run into. I'd be happy to actually do those things and
report back if I learn anything useful.
Thanks!
Activity
mguthaus commentedon Oct 7, 2026
gsomlo commentedon Oct 7, 2026