Replaced the gpio_defaults_block_0000.mag layout with gpio_defaults_block.mag

so that it contains a valid layout after processing by Openlane (since the
verilog module is named gpio_defaults_block).  Corrected the orientation of
the defaults block layouts on the right side of Caravel and erased the
incorrect routing there.  Reinstated the copyright, user ID text, open source
logo, and Caravel logo.  Revised the gen_gpio_defaults.py script to handle
the first five GPIOs in the same way as the others, although as fixed entries
which cannot be modified by the user project designer.
This commit is contained in:
Tim Edwards 2021-11-20 13:43:49 -05:00
parent 1c18c1dae9
commit b0d3217280
5 changed files with 288 additions and 4855 deletions

View File

@ -121,11 +121,11 @@ use gpio_control_block gpio_control_bidir_2\[1\]
timestamp 1636751500 timestamp 1636751500
transform 1 0 7631 0 1 199600 transform 1 0 7631 0 1 199600
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_1803 gpio_defaults_block_1 use gpio_defaults_block gpio_defaults_block_1
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 176600 transform -1 0 709467 0 1 176600
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_1803 gpio_defaults_block_0 use gpio_defaults_block gpio_defaults_block_0
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 131000 transform -1 0 709467 0 1 131000
box -38 0 6018 2224 box -38 0 6018 2224
@ -141,11 +141,11 @@ use gpio_control_block gpio_control_in_1\[0\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 208400 transform -1 0 710203 0 1 208400
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_37 use gpio_defaults_block gpio_defaults_block_37
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 212200 transform 1 0 8367 0 1 212200
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_36 use gpio_defaults_block gpio_defaults_block_36
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 255400 transform 1 0 8367 0 1 255400
box -38 0 6018 2224 box -38 0 6018 2224
@ -157,7 +157,7 @@ use gpio_control_block gpio_control_in_2\[10\]
timestamp 1636751500 timestamp 1636751500
transform 1 0 7631 0 1 286000 transform 1 0 7631 0 1 286000
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_35 use gpio_defaults_block gpio_defaults_block_35
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 298600 transform 1 0 8367 0 1 298600
box -38 0 6018 2224 box -38 0 6018 2224
@ -165,11 +165,11 @@ use gpio_control_block gpio_control_in_1\[1\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 253600 transform -1 0 710203 0 1 253600
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_1403 gpio_defaults_block_3 use gpio_defaults_block gpio_defaults_block_3
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 266200 transform -1 0 709467 0 1 266200
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_1403 gpio_defaults_block_2 use gpio_defaults_block gpio_defaults_block_2
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 221000 transform -1 0 709467 0 1 221000
box -38 0 6018 2224 box -38 0 6018 2224
@ -177,11 +177,11 @@ use gpio_control_block gpio_control_in_1\[2\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 298800 transform -1 0 710203 0 1 298800
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_1403 gpio_defaults_block_4 use gpio_defaults_block gpio_defaults_block_4
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 311400 transform -1 0 709467 0 1 311400
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_34 use gpio_defaults_block gpio_defaults_block_34
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 341800 transform 1 0 8367 0 1 341800
box -38 0 6018 2224 box -38 0 6018 2224
@ -193,7 +193,7 @@ use gpio_control_block gpio_control_in_2\[9\]
timestamp 1636751500 timestamp 1636751500
transform 1 0 7631 0 1 329200 transform 1 0 7631 0 1 329200
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_30 use gpio_defaults_block gpio_defaults_block_30
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 385000 transform 1 0 8367 0 1 385000
box -38 0 6018 2224 box -38 0 6018 2224
@ -205,11 +205,11 @@ use gpio_control_block gpio_control_in_1\[3\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 344600 transform -1 0 710203 0 1 344600
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_5 use gpio_defaults_block gpio_defaults_block_5
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 357200 transform -1 0 709467 0 1 357200
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_6 use gpio_defaults_block gpio_defaults_block_6
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 401600 transform -1 0 709467 0 1 401600
box -38 0 6018 2224 box -38 0 6018 2224
@ -217,11 +217,11 @@ use gpio_control_block gpio_control_in_1\[4\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 389000 transform -1 0 710203 0 1 389000
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_29 use gpio_defaults_block gpio_defaults_block_29
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 427600 transform 1 0 8367 0 1 427600
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_28 use gpio_defaults_block gpio_defaults_block_28
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 475000 transform 1 0 8367 0 1 475000
box -38 0 6018 2224 box -38 0 6018 2224
@ -229,7 +229,7 @@ use gpio_control_block gpio_control_in_2\[6\]
timestamp 1636751500 timestamp 1636751500
transform 1 0 7631 0 1 462400 transform 1 0 7631 0 1 462400
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_7 use gpio_defaults_block gpio_defaults_block_7
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 489800 transform -1 0 709467 0 1 489800
box -38 0 6018 2224 box -38 0 6018 2224
@ -237,7 +237,7 @@ use gpio_control_block gpio_control_in_1\[5\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 477200 transform -1 0 710203 0 1 477200
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_33 use gpio_defaults_block gpio_defaults_block_33
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 600824 transform 1 0 8367 0 1 600824
box -38 0 6018 2224 box -38 0 6018 2224
@ -249,15 +249,15 @@ use gpio_control_block gpio_control_in_2\[4\]
timestamp 1636751500 timestamp 1636751500
transform 1 0 7631 0 1 631400 transform 1 0 7631 0 1 631400
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_10 use gpio_defaults_block gpio_defaults_block_10
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 624400 transform -1 0 709467 0 1 624400
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_9 use gpio_defaults_block gpio_defaults_block_9
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 577400 transform -1 0 709467 0 1 577400
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_8 use gpio_defaults_block gpio_defaults_block_8
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 534200 transform -1 0 709467 0 1 534200
box -38 0 6018 2224 box -38 0 6018 2224
@ -273,11 +273,11 @@ use gpio_control_block gpio_control_in_1\[6\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 521600 transform -1 0 710203 0 1 521600
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_32 use gpio_defaults_block gpio_defaults_block_32
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 644000 transform 1 0 8367 0 1 644000
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_31 use gpio_defaults_block gpio_defaults_block_31
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 687200 transform 1 0 8367 0 1 687200
box -38 0 6018 2224 box -38 0 6018 2224
@ -285,7 +285,7 @@ use gpio_control_block gpio_control_in_2\[3\]
timestamp 1636751500 timestamp 1636751500
transform 1 0 7631 0 1 674600 transform 1 0 7631 0 1 674600
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_27 use gpio_defaults_block gpio_defaults_block_27
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 730400 transform 1 0 8367 0 1 730400
box -38 0 6018 2224 box -38 0 6018 2224
@ -297,7 +297,7 @@ use gpio_control_block gpio_control_in_2\[1\]
timestamp 1636751500 timestamp 1636751500
transform 1 0 7631 0 1 761000 transform 1 0 7631 0 1 761000
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_11 use gpio_defaults_block gpio_defaults_block_11
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 669600 transform -1 0 709467 0 1 669600
box -38 0 6018 2224 box -38 0 6018 2224
@ -305,7 +305,7 @@ use gpio_control_block gpio_control_in_1\[9\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 657000 transform -1 0 710203 0 1 657000
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_12 use gpio_defaults_block gpio_defaults_block_12
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 714600 transform -1 0 709467 0 1 714600
box -38 0 6018 2224 box -38 0 6018 2224
@ -313,11 +313,11 @@ use gpio_control_block gpio_control_in_1\[10\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 702000 transform -1 0 710203 0 1 702000
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_26 use gpio_defaults_block gpio_defaults_block_26
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 773600 transform 1 0 8367 0 1 773600
box -38 0 6018 2224 box -38 0 6018 2224
use gpio_defaults_block_0402 gpio_defaults_block_14 use gpio_defaults_block gpio_defaults_block_14
timestamp 1636751500 timestamp 1636751500
transform 1 0 8367 0 1 816800 transform 1 0 8367 0 1 816800
box -38 0 6018 2224 box -38 0 6018 2224
@ -329,7 +329,7 @@ use gpio_control_block gpio_control_in_1\[11\]
timestamp 1636751500 timestamp 1636751500
transform -1 0 710203 0 1 880800 transform -1 0 710203 0 1 880800
box 750 416 34000 13000 box 750 416 34000 13000
use gpio_defaults_block_0402 gpio_defaults_block_13 use gpio_defaults_block gpio_defaults_block_13
timestamp 1636751500 timestamp 1636751500
transform -1 0 709467 0 1 893400 transform -1 0 709467 0 1 893400
box -38 0 6018 2224 box -38 0 6018 2224

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -154,6 +154,17 @@ if __name__ == '__main__':
print('Error: No user_defines.v file found.') print('Error: No user_defines.v file found.')
sys.exit(1) sys.exit(1)
# Set additional dictionary entries for the fixed-configuration
# GPIOs 0 to 4. This allows the layout to have the default
# gpio_defaults_block layout, and this script will change it as
# needed.
kvpairs["`USER_CONFIG_GPIO_0_INIT"] = "13'h1803"
kvpairs["`USER_CONFIG_GPIO_1_INIT"] = "13'h1803"
kvpairs["`USER_CONFIG_GPIO_2_INIT"] = "13'h0403"
kvpairs["`USER_CONFIG_GPIO_3_INIT"] = "13'h0403"
kvpairs["`USER_CONFIG_GPIO_4_INIT"] = "13'h0403"
# Generate zero and one coordinates for each via # Generate zero and one coordinates for each via
llx_zero = [] llx_zero = []
lly_zero = [] lly_zero = []
@ -216,7 +227,7 @@ if __name__ == '__main__':
if binval[12 - j] == '1': if binval[12 - j] == '1':
bitflips.append(j) bitflips.append(j)
with open(magpath + '/gpio_defaults_block_0000.mag', 'r') as ifile: with open(magpath + '/gpio_defaults_block.mag', 'r') as ifile:
maglines = ifile.read().splitlines() maglines = ifile.read().splitlines()
outlines = [] outlines = []
for magline in maglines: for magline in maglines: