Closed d-m-bailey closed 1 year ago
Looks like it's the last 2 digits of a 8 unique digit string.
Using 01234567
, I get an error with 6
and 7
.
Using 76543210
, I get an error with 0
and 1
.
Using 76543000
works.
Isn't it incorrect to be looking in the user project directory for the hexdigits
subdirectory from caravel? That should be pointing to the base caravel repository.
I believe it's read with -dereference
and the first 6 unique digits work.
Here's the build command
random seed 1985229328;
drc off;
crashbackups stop;
addpath hexdigits;
addpath /home/kanobailey/mpw-9/caravel_user_project3/caravel/mag;
addpath /home/kanobailey/mpw-9/caravel_user_project3/mag;
addpath /home/kanobailey/mpw-9/caravel_user_project3/mgmt_core_wrapper/mag;
load user_project_wrapper;
property LEFview true;
property GDS_FILE /home/kanobailey/mpw-9/caravel_user_project3/gds/user_project_wrapper.gds;
property GDS_START 0;
load /home/kanobailey/mpw-9/caravel_user_project3/mag/user_id_programming;
load /home/kanobailey/mpw-9/caravel_user_project3/mag/user_id_textblock;
load /home/kanobailey/mpw-9/caravel_user_project3/caravel/maglef/simple_por;
load /home/kanobailey/mpw-9/caravel_user_project3/mag/caravel -dereference;
select top cell;
expand;
cif *hier write disable;
cif *array write disable;
gds write /home/kanobailey/mpw-9/caravel_user_project3/gds/caravel.gds;
quit -noprompt;
and build log (after deleting rects
counts and Scaled
messages).
Magic 8.3 revision 373 - Compiled on Wed Mar 1 20:23:37 PST 2023.
Starting magic under Tcl interpreter
Using the terminal as the console.
Using NULL graphics device.
Processing system .magicrc file
Sourcing design .magicrc for technology sky130A ...
2 Magic internal units = 1 Lambda
Input style sky130(): scaleFactor=2, multiplier=2
The following types are not handled by extraction and will be treated as non-electrical types:
ubm
Loading sky130A Device Generator Menu ...
Loading "/home/user/mpw-9/caravel_user_project3/mag/mag2gds_caravel.tcl" from command line.
Processing timestamp mismatches: user_id_textblockWarning: Parent cell lists instance of "chip_io" at bad file path /home/user/mpw-9/caravel_user_project3/mag/chip_io.mag.
The cell exists in the search paths at ../mag/chip_io.mag.
The discovered version will be used.
, chip_ioWarning: Parent cell lists instance of "open_source" at bad file path /home/user/mpw-9/caravel_user_project3/mag/open_source.mag.
The cell exists in the search paths at ../mag/open_source.mag.
The discovered version will be used.
, open_sourceWarning: Parent cell lists instance of "copyright_block" at bad file path /home/user/mpw-9/caravel_user_project3/mag/copyright_block.mag.
The cell exists in the search paths at ../mag/copyright_block.mag.
The discovered version will be used.
, copyright_blockWarning: Parent cell lists instance of "caravel_core" at bad file path /home/user/mpw-9/caravel_user_project3/mag/caravel_core.mag.
The cell exists in the search paths at ../mag/caravel_core.mag.
The discovered version will be used.
Duplicate cell in caravel_core: Instance of cell simple_por is from path ../mag but cell was previously read from /home/user/mpw-9/caravel_user_project3/caravel/maglef.
Cell name conflict: Renaming original cell to simple_por#0.
Warning: Renaming read-only cell "simple_por"
Read-only status will be revoked and GDS file pointer removed.
, caravel_core, spare_logic_block, sky130_fd_sc_hd__conb_1, sky130_fd_sc_hd__tapvpwrvgnd_1, sky130_fd_sc_hd__decap_3, sky130_fd_sc_hd__fill_2, sky130_fd_sc_hd__decap_8, sky130_fd_sc_hd__decap_4, sky130_fd_sc_hd__fill_1, sky130_fd_sc_hd__decap_6Warning: Parent cell lists instance of "RAM128" at bad file path ../mag/RAM128.mag.
The cell exists in the search paths at /home/user/mpw-9/caravel_user_project3/mgmt_core_wrapper/mag/RAM128.mag.
The discovered version will be used.
, caravel_clockingWarning: Parent cell lists instance of "caravel_motto" at bad file path /home/user/mpw-9/caravel_user_project3/mag/caravel_motto.mag.
The cell exists in the search paths at ../mag/caravel_motto.mag.
The discovered version will be used.
, caravel_mottoWarning: Parent cell lists instance of "caravel_logo" at bad file path /home/user/mpw-9/caravel_user_project3/mag/caravel_logo.mag.
The cell exists in the search paths at ../mag/caravel_logo.mag.
The discovered version will be used.
, caravel_logo.
Warning: Dereferenced cell "sky130_fd_pr__res_xhigh_po_0p69_S5N9F3" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__res_xhigh_po_0p69_S5N9F3.
Warning: Dereferenced cell "sky130_fd_pr__pfet_g5v0d10v5_ZEUEFZ" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__pfet_g5v0d10v5_ZEUEFZ.
Warning: Dereferenced cell "sky130_fd_pr__pfet_g5v0d10v5_YUHPXE" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__pfet_g5v0d10v5_YUHPXE.
Warning: Dereferenced cell "sky130_fd_pr__pfet_g5v0d10v5_YUHPBG" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__pfet_g5v0d10v5_YUHPBG.
Warning: Dereferenced cell "sky130_fd_pr__pfet_g5v0d10v5_YEUEBV" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__pfet_g5v0d10v5_YEUEBV.
Warning: Dereferenced cell "sky130_fd_pr__pfet_g5v0d10v5_3YBPVB" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__pfet_g5v0d10v5_3YBPVB.
Warning: Dereferenced cell "sky130_fd_pr__nfet_g5v0d10v5_ZK8HQC" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__nfet_g5v0d10v5_ZK8HQC.
Warning: Dereferenced cell "sky130_fd_pr__nfet_g5v0d10v5_TGFUGS" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__nfet_g5v0d10v5_TGFUGS.
Warning: Dereferenced cell "sky130_fd_pr__nfet_g5v0d10v5_PKVMTM" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__nfet_g5v0d10v5_PKVMTM.
Warning: Dereferenced cell "sky130_fd_pr__cap_mim_m3_2_W5U4AW" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__cap_mim_m3_2_W5U4AW.
Warning: Dereferenced cell "sky130_fd_pr__cap_mim_m3_1_WRT4AW" not found in search paths; using original location ../mag/primitives/sky130_fd_pr__cap_mim_m3_1_WRT4AW.
File /home/user/mpw-9/caravel_user_project3/mag/hexdigits/alpha_1.mag couldn't be read
Cell alpha_1 is unavailable. It could not be expanded.
File /home/user/mpw-9/caravel_user_project3/mag/hexdigits/alpha_0.mag couldn't be read
Cell alpha_0 is unavailable. It could not be expanded.
Processing timestamp mismatches: alpha_2, alpha_3, alpha_4, alpha_5, alpha_6, alpha_7, sky130_ef_io__vccd_lvc_clamped3_pad, sky130_ef_io__vssd_lvc_clamped3_pad, chip_io_gpio_connects, sky130_ef_io__vddio_hvc_clamped_pad, sky130_ef_io__disconnect_vdda_slice_5um, sky130_ef_io__vccd_lvc_clamped_pad, sky130_ef_io__vdda_hvc_clamped_pad, sky130_ef_io__vssio_hvc_clamped_pad, sky130_ef_io__vssd_lvc_clamped_pad, sky130_ef_io__gpiov2_pad_wrapped, sky130_fd_sc_hd__fill_8, sky130_fd_sc_hd__fill_4, sky130_fd_sc_hd__buf_16, constant_block, sky130_fd_sc_hd__conb_1, sky130_fd_sc_hd__tapvpwrvgnd_1, sky130_fd_sc_hd__fill_1, sky130_fd_sc_hd__fill_2, sky130_fd_io__top_xres4v2, sky130_ef_io__vssa_hvc_clamped_pad, sky130_ef_io__com_bus_slice_10um, sky130_ef_io__com_bus_slice_5um, sky130_ef_io__com_bus_slice_1um, sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um, sky130_ef_io__corner_pad, sky130_ef_io__com_bus_slice_20um, sky130_fd_sc_hd__clkinv_16, sky130_fd_sc_hd__o32ai_4, sky130_fd_sc_hd__inv_16, sky130_fd_sc_hd__inv_12, sky130_fd_sc_hd__o2bb2ai_4, sky130_fd_sc_hd__a2bb2o_4, sky130_fd_sc_hd__nor4b_4, sky130_fd_sc_hd__o311ai_4, sky130_fd_sc_hd__a41o_4, sky130_fd_sc_hd__nand4bb_4, sky130_fd_sc_hd__o21bai_4, sky130_fd_sc_hd__o41ai_4, sky130_fd_sc_hd__a221oi_4, sky130_fd_sc_hd__a32oi_4, sky130_fd_sc_hd__o311a_4, sky130_fd_sc_hd__nand4b_2, sky130_fd_sc_hd__o41ai_2, sky130_fd_sc_hd__o41a_4, sky130_fd_sc_hd__a31oi_2, sky130_fd_sc_hd__nand4bb_2, sky130_fd_sc_hd__o41a_2, sky130_fd_sc_hd__a2111o_4, sky130_fd_sc_hd__a32o_4, sky130_fd_sc_hd__a311o_4, sky130_fd_sc_hd__a2111oi_2, sky130_fd_sc_hd__o2111a_4, sky130_fd_sc_hd__o2111ai_4, sky130_fd_sc_hd__o211ai_2, sky130_fd_sc_hd__o2111a_2, sky130_fd_sc_hd__a311oi_4, sky130_fd_sc_hd__a211oi_4, sky130_fd_sc_hd__a41oi_4, sky130_fd_sc_hd__a31o_4, sky130_fd_sc_hd__a21oi_4, sky130_fd_sc_hd__o311a_2, sky130_fd_sc_hd__a2bb2o_2, sky130_fd_sc_hd__o21ba_4, sky130_fd_sc_hd__o221ai_2, sky130_fd_sc_hd__o22ai_4, sky130_fd_sc_hd__o22a_2, sky130_fd_sc_hd__o2bb2ai_2, sky130_fd_sc_hd__o2bb2a_2, sky130_fd_sc_hd__a311oi_2, sky130_fd_sc_hd__o32a_2, sky130_fd_sc_hd__o21bai_2, sky130_fd_sc_hd__a311o_2, sky130_fd_sc_hd__xor2_2, sky130_fd_sc_hd__dfxtp_4, sky130_fd_sc_hd__dfxtp_2, sky130_fd_sc_hd__dfbbn_2, sky130_fd_sc_hd__macro_sparecell, sky130_fd_sc_hd__bufbuf_16, sky130_fd_sc_hd__clkinv_8, sky130_fd_sc_hd__or2_2, sky130_fd_sc_hd__einvp_2, sky130_fd_sc_hd__einvn_8, sky130_fd_sc_hd__einvn_4, sky130_fd_sc_hd__clkinv_1, sky130_fd_sc_hd__einvp_1, sky130_fd_sc_hd__clkdlybuf4s15_2, sky130_fd_sc_hd__clkdlybuf4s18_2, sky130_fd_sc_hd__inv_8, sky130_fd_sc_hd__dfbbp_1, sky130_fd_sc_hd__nor4b_2, sky130_fd_sc_hd__ebufn_2, sky130_fd_sc_hd__dlxtp_1, sky130_fd_sc_hd__dlclkp_1, sky130_fd_sc_hd__mux4_1, sky130_fd_sc_hvl__diode_2, sky130_fd_sc_hvl__decap_4, sky130_fd_sc_hvl__decap_8, sky130_fd_sc_hvl__buf_8, sky130_fd_sc_hvl__fill_4, sky130_fd_sc_hvl__inv_8, sky130_fd_sc_hvl__schmittbuf_1, sky130_fd_sc_hvl__conb_1, sky130_fd_sc_hd__inv_6, sky130_fd_sc_hd__a221oi_2, sky130_fd_sc_hd__a221o_4, sky130_fd_sc_hd__a32o_2, sky130_fd_sc_hd__and4b_4, sky130_fd_sc_hd__xor2_1, sky130_fd_sc_hd__a2111oi_4, sky130_fd_sc_hd__nand4b_4, sky130_fd_sc_hd__o22ai_2, sky130_fd_sc_hd__o32ai_2, sky130_fd_sc_hd__mux2_8, sky130_fd_sc_hd__mux2_4, sky130_fd_sc_hd__mux2_2, sky130_fd_sc_hd__nor3_4, sky130_fd_sc_hd__o221a_4, sky130_fd_sc_hd__o21a_2, sky130_fd_sc_hd__o211a_4, sky130_fd_sc_hd__nand4_4, sky130_fd_sc_hd__a22o_4, sky130_fd_sc_hd__a21bo_2, sky130_fd_sc_hd__nor4_4, sky130_fd_sc_hd__a31oi_4, sky130_fd_sc_hd__clkinv_2, sky130_fd_sc_hd__xor2_4, sky130_fd_sc_hd__and4_4, sky130_fd_sc_hd__xnor2_4, sky130_fd_sc_hd__a21boi_4, sky130_fd_sc_hd__xnor2_2, sky130_fd_sc_hd__a2bb2oi_2, sky130_fd_sc_hd__and4_2, sky130_fd_sc_hd__a21bo_4, sky130_fd_sc_hd__and2b_2, sky130_fd_sc_hd__a31o_2, sky130_fd_sc_hd__and4bb_4, sky130_fd_sc_hd__nand2_4, sky130_fd_sc_hd__nand3_4, sky130_fd_sc_hd__o31ai_4, sky130_fd_sc_hd__and3b_2, sky130_fd_sc_hd__nand3_2, sky130_fd_sc_hd__a22oi_4, sky130_fd_sc_hd__a211o_2, sky130_fd_sc_hd__a21o_2, sky130_fd_sc_hd__a21oi_2, sky130_fd_sc_hd__o21ai_4, sky130_fd_sc_hd__nand4_1, sky130_fd_sc_hd__nor2_4, sky130_fd_sc_hd__o311a_1, sky130_fd_sc_hd__and2b_1, sky130_fd_sc_hd__and4_1, sky130_fd_sc_hd__a21boi_1, sky130_fd_sc_hd__and2_2, sky130_fd_sc_hd__and3_2, sky130_fd_sc_hd__a32o_1, sky130_fd_sc_hd__o31a_4, sky130_fd_sc_hd__nand4_2, sky130_fd_sc_hd__o32a_1, sky130_fd_sc_hd__and3_1, sky130_fd_sc_hd__a22o_2, sky130_fd_sc_hd__a21o_4, sky130_fd_sc_hd__and2_4, sky130_fd_sc_hd__and3b_4, sky130_fd_sc_hd__o31a_2, sky130_fd_sc_hd__o2bb2a_1, sky130_fd_sc_hd__a2111o_2, sky130_fd_sc_hd__o221a_1, sky130_fd_sc_hd__nor2_8, sky130_fd_sc_hd__and2b_4, sky130_fd_sc_hd__a311o_1, sky130_fd_sc_hd__nand2b_4, sky130_fd_sc_hd__and3_4, sky130_fd_sc_hd__a2111o_1, sky130_fd_sc_hd__o221a_2, sky130_fd_sc_hd__and4b_2, sky130_fd_sc_hd__nand3b_4, sky130_fd_sc_hd__o211a_2, sky130_fd_sc_hd__nor4_2, sky130_fd_sc_hd__a211oi_2, sky130_fd_sc_hd__nand3b_2, sky130_fd_sc_hd__a221o_2, sky130_fd_sc_hd__a211oi_1, sky130_fd_sc_hd__and4bb_1, sky130_fd_sc_hd__o211a_1, sky130_fd_sc_hd__a211o_1, sky130_fd_sc_hd__and4b_1, sky130_fd_sc_hd__o41a_1, sky130_fd_sc_hd__nand2_8, sky130_fd_sc_hd__a21boi_2, sky130_fd_sc_hd__nand2_2, sky130_fd_sc_hd__a211o_4, sky130_fd_sc_hd__a22o_1, sky130_fd_sc_hd__a221o_1, sky130_fd_sc_hd__a41o_2, sky130_fd_sc_hd__o22ai_1, sky130_fd_sc_hd__o21ba_1, sky130_fd_sc_hd__a41o_1, sky130_fd_sc_hd__dfstp_4, sky130_fd_sc_hd__clkdlybuf4s25_2, sky130_fd_sc_hd__dlygate4sd1_1, sky130_fd_sc_hd__clkdlybuf4s50_2, sky130_fd_sc_hd__buf_6, sky130_fd_sc_hd__buf_8, sky130_fd_sc_hd__clkbuf_8, sky130_fd_sc_hd__diode_2, sky130_ef_sc_hd__decap_12, sky130_fd_sc_hd__inv_1, sky130_fd_sc_hd__clkinv_4, sky130_fd_sc_hd__nor3b_4, sky130_fd_sc_hd__o21a_4, sky130_fd_sc_hd__a41oi_1, sky130_fd_sc_hd__nor3b_2, sky130_fd_sc_hd__nor2_2, sky130_fd_sc_hd__o21ai_2, sky130_fd_sc_hd__o211ai_4, sky130_fd_sc_hd__inv_2, sky130_fd_sc_hd__o2111a_1, sky130_fd_sc_hd__a31o_1, sky130_fd_sc_hd__o2bb2ai_1, sky130_fd_sc_hd__nor3_2, sky130_fd_sc_hd__nand2b_2, sky130_fd_sc_hd__o31ai_2, sky130_fd_sc_hd__o21a_1, sky130_fd_sc_hd__a21o_1, sky130_fd_sc_hd__xnor2_1, sky130_fd_sc_hd__and3b_1, sky130_fd_sc_hd__nand4bb_1, sky130_fd_sc_hd__a2bb2o_1, sky130_fd_sc_hd__and4bb_2, sky130_fd_sc_hd__o21ba_2, sky130_fd_sc_hd__nor3_1, sky130_fd_sc_hd__a21bo_1, sky130_fd_sc_hd__nand2_1, sky130_fd_sc_hd__nand3_1, sky130_fd_sc_hd__nor2_1, sky130_fd_sc_hd__and2_1, sky130_fd_sc_hd__o22a_1, sky130_fd_sc_hd__nand3b_1, sky130_fd_sc_hd__o21bai_1, sky130_fd_sc_hd__o31a_1, sky130_fd_sc_hd__o2111ai_2, sky130_fd_sc_hd__a21oi_1, sky130_fd_sc_hd__o21ai_1, sky130_fd_sc_hd__mux2_1, sky130_fd_sc_hd__nor4_1, sky130_fd_sc_hd__o31ai_1, sky130_fd_sc_hd__nand2b_1, sky130_fd_sc_hd__inv_4, sky130_fd_sc_hd__dfxtp_1, sky130_fd_sc_hd__dfrtn_1, sky130_fd_sc_hd__dfrtp_4, sky130_fd_sc_hd__dfstp_2, sky130_fd_sc_hd__dfrtp_1, sky130_fd_sc_hd__dfstp_1, sky130_fd_sc_hd__dfrtp_2, sky130_fd_sc_hd__clkbuf_4, sky130_fd_sc_hd__clkbuf_2, sky130_fd_sc_hd__buf_4, sky130_fd_sc_hd__buf_2, sky130_fd_sc_hd__dlygate4sd3_1, sky130_fd_sc_hd__dlymetal6s2s_1, sky130_fd_sc_hd__clkbuf_1, sky130_fd_sc_hd__buf_12, sky130_fd_sc_hd__clkbuf_16.
Cannot open /home/user/mpw-9/caravel_user_project3/gds/caravel.gds to write GDS-II stream output
Make ship completed.
timestamp
errors are displayed one cell at a time with a new line only at the end. This can lead to confusing error messages like
, caravel_mottoWarning: Parent cell lists instance of "caravel_logo" at bad file path /home/user/mpw-9/caravel_user_project3/mag/caravel_logo.mag.
Cannot open /home/user/mpw-9/caravel_user_project3/gds/caravel.gds to write GDS-II stream output
simple_por
is added to the search path in caravel/mag/.magicrc
addpath ../subcells/simple_por/mag
There's also the explicit load in the tcl script of the maglef
view.
load /home/kanobailey/mpw-9/caravel_user_project3/caravel/maglef/simple_por;
This file has a GDS_FILE
link. But the mag
file also has a GDS_FILE
link.
ciic-cvc:~/mpw-9/caravel_user_project3$ tail caravel/mag*/simple_por.mag
==> caravel/mag/simple_por.mag <==
flabel metal1 -14 8544 58 8684 0 FreeSans 800 0 0 0 vss1v8
port 6 nsew ground bidirectional
flabel metal4 s 38 7255 232 7655 0 FreeSans 320 0 0 0 vss3v3
port 2 nsew ground bidirectional
<< properties >>
string FIXED_BBOX 0 0 11344 8338
string GDS_FILE ../gds/simple_por.gds
string GDS_START 0
string LEFclass BLOCK
<< end >>
==> caravel/maglef/simple_por.mag <== port 1 nsew power bidirectional rlabel metal4 38 7965 7241 8283 0 vdd3v3 port 2 nsew power bidirectional << properties >> string LEFclass BLOCK string FIXED_BBOX 0 0 11344 8338 string GDS_FILE ../gds/simple_por.gds string GDS_START 0 string LEFview TRUE << end >>
Is the error message in the build log irrelevant?
Duplicate cell in caravel_core: Instance of cell simple_por is from path ../mag but cell was previously read from /home/user/mpw-9/caravel_user_project3/caravel/maglef. Cell name conflict: Renaming original cell to simple_por#0. Warning: Renaming read-only cell "simple_por" Read-only status will be revoked and GDS file pointer removed.
@d-m-bailey : Weird problems with files not being able to be opened usually indicates that magic hit the filesystem ulimit on opened file descriptors. It holds files open because that's the way Linux does file locking. In this case, there should not be multiple processes attempting to write the same files, so the solution is to add the command locking disable
at/near the top of the script, before any .mag
files are read. This command was added to scripts in precheck for handling the GF process, because the GF I/O cells alone would overrun the ulimit. I assume it's just that the command was never added to the scripts in the sky130 version of Caravel. This has not happened in the past, but presumably can be triggered for any design with a sufficient number of cells in it coming from .mag
files.
@d-m-bailey : Please raise an issue on the github issue tracker for magic about the timestamp warning messages. It is one of those low-level problems that I know about but is too low priority to get worked on. The underlying issue is that stdout
is buffered but stderr
is flushed after every write, so if stdout and stderr are combined in the output stream then they can get scrambled together. The "quick and dirty" solution would be just to output one line per cell with a timestamp issue.
@d-m-bailey : Please raise an issue on the github issue tracker for magic about the timestamp warning messages. It is one of those low-level problems that I know about but is too low priority to get worked on. The underlying issue is that
stdout
is buffered butstderr
is flushed after every write, so if stdout and stderr are combined in the output stream then they can get scrambled together. The "quick and dirty" solution would be just to output one line per cell with a timestamp issue.
raised.
@d-m-bailey : Weird problems with files not being able to be opened usually indicates that magic hit the filesystem ulimit on opened file descriptors. It holds files open because that's the way Linux does file locking. In this case, there should not be multiple processes attempting to write the same files, so the solution is to add the command
locking disable
at/near the top of the script, before any.mag
files are read. This command was added to scripts in precheck for handling the GF process, because the GF I/O cells alone would overrun the ulimit. I assume it's just that the command was never added to the scripts in the sky130 version of Caravel. This has not happened in the past, but presumably can be triggered for any design with a sufficient number of cells in it coming from.mag
files.
That's crazy, but makes sense. Adding locking disable
fixes the problem, but I couldn't find this change on the github version of caravel-gf180mcu
. Maybe it's in the production version only.
There should be an issue and pull request on the caravel-gf180mcu
repository issue tracker? James Stine ran into the same problem recently when trying to do a local "make ship" on the Caravel GF version. I fixed the script and pushed the correction to a branch called fix_make_ship_script
.
Yes. I see it now that you pointed it out.