humpback: copied connectors
This commit is contained in:
parent
cd8c2e980d
commit
f6ccae48f3
|
@ -62,10 +62,10 @@ class HumpbackPlatform(LatticeICE40Platform):
|
||||||
]
|
]
|
||||||
|
|
||||||
# Using the dict approach in (o)migen
|
# Using the dict approach in (o)migen
|
||||||
# Note: Numbering is required in nMigen, so some probably meaningful strings/integers are inserted
|
# Note: Numbering is required in nMigen, so some probably not very meaningful strings/integers are inserted
|
||||||
connectors = [
|
connectors = [
|
||||||
|
|
||||||
# EEM0 Connection Interface
|
# EEM0 Connector
|
||||||
Connector("eem", 0, {
|
Connector("eem", 0, {
|
||||||
"d0_cc_n": "H1",
|
"d0_cc_n": "H1",
|
||||||
"d0_cc_p": "J3",
|
"d0_cc_p": "J3",
|
||||||
|
@ -85,7 +85,7 @@ class HumpbackPlatform(LatticeICE40Platform):
|
||||||
"d7_p" : "G3",
|
"d7_p" : "G3",
|
||||||
}),
|
}),
|
||||||
|
|
||||||
# EEM1 Connection Interface
|
# EEM1 Connector
|
||||||
Connector("eem", 1, {
|
Connector("eem", 1, {
|
||||||
"d0_cc_n": "L3",
|
"d0_cc_n": "L3",
|
||||||
"d0_cc_p": "L6",
|
"d0_cc_p": "L6",
|
||||||
|
@ -105,7 +105,7 @@ class HumpbackPlatform(LatticeICE40Platform):
|
||||||
"d7_p": "K4",
|
"d7_p": "K4",
|
||||||
}),
|
}),
|
||||||
|
|
||||||
# EEM2 Connection Interface
|
# EEM2 Connector
|
||||||
Connector("eem", 2, {
|
Connector("eem", 2, {
|
||||||
"d0_cc_n": "G1",
|
"d0_cc_n": "G1",
|
||||||
"d0_cc_p": "J5",
|
"d0_cc_p": "J5",
|
||||||
|
@ -125,8 +125,8 @@ class HumpbackPlatform(LatticeICE40Platform):
|
||||||
"d7_p": "R1",
|
"d7_p": "R1",
|
||||||
}),
|
}),
|
||||||
|
|
||||||
# STM32 Connection Pins
|
# STM32 Nucleo/ Arduino Connector
|
||||||
Connector("stm32", "pin", {
|
Connector("stm32", "pins", {
|
||||||
"PA0": "A2",
|
"PA0": "A2",
|
||||||
"PA1": "P14",
|
"PA1": "P14",
|
||||||
"PA2": "B8",
|
"PA2": "B8",
|
||||||
|
@ -179,6 +179,73 @@ class HumpbackPlatform(LatticeICE40Platform):
|
||||||
"PG2": "K14",
|
"PG2": "K14",
|
||||||
"PG3": "K15",
|
"PG3": "K15",
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
# Beaglebone Black Connector
|
||||||
|
Connector("bb", "pins", {
|
||||||
|
"CLKOUT": "R9",
|
||||||
|
|
||||||
|
"GPIO0_7": "R14",
|
||||||
|
|
||||||
|
"GPIO1_16": "A16",
|
||||||
|
"GPIO1_17": "R3",
|
||||||
|
"GPIO1_29": "D11",
|
||||||
|
"GPIO1_31": "D14",
|
||||||
|
|
||||||
|
"GPIO2_6": "D16",
|
||||||
|
"GPIO2_7": "C16",
|
||||||
|
"GPIO2_8": "E16",
|
||||||
|
"GPIO2_9": "D15",
|
||||||
|
"GPIO2_11": "F15",
|
||||||
|
"GPIO2_13": "F16",
|
||||||
|
"GPIO2_22": "C11",
|
||||||
|
"GPIO2_23": "C10",
|
||||||
|
"GPIO2_24": "E10",
|
||||||
|
"GPIO2_25": "D4",
|
||||||
|
|
||||||
|
"GPIO3_19": "P4",
|
||||||
|
"GPIO3_21": "R4",
|
||||||
|
|
||||||
|
"GPMC_A2": "T7",
|
||||||
|
"GPMC_A3": "T1",
|
||||||
|
"GPMC_A14": "F9",
|
||||||
|
"GPMC_A15": "B7",
|
||||||
|
"GPMC_AD0": "C12",
|
||||||
|
"GPMC_AD1": "E11",
|
||||||
|
"GPMC_AD2": "J12",
|
||||||
|
"GPMC_AD3": "J11",
|
||||||
|
"GPMC_AD4": "C13",
|
||||||
|
"GPMC_AD5": "C14",
|
||||||
|
"GPMC_AD6": "J14",
|
||||||
|
"GPMC_AD7": "J13",
|
||||||
|
"GPMC_AD8": "E13",
|
||||||
|
"GPMC_AD9": "G13",
|
||||||
|
"GPMC_AD10": "G14",
|
||||||
|
"GPMC_AD11": "G10",
|
||||||
|
"GPMC_AD12": "E14",
|
||||||
|
"GPMC_AD13": "H14",
|
||||||
|
"GPMC_AD14": "F14",
|
||||||
|
"GPMC_AD15": "F13",
|
||||||
|
"GPMC_ADVN": "H12",
|
||||||
|
"GPMC_BE0N": "G16",
|
||||||
|
"GPMC_CLK": "H11",
|
||||||
|
"GPMC_CSN1": "D13",
|
||||||
|
"GPMC_OEN": "H13",
|
||||||
|
"GPMC_WE1N": "G15",
|
||||||
|
}),
|
||||||
|
|
||||||
|
# ESP32 Connector
|
||||||
|
Connector("esp32", "pins", {
|
||||||
|
"IO2": "D9",
|
||||||
|
"IO4": "D7",
|
||||||
|
"IO22": "C7",
|
||||||
|
"IO34": "E9",
|
||||||
|
"IO35": "C9",
|
||||||
|
}),
|
||||||
|
|
||||||
|
# OrangePI Zero Connector
|
||||||
|
Connector("orange_pi", "pins", {
|
||||||
|
"PG06": "A15",
|
||||||
|
}),
|
||||||
]
|
]
|
||||||
|
|
||||||
# tool chain setup, using default ICE40 HX8K evaluation code
|
# tool chain setup, using default ICE40 HX8K evaluation code
|
||||||
|
|
|
@ -1,105 +0,0 @@
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
|
|
||||||
# Get dictionaries of:
|
|
||||||
# - Non-global GPIO to FPGA mapping
|
|
||||||
# - Global GPIO to FPGA mapping
|
|
||||||
# (Ordered)
|
|
||||||
def GPIOMapping():
|
|
||||||
|
|
||||||
# Standard extraction of data from excel file
|
|
||||||
data = pd.read_excel("nmigen/FPGA_pins.xlsx", skiprows = range(1,2))
|
|
||||||
df = pd.DataFrame(data, columns=["Designator", "Pin Name", "Net"])
|
|
||||||
|
|
||||||
stm32 = df[df.Net.str.startswith("STM32")]
|
|
||||||
|
|
||||||
# Change some GPIO mapping for Nucleo-H743ZI2
|
|
||||||
# Created a mapping from old pins to new pins
|
|
||||||
old_to_new_dict = {
|
|
||||||
# Old : New
|
|
||||||
"PC1" :"PB1" ,
|
|
||||||
"PC4" :"PC2" ,
|
|
||||||
"PC5" :"PF10" ,
|
|
||||||
"PA1" :"PB2" ,
|
|
||||||
"PA7" :"PE9" ,
|
|
||||||
"PA8" :"PF2" ,
|
|
||||||
"PA9" :"PF1" ,
|
|
||||||
"PA10" :"PF0" ,
|
|
||||||
"PB1" :"PF4" ,
|
|
||||||
"PC2" :"PF5" ,
|
|
||||||
"PA2" :"PF6" ,
|
|
||||||
"PB6" :"PG6" ,
|
|
||||||
"PE13" :"PG12" ,
|
|
||||||
"PF14" :"PE14" ,
|
|
||||||
"PE14" :"PE6" ,
|
|
||||||
}
|
|
||||||
|
|
||||||
# Extract data from stm32 dataframe to a dictionary
|
|
||||||
gpio_dict = {}
|
|
||||||
global_gpio_dict = {}
|
|
||||||
|
|
||||||
for index, row in stm32.iterrows():
|
|
||||||
|
|
||||||
# Replace old pins with new pins
|
|
||||||
# Note: There are 2 PE6 pins on Nucleo-H743ZI2
|
|
||||||
# This will remove 1 mapping of PE6, keys cannot be duplicated
|
|
||||||
key = row["Net"].split("_")[1]
|
|
||||||
if key in old_to_new_dict:
|
|
||||||
key = old_to_new_dict.pop(key)
|
|
||||||
|
|
||||||
dict_entry = {key: row["Designator"]}
|
|
||||||
|
|
||||||
# Insert mappings into dictionary
|
|
||||||
if "BIN" in row["Pin Name"]:
|
|
||||||
global_gpio_dict.update(dict_entry)
|
|
||||||
else:
|
|
||||||
gpio_dict.update(dict_entry)
|
|
||||||
|
|
||||||
|
|
||||||
return gpio_dict, global_gpio_dict
|
|
||||||
|
|
||||||
|
|
||||||
# Function to provide mapping EEM pins to differential pins
|
|
||||||
# Usage:
|
|
||||||
# Positive pin: <returned>[<eem_port_val>][<eem_port_ldvs_num>][0]
|
|
||||||
# Negative pin: <returned>[<eem_port_val>][<eem_port_ldvs_num>][1]
|
|
||||||
def diffMapping():
|
|
||||||
|
|
||||||
eem0 = [
|
|
||||||
# P+ve , N-ve
|
|
||||||
[ "J3" , "H1" ],
|
|
||||||
[ "F5" , "B1" ],
|
|
||||||
[ "C1" , "C2" ],
|
|
||||||
[ "F4" , "D2" ],
|
|
||||||
[ "G5" , "D1" ],
|
|
||||||
[ "G4" , "E3" ],
|
|
||||||
[ "H5" , "E2" ],
|
|
||||||
[ "G3" , "F3" ],
|
|
||||||
]
|
|
||||||
|
|
||||||
eem1 = [
|
|
||||||
# P+ve , N-ve
|
|
||||||
[ "L6" , "L3" ],
|
|
||||||
[ "H6" , "F1" ],
|
|
||||||
[ "H4" , "G2" ],
|
|
||||||
[ "J4" , "H2" ],
|
|
||||||
[ "J2" , "J1" ],
|
|
||||||
[ "K1" , "K3" ],
|
|
||||||
[ "L4" , "L1" ],
|
|
||||||
[ "K4" , "M1" ],
|
|
||||||
]
|
|
||||||
|
|
||||||
eem2 = [
|
|
||||||
# P+ve , N-ve
|
|
||||||
[ "J5" , "G1" ],
|
|
||||||
[ "K5" , "M2" ],
|
|
||||||
[ "L7" , "N2" ],
|
|
||||||
[ "M6" , "M3" ],
|
|
||||||
[ "L5" , "N3" ],
|
|
||||||
[ "P1" , "M4" ],
|
|
||||||
[ "P2" , "M5" ],
|
|
||||||
[ "R1" , "N4" ],
|
|
||||||
]
|
|
||||||
|
|
||||||
return [eem0, eem1, eem2]
|
|
||||||
|
|
Loading…
Reference in New Issue