Merge branch 'master' into develop
diff --git a/Makefile b/Makefile
index 0071b95..76a245e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# cannot commit files larger than 100 MB to GitHub
+# cannot commit files larger than 100 MB to GitHub
FILE_SIZE_LIMIT_MB = 100
LARGE_FILES := $(shell find ./gds -type f -name "*.gds")
LARGE_FILES += $(shell find . -type f -size +$(FILE_SIZE_LIMIT_MB)M -not -path "./.git/*" -not -path "./gds/*" -not -path "./openlane/*")
@@ -8,7 +8,6 @@
ARCHIVES := $(shell find . -type f -name "*.gz")
ARCHIVE_SOURCES := $(basename $(ARCHIVES))
-
# PDK setup configs
THREADS ?= $(shell nproc)
STD_CELL_LIBRARY ?= sky130_fd_sc_hd
@@ -101,6 +100,7 @@
.PHONY: skywater-pdk
skywater-pdk: check-env $(PDK_ROOT)/skywater-pdk
cd $(PDK_ROOT)/skywater-pdk && \
+ git checkout master && git pull && \
git checkout -qf $(SKYWATER_COMMIT)
.PHONY: skywater-library
@@ -118,6 +118,7 @@
.PHONY: open_pdks
open_pdks: check-env $(PDK_ROOT)/open_pdks
cd $(PDK_ROOT)/open_pdks && \
+ git checkout master && git pull && \
git checkout -qf $(OPEN_PDKS_COMMIT)
.PHONY: build-pdk
@@ -134,6 +135,16 @@
$(MAKE) && \
$(MAKE) install-local
+.RECIPE: manifest
+manifest:
+ cd verilog/rtl/ && \
+ find * -type f ! -name "user_*.v" ! -name "manifest" ! -name "README" ! -name "defines.v" -exec shasum {} \; > manifest && \
+ cd ../../maglef/ && \
+ shasum *.mag > manifest && \
+ cd ../mag/ && \
+ shasum caravel.mag .magicrc > manifest
+
+
check-env:
ifndef PDK_ROOT
$(error PDK_ROOT is undefined, please export it before running make)
diff --git a/README.md b/README.md
index 2c77d56..5a4ed66 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
Then you need to install the open_pdks prerequisite:
- [Magic VLSI Layout Tool](http://opencircuitdesign.com/magic/index.html) is needed to run open_pdks -- version >= 8.3.60*
- > \* Note: You can avoid the need for the magic prerequisite by using the openlane docker to do the installation step in open_pdks. This [file](https://github.com/efabless/openlane/blob/develop/travisCI/travisBuild.sh) shows how.
+ > \* Note: You can avoid the need for the magic prerequisite by using the openlane docker to do the installation step in open_pdks. This could be done by cloning [openlane](https://github.com/efabless/openlane/tree/master) and running this [script](https://github.com/efabless/openlane/blob/master/travisCI/travisBuild.sh) in the openlane root directrory.
Install the required version of the PDK by running the following commands:
@@ -42,6 +42,10 @@
If you will use OpenLANE to harden your design, go through the instructions in this [README.md][0].
+You must copy your synthesized gate-level-netlist for `user_project_wrapper` to `verilog/gl/` and overwrite `user_project_wrapper.v`. Otherwise, you can point to it in [info.yaml](info.yaml).
+
+> Note: If you're using openlane to harden your design, you should find the synthesized gate-level-netlist here: `openlane/user_project_wrapper/runs/user_project_wrapper/results/synthesis/user_project_wrapper.synthesis.v`.
+
Then, you will need to put your design aboard the Caravel chip. Make sure you have the following:
- [Magic VLSI Layout Tool](http://opencircuitdesign.com/magic/index.html) installed on your machine. We may provide a Dockerized version later.\*
@@ -56,7 +60,7 @@
make
```
-This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect hundred of thousands of magic DRC violations with the current "development" state of caravel.
+This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect ~100 magic DRC violations with the current "development" state of caravel.
## Running Make using OpenLANE Magic
@@ -82,7 +86,7 @@
exit
```
-This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect hundred of thousands of magic DRC violations with the current "development" state of caravel.
+This should merge the GDSes using magic and you'll end up with your version of `./gds/caravel.gds`. You should expect ~100 magic DRC violations with the current "development" state of caravel.
## Required Directory Structure
diff --git a/gds/advSeal_6um_gen.gds.gz b/gds/advSeal_6um_gen.gds.gz
index dc88df8..290be1a 100644
--- a/gds/advSeal_6um_gen.gds.gz
+++ b/gds/advSeal_6um_gen.gds.gz
Binary files differ
diff --git a/gds/sram_1rw1r_32_256_8_sky130.gds.gz b/gds/sram_1rw1r_32_256_8_sky130.gds.gz
index bab8b50..ed01511 100644
--- a/gds/sram_1rw1r_32_256_8_sky130.gds.gz
+++ b/gds/sram_1rw1r_32_256_8_sky130.gds.gz
Binary files differ
diff --git a/gds/storage.gds.gz b/gds/storage.gds.gz
index a5ad7ec..f093f63 100644
--- a/gds/storage.gds.gz
+++ b/gds/storage.gds.gz
Binary files differ
diff --git a/mag/advSeal_6um_gen.mag b/mag/advSeal_6um_gen.mag
index 6892cc3..9d77488 100644
--- a/mag/advSeal_6um_gen.mag
+++ b/mag/advSeal_6um_gen.mag
@@ -4,22 +4,22 @@
use seal_ring_corner_abstract seal_ring_corner_abstract_0
timestamp 1584566221
transform 1 0 0 0 1 0
-box 0 0 160716 265712
+box 0 0 180000 260000
use seal_ring_corner_abstract seal_ring_corner_abstract_3
timestamp 1584566221
-transform -1 0 321432 0 1 0
-box 0 0 160716 265712
+transform -1 0 360000 0 1 0
+box 0 0 180000 260000
use seal_ring_corner_abstract seal_ring_corner_abstract_1
timestamp 1584566221
-transform 1 0 0 0 -1 531424
-box 0 0 160716 265712
+transform 1 0 0 0 -1 520000
+box 0 0 180000 260000
use seal_ring_corner_abstract seal_ring_corner_abstract_2
timestamp 1584566221
-transform -1 0 321432 0 -1 531424
-box 0 0 160716 265712
+transform -1 0 360000 0 -1 520000
+box 0 0 180000 260000
<< properties >>
string LEFview no_prefix
-string GDS_FILE advSeal_6um_gen.gds
+string GDS_FILE ../gds/advSeal_6um_gen.gds
string GDS_START 0
-string FIXED_BBOX 0 0 321432 531424
+string FIXED_BBOX 0 0 360000 520000
<< end >>
diff --git a/mag/seal_ring_corner_abstract.mag b/mag/seal_ring_corner_abstract.mag
index 6c30cd5..3b795bd 100644
--- a/mag/seal_ring_corner_abstract.mag
+++ b/mag/seal_ring_corner_abstract.mag
@@ -1,25 +1,33 @@
magic
tech sky130A
-timestamp 1584566221
-<< psubstratepdiff >>
-rect 145 1110 355 265712
-tri 145 900 355 1110 ne
-tri 355 900 652 1197 sw
-tri 355 652 603 900 ne
-rect 603 652 652 900
-tri 652 652 900 900 sw
-tri 603 355 900 652 ne
-tri 900 355 1197 652 sw
-tri 900 145 1110 355 ne
-rect 1110 145 160716 355
+timestamp 1605459841
+<< psubdiff >>
+rect 145 1334 199 260000
+rect 299 1334 355 260000
+rect 145 1197 355 1334
+rect 145 1037 531 1197
+rect 145 998 652 1037
+rect 253 900 652 998
+rect 355 797 792 900
+rect 453 795 792 797
+rect 453 690 900 795
+rect 565 652 900 690
+rect 565 582 1049 652
+rect 663 523 1049 582
+rect 663 480 1197 523
+rect 775 366 1197 480
+rect 862 355 1197 366
+rect 862 299 180000 355
+rect 862 270 1511 299
+rect 985 199 1511 270
+rect 985 145 180000 199
+<< psubdiffcont >>
+rect 199 1334 299 260000
+rect 1511 199 180000 299
<< locali >>
-tri 100 383 217 500 se
-rect 217 383 383 500
-tri 383 383 500 500 sw
-rect 100 217 500 383
-tri 100 100 217 217 ne
-rect 217 100 383 217
-tri 383 100 500 217 nw
+rect 199 1214 299 1334
+rect 100 100 500 500
+rect 1437 199 1511 299
<< metal1 >>
rect 275 325 325 420
rect 180 275 420 325
diff --git a/mpw-one-a.md b/mpw-one-a.md
index 064d08c..78606c9 100644
--- a/mpw-one-a.md
+++ b/mpw-one-a.md
@@ -5,9 +5,9 @@
Please stick to version `v0.0.0-303-g3d7617a`
(commit hash: `3d7617a1acb92ea883539bcf22a632d6361a5de4`)
```
-git clone https://github.com/google/skywater-pdk.git
-cd skywater-pdk
-git checkout v0.0.0-303-g3d7617a
+git clone https://github.com/google/skywater-pdk.git
+cd skywater-pdk
+git checkout v0.0.0-303-g3d7617a
git submodule update --init libraries/sky130_fd_sc_hd/latest
git submodule update --init libraries/sky130_fd_sc_hvl/latest
git submodule update --init libraries/sky130_fd_sc_hs/latest
@@ -20,14 +20,14 @@
## open_pdks:
-Please stick to the `mpw-one-a` tag.
+Please stick to the [mpw-one-a](https://github.com/RTimothyEdwards/open_pdks/tree/mpw-one-a) tag.
```
git clone https://github.com/RTimothyEdwards/open_pdks.git -b mpw-one-a
```
## OpenLane:
-Please stick to the `mpw-one-a` tag.
+Please stick to the [mpw-one-a](https://github.com/efabless/openlane/tree/mpw-one-a) tag.
```
git clone https://github.com/efabless/openlane.git -b mpw-one-a
```
@@ -44,13 +44,19 @@
make
```
-## Caravel:
+## Caravel:
Please stick to the `mpw-one-a` tag.
```
git clone https://github.com/efabless/caravel.git -b mpw-one-a
```
+## Open_mpw_precheck:
+Please run the offline [precheck](https://github.com/efabless/open_mpw_precheck):
+```
+git clone https://github.com/efabless/open_mpw_precheck.git
+```
+
## Notes
- If you have already successfully hardened your blocks and have a clean
diff --git a/openlane/user_project_wrapper/interactive.tcl b/openlane/user_project_wrapper/interactive.tcl
index 394f62b..2e34172 100644
--- a/openlane/user_project_wrapper/interactive.tcl
+++ b/openlane/user_project_wrapper/interactive.tcl
@@ -10,7 +10,7 @@
place_io_ol
-set ::env(FP_DEF_TEMPATE) $script_dir/../../def/user_project_wrapper_empty.def
+set ::env(FP_DEF_TEMPLATE) $script_dir/../../def/user_project_wrapper_empty.def
apply_def_template
diff --git a/scripts/compositor.py b/scripts/compositor.py
new file mode 100755
index 0000000..9e50ab9
--- /dev/null
+++ b/scripts/compositor.py
@@ -0,0 +1,118 @@
+#!/bin/env python3
+#
+# compositor.py ---
+#
+# Compose the final GDS for caravel from the caravel GDS, seal ring
+# GDS, and fill GDS.
+#
+
+import sys
+import os
+import re
+import subprocess
+
+def usage():
+ print("compositor.py [layout_name] [-keep]")
+ return 0
+
+if __name__ == '__main__':
+
+ if len(sys.argv) == 1:
+ usage()
+ sys.exit(0)
+
+ optionlist = []
+ arguments = []
+
+ debugmode = False
+ keepmode = False
+
+ for option in sys.argv[1:]:
+ if option.find('-', 0) == 0:
+ optionlist.append(option)
+ else:
+ arguments.append(option)
+
+ if len(arguments) > 1:
+ print("Wrong number of arguments given to compositor.py.")
+ usage()
+ sys.exit(0)
+
+ if len(arguments) == 1:
+ project = arguments[0]
+ else:
+ project = 'caravel'
+
+ if '-debug' in optionlist:
+ debugmode = True
+ if '-keep' in optionlist:
+ keepmode = True
+
+ magdir = '../mag'
+ rcfile = magdir + '/.magicrc'
+
+ with open(magdir + '/compose_final.tcl', 'w') as ofile:
+ print('#!/bin/env wish', file=ofile)
+ print('drc off', file=ofile)
+
+ print('load ' + project + ' -dereference', file=ofile)
+ print('select top cell', file=ofile)
+
+ # Ceate a cell to represent the generated fill. There are
+ # no magic layers corresponding to the fill shape data, and
+ # it's gigabytes anyway, so we don't want to deal with any
+ # actual data. So it's just a placeholder.
+
+ print('set bbox [box values]', file=ofile)
+ print('load ' + project + '_fill_pattern', file=ofile)
+ print('snap internal', file=ofile)
+ print('box values {*}$bbox', file=ofile)
+ print('paint comment', file=ofile)
+ print('property GDS_FILE ../gds/' + project + '_fill_pattern.gds', file=ofile)
+ print('property GDS_START 0', file=ofile)
+ print('property FIXED_BBOX "$bbox"', file=ofile)
+
+ # Now go back to the project top level and place the fill cell.
+ print('load ' + project, file=ofile)
+ print('select top cell', file=ofile)
+ print('getcell ' + project + '_fill_pattern child 0 0', file=ofile)
+
+ # Move existing origin to (6um, 6um) for seal ring placement
+ print('move origin -6um -6um', file=ofile)
+
+ # Read in abstract view of seal ring
+ print('box position 0 0', file=ofile)
+ print('getcell advSeal_6um_gen', file=ofile)
+
+ # Generate final GDS
+ print('puts stdout "Writing final GDS. . . "', file=ofile)
+ print('flush stdout', file=ofile)
+ print('gds write ../gds/' + project + '_final.gds', file=ofile)
+ print('quit -noprompt', file=ofile)
+
+ myenv = os.environ.copy()
+ # Abstract views are appropriate for final composition
+ myenv['MAGTYPE'] = 'maglef'
+
+ mproc = subprocess.run(['magic', '-dnull', '-noconsole',
+ '-rcfile', rcfile, magdir + '/compose_final.tcl'],
+ stdin = subprocess.DEVNULL,
+ stdout = subprocess.PIPE,
+ stderr = subprocess.PIPE,
+ cwd = magdir,
+ env = myenv,
+ universal_newlines = True)
+ if mproc.stdout:
+ for line in mproc.stdout.splitlines():
+ print(line)
+ if mproc.stderr:
+ print('Error message output from magic:')
+ for line in mproc.stderr.splitlines():
+ print(line)
+ if mproc.returncode != 0:
+ print('ERROR: Magic exited with status ' + str(mproc.returncode))
+
+ if not keepmode:
+ os.remove(magdir + '/compose_final.tcl')
+
+ exit(0)
diff --git a/scripts/generate_fill.py b/scripts/generate_fill.py
new file mode 100755
index 0000000..0a84a48
--- /dev/null
+++ b/scripts/generate_fill.py
@@ -0,0 +1,96 @@
+#!/bin/env python3
+#
+# generate_fill.py ---
+#
+# Run the fill generation on the caravel top level.
+#
+
+import sys
+import os
+import re
+import subprocess
+
+def usage():
+ print("generate_fill.py [layout_name] [-keep]")
+ return 0
+
+if __name__ == '__main__':
+
+ if len(sys.argv) == 1:
+ usage()
+ sys.exit(0)
+
+ optionlist = []
+ arguments = []
+
+ debugmode = False
+ keepmode = False
+
+ for option in sys.argv[1:]:
+ if option.find('-', 0) == 0:
+ optionlist.append(option)
+ else:
+ arguments.append(option)
+
+ if len(arguments) > 1:
+ print("Wrong number of arguments given to generate_fill.py.")
+ usage()
+ sys.exit(0)
+
+ if len(arguments) == 1:
+ project = arguments[0]
+ else:
+ project = 'caravel'
+
+ if '-debug' in optionlist:
+ debugmode = True
+ if '-keep' in optionlist:
+ keepmode = True
+
+ magdir = '../mag'
+ rcfile = magdir + '/.magicrc'
+
+ with open(magdir + '/generate_fill.tcl', 'w') as ofile:
+ print('#!/bin/env wish', file=ofile)
+ print('drc off', file=ofile)
+ print('load ' + project + ' -dereference', file=ofile)
+ print('select top cell', file=ofile)
+ print('expand', file=ofile)
+
+ # Flatten into a cell with a new name
+ print('puts stdout "Flattening layout. . . "', file=ofile)
+ print('flatten -nolabels ' + project + '_fill_pattern', file=ofile)
+ print('load ' + project + '_fill_pattern', file=ofile)
+
+ # Remove any GDS_FILE reference
+ print('property GDS_FILE ""', file=ofile)
+ print('cif ostyle wafflefill', file=ofile)
+ print('puts stdout "Writing GDS. . . "', file=ofile)
+ print('gds write ../gds/' + project + '_fill_pattern.gds', file=ofile)
+ print('quit -noprompt', file=ofile)
+
+ myenv = os.environ.copy()
+ myenv['MAGTYPE'] = 'mag'
+
+ mproc = subprocess.run(['magic', '-dnull', '-noconsole',
+ '-rcfile', rcfile, magdir + '/generate_fill.tcl'],
+ stdin = subprocess.DEVNULL,
+ stdout = subprocess.PIPE,
+ stderr = subprocess.PIPE,
+ cwd = magdir,
+ env = myenv,
+ universal_newlines = True)
+ if mproc.stdout:
+ for line in mproc.stdout.splitlines():
+ print(line)
+ if mproc.stderr:
+ print('Error message output from magic:')
+ for line in mproc.stderr.splitlines():
+ print(line)
+ if mproc.returncode != 0:
+ print('ERROR: Magic exited with status ' + str(mproc.returncode))
+
+ if not keepmode:
+ os.remove(magdir + '/generate_fill.tcl')
+
+ exit(0)
diff --git a/verilog/dv/caravel/mgmt_soc/timer/Makefile b/verilog/dv/caravel/mgmt_soc/timer/Makefile
index 641a453..a62f01c 100644
--- a/verilog/dv/caravel/mgmt_soc/timer/Makefile
+++ b/verilog/dv/caravel/mgmt_soc/timer/Makefile
@@ -1,5 +1,6 @@
FIRMWARE_PATH = ../..
-RTL_PATH = ../../../../rtl
+VERILOG_PATH = ../../../..
+RTL_PATH = $(VERILOG_PATH)/rtl
IP_PATH = ../../../../ip
BEHAVIOURAL_MODELS = ../../
@@ -7,6 +8,8 @@
GCC_PREFIX?=riscv32-unknown-elf
PDK_PATH?=/ef/tech/SW/sky130A
+SIM?=RTL
+
.SUFFIXES:
PATTERN = timer
diff --git a/verilog/dv/caravel/mgmt_soc/timer/timer.c b/verilog/dv/caravel/mgmt_soc/timer/timer.c
index c3a8dc4..0ebd8cb 100644
--- a/verilog/dv/caravel/mgmt_soc/timer/timer.c
+++ b/verilog/dv/caravel/mgmt_soc/timer/timer.c
@@ -55,7 +55,7 @@
reg_mprj_io_6 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_5 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_4 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT;
+ // reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_2 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_1 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_0 = GPIO_MODE_MGMT_STD_OUTPUT;
diff --git a/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v b/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v
index acb6798..64cf850 100644
--- a/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/timer/timer_tb.v
@@ -62,6 +62,8 @@
assign checkbits = mprj_io[37:32];
assign countbits = mprj_io[31:0];
+ assign mprj_io[3] = 1'b1; // Force CSB high.
+
wire flash_csb;
wire flash_clk;
wire flash_io0;
@@ -78,32 +80,32 @@
`endif
/* Add checks here */
wait(checkbits == 6'h01);
- $display(" countbits = 0x%x (should be 0xdcba7cf3)", countbits);
- if(countbits !== 32'hdcba7cf3) begin
+ $display(" countbits = 0x%x (should be 0xdcba7cfb)", countbits);
+ if(countbits !== 32'hdcba7cfb) begin
$display("Monitor: Test Timer Failed");
$finish;
end
wait(checkbits == 6'h02);
- $display(" countbits = 0x%x (should be 0x11)", countbits);
- if(countbits !== 32'h11) begin
+ $display(" countbits = 0x%x (should be 0x19)", countbits);
+ if(countbits !== 32'h19) begin
$display("Monitor: Test Timer Failed");
$finish;
end
wait(checkbits == 6'h03);
$display(" countbits = %x (should be 0x0f)", countbits);
- if(countbits !== 32'h0f) begin
+ if(countbits !== ((32'h0f) | (3'b100))) begin
$display("Monitor: Test Timer Failed");
$finish;
end
wait(checkbits == 6'h04);
$display(" countbits = %x (should be 0x0f)", countbits);
- if(countbits !== 32'h0f) begin
+ if(countbits !== ((32'h0f) | (3'b100))) begin
$display("Monitor: Test Timer Failed");
$finish;
end
wait(checkbits == 6'h05);
- $display(" countbits = %x (should be 0x12b4)", countbits);
- if(countbits !== 32'h12b4) begin
+ $display(" countbits = %x (should be 0x12bc)", countbits);
+ if(countbits !== 32'h12bc) begin
$display("Monitor: Test Timer Failed");
$finish;
end
diff --git a/verilog/dv/caravel/mgmt_soc/timer2/timer2.c b/verilog/dv/caravel/mgmt_soc/timer2/timer2.c
index a8c65e0..aa98cce 100644
--- a/verilog/dv/caravel/mgmt_soc/timer2/timer2.c
+++ b/verilog/dv/caravel/mgmt_soc/timer2/timer2.c
@@ -56,7 +56,7 @@
reg_mprj_io_6 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_5 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_4 = GPIO_MODE_MGMT_STD_OUTPUT;
- reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT;
+ // reg_mprj_io_3 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_2 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_1 = GPIO_MODE_MGMT_STD_OUTPUT;
reg_mprj_io_0 = GPIO_MODE_MGMT_STD_OUTPUT;
diff --git a/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v b/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v
index 750635d..96aab4e 100644
--- a/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v
+++ b/verilog/dv/caravel/mgmt_soc/timer2/timer2_tb.v
@@ -78,14 +78,14 @@
`endif
/* Add checks here */
wait(checkbits == 6'h01);
- $display(" countbits = 0x%x (should be 0xdcba7cf3)", countbits);
- if(countbits !== 32'hdcba7cf3) begin
+ $display(" countbits = 0x%x (should be 0xdcba7cfb)", countbits);
+ if(countbits !== 32'hdcba7cfb) begin
$display("Monitor: Test Timer2 (RTL) Failed");
$finish;
end
wait(checkbits == 6'h02);
- $display(" countbits = 0x%x (should be 0x11)", countbits);
- if(countbits !== 32'h11) begin
+ $display(" countbits = 0x%x (should be 0x19)", countbits);
+ if(countbits !== 32'h19) begin
$display("Monitor: Test Timer2 (RTL) Failed");
$finish;
end
@@ -102,22 +102,22 @@
$finish;
end
wait(checkbits == 6'h05);
- $display(" countbits = %x (should be 0x12b4)", countbits);
- if(countbits !== 32'h12b4) begin
+ $display(" countbits = %x (should be 0x12bc)", countbits);
+ if(countbits !== 32'h12bc) begin
$display("Monitor: Test Timer2 (RTL) Failed");
$finish;
end
wait(checkbits == 6'h06);
- $display(" countbits = %x (should be 0x0055)", countbits);
- if(countbits !== 32'h0055) begin
+ $display(" countbits = %x (should be 0x005d)", countbits);
+ if(countbits !== 32'h005d) begin
$display("Monitor: Test Timer2 (RTL) Failed");
$finish;
end
wait(checkbits == 6'h07);
- $display(" countbits = %x (should be 0x0000)", countbits);
- if(countbits !== 32'h0000) begin
+ $display(" countbits = %x (should be 0x0008)", countbits);
+ if(countbits !== 32'h0008) begin
$display("Monitor: Test Timer2 (RTL) Failed");
$finish;
end
@@ -130,8 +130,8 @@
end
wait(checkbits == 6'h10);
- $display(" countbits = %x (should be 0x0002)", countbits);
- if(countbits !== 32'h0002) begin
+ $display(" countbits = %x (should be 0x000a)", countbits);
+ if(countbits !== 32'h000a) begin
$display("Monitor: Test Timer2 (RTL) Failed");
$finish;
end
@@ -170,6 +170,8 @@
assign VDD3V3 = power1;
assign VDD1V8 = power2;
assign VSS = 1'b0;
+
+ assign mprj_io[3] = 1'b1; // Force CSB high.
// These are the mappings of mprj_io GPIO pads that are set to
// specific functions on startup:
diff --git a/verilog/gl/chip_io.v b/verilog/gl/chip_io.v
index b6b5e70..9fcb5ac 100644
--- a/verilog/gl/chip_io.v
+++ b/verilog/gl/chip_io.v
@@ -824,6 +824,8 @@
wire vssio_q;
wire xresloop;
sky130_ef_io__gpiov2_pad_wrapped clock_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(vssd),
.ANALOG_POL(vssd),
.ANALOG_SEL(vssd),
@@ -841,15 +843,28 @@
.IN_H(),
.OE_N(vccd),
.OUT(vssd),
+ .PAD(clock),
.PAD_A_ESD_0_H(),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(vssd),
.TIE_HI_ESD(),
.TIE_LO_ESD(loop_clock),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(vssd)
);
sky130_ef_io__gpiov2_pad_wrapped flash_clk_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(vssd),
.ANALOG_POL(vssd),
.ANALOG_SEL(vssd),
@@ -867,15 +882,28 @@
.IN_H(),
.OE_N(flash_clk_oeb_core),
.OUT(flash_clk_core),
+ .PAD(flash_clk),
.PAD_A_ESD_0_H(),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(vssd),
.TIE_HI_ESD(),
.TIE_LO_ESD(loop_flash_clk),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(vssd)
);
sky130_ef_io__gpiov2_pad_wrapped flash_csb_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(vssd),
.ANALOG_POL(vssd),
.ANALOG_SEL(vssd),
@@ -893,15 +921,28 @@
.IN_H(),
.OE_N(flash_csb_oeb_core),
.OUT(flash_csb_core),
+ .PAD(flash_csb),
.PAD_A_ESD_0_H(),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(vssd),
.TIE_HI_ESD(),
.TIE_LO_ESD(loop_flash_csb),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(vssd)
);
sky130_ef_io__gpiov2_pad_wrapped flash_io0_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(vssd),
.ANALOG_POL(vssd),
.ANALOG_SEL(vssd),
@@ -919,15 +960,28 @@
.IN_H(),
.OE_N(flash_io0_oeb_core),
.OUT(flash_io0_do_core),
+ .PAD(flash_io0),
.PAD_A_ESD_0_H(),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(vssd),
.TIE_HI_ESD(),
.TIE_LO_ESD(loop_flash_io0),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(vssd)
);
sky130_ef_io__gpiov2_pad_wrapped flash_io1_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(vssd),
.ANALOG_POL(vssd),
.ANALOG_SEL(vssd),
@@ -945,15 +999,28 @@
.IN_H(),
.OE_N(flash_io1_oeb_core),
.OUT(flash_io1_do_core),
+ .PAD(flash_io1),
.PAD_A_ESD_0_H(),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(vssd),
.TIE_HI_ESD(),
.TIE_LO_ESD(loop_flash_io1),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(vssd)
);
sky130_ef_io__gpiov2_pad_wrapped gpio_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(vssd),
.ANALOG_POL(vssd),
.ANALOG_SEL(vssd),
@@ -971,67 +1038,190 @@
.IN_H(),
.OE_N(gpio_outenb_core),
.OUT(gpio_out_core),
+ .PAD(gpio),
.PAD_A_ESD_0_H(),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(vssd),
.TIE_HI_ESD(),
.TIE_LO_ESD(loop_gpio),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(vssd)
);
sky130_ef_io__corner_pad \mgmt_corner[0] (
- .VCCHIB()
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__corner_pad \mgmt_corner[1] (
- .VCCHIB()
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vccd_lvc_pad mgmt_vccd_lvclamp_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.BDY2_B2B(vssa),
.DRN_LVC1(vccd),
.DRN_LVC2(vccd),
.SRC_BDY_LVC1(vssio),
.SRC_BDY_LVC2(vssd),
- .VCCD(vccd)
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vdda_hvc_pad mgmt_vdda_hvclamp_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda),
.SRC_BDY_HVC(vssa),
- .VDDA(vdda)
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vddio_hvc_pad \mgmt_vddio_hvclamp_pad[0] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vddio),
.SRC_BDY_HVC(vssio),
- .VDDIO(vddio)
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vddio_hvc_pad \mgmt_vddio_hvclamp_pad[1] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vddio),
.SRC_BDY_HVC(vssio),
- .VDDIO(vddio)
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssa_hvc_pad mgmt_vssa_hvclamp_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda),
.SRC_BDY_HVC(vssa),
- .VSSA(vssa)
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssd_lvc_pad mgmt_vssd_lvclmap_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.BDY2_B2B(vssa),
.DRN_LVC1(vccd),
.DRN_LVC2(vccd),
.SRC_BDY_LVC1(vssio),
.SRC_BDY_LVC2(vssd),
- .VSSD(vssd)
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssio_hvc_pad \mgmt_vssio_hvclamp_pad[0] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vddio),
.SRC_BDY_HVC(vssio),
- .VSSIO(vssio)
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssio_hvc_pad \mgmt_vssio_hvclamp_pad[1] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vddio),
.SRC_BDY_HVC(vssio),
- .VSSIO(vssio)
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[0] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[0]),
.ANALOG_POL(mprj_io_analog_pol[0]),
.ANALOG_SEL(mprj_io_analog_sel[0]),
@@ -1049,15 +1239,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[0]),
.OUT(mprj_io_out[0]),
+ .PAD(mprj_io[0]),
.PAD_A_ESD_0_H(\mprj_pads.no_connect[0] ),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[0]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[0] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[0])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[10] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[10]),
.ANALOG_POL(mprj_io_analog_pol[10]),
.ANALOG_SEL(mprj_io_analog_sel[10]),
@@ -1075,15 +1278,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[10]),
.OUT(mprj_io_out[10]),
+ .PAD(mprj_io[10]),
.PAD_A_ESD_0_H(mprj_analog_io[3]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[10]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[10] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[10])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[11] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[11]),
.ANALOG_POL(mprj_io_analog_pol[11]),
.ANALOG_SEL(mprj_io_analog_sel[11]),
@@ -1101,15 +1317,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[11]),
.OUT(mprj_io_out[11]),
+ .PAD(mprj_io[11]),
.PAD_A_ESD_0_H(mprj_analog_io[4]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[11]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[11] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[11])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[12] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[12]),
.ANALOG_POL(mprj_io_analog_pol[12]),
.ANALOG_SEL(mprj_io_analog_sel[12]),
@@ -1127,15 +1356,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[12]),
.OUT(mprj_io_out[12]),
+ .PAD(mprj_io[12]),
.PAD_A_ESD_0_H(mprj_analog_io[5]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[12]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[12] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[12])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[13] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[13]),
.ANALOG_POL(mprj_io_analog_pol[13]),
.ANALOG_SEL(mprj_io_analog_sel[13]),
@@ -1153,15 +1395,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[13]),
.OUT(mprj_io_out[13]),
+ .PAD(mprj_io[13]),
.PAD_A_ESD_0_H(mprj_analog_io[6]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[13]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[13] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[13])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[14] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[14]),
.ANALOG_POL(mprj_io_analog_pol[14]),
.ANALOG_SEL(mprj_io_analog_sel[14]),
@@ -1179,15 +1434,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[14]),
.OUT(mprj_io_out[14]),
+ .PAD(mprj_io[14]),
.PAD_A_ESD_0_H(mprj_analog_io[7]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[14]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[14] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[14])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[15] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[15]),
.ANALOG_POL(mprj_io_analog_pol[15]),
.ANALOG_SEL(mprj_io_analog_sel[15]),
@@ -1205,15 +1473,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[15]),
.OUT(mprj_io_out[15]),
+ .PAD(mprj_io[15]),
.PAD_A_ESD_0_H(mprj_analog_io[8]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[15]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[15] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[15])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[16] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[16]),
.ANALOG_POL(mprj_io_analog_pol[16]),
.ANALOG_SEL(mprj_io_analog_sel[16]),
@@ -1231,15 +1512,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[16]),
.OUT(mprj_io_out[16]),
+ .PAD(mprj_io[16]),
.PAD_A_ESD_0_H(mprj_analog_io[9]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[16]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[16] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[16])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[17] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[17]),
.ANALOG_POL(mprj_io_analog_pol[17]),
.ANALOG_SEL(mprj_io_analog_sel[17]),
@@ -1257,15 +1551,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[17]),
.OUT(mprj_io_out[17]),
+ .PAD(mprj_io[17]),
.PAD_A_ESD_0_H(mprj_analog_io[10]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[17]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[17] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[17])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[1] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[1]),
.ANALOG_POL(mprj_io_analog_pol[1]),
.ANALOG_SEL(mprj_io_analog_sel[1]),
@@ -1283,15 +1590,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[1]),
.OUT(mprj_io_out[1]),
+ .PAD(mprj_io[1]),
.PAD_A_ESD_0_H(\mprj_pads.no_connect[1] ),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[1]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[1] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[1])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[2] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[2]),
.ANALOG_POL(mprj_io_analog_pol[2]),
.ANALOG_SEL(mprj_io_analog_sel[2]),
@@ -1309,15 +1629,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[2]),
.OUT(mprj_io_out[2]),
+ .PAD(mprj_io[2]),
.PAD_A_ESD_0_H(\mprj_pads.no_connect[2] ),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[2]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[2] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[2])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[3] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[3]),
.ANALOG_POL(mprj_io_analog_pol[3]),
.ANALOG_SEL(mprj_io_analog_sel[3]),
@@ -1335,15 +1668,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[3]),
.OUT(mprj_io_out[3]),
+ .PAD(mprj_io[3]),
.PAD_A_ESD_0_H(\mprj_pads.no_connect[3] ),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[3]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[3] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[3])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[4] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[4]),
.ANALOG_POL(mprj_io_analog_pol[4]),
.ANALOG_SEL(mprj_io_analog_sel[4]),
@@ -1361,15 +1707,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[4]),
.OUT(mprj_io_out[4]),
+ .PAD(mprj_io[4]),
.PAD_A_ESD_0_H(\mprj_pads.no_connect[4] ),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[4]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[4] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[4])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[5] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[5]),
.ANALOG_POL(mprj_io_analog_pol[5]),
.ANALOG_SEL(mprj_io_analog_sel[5]),
@@ -1387,15 +1746,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[5]),
.OUT(mprj_io_out[5]),
+ .PAD(mprj_io[5]),
.PAD_A_ESD_0_H(\mprj_pads.no_connect[5] ),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[5]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[5] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[5])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[6] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[6]),
.ANALOG_POL(mprj_io_analog_pol[6]),
.ANALOG_SEL(mprj_io_analog_sel[6]),
@@ -1413,15 +1785,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[6]),
.OUT(mprj_io_out[6]),
+ .PAD(mprj_io[6]),
.PAD_A_ESD_0_H(\mprj_pads.no_connect[6] ),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[6]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[6] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[6])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[7] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[7]),
.ANALOG_POL(mprj_io_analog_pol[7]),
.ANALOG_SEL(mprj_io_analog_sel[7]),
@@ -1439,15 +1824,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[7]),
.OUT(mprj_io_out[7]),
+ .PAD(mprj_io[7]),
.PAD_A_ESD_0_H(mprj_analog_io[0]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[7]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[7] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[7])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[8] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[8]),
.ANALOG_POL(mprj_io_analog_pol[8]),
.ANALOG_SEL(mprj_io_analog_sel[8]),
@@ -1465,15 +1863,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[8]),
.OUT(mprj_io_out[8]),
+ .PAD(mprj_io[8]),
.PAD_A_ESD_0_H(mprj_analog_io[1]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[8]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[8] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[8])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area1_io_pad[9] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[9]),
.ANALOG_POL(mprj_io_analog_pol[9]),
.ANALOG_SEL(mprj_io_analog_sel[9]),
@@ -1491,15 +1902,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[9]),
.OUT(mprj_io_out[9]),
+ .PAD(mprj_io[9]),
.PAD_A_ESD_0_H(mprj_analog_io[2]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[9]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[9] ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[9])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[0] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[18]),
.ANALOG_POL(mprj_io_analog_pol[18]),
.ANALOG_SEL(mprj_io_analog_sel[18]),
@@ -1517,15 +1941,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[18]),
.OUT(mprj_io_out[18]),
+ .PAD(mprj_io[18]),
.PAD_A_ESD_0_H(mprj_analog_io[11]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[18]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[18] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[18])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[10] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[28]),
.ANALOG_POL(mprj_io_analog_pol[28]),
.ANALOG_SEL(mprj_io_analog_sel[28]),
@@ -1543,15 +1980,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[28]),
.OUT(mprj_io_out[28]),
+ .PAD(mprj_io[28]),
.PAD_A_ESD_0_H(mprj_analog_io[21]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[28]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[28] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[28])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[11] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[29]),
.ANALOG_POL(mprj_io_analog_pol[29]),
.ANALOG_SEL(mprj_io_analog_sel[29]),
@@ -1569,15 +2019,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[29]),
.OUT(mprj_io_out[29]),
+ .PAD(mprj_io[29]),
.PAD_A_ESD_0_H(mprj_analog_io[22]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[29]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[29] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[29])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[12] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[30]),
.ANALOG_POL(mprj_io_analog_pol[30]),
.ANALOG_SEL(mprj_io_analog_sel[30]),
@@ -1595,15 +2058,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[30]),
.OUT(mprj_io_out[30]),
+ .PAD(mprj_io[30]),
.PAD_A_ESD_0_H(mprj_analog_io[23]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[30]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[30] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[30])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[13] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[31]),
.ANALOG_POL(mprj_io_analog_pol[31]),
.ANALOG_SEL(mprj_io_analog_sel[31]),
@@ -1621,15 +2097,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[31]),
.OUT(mprj_io_out[31]),
+ .PAD(mprj_io[31]),
.PAD_A_ESD_0_H(mprj_analog_io[24]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[31]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[31] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[31])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[14] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[32]),
.ANALOG_POL(mprj_io_analog_pol[32]),
.ANALOG_SEL(mprj_io_analog_sel[32]),
@@ -1647,15 +2136,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[32]),
.OUT(mprj_io_out[32]),
+ .PAD(mprj_io[32]),
.PAD_A_ESD_0_H(mprj_analog_io[25]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[32]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[32] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[32])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[15] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[33]),
.ANALOG_POL(mprj_io_analog_pol[33]),
.ANALOG_SEL(mprj_io_analog_sel[33]),
@@ -1673,15 +2175,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[33]),
.OUT(mprj_io_out[33]),
+ .PAD(mprj_io[33]),
.PAD_A_ESD_0_H(mprj_analog_io[26]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[33]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[33] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[33])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[16] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[34]),
.ANALOG_POL(mprj_io_analog_pol[34]),
.ANALOG_SEL(mprj_io_analog_sel[34]),
@@ -1699,15 +2214,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[34]),
.OUT(mprj_io_out[34]),
+ .PAD(mprj_io[34]),
.PAD_A_ESD_0_H(mprj_analog_io[27]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[34]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[34] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[34])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[17] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[35]),
.ANALOG_POL(mprj_io_analog_pol[35]),
.ANALOG_SEL(mprj_io_analog_sel[35]),
@@ -1725,15 +2253,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[35]),
.OUT(mprj_io_out[35]),
+ .PAD(mprj_io[35]),
.PAD_A_ESD_0_H(mprj_analog_io[28]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[35]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[35] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[35])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[18] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[36]),
.ANALOG_POL(mprj_io_analog_pol[36]),
.ANALOG_SEL(mprj_io_analog_sel[36]),
@@ -1751,15 +2292,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[36]),
.OUT(mprj_io_out[36]),
+ .PAD(mprj_io[36]),
.PAD_A_ESD_0_H(mprj_analog_io[29]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[36]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[36] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[36])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[19] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[37]),
.ANALOG_POL(mprj_io_analog_pol[37]),
.ANALOG_SEL(mprj_io_analog_sel[37]),
@@ -1777,15 +2331,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[37]),
.OUT(mprj_io_out[37]),
+ .PAD(mprj_io[37]),
.PAD_A_ESD_0_H(mprj_analog_io[30]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[37]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[37] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[37])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[1] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[19]),
.ANALOG_POL(mprj_io_analog_pol[19]),
.ANALOG_SEL(mprj_io_analog_sel[19]),
@@ -1803,15 +2370,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[19]),
.OUT(mprj_io_out[19]),
+ .PAD(mprj_io[19]),
.PAD_A_ESD_0_H(mprj_analog_io[12]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[19]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[19] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[19])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[2] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[20]),
.ANALOG_POL(mprj_io_analog_pol[20]),
.ANALOG_SEL(mprj_io_analog_sel[20]),
@@ -1829,15 +2409,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[20]),
.OUT(mprj_io_out[20]),
+ .PAD(mprj_io[20]),
.PAD_A_ESD_0_H(mprj_analog_io[13]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[20]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[20] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[20])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[3] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[21]),
.ANALOG_POL(mprj_io_analog_pol[21]),
.ANALOG_SEL(mprj_io_analog_sel[21]),
@@ -1855,15 +2448,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[21]),
.OUT(mprj_io_out[21]),
+ .PAD(mprj_io[21]),
.PAD_A_ESD_0_H(mprj_analog_io[14]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[21]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[21] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[21])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[4] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[22]),
.ANALOG_POL(mprj_io_analog_pol[22]),
.ANALOG_SEL(mprj_io_analog_sel[22]),
@@ -1881,15 +2487,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[22]),
.OUT(mprj_io_out[22]),
+ .PAD(mprj_io[22]),
.PAD_A_ESD_0_H(mprj_analog_io[15]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[22]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[22] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[22])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[5] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[23]),
.ANALOG_POL(mprj_io_analog_pol[23]),
.ANALOG_SEL(mprj_io_analog_sel[23]),
@@ -1907,15 +2526,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[23]),
.OUT(mprj_io_out[23]),
+ .PAD(mprj_io[23]),
.PAD_A_ESD_0_H(mprj_analog_io[16]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[23]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[23] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[23])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[6] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[24]),
.ANALOG_POL(mprj_io_analog_pol[24]),
.ANALOG_SEL(mprj_io_analog_sel[24]),
@@ -1933,15 +2565,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[24]),
.OUT(mprj_io_out[24]),
+ .PAD(mprj_io[24]),
.PAD_A_ESD_0_H(mprj_analog_io[17]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[24]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[24] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[24])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[7] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[25]),
.ANALOG_POL(mprj_io_analog_pol[25]),
.ANALOG_SEL(mprj_io_analog_sel[25]),
@@ -1959,15 +2604,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[25]),
.OUT(mprj_io_out[25]),
+ .PAD(mprj_io[25]),
.PAD_A_ESD_0_H(mprj_analog_io[18]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[25]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[25] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[25])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[8] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[26]),
.ANALOG_POL(mprj_io_analog_pol[26]),
.ANALOG_SEL(mprj_io_analog_sel[26]),
@@ -1985,15 +2643,28 @@
.IN_H(),
.OE_N(mprj_io_oeb[26]),
.OUT(mprj_io_out[26]),
+ .PAD(mprj_io[26]),
.PAD_A_ESD_0_H(mprj_analog_io[19]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[26]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[26] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[26])
);
sky130_ef_io__gpiov2_pad_wrapped \mprj_pads.area2_io_pad[9] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.ANALOG_EN(mprj_io_analog_en[27]),
.ANALOG_POL(mprj_io_analog_pol[27]),
.ANALOG_SEL(mprj_io_analog_sel[27]),
@@ -2011,219 +2682,252 @@
.IN_H(),
.OE_N(mprj_io_oeb[27]),
.OUT(mprj_io_out[27]),
+ .PAD(mprj_io[27]),
.PAD_A_ESD_0_H(mprj_analog_io[20]),
.PAD_A_ESD_1_H(),
.PAD_A_NOESD_H(),
.SLOW(mprj_io_slow_sel[27]),
.TIE_HI_ESD(),
.TIE_LO_ESD(\mprj_pads.loop1_io[27] ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.VTRIP_SEL(mprj_io_vtrip_sel[27])
);
sky130_fd_io__top_xres4v2 resetb_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DISABLE_PULLUP_H(vssio),
.ENABLE_H(porb_h),
.ENABLE_VDDIO(vccd),
.EN_VDDIO_SIG_H(vssio),
.FILT_IN_H(vssio),
.INP_SEL_H(vssio),
+ .PAD(resetb),
.PAD_A_ESD_H(xresloop),
.PULLUP_H(vssio),
.TIE_HI_ESD(),
.TIE_LO_ESD(),
.TIE_WEAK_HI_H(xresloop),
+ .VCCD(vccd),
+ .VCCHIB(vccd),
+ .VDDA(vdda),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa),
+ .VSSD(vssd),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio),
.XRES_H_N(resetb_core_h)
);
sky130_ef_io__corner_pad user1_corner (
- .VCCHIB()
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vccd_lvc_pad user1_vccd_lvclamp_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.BDY2_B2B(vssio),
.DRN_LVC1(vccd1),
.DRN_LVC2(vccd1),
.SRC_BDY_LVC1(vssd1),
.SRC_BDY_LVC2(vssd),
- .VCCD(vccd1)
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vdda_hvc_pad \user1_vdda_hvclamp_pad[0] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda1),
.SRC_BDY_HVC(vssa1),
- .VDDA(vdda1)
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vdda_hvc_pad \user1_vdda_hvclamp_pad[1] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda1),
.SRC_BDY_HVC(vssa1),
- .VDDA(vdda1)
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssa_hvc_pad \user1_vssa_hvclamp_pad[0] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda1),
.SRC_BDY_HVC(vssa1),
- .VSSA(vssa1)
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssa_hvc_pad \user1_vssa_hvclamp_pad[1] (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda1),
.SRC_BDY_HVC(vssa1),
- .VSSA(vssa1)
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssd_lvc_pad user1_vssd_lvclmap_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.BDY2_B2B(vssio),
.DRN_LVC1(vccd1),
.DRN_LVC2(vccd1),
.SRC_BDY_LVC1(vssd1),
.SRC_BDY_LVC2(vssd),
- .VSSD(vssd1)
+ .VCCD(vccd1),
+ .VCCHIB(vccd),
+ .VDDA(vdda1),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa1),
+ .VSSD(vssd1),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__corner_pad user2_corner (
- .VCCHIB()
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vccd_lvc_pad user2_vccd_lvclamp_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.BDY2_B2B(vssio),
.DRN_LVC1(vccd2),
.DRN_LVC2(vccd2),
.SRC_BDY_LVC1(vssd2),
.SRC_BDY_LVC2(vssd),
- .VCCD(vccd2)
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vdda_hvc_pad user2_vdda_hvclamp_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda2),
.SRC_BDY_HVC(vssa2),
- .VDDA(vdda2)
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssa_hvc_pad user2_vssa_hvclamp_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.DRN_HVC(vdda2),
.SRC_BDY_HVC(vssa2),
- .VSSA(vssa2)
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
sky130_ef_io__vssd_lvc_pad user2_vssd_lvclmap_pad (
+ .AMUXBUS_A(\mprj_pads.analog_a ),
+ .AMUXBUS_B(\mprj_pads.analog_b ),
.BDY2_B2B(vssio),
.DRN_LVC1(vccd2),
.DRN_LVC2(vccd2),
.SRC_BDY_LVC1(vssd2),
.SRC_BDY_LVC2(vssd),
- .VSSD(vssd2)
+ .VCCD(vccd2),
+ .VCCHIB(vccd),
+ .VDDA(vdda2),
+ .VDDIO(vddio),
+ .VDDIO_Q(\mprj_pads.vddio_q ),
+ .VSSA(vssa2),
+ .VSSD(vssd2),
+ .VSSIO(vssio),
+ .VSSIO_Q(\mprj_pads.vssio_q ),
+ .VSWITCH(vddio)
);
- assign \mprj_pads.inp_dis[25] = mprj_io_inp_dis[25];
- assign \mprj_pads.inp_dis[24] = mprj_io_inp_dis[24];
- assign \mprj_pads.inp_dis[23] = mprj_io_inp_dis[23];
- assign \mprj_pads.inp_dis[22] = mprj_io_inp_dis[22];
- assign \mprj_pads.inp_dis[21] = mprj_io_inp_dis[21];
- assign \mprj_pads.inp_dis[20] = mprj_io_inp_dis[20];
- assign \mprj_pads.inp_dis[19] = mprj_io_inp_dis[19];
- assign \mprj_pads.inp_dis[18] = mprj_io_inp_dis[18];
- assign \mprj_pads.inp_dis[17] = mprj_io_inp_dis[17];
- assign \mprj_pads.inp_dis[16] = mprj_io_inp_dis[16];
- assign \mprj_pads.inp_dis[15] = mprj_io_inp_dis[15];
- assign \mprj_pads.inp_dis[14] = mprj_io_inp_dis[14];
- assign \mprj_pads.inp_dis[13] = mprj_io_inp_dis[13];
- assign \mprj_pads.inp_dis[12] = mprj_io_inp_dis[12];
- assign \mprj_pads.inp_dis[11] = mprj_io_inp_dis[11];
- assign \mprj_pads.inp_dis[10] = mprj_io_inp_dis[10];
- assign \mprj_pads.inp_dis[9] = mprj_io_inp_dis[9];
- assign \mprj_pads.inp_dis[8] = mprj_io_inp_dis[8];
- assign \mprj_pads.inp_dis[7] = mprj_io_inp_dis[7];
- assign \mprj_pads.inp_dis[6] = mprj_io_inp_dis[6];
- assign \mprj_pads.inp_dis[5] = mprj_io_inp_dis[5];
- assign \mprj_pads.inp_dis[4] = mprj_io_inp_dis[4];
- assign \mprj_pads.inp_dis[3] = mprj_io_inp_dis[3];
- assign \mprj_pads.inp_dis[2] = mprj_io_inp_dis[2];
- assign \mprj_pads.inp_dis[1] = mprj_io_inp_dis[1];
- assign \mprj_pads.inp_dis[0] = mprj_io_inp_dis[0];
- assign \mprj_pads.analog_sel[37] = mprj_io_analog_sel[37];
- assign \mprj_pads.analog_sel[36] = mprj_io_analog_sel[36];
- assign \mprj_pads.analog_sel[35] = mprj_io_analog_sel[35];
- assign \mprj_pads.analog_sel[34] = mprj_io_analog_sel[34];
- assign \mprj_pads.analog_sel[33] = mprj_io_analog_sel[33];
- assign \mprj_pads.analog_sel[32] = mprj_io_analog_sel[32];
- assign \mprj_pads.analog_sel[31] = mprj_io_analog_sel[31];
- assign \mprj_pads.analog_sel[30] = mprj_io_analog_sel[30];
- assign \mprj_pads.analog_sel[29] = mprj_io_analog_sel[29];
- assign \mprj_pads.analog_sel[28] = mprj_io_analog_sel[28];
- assign \mprj_pads.analog_sel[27] = mprj_io_analog_sel[27];
- assign \mprj_pads.analog_sel[26] = mprj_io_analog_sel[26];
- assign \mprj_pads.analog_sel[25] = mprj_io_analog_sel[25];
- assign \mprj_pads.analog_sel[24] = mprj_io_analog_sel[24];
- assign \mprj_pads.analog_sel[23] = mprj_io_analog_sel[23];
- assign \mprj_pads.analog_sel[22] = mprj_io_analog_sel[22];
- assign \mprj_pads.analog_sel[21] = mprj_io_analog_sel[21];
- assign \mprj_pads.analog_sel[20] = mprj_io_analog_sel[20];
- assign \mprj_pads.analog_sel[19] = mprj_io_analog_sel[19];
- assign \mprj_pads.analog_sel[18] = mprj_io_analog_sel[18];
- assign \mprj_pads.analog_sel[17] = mprj_io_analog_sel[17];
- assign \mprj_pads.analog_sel[16] = mprj_io_analog_sel[16];
- assign \mprj_pads.analog_sel[15] = mprj_io_analog_sel[15];
- assign \mprj_pads.analog_sel[14] = mprj_io_analog_sel[14];
- assign \mprj_pads.analog_sel[13] = mprj_io_analog_sel[13];
- assign \mprj_pads.analog_sel[12] = mprj_io_analog_sel[12];
- assign \mprj_pads.analog_sel[11] = mprj_io_analog_sel[11];
- assign \mprj_pads.analog_sel[10] = mprj_io_analog_sel[10];
- assign \mprj_pads.analog_sel[9] = mprj_io_analog_sel[9];
- assign \mprj_pads.analog_sel[8] = mprj_io_analog_sel[8];
- assign \mprj_pads.analog_sel[7] = mprj_io_analog_sel[7];
- assign \mprj_pads.analog_sel[6] = mprj_io_analog_sel[6];
- assign \mprj_pads.analog_sel[5] = mprj_io_analog_sel[5];
- assign \mprj_pads.analog_sel[4] = mprj_io_analog_sel[4];
- assign \mprj_pads.analog_sel[3] = mprj_io_analog_sel[3];
- assign \mprj_pads.analog_sel[2] = mprj_io_analog_sel[2];
- assign \mprj_pads.analog_sel[1] = mprj_io_analog_sel[1];
- assign \mprj_pads.analog_sel[0] = mprj_io_analog_sel[0];
- assign \mprj_pads.oeb[37] = mprj_io_oeb[37];
- assign \mprj_pads.oeb[36] = mprj_io_oeb[36];
- assign \mprj_pads.oeb[35] = mprj_io_oeb[35];
- assign \mprj_pads.oeb[34] = mprj_io_oeb[34];
- assign \mprj_pads.oeb[33] = mprj_io_oeb[33];
- assign \mprj_pads.oeb[32] = mprj_io_oeb[32];
- assign \mprj_pads.oeb[31] = mprj_io_oeb[31];
- assign \mprj_pads.oeb[30] = mprj_io_oeb[30];
- assign \mprj_pads.oeb[29] = mprj_io_oeb[29];
- assign \mprj_pads.oeb[28] = mprj_io_oeb[28];
- assign \mprj_pads.oeb[27] = mprj_io_oeb[27];
- assign \mprj_pads.oeb[26] = mprj_io_oeb[26];
- assign \mprj_pads.oeb[25] = mprj_io_oeb[25];
- assign \mprj_pads.oeb[24] = mprj_io_oeb[24];
- assign \mprj_pads.oeb[23] = mprj_io_oeb[23];
- assign \mprj_pads.oeb[22] = mprj_io_oeb[22];
- assign \mprj_pads.oeb[21] = mprj_io_oeb[21];
- assign \mprj_pads.oeb[20] = mprj_io_oeb[20];
- assign \mprj_pads.oeb[19] = mprj_io_oeb[19];
- assign \mprj_pads.oeb[18] = mprj_io_oeb[18];
- assign \mprj_pads.oeb[17] = mprj_io_oeb[17];
- assign \mprj_pads.oeb[16] = mprj_io_oeb[16];
- assign \mprj_pads.oeb[15] = mprj_io_oeb[15];
- assign \mprj_pads.oeb[14] = mprj_io_oeb[14];
- assign \mprj_pads.oeb[13] = mprj_io_oeb[13];
- assign \mprj_pads.oeb[12] = mprj_io_oeb[12];
- assign \mprj_pads.oeb[11] = mprj_io_oeb[11];
- assign \mprj_pads.oeb[10] = mprj_io_oeb[10];
- assign \mprj_pads.oeb[9] = mprj_io_oeb[9];
- assign \mprj_pads.oeb[8] = mprj_io_oeb[8];
- assign \mprj_pads.oeb[7] = mprj_io_oeb[7];
- assign \mprj_pads.oeb[6] = mprj_io_oeb[6];
- assign \mprj_pads.oeb[5] = mprj_io_oeb[5];
- assign \mprj_pads.oeb[4] = mprj_io_oeb[4];
- assign \mprj_pads.oeb[3] = mprj_io_oeb[3];
- assign \mprj_pads.oeb[2] = mprj_io_oeb[2];
- assign \mprj_pads.oeb[1] = mprj_io_oeb[1];
- assign \mprj_pads.oeb[0] = mprj_io_oeb[0];
- assign \mprj_pads.dm[113] = mprj_io_dm[113];
- assign \mprj_pads.dm[112] = mprj_io_dm[112];
- assign \mprj_pads.dm[111] = mprj_io_dm[111];
- assign \mprj_pads.dm[110] = mprj_io_dm[110];
- assign \mprj_pads.dm[109] = mprj_io_dm[109];
- assign \mprj_pads.dm[108] = mprj_io_dm[108];
- assign \mprj_pads.dm[107] = mprj_io_dm[107];
- assign \mprj_pads.dm[106] = mprj_io_dm[106];
- assign \mprj_pads.dm[105] = mprj_io_dm[105];
- assign \mprj_pads.dm[104] = mprj_io_dm[104];
- assign \mprj_pads.dm[103] = mprj_io_dm[103];
- assign \mprj_pads.dm[102] = mprj_io_dm[102];
- assign \mprj_pads.dm[101] = mprj_io_dm[101];
- assign \mprj_pads.dm[100] = mprj_io_dm[100];
- assign \mprj_pads.dm[99] = mprj_io_dm[99];
- assign \mprj_pads.dm[98] = mprj_io_dm[98];
- assign \mprj_pads.dm[97] = mprj_io_dm[97];
- assign \mprj_pads.dm[96] = mprj_io_dm[96];
- assign \mprj_pads.dm[95] = mprj_io_dm[95];
- assign \mprj_pads.dm[94] = mprj_io_dm[94];
- assign \mprj_pads.dm[93] = mprj_io_dm[93];
assign \mprj_pads.dm[92] = mprj_io_dm[92];
assign \mprj_pads.dm[91] = mprj_io_dm[91];
assign \mprj_pads.dm[90] = mprj_io_dm[90];
@@ -2317,6 +3021,233 @@
assign \mprj_pads.dm[2] = mprj_io_dm[2];
assign \mprj_pads.dm[1] = mprj_io_dm[1];
assign \mprj_pads.dm[0] = mprj_io_dm[0];
+ assign \mprj_pads.analog_pol[37] = mprj_io_analog_pol[37];
+ assign \mprj_pads.analog_pol[36] = mprj_io_analog_pol[36];
+ assign \mprj_pads.analog_pol[35] = mprj_io_analog_pol[35];
+ assign \mprj_pads.analog_pol[34] = mprj_io_analog_pol[34];
+ assign \mprj_pads.analog_pol[33] = mprj_io_analog_pol[33];
+ assign \mprj_pads.analog_pol[32] = mprj_io_analog_pol[32];
+ assign \mprj_pads.analog_pol[31] = mprj_io_analog_pol[31];
+ assign \mprj_pads.analog_pol[30] = mprj_io_analog_pol[30];
+ assign \mprj_pads.analog_pol[29] = mprj_io_analog_pol[29];
+ assign \mprj_pads.analog_pol[28] = mprj_io_analog_pol[28];
+ assign \mprj_pads.analog_pol[27] = mprj_io_analog_pol[27];
+ assign \mprj_pads.analog_pol[26] = mprj_io_analog_pol[26];
+ assign \mprj_pads.analog_pol[25] = mprj_io_analog_pol[25];
+ assign \mprj_pads.analog_pol[24] = mprj_io_analog_pol[24];
+ assign \mprj_pads.analog_pol[23] = mprj_io_analog_pol[23];
+ assign \mprj_pads.analog_pol[22] = mprj_io_analog_pol[22];
+ assign \mprj_pads.analog_pol[21] = mprj_io_analog_pol[21];
+ assign \mprj_pads.analog_pol[20] = mprj_io_analog_pol[20];
+ assign \mprj_pads.analog_pol[19] = mprj_io_analog_pol[19];
+ assign \mprj_pads.analog_pol[18] = mprj_io_analog_pol[18];
+ assign \mprj_pads.analog_pol[17] = mprj_io_analog_pol[17];
+ assign \mprj_pads.analog_pol[16] = mprj_io_analog_pol[16];
+ assign \mprj_pads.analog_pol[15] = mprj_io_analog_pol[15];
+ assign \mprj_pads.analog_pol[14] = mprj_io_analog_pol[14];
+ assign \mprj_pads.analog_pol[13] = mprj_io_analog_pol[13];
+ assign \mprj_pads.analog_pol[12] = mprj_io_analog_pol[12];
+ assign \mprj_pads.analog_pol[11] = mprj_io_analog_pol[11];
+ assign \mprj_pads.analog_pol[10] = mprj_io_analog_pol[10];
+ assign \mprj_pads.analog_pol[9] = mprj_io_analog_pol[9];
+ assign \mprj_pads.analog_pol[8] = mprj_io_analog_pol[8];
+ assign \mprj_pads.analog_pol[7] = mprj_io_analog_pol[7];
+ assign \mprj_pads.analog_pol[6] = mprj_io_analog_pol[6];
+ assign \mprj_pads.analog_pol[5] = mprj_io_analog_pol[5];
+ assign \mprj_pads.analog_pol[4] = mprj_io_analog_pol[4];
+ assign \mprj_pads.analog_pol[3] = mprj_io_analog_pol[3];
+ assign \mprj_pads.analog_pol[2] = mprj_io_analog_pol[2];
+ assign \mprj_pads.analog_pol[1] = mprj_io_analog_pol[1];
+ assign \mprj_pads.analog_pol[0] = mprj_io_analog_pol[0];
+ assign \flash_io1_mode[2] = flash_io1_ieb_core;
+ assign \flash_io1_mode[1] = flash_io1_ieb_core;
+ assign \flash_io1_mode[0] = flash_io1_oeb_core;
+ assign \mprj_pads.hldh_n[37] = mprj_io_hldh_n[37];
+ assign \mprj_pads.hldh_n[36] = mprj_io_hldh_n[36];
+ assign \mprj_pads.hldh_n[35] = mprj_io_hldh_n[35];
+ assign \mprj_pads.hldh_n[34] = mprj_io_hldh_n[34];
+ assign \mprj_pads.hldh_n[33] = mprj_io_hldh_n[33];
+ assign \mprj_pads.hldh_n[32] = mprj_io_hldh_n[32];
+ assign \mprj_pads.hldh_n[31] = mprj_io_hldh_n[31];
+ assign \mprj_pads.hldh_n[30] = mprj_io_hldh_n[30];
+ assign \mprj_pads.hldh_n[29] = mprj_io_hldh_n[29];
+ assign \mprj_pads.hldh_n[28] = mprj_io_hldh_n[28];
+ assign \mprj_pads.hldh_n[27] = mprj_io_hldh_n[27];
+ assign \mprj_pads.hldh_n[26] = mprj_io_hldh_n[26];
+ assign \mprj_pads.hldh_n[25] = mprj_io_hldh_n[25];
+ assign \mprj_pads.hldh_n[24] = mprj_io_hldh_n[24];
+ assign \mprj_pads.hldh_n[23] = mprj_io_hldh_n[23];
+ assign \mprj_pads.hldh_n[22] = mprj_io_hldh_n[22];
+ assign \mprj_pads.hldh_n[21] = mprj_io_hldh_n[21];
+ assign \mprj_pads.hldh_n[20] = mprj_io_hldh_n[20];
+ assign \mprj_pads.hldh_n[19] = mprj_io_hldh_n[19];
+ assign \mprj_pads.hldh_n[18] = mprj_io_hldh_n[18];
+ assign \mprj_pads.hldh_n[17] = mprj_io_hldh_n[17];
+ assign \mprj_pads.hldh_n[16] = mprj_io_hldh_n[16];
+ assign \mprj_pads.hldh_n[15] = mprj_io_hldh_n[15];
+ assign \mprj_pads.hldh_n[14] = mprj_io_hldh_n[14];
+ assign \mprj_pads.hldh_n[13] = mprj_io_hldh_n[13];
+ assign \mprj_pads.hldh_n[12] = mprj_io_hldh_n[12];
+ assign \mprj_pads.hldh_n[11] = mprj_io_hldh_n[11];
+ assign \mprj_pads.hldh_n[10] = mprj_io_hldh_n[10];
+ assign \mprj_pads.hldh_n[9] = mprj_io_hldh_n[9];
+ assign \mprj_pads.hldh_n[8] = mprj_io_hldh_n[8];
+ assign \mprj_pads.hldh_n[7] = mprj_io_hldh_n[7];
+ assign \mprj_pads.hldh_n[6] = mprj_io_hldh_n[6];
+ assign \mprj_pads.hldh_n[5] = mprj_io_hldh_n[5];
+ assign \mprj_pads.hldh_n[4] = mprj_io_hldh_n[4];
+ assign \mprj_pads.hldh_n[3] = mprj_io_hldh_n[3];
+ assign \mprj_pads.hldh_n[2] = mprj_io_hldh_n[2];
+ assign \mprj_pads.hldh_n[1] = mprj_io_hldh_n[1];
+ assign \mprj_pads.hldh_n[0] = mprj_io_hldh_n[0];
+ assign \dm_all[2] = gpio_mode1_core;
+ assign \dm_all[1] = gpio_mode1_core;
+ assign \dm_all[0] = gpio_mode0_core;
+ assign \mprj_pads.analog_io[30] = mprj_analog_io[30];
+ assign \mprj_pads.analog_io[29] = mprj_analog_io[29];
+ assign \mprj_pads.analog_io[28] = mprj_analog_io[28];
+ assign \mprj_pads.analog_io[27] = mprj_analog_io[27];
+ assign \mprj_pads.analog_io[26] = mprj_analog_io[26];
+ assign \mprj_pads.analog_io[25] = mprj_analog_io[25];
+ assign \mprj_pads.analog_io[24] = mprj_analog_io[24];
+ assign \mprj_pads.analog_io[23] = mprj_analog_io[23];
+ assign \mprj_pads.analog_io[22] = mprj_analog_io[22];
+ assign \mprj_pads.analog_io[21] = mprj_analog_io[21];
+ assign \mprj_pads.analog_io[20] = mprj_analog_io[20];
+ assign \mprj_pads.analog_io[19] = mprj_analog_io[19];
+ assign \mprj_pads.analog_io[18] = mprj_analog_io[18];
+ assign \mprj_pads.analog_io[17] = mprj_analog_io[17];
+ assign \mprj_pads.analog_io[16] = mprj_analog_io[16];
+ assign \mprj_pads.analog_io[15] = mprj_analog_io[15];
+ assign \mprj_pads.analog_io[14] = mprj_analog_io[14];
+ assign \mprj_pads.analog_io[13] = mprj_analog_io[13];
+ assign \mprj_pads.analog_io[12] = mprj_analog_io[12];
+ assign \mprj_pads.analog_io[11] = mprj_analog_io[11];
+ assign \mprj_pads.analog_io[10] = mprj_analog_io[10];
+ assign \mprj_pads.analog_io[9] = mprj_analog_io[9];
+ assign \mprj_pads.analog_io[8] = mprj_analog_io[8];
+ assign \mprj_pads.analog_io[7] = mprj_analog_io[7];
+ assign \mprj_pads.analog_io[6] = mprj_analog_io[6];
+ assign \mprj_pads.analog_io[5] = mprj_analog_io[5];
+ assign \mprj_pads.analog_io[4] = mprj_analog_io[4];
+ assign \mprj_pads.analog_io[3] = mprj_analog_io[3];
+ assign \mprj_pads.analog_io[2] = mprj_analog_io[2];
+ assign \mprj_pads.analog_io[1] = mprj_analog_io[1];
+ assign \mprj_pads.analog_io[0] = mprj_analog_io[0];
+ assign \mprj_pads.holdover[37] = mprj_io_holdover[37];
+ assign \mprj_pads.holdover[36] = mprj_io_holdover[36];
+ assign \mprj_pads.holdover[35] = mprj_io_holdover[35];
+ assign \mprj_pads.holdover[34] = mprj_io_holdover[34];
+ assign \mprj_pads.holdover[33] = mprj_io_holdover[33];
+ assign \mprj_pads.holdover[32] = mprj_io_holdover[32];
+ assign \mprj_pads.holdover[31] = mprj_io_holdover[31];
+ assign \mprj_pads.holdover[30] = mprj_io_holdover[30];
+ assign \mprj_pads.holdover[29] = mprj_io_holdover[29];
+ assign \mprj_pads.holdover[28] = mprj_io_holdover[28];
+ assign \mprj_pads.holdover[27] = mprj_io_holdover[27];
+ assign \mprj_pads.holdover[26] = mprj_io_holdover[26];
+ assign \mprj_pads.holdover[25] = mprj_io_holdover[25];
+ assign \mprj_pads.holdover[24] = mprj_io_holdover[24];
+ assign \mprj_pads.holdover[23] = mprj_io_holdover[23];
+ assign \mprj_pads.holdover[22] = mprj_io_holdover[22];
+ assign \mprj_pads.holdover[21] = mprj_io_holdover[21];
+ assign \mprj_pads.holdover[20] = mprj_io_holdover[20];
+ assign \mprj_pads.holdover[19] = mprj_io_holdover[19];
+ assign \mprj_pads.holdover[18] = mprj_io_holdover[18];
+ assign \mprj_pads.holdover[17] = mprj_io_holdover[17];
+ assign \mprj_pads.holdover[16] = mprj_io_holdover[16];
+ assign \mprj_pads.holdover[15] = mprj_io_holdover[15];
+ assign \mprj_pads.holdover[14] = mprj_io_holdover[14];
+ assign \mprj_pads.holdover[13] = mprj_io_holdover[13];
+ assign \mprj_pads.holdover[12] = mprj_io_holdover[12];
+ assign \mprj_pads.holdover[11] = mprj_io_holdover[11];
+ assign \mprj_pads.holdover[10] = mprj_io_holdover[10];
+ assign \mprj_pads.holdover[9] = mprj_io_holdover[9];
+ assign \mprj_pads.holdover[8] = mprj_io_holdover[8];
+ assign \mprj_pads.holdover[7] = mprj_io_holdover[7];
+ assign \mprj_pads.holdover[6] = mprj_io_holdover[6];
+ assign \mprj_pads.holdover[5] = mprj_io_holdover[5];
+ assign \mprj_pads.holdover[4] = mprj_io_holdover[4];
+ assign \mprj_pads.holdover[3] = mprj_io_holdover[3];
+ assign \mprj_pads.holdover[2] = mprj_io_holdover[2];
+ assign \mprj_pads.holdover[1] = mprj_io_holdover[1];
+ assign \mprj_pads.holdover[0] = mprj_io_holdover[0];
+ assign \mprj_pads.inp_dis[37] = mprj_io_inp_dis[37];
+ assign \mprj_pads.inp_dis[36] = mprj_io_inp_dis[36];
+ assign \mprj_pads.inp_dis[35] = mprj_io_inp_dis[35];
+ assign \mprj_pads.inp_dis[34] = mprj_io_inp_dis[34];
+ assign \mprj_pads.inp_dis[33] = mprj_io_inp_dis[33];
+ assign \mprj_pads.inp_dis[32] = mprj_io_inp_dis[32];
+ assign \mprj_pads.inp_dis[31] = mprj_io_inp_dis[31];
+ assign \mprj_pads.inp_dis[30] = mprj_io_inp_dis[30];
+ assign \mprj_pads.inp_dis[29] = mprj_io_inp_dis[29];
+ assign \mprj_pads.inp_dis[28] = mprj_io_inp_dis[28];
+ assign \mprj_pads.inp_dis[27] = mprj_io_inp_dis[27];
+ assign \mprj_pads.inp_dis[26] = mprj_io_inp_dis[26];
+ assign \mprj_pads.inp_dis[25] = mprj_io_inp_dis[25];
+ assign \mprj_pads.inp_dis[24] = mprj_io_inp_dis[24];
+ assign \mprj_pads.inp_dis[23] = mprj_io_inp_dis[23];
+ assign \mprj_pads.inp_dis[22] = mprj_io_inp_dis[22];
+ assign \mprj_pads.inp_dis[21] = mprj_io_inp_dis[21];
+ assign \mprj_pads.inp_dis[20] = mprj_io_inp_dis[20];
+ assign \mprj_pads.inp_dis[19] = mprj_io_inp_dis[19];
+ assign \mprj_pads.inp_dis[18] = mprj_io_inp_dis[18];
+ assign \mprj_pads.inp_dis[17] = mprj_io_inp_dis[17];
+ assign \mprj_pads.inp_dis[16] = mprj_io_inp_dis[16];
+ assign \mprj_pads.inp_dis[15] = mprj_io_inp_dis[15];
+ assign \mprj_pads.inp_dis[14] = mprj_io_inp_dis[14];
+ assign \mprj_pads.inp_dis[13] = mprj_io_inp_dis[13];
+ assign \mprj_pads.inp_dis[12] = mprj_io_inp_dis[12];
+ assign \mprj_pads.inp_dis[11] = mprj_io_inp_dis[11];
+ assign \mprj_pads.inp_dis[10] = mprj_io_inp_dis[10];
+ assign \mprj_pads.inp_dis[9] = mprj_io_inp_dis[9];
+ assign \mprj_pads.inp_dis[8] = mprj_io_inp_dis[8];
+ assign \mprj_pads.inp_dis[7] = mprj_io_inp_dis[7];
+ assign \mprj_pads.inp_dis[6] = mprj_io_inp_dis[6];
+ assign \mprj_pads.inp_dis[5] = mprj_io_inp_dis[5];
+ assign \mprj_pads.inp_dis[4] = mprj_io_inp_dis[4];
+ assign \mprj_pads.inp_dis[3] = mprj_io_inp_dis[3];
+ assign \mprj_pads.inp_dis[2] = mprj_io_inp_dis[2];
+ assign \mprj_pads.inp_dis[1] = mprj_io_inp_dis[1];
+ assign \mprj_pads.inp_dis[0] = mprj_io_inp_dis[0];
+ assign \mprj_pads.io[37] = mprj_io[37];
+ assign \mprj_pads.io[36] = mprj_io[36];
+ assign \mprj_pads.io[35] = mprj_io[35];
+ assign \mprj_pads.io[34] = mprj_io[34];
+ assign \mprj_pads.io[33] = mprj_io[33];
+ assign \mprj_pads.io[32] = mprj_io[32];
+ assign \mprj_pads.io[31] = mprj_io[31];
+ assign \mprj_pads.io[30] = mprj_io[30];
+ assign \mprj_pads.io[29] = mprj_io[29];
+ assign \mprj_pads.io[28] = mprj_io[28];
+ assign \mprj_pads.io[27] = mprj_io[27];
+ assign \mprj_pads.io[26] = mprj_io[26];
+ assign \mprj_pads.io[25] = mprj_io[25];
+ assign \mprj_pads.io[24] = mprj_io[24];
+ assign \mprj_pads.io[23] = mprj_io[23];
+ assign \mprj_pads.io[22] = mprj_io[22];
+ assign \mprj_pads.io[21] = mprj_io[21];
+ assign \mprj_pads.io[20] = mprj_io[20];
+ assign \mprj_pads.io[19] = mprj_io[19];
+ assign \mprj_pads.io[18] = mprj_io[18];
+ assign \mprj_pads.io[17] = mprj_io[17];
+ assign \mprj_pads.io[16] = mprj_io[16];
+ assign \mprj_pads.io[15] = mprj_io[15];
+ assign \mprj_pads.io[14] = mprj_io[14];
+ assign \mprj_pads.io[13] = mprj_io[13];
+ assign \mprj_pads.io[12] = mprj_io[12];
+ assign \mprj_pads.io[11] = mprj_io[11];
+ assign \mprj_pads.io[10] = mprj_io[10];
+ assign \mprj_pads.io[9] = mprj_io[9];
+ assign \mprj_pads.io[8] = mprj_io[8];
+ assign \mprj_pads.io[7] = mprj_io[7];
+ assign \mprj_pads.io[6] = mprj_io[6];
+ assign \mprj_pads.io[5] = mprj_io[5];
+ assign \mprj_pads.io[4] = mprj_io[4];
+ assign \mprj_pads.io[3] = mprj_io[3];
+ assign \mprj_pads.io[2] = mprj_io[2];
+ assign \mprj_pads.io[1] = mprj_io[1];
+ assign \mprj_pads.io[0] = mprj_io[0];
assign \mprj_pads.vtrip_sel[37] = mprj_io_vtrip_sel[37];
assign \mprj_pads.vtrip_sel[36] = mprj_io_vtrip_sel[36];
assign \mprj_pads.vtrip_sel[35] = mprj_io_vtrip_sel[35];
@@ -2393,44 +3324,9 @@
assign \mprj_pads.ib_mode_sel[2] = mprj_io_ib_mode_sel[2];
assign \mprj_pads.ib_mode_sel[1] = mprj_io_ib_mode_sel[1];
assign \mprj_pads.ib_mode_sel[0] = mprj_io_ib_mode_sel[0];
- assign \mprj_pads.io_out[37] = mprj_io_out[37];
- assign \mprj_pads.io_out[36] = mprj_io_out[36];
- assign \mprj_pads.io_out[35] = mprj_io_out[35];
- assign \mprj_pads.io_out[34] = mprj_io_out[34];
- assign \mprj_pads.io_out[33] = mprj_io_out[33];
- assign \mprj_pads.io_out[32] = mprj_io_out[32];
- assign \mprj_pads.io_out[31] = mprj_io_out[31];
- assign \mprj_pads.io_out[30] = mprj_io_out[30];
- assign \mprj_pads.io_out[29] = mprj_io_out[29];
- assign \mprj_pads.io_out[28] = mprj_io_out[28];
- assign \mprj_pads.io_out[27] = mprj_io_out[27];
- assign \mprj_pads.io_out[26] = mprj_io_out[26];
- assign \mprj_pads.io_out[25] = mprj_io_out[25];
- assign \mprj_pads.io_out[24] = mprj_io_out[24];
- assign \mprj_pads.io_out[23] = mprj_io_out[23];
- assign \mprj_pads.io_out[22] = mprj_io_out[22];
- assign \mprj_pads.io_out[21] = mprj_io_out[21];
- assign \mprj_pads.io_out[20] = mprj_io_out[20];
- assign \mprj_pads.io_out[19] = mprj_io_out[19];
- assign \mprj_pads.io_out[18] = mprj_io_out[18];
- assign \mprj_pads.io_out[17] = mprj_io_out[17];
- assign \mprj_pads.io_out[16] = mprj_io_out[16];
- assign \mprj_pads.io_out[15] = mprj_io_out[15];
- assign \mprj_pads.io_out[14] = mprj_io_out[14];
- assign \mprj_pads.io_out[13] = mprj_io_out[13];
- assign \mprj_pads.io_out[12] = mprj_io_out[12];
- assign \mprj_pads.io_out[11] = mprj_io_out[11];
- assign \mprj_pads.io_out[10] = mprj_io_out[10];
- assign \mprj_pads.io_out[9] = mprj_io_out[9];
- assign \mprj_pads.io_out[8] = mprj_io_out[8];
- assign \mprj_pads.io_out[7] = mprj_io_out[7];
- assign \mprj_pads.io_out[6] = mprj_io_out[6];
- assign \mprj_pads.io_out[5] = mprj_io_out[5];
- assign \mprj_pads.io_out[4] = mprj_io_out[4];
- assign \mprj_pads.io_out[3] = mprj_io_out[3];
- assign \mprj_pads.io_out[2] = mprj_io_out[2];
- assign \mprj_pads.io_out[1] = mprj_io_out[1];
- assign \mprj_pads.io_out[0] = mprj_io_out[0];
+ assign \flash_io0_mode[2] = flash_io0_ieb_core;
+ assign \flash_io0_mode[1] = flash_io0_ieb_core;
+ assign \flash_io0_mode[0] = flash_io0_oeb_core;
assign \mprj_pads.enh[37] = mprj_io_enh[37];
assign \mprj_pads.enh[36] = mprj_io_enh[36];
assign \mprj_pads.enh[35] = mprj_io_enh[35];
@@ -2469,113 +3365,44 @@
assign \mprj_pads.enh[2] = mprj_io_enh[2];
assign \mprj_pads.enh[1] = mprj_io_enh[1];
assign \mprj_pads.enh[0] = mprj_io_enh[0];
- assign \mprj_pads.hldh_n[37] = mprj_io_hldh_n[37];
- assign \mprj_pads.hldh_n[36] = mprj_io_hldh_n[36];
- assign \mprj_pads.hldh_n[35] = mprj_io_hldh_n[35];
- assign \mprj_pads.hldh_n[34] = mprj_io_hldh_n[34];
- assign \mprj_pads.hldh_n[33] = mprj_io_hldh_n[33];
- assign \mprj_pads.hldh_n[32] = mprj_io_hldh_n[32];
- assign \mprj_pads.hldh_n[31] = mprj_io_hldh_n[31];
- assign \mprj_pads.hldh_n[30] = mprj_io_hldh_n[30];
- assign \mprj_pads.hldh_n[29] = mprj_io_hldh_n[29];
- assign \mprj_pads.hldh_n[28] = mprj_io_hldh_n[28];
- assign \mprj_pads.hldh_n[27] = mprj_io_hldh_n[27];
- assign \mprj_pads.hldh_n[26] = mprj_io_hldh_n[26];
- assign \mprj_pads.hldh_n[25] = mprj_io_hldh_n[25];
- assign \mprj_pads.hldh_n[24] = mprj_io_hldh_n[24];
- assign \mprj_pads.hldh_n[23] = mprj_io_hldh_n[23];
- assign \mprj_pads.hldh_n[22] = mprj_io_hldh_n[22];
- assign \mprj_pads.hldh_n[21] = mprj_io_hldh_n[21];
- assign \mprj_pads.hldh_n[20] = mprj_io_hldh_n[20];
- assign \mprj_pads.hldh_n[19] = mprj_io_hldh_n[19];
- assign \mprj_pads.hldh_n[18] = mprj_io_hldh_n[18];
- assign \mprj_pads.hldh_n[17] = mprj_io_hldh_n[17];
- assign \mprj_pads.hldh_n[16] = mprj_io_hldh_n[16];
- assign \mprj_pads.hldh_n[15] = mprj_io_hldh_n[15];
- assign \mprj_pads.hldh_n[14] = mprj_io_hldh_n[14];
- assign \mprj_pads.hldh_n[13] = mprj_io_hldh_n[13];
- assign \mprj_pads.hldh_n[12] = mprj_io_hldh_n[12];
- assign \mprj_pads.hldh_n[11] = mprj_io_hldh_n[11];
- assign \mprj_pads.hldh_n[10] = mprj_io_hldh_n[10];
- assign \mprj_pads.hldh_n[9] = mprj_io_hldh_n[9];
- assign \mprj_pads.hldh_n[8] = mprj_io_hldh_n[8];
- assign \mprj_pads.hldh_n[7] = mprj_io_hldh_n[7];
- assign \mprj_pads.hldh_n[6] = mprj_io_hldh_n[6];
- assign \mprj_pads.hldh_n[5] = mprj_io_hldh_n[5];
- assign \mprj_pads.hldh_n[4] = mprj_io_hldh_n[4];
- assign \mprj_pads.hldh_n[3] = mprj_io_hldh_n[3];
- assign \mprj_pads.hldh_n[2] = mprj_io_hldh_n[2];
- assign \mprj_pads.hldh_n[1] = mprj_io_hldh_n[1];
- assign \mprj_pads.hldh_n[0] = mprj_io_hldh_n[0];
- assign \mprj_pads.analog_io[30] = mprj_analog_io[30];
- assign \mprj_pads.analog_io[29] = mprj_analog_io[29];
- assign \mprj_pads.analog_io[28] = mprj_analog_io[28];
- assign \mprj_pads.analog_io[27] = mprj_analog_io[27];
- assign \mprj_pads.analog_io[26] = mprj_analog_io[26];
- assign \mprj_pads.analog_io[25] = mprj_analog_io[25];
- assign \mprj_pads.analog_io[24] = mprj_analog_io[24];
- assign \mprj_pads.analog_io[23] = mprj_analog_io[23];
- assign \mprj_pads.analog_io[22] = mprj_analog_io[22];
- assign \mprj_pads.analog_io[21] = mprj_analog_io[21];
- assign \mprj_pads.analog_io[20] = mprj_analog_io[20];
- assign \mprj_pads.analog_io[19] = mprj_analog_io[19];
- assign \mprj_pads.analog_io[18] = mprj_analog_io[18];
- assign \mprj_pads.analog_io[17] = mprj_analog_io[17];
- assign \mprj_pads.analog_io[16] = mprj_analog_io[16];
- assign \mprj_pads.analog_io[15] = mprj_analog_io[15];
- assign \mprj_pads.analog_io[14] = mprj_analog_io[14];
- assign \mprj_pads.analog_io[13] = mprj_analog_io[13];
- assign \mprj_pads.analog_io[12] = mprj_analog_io[12];
- assign \mprj_pads.analog_io[11] = mprj_analog_io[11];
- assign \mprj_pads.analog_io[10] = mprj_analog_io[10];
- assign \mprj_pads.analog_io[9] = mprj_analog_io[9];
- assign \mprj_pads.analog_io[8] = mprj_analog_io[8];
- assign \mprj_pads.analog_io[7] = mprj_analog_io[7];
- assign \mprj_pads.analog_io[6] = mprj_analog_io[6];
- assign \mprj_pads.analog_io[5] = mprj_analog_io[5];
- assign \mprj_pads.analog_io[4] = mprj_analog_io[4];
- assign \mprj_pads.analog_io[3] = mprj_analog_io[3];
- assign \mprj_pads.analog_io[2] = mprj_analog_io[2];
- assign \mprj_pads.analog_io[1] = mprj_analog_io[1];
- assign \mprj_pads.analog_io[0] = mprj_analog_io[0];
- assign \mprj_pads.analog_pol[37] = mprj_io_analog_pol[37];
- assign \mprj_pads.analog_pol[36] = mprj_io_analog_pol[36];
- assign \mprj_pads.analog_pol[35] = mprj_io_analog_pol[35];
- assign \mprj_pads.analog_pol[34] = mprj_io_analog_pol[34];
- assign \mprj_pads.analog_pol[33] = mprj_io_analog_pol[33];
- assign \mprj_pads.analog_pol[32] = mprj_io_analog_pol[32];
- assign \mprj_pads.analog_pol[31] = mprj_io_analog_pol[31];
- assign \mprj_pads.analog_pol[30] = mprj_io_analog_pol[30];
- assign \mprj_pads.analog_pol[29] = mprj_io_analog_pol[29];
- assign \mprj_pads.analog_pol[28] = mprj_io_analog_pol[28];
- assign \mprj_pads.analog_pol[27] = mprj_io_analog_pol[27];
- assign \mprj_pads.analog_pol[26] = mprj_io_analog_pol[26];
- assign \mprj_pads.analog_pol[25] = mprj_io_analog_pol[25];
- assign \mprj_pads.analog_pol[24] = mprj_io_analog_pol[24];
- assign \mprj_pads.analog_pol[23] = mprj_io_analog_pol[23];
- assign \mprj_pads.analog_pol[22] = mprj_io_analog_pol[22];
- assign \mprj_pads.analog_pol[21] = mprj_io_analog_pol[21];
- assign \mprj_pads.analog_pol[20] = mprj_io_analog_pol[20];
- assign \mprj_pads.analog_pol[19] = mprj_io_analog_pol[19];
- assign \mprj_pads.analog_pol[18] = mprj_io_analog_pol[18];
- assign \mprj_pads.analog_pol[17] = mprj_io_analog_pol[17];
- assign \mprj_pads.analog_pol[16] = mprj_io_analog_pol[16];
- assign \mprj_pads.analog_pol[15] = mprj_io_analog_pol[15];
- assign \mprj_pads.analog_pol[14] = mprj_io_analog_pol[14];
- assign \mprj_pads.analog_pol[13] = mprj_io_analog_pol[13];
- assign \mprj_pads.analog_pol[12] = mprj_io_analog_pol[12];
- assign \mprj_pads.analog_pol[11] = mprj_io_analog_pol[11];
- assign \mprj_pads.analog_pol[10] = mprj_io_analog_pol[10];
- assign \mprj_pads.analog_pol[9] = mprj_io_analog_pol[9];
- assign \mprj_pads.analog_pol[8] = mprj_io_analog_pol[8];
- assign \mprj_pads.analog_pol[7] = mprj_io_analog_pol[7];
- assign \mprj_pads.analog_pol[6] = mprj_io_analog_pol[6];
- assign \mprj_pads.analog_pol[5] = mprj_io_analog_pol[5];
- assign \mprj_pads.analog_pol[4] = mprj_io_analog_pol[4];
- assign \mprj_pads.analog_pol[3] = mprj_io_analog_pol[3];
- assign \mprj_pads.analog_pol[2] = mprj_io_analog_pol[2];
- assign \mprj_pads.analog_pol[1] = mprj_io_analog_pol[1];
- assign \mprj_pads.analog_pol[0] = mprj_io_analog_pol[0];
+ assign \mprj_pads.oeb[37] = mprj_io_oeb[37];
+ assign \mprj_pads.oeb[36] = mprj_io_oeb[36];
+ assign \mprj_pads.oeb[35] = mprj_io_oeb[35];
+ assign \mprj_pads.oeb[34] = mprj_io_oeb[34];
+ assign \mprj_pads.oeb[33] = mprj_io_oeb[33];
+ assign \mprj_pads.oeb[32] = mprj_io_oeb[32];
+ assign \mprj_pads.oeb[31] = mprj_io_oeb[31];
+ assign \mprj_pads.oeb[30] = mprj_io_oeb[30];
+ assign \mprj_pads.oeb[29] = mprj_io_oeb[29];
+ assign \mprj_pads.oeb[28] = mprj_io_oeb[28];
+ assign \mprj_pads.oeb[27] = mprj_io_oeb[27];
+ assign \mprj_pads.oeb[26] = mprj_io_oeb[26];
+ assign \mprj_pads.oeb[25] = mprj_io_oeb[25];
+ assign \mprj_pads.oeb[24] = mprj_io_oeb[24];
+ assign \mprj_pads.oeb[23] = mprj_io_oeb[23];
+ assign \mprj_pads.oeb[22] = mprj_io_oeb[22];
+ assign \mprj_pads.oeb[21] = mprj_io_oeb[21];
+ assign \mprj_pads.oeb[20] = mprj_io_oeb[20];
+ assign \mprj_pads.oeb[19] = mprj_io_oeb[19];
+ assign \mprj_pads.oeb[18] = mprj_io_oeb[18];
+ assign \mprj_pads.oeb[17] = mprj_io_oeb[17];
+ assign \mprj_pads.oeb[16] = mprj_io_oeb[16];
+ assign \mprj_pads.oeb[15] = mprj_io_oeb[15];
+ assign \mprj_pads.oeb[14] = mprj_io_oeb[14];
+ assign \mprj_pads.oeb[13] = mprj_io_oeb[13];
+ assign \mprj_pads.oeb[12] = mprj_io_oeb[12];
+ assign \mprj_pads.oeb[11] = mprj_io_oeb[11];
+ assign \mprj_pads.oeb[10] = mprj_io_oeb[10];
+ assign \mprj_pads.oeb[9] = mprj_io_oeb[9];
+ assign \mprj_pads.oeb[8] = mprj_io_oeb[8];
+ assign \mprj_pads.oeb[7] = mprj_io_oeb[7];
+ assign \mprj_pads.oeb[6] = mprj_io_oeb[6];
+ assign \mprj_pads.oeb[5] = mprj_io_oeb[5];
+ assign \mprj_pads.oeb[4] = mprj_io_oeb[4];
+ assign \mprj_pads.oeb[3] = mprj_io_oeb[3];
+ assign \mprj_pads.oeb[2] = mprj_io_oeb[2];
+ assign \mprj_pads.oeb[1] = mprj_io_oeb[1];
+ assign \mprj_pads.oeb[0] = mprj_io_oeb[0];
assign \mprj_pads.slow_sel[37] = mprj_io_slow_sel[37];
assign \mprj_pads.slow_sel[36] = mprj_io_slow_sel[36];
assign \mprj_pads.slow_sel[35] = mprj_io_slow_sel[35];
@@ -2614,82 +3441,6 @@
assign \mprj_pads.slow_sel[2] = mprj_io_slow_sel[2];
assign \mprj_pads.slow_sel[1] = mprj_io_slow_sel[1];
assign \mprj_pads.slow_sel[0] = mprj_io_slow_sel[0];
- assign \mprj_pads.holdover[37] = mprj_io_holdover[37];
- assign \mprj_pads.holdover[36] = mprj_io_holdover[36];
- assign \mprj_pads.holdover[35] = mprj_io_holdover[35];
- assign \mprj_pads.holdover[34] = mprj_io_holdover[34];
- assign \mprj_pads.holdover[33] = mprj_io_holdover[33];
- assign \mprj_pads.holdover[32] = mprj_io_holdover[32];
- assign \mprj_pads.holdover[31] = mprj_io_holdover[31];
- assign \mprj_pads.holdover[30] = mprj_io_holdover[30];
- assign \mprj_pads.holdover[29] = mprj_io_holdover[29];
- assign \mprj_pads.holdover[28] = mprj_io_holdover[28];
- assign \mprj_pads.holdover[27] = mprj_io_holdover[27];
- assign \mprj_pads.holdover[26] = mprj_io_holdover[26];
- assign \mprj_pads.holdover[25] = mprj_io_holdover[25];
- assign \mprj_pads.holdover[24] = mprj_io_holdover[24];
- assign \mprj_pads.holdover[23] = mprj_io_holdover[23];
- assign \mprj_pads.holdover[22] = mprj_io_holdover[22];
- assign \mprj_pads.holdover[21] = mprj_io_holdover[21];
- assign \mprj_pads.holdover[20] = mprj_io_holdover[20];
- assign \mprj_pads.holdover[19] = mprj_io_holdover[19];
- assign \mprj_pads.holdover[18] = mprj_io_holdover[18];
- assign \mprj_pads.holdover[17] = mprj_io_holdover[17];
- assign \mprj_pads.holdover[16] = mprj_io_holdover[16];
- assign \mprj_pads.holdover[15] = mprj_io_holdover[15];
- assign \mprj_pads.holdover[14] = mprj_io_holdover[14];
- assign \mprj_pads.holdover[13] = mprj_io_holdover[13];
- assign \mprj_pads.holdover[12] = mprj_io_holdover[12];
- assign \mprj_pads.holdover[11] = mprj_io_holdover[11];
- assign \mprj_pads.holdover[10] = mprj_io_holdover[10];
- assign \mprj_pads.holdover[9] = mprj_io_holdover[9];
- assign \mprj_pads.holdover[8] = mprj_io_holdover[8];
- assign \mprj_pads.holdover[7] = mprj_io_holdover[7];
- assign \mprj_pads.holdover[6] = mprj_io_holdover[6];
- assign \mprj_pads.holdover[5] = mprj_io_holdover[5];
- assign \mprj_pads.holdover[4] = mprj_io_holdover[4];
- assign \mprj_pads.holdover[3] = mprj_io_holdover[3];
- assign \mprj_pads.holdover[2] = mprj_io_holdover[2];
- assign \mprj_pads.holdover[1] = mprj_io_holdover[1];
- assign \mprj_pads.holdover[0] = mprj_io_holdover[0];
- assign \mprj_pads.io[37] = mprj_io[37];
- assign \mprj_pads.io[36] = mprj_io[36];
- assign \mprj_pads.io[35] = mprj_io[35];
- assign \mprj_pads.io[34] = mprj_io[34];
- assign \mprj_pads.io[33] = mprj_io[33];
- assign \mprj_pads.io[32] = mprj_io[32];
- assign \mprj_pads.io[31] = mprj_io[31];
- assign \mprj_pads.io[30] = mprj_io[30];
- assign \mprj_pads.io[29] = mprj_io[29];
- assign \mprj_pads.io[28] = mprj_io[28];
- assign \mprj_pads.io[27] = mprj_io[27];
- assign \mprj_pads.io[26] = mprj_io[26];
- assign \mprj_pads.io[25] = mprj_io[25];
- assign \mprj_pads.io[24] = mprj_io[24];
- assign \mprj_pads.io[23] = mprj_io[23];
- assign \mprj_pads.io[22] = mprj_io[22];
- assign \mprj_pads.io[21] = mprj_io[21];
- assign \mprj_pads.io[20] = mprj_io[20];
- assign \mprj_pads.io[19] = mprj_io[19];
- assign \mprj_pads.io[18] = mprj_io[18];
- assign \mprj_pads.io[17] = mprj_io[17];
- assign \mprj_pads.io[16] = mprj_io[16];
- assign \mprj_pads.io[15] = mprj_io[15];
- assign \mprj_pads.io[14] = mprj_io[14];
- assign \mprj_pads.io[13] = mprj_io[13];
- assign \mprj_pads.io[12] = mprj_io[12];
- assign \mprj_pads.io[11] = mprj_io[11];
- assign \mprj_pads.io[10] = mprj_io[10];
- assign \mprj_pads.io[9] = mprj_io[9];
- assign \mprj_pads.io[8] = mprj_io[8];
- assign \mprj_pads.io[7] = mprj_io[7];
- assign \mprj_pads.io[6] = mprj_io[6];
- assign \mprj_pads.io[5] = mprj_io[5];
- assign \mprj_pads.io[4] = mprj_io[4];
- assign \mprj_pads.io[3] = mprj_io[3];
- assign \mprj_pads.io[2] = mprj_io[2];
- assign \mprj_pads.io[1] = mprj_io[1];
- assign \mprj_pads.io[0] = mprj_io[0];
assign \mprj_pads.analog_en[37] = mprj_io_analog_en[37];
assign \mprj_pads.analog_en[36] = mprj_io_analog_en[36];
assign \mprj_pads.analog_en[35] = mprj_io_analog_en[35];
@@ -2728,6 +3479,82 @@
assign \mprj_pads.analog_en[2] = mprj_io_analog_en[2];
assign \mprj_pads.analog_en[1] = mprj_io_analog_en[1];
assign \mprj_pads.analog_en[0] = mprj_io_analog_en[0];
+ assign \mprj_pads.io_out[37] = mprj_io_out[37];
+ assign \mprj_pads.io_out[36] = mprj_io_out[36];
+ assign \mprj_pads.io_out[35] = mprj_io_out[35];
+ assign \mprj_pads.io_out[34] = mprj_io_out[34];
+ assign \mprj_pads.io_out[33] = mprj_io_out[33];
+ assign \mprj_pads.io_out[32] = mprj_io_out[32];
+ assign \mprj_pads.io_out[31] = mprj_io_out[31];
+ assign \mprj_pads.io_out[30] = mprj_io_out[30];
+ assign \mprj_pads.io_out[29] = mprj_io_out[29];
+ assign \mprj_pads.io_out[28] = mprj_io_out[28];
+ assign \mprj_pads.io_out[27] = mprj_io_out[27];
+ assign \mprj_pads.io_out[26] = mprj_io_out[26];
+ assign \mprj_pads.io_out[25] = mprj_io_out[25];
+ assign \mprj_pads.io_out[24] = mprj_io_out[24];
+ assign \mprj_pads.io_out[23] = mprj_io_out[23];
+ assign \mprj_pads.io_out[22] = mprj_io_out[22];
+ assign \mprj_pads.io_out[21] = mprj_io_out[21];
+ assign \mprj_pads.io_out[20] = mprj_io_out[20];
+ assign \mprj_pads.io_out[19] = mprj_io_out[19];
+ assign \mprj_pads.io_out[18] = mprj_io_out[18];
+ assign \mprj_pads.io_out[17] = mprj_io_out[17];
+ assign \mprj_pads.io_out[16] = mprj_io_out[16];
+ assign \mprj_pads.io_out[15] = mprj_io_out[15];
+ assign \mprj_pads.io_out[14] = mprj_io_out[14];
+ assign \mprj_pads.io_out[13] = mprj_io_out[13];
+ assign \mprj_pads.io_out[12] = mprj_io_out[12];
+ assign \mprj_pads.io_out[11] = mprj_io_out[11];
+ assign \mprj_pads.io_out[10] = mprj_io_out[10];
+ assign \mprj_pads.io_out[9] = mprj_io_out[9];
+ assign \mprj_pads.io_out[8] = mprj_io_out[8];
+ assign \mprj_pads.io_out[7] = mprj_io_out[7];
+ assign \mprj_pads.io_out[6] = mprj_io_out[6];
+ assign \mprj_pads.io_out[5] = mprj_io_out[5];
+ assign \mprj_pads.io_out[4] = mprj_io_out[4];
+ assign \mprj_pads.io_out[3] = mprj_io_out[3];
+ assign \mprj_pads.io_out[2] = mprj_io_out[2];
+ assign \mprj_pads.io_out[1] = mprj_io_out[1];
+ assign \mprj_pads.io_out[0] = mprj_io_out[0];
+ assign \mprj_pads.analog_sel[37] = mprj_io_analog_sel[37];
+ assign \mprj_pads.analog_sel[36] = mprj_io_analog_sel[36];
+ assign \mprj_pads.analog_sel[35] = mprj_io_analog_sel[35];
+ assign \mprj_pads.analog_sel[34] = mprj_io_analog_sel[34];
+ assign \mprj_pads.analog_sel[33] = mprj_io_analog_sel[33];
+ assign \mprj_pads.analog_sel[32] = mprj_io_analog_sel[32];
+ assign \mprj_pads.analog_sel[31] = mprj_io_analog_sel[31];
+ assign \mprj_pads.analog_sel[30] = mprj_io_analog_sel[30];
+ assign \mprj_pads.analog_sel[29] = mprj_io_analog_sel[29];
+ assign \mprj_pads.analog_sel[28] = mprj_io_analog_sel[28];
+ assign \mprj_pads.analog_sel[27] = mprj_io_analog_sel[27];
+ assign \mprj_pads.analog_sel[26] = mprj_io_analog_sel[26];
+ assign \mprj_pads.analog_sel[25] = mprj_io_analog_sel[25];
+ assign \mprj_pads.analog_sel[24] = mprj_io_analog_sel[24];
+ assign \mprj_pads.analog_sel[23] = mprj_io_analog_sel[23];
+ assign \mprj_pads.analog_sel[22] = mprj_io_analog_sel[22];
+ assign \mprj_pads.analog_sel[21] = mprj_io_analog_sel[21];
+ assign \mprj_pads.analog_sel[20] = mprj_io_analog_sel[20];
+ assign \mprj_pads.analog_sel[19] = mprj_io_analog_sel[19];
+ assign \mprj_pads.analog_sel[18] = mprj_io_analog_sel[18];
+ assign \mprj_pads.analog_sel[17] = mprj_io_analog_sel[17];
+ assign \mprj_pads.analog_sel[16] = mprj_io_analog_sel[16];
+ assign \mprj_pads.analog_sel[15] = mprj_io_analog_sel[15];
+ assign \mprj_pads.analog_sel[14] = mprj_io_analog_sel[14];
+ assign \mprj_pads.analog_sel[13] = mprj_io_analog_sel[13];
+ assign \mprj_pads.analog_sel[12] = mprj_io_analog_sel[12];
+ assign \mprj_pads.analog_sel[11] = mprj_io_analog_sel[11];
+ assign \mprj_pads.analog_sel[10] = mprj_io_analog_sel[10];
+ assign \mprj_pads.analog_sel[9] = mprj_io_analog_sel[9];
+ assign \mprj_pads.analog_sel[8] = mprj_io_analog_sel[8];
+ assign \mprj_pads.analog_sel[7] = mprj_io_analog_sel[7];
+ assign \mprj_pads.analog_sel[6] = mprj_io_analog_sel[6];
+ assign \mprj_pads.analog_sel[5] = mprj_io_analog_sel[5];
+ assign \mprj_pads.analog_sel[4] = mprj_io_analog_sel[4];
+ assign \mprj_pads.analog_sel[3] = mprj_io_analog_sel[3];
+ assign \mprj_pads.analog_sel[2] = mprj_io_analog_sel[2];
+ assign \mprj_pads.analog_sel[1] = mprj_io_analog_sel[1];
+ assign \mprj_pads.analog_sel[0] = mprj_io_analog_sel[0];
assign \mprj_pads.vddio = vddio;
assign \mprj_pads.vssio = vssio;
assign \mprj_pads.vccd = vccd;
@@ -2741,27 +3568,27 @@
assign \mprj_pads.vssd1 = vssd1;
assign \mprj_pads.vssd2 = vssd2;
assign \mprj_pads.porb_h = porb_h;
- assign \mprj_pads.inp_dis[27] = mprj_io_inp_dis[27];
- assign \mprj_pads.inp_dis[35] = mprj_io_inp_dis[35];
- assign \dm_all[2] = gpio_mode1_core;
- assign \mprj_pads.inp_dis[33] = mprj_io_inp_dis[33];
- assign \mprj_pads.inp_dis[34] = mprj_io_inp_dis[34];
- assign \flash_io1_mode[2] = flash_io1_ieb_core;
- assign \mprj_pads.inp_dis[36] = mprj_io_inp_dis[36];
- assign \mprj_pads.inp_dis[37] = mprj_io_inp_dis[37];
- assign \mprj_pads.inp_dis[29] = mprj_io_inp_dis[29];
- assign \mprj_pads.inp_dis[28] = mprj_io_inp_dis[28];
- assign \mprj_pads.inp_dis[26] = mprj_io_inp_dis[26];
- assign \flash_io1_mode[0] = flash_io1_oeb_core;
- assign \mprj_pads.inp_dis[31] = mprj_io_inp_dis[31];
- assign \dm_all[1] = gpio_mode1_core;
- assign \mprj_pads.inp_dis[30] = mprj_io_inp_dis[30];
- assign \mprj_pads.inp_dis[32] = mprj_io_inp_dis[32];
- assign \dm_all[0] = gpio_mode0_core;
- assign \flash_io1_mode[1] = flash_io1_ieb_core;
- assign \flash_io0_mode[1] = flash_io0_ieb_core;
- assign \flash_io0_mode[2] = flash_io0_ieb_core;
- assign \flash_io0_mode[0] = flash_io0_oeb_core;
+ assign \mprj_pads.dm[104] = mprj_io_dm[104];
+ assign \mprj_pads.dm[94] = mprj_io_dm[94];
+ assign \mprj_pads.dm[99] = mprj_io_dm[99];
+ assign \mprj_pads.dm[110] = mprj_io_dm[110];
+ assign \mprj_pads.dm[100] = mprj_io_dm[100];
+ assign \mprj_pads.dm[105] = mprj_io_dm[105];
+ assign \mprj_pads.dm[102] = mprj_io_dm[102];
+ assign \mprj_pads.dm[103] = mprj_io_dm[103];
+ assign \mprj_pads.dm[96] = mprj_io_dm[96];
+ assign \mprj_pads.dm[107] = mprj_io_dm[107];
+ assign \mprj_pads.dm[95] = mprj_io_dm[95];
+ assign \mprj_pads.dm[93] = mprj_io_dm[93];
+ assign \mprj_pads.dm[112] = mprj_io_dm[112];
+ assign \mprj_pads.dm[113] = mprj_io_dm[113];
+ assign \mprj_pads.dm[106] = mprj_io_dm[106];
+ assign \mprj_pads.dm[108] = mprj_io_dm[108];
+ assign \mprj_pads.dm[98] = mprj_io_dm[98];
+ assign \mprj_pads.dm[97] = mprj_io_dm[97];
+ assign \mprj_pads.dm[111] = mprj_io_dm[111];
+ assign \mprj_pads.dm[101] = mprj_io_dm[101];
+ assign \mprj_pads.dm[109] = mprj_io_dm[109];
assign vssio_q = \mprj_pads.vssio_q ;
assign vddio_q = \mprj_pads.vddio_q ;
assign analog_b = \mprj_pads.analog_b ;
diff --git a/verilog/rtl/caravel.v b/verilog/rtl/caravel.v
index 08a6241..2ee50bc 100644
--- a/verilog/rtl/caravel.v
+++ b/verilog/rtl/caravel.v
@@ -35,29 +35,34 @@
`ifdef GL
`include "gl/mgmt_core.v"
+ `include "gl/digital_pll.v"
+ `include "gl/DFFRAM.v"
+ `include "gl/storage.v"
+ `include "gl/user_id_programming.v"
+ `include "gl/chip_io.v"
`else
`include "mgmt_soc.v"
`include "housekeeping_spi.v"
`include "caravel_clocking.v"
`include "mgmt_core.v"
+ `include "digital_pll.v"
+ `include "DFFRAM.v"
+ `include "DFFRAMBB.v"
+ `include "storage.v"
+ `include "user_id_programming.v"
+ `include "clock_div.v"
+ `include "storage_bridge_wb.v"
+ `include "mprj_io.v"
+ `include "chip_io.v"
`endif
-`include "digital_pll.v"
+`include "sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v"
`include "mgmt_protect.v"
`include "mgmt_protect_hv.v"
-`include "mprj_io.v"
-`include "chip_io.v"
-`include "user_id_programming.v"
`include "user_project_wrapper.v"
`include "gpio_control_block.v"
-`include "clock_div.v"
`include "simple_por.v"
-`include "storage_bridge_wb.v"
-`include "DFFRAM.v"
-`include "DFFRAMBB.v"
`include "sram_1rw1r_32_256_8_sky130.v"
-`include "storage.v"
-`include "sky130_fd_sc_hvl__lsbufhv2lv_1_wrapped.v"
/*------------------------------*/
/* Include user project here */
@@ -638,8 +643,8 @@
.USER_PROJECT_ID(USER_PROJECT_ID)
) user_id_value (
`ifdef USE_POWER_PINS
- .vdd1v8(vccd),
- .vss(vssd),
+ .VPWR(vccd),
+ .VGND(vssd),
`endif
.mask_rev(mask_rev)
);
diff --git a/verilog/rtl/manifest b/verilog/rtl/manifest
index c705d95..11c820a 100644
--- a/verilog/rtl/manifest
+++ b/verilog/rtl/manifest
@@ -1,6 +1,6 @@
5f07b999756cdbae03068f084e8986ba159ba196 DFFRAM.v
22d6b23a7ddcd2b086c9aa0e9c4839f6ef5e3c25 DFFRAMBB.v
-02343580d406285f83a8893f1d3ce97c8cfd660c caravel.v
+7f2e64ff567d4a745aaae296db34294f5bbeb7f6 caravel.v
bcdb8849d0b51e13c5ae7e1319f3f9be3e1b3dfd caravel_clocking.v
a8f79a3bcf1267487f31f47372fb0e35ea344510 chip_io.v
7127595a39b7b17a01f93ca9f3e98c881e32c96f clock_div.v
diff --git a/verilog/rtl/user_id_programming.v b/verilog/rtl/user_id_programming.v
index 934f9d7..ce1f42b 100644
--- a/verilog/rtl/user_id_programming.v
+++ b/verilog/rtl/user_id_programming.v
@@ -8,8 +8,8 @@
parameter [ 0:0] USER_PROJECT_ID = 32'h0
) (
`ifdef USE_POWER_PINS
- inout vdd1v8,
- inout vss,
+ inout VPWR,
+ inout VGND,
`endif
output [31:0] mask_rev
);
@@ -21,10 +21,10 @@
sky130_fd_sc_hd__conb_1 mask_rev_value [31:0] (
`ifdef USE_POWER_PINS
- .VPWR(vdd1v8),
- .VPB(vdd1v8),
- .VNB(vss),
- .VGND(vss),
+ .VPWR(VPWR),
+ .VPB(VPWR),
+ .VNB(VGND),
+ .VGND(VGND),
`endif
.HI(user_proj_id_high),
.LO(user_proj_id_low)