Source code for hwtBuildsystem.vivado.part
[docs]
class XilinxPart():
"""
Xilinx FPGA model name specification
"""
[docs]
class Package():
cflva2104 = 'cflva2104'
cflvb2104 = 'cflvb2104'
cflvc2104 = 'cflvc2104'
cl400 = 'cl400'
cl484 = 'cl484'
clg225 = 'clg225'
clg400 = 'clg400'
clg484 = 'clg484'
clg485 = 'clg485'
cna1509 = 'cna1509'
cpg236 = 'cpg236'
cpg238 = 'cpg238'
cpga196 = 'cpga196'
cs324 = 'cs324'
cs325 = 'cs325'
csg324 = 'csg324'
csg325 = 'csg325'
csga225 = 'csga225'
csga324 = 'csga324'
fbg484 = 'fbg484'
fbg676 = 'fbg676'
fbg900 = 'fbg900'
fbv484 = 'fbv484'
fbv676 = 'fbv676'
fbv900 = 'fbv900'
fbva676 = 'fbva676'
fbva900 = 'fbva900'
fbvb900 = 'fbvb900'
ffg1156 = 'ffg1156'
ffg1157 = 'ffg1157'
ffg1158 = 'ffg1158'
ffg1761 = 'ffg1761'
ffg1926 = 'ffg1926'
ffg1927 = 'ffg1927'
ffg1928 = 'ffg1928'
ffg1930 = 'ffg1930'
ffg676 = 'ffg676'
ffg900 = 'ffg900'
ffg901 = 'ffg901'
ffv1156 = 'ffv1156'
ffv1157 = 'ffv1157'
ffv1158 = 'ffv1158'
ffv1761 = 'ffv1761'
ffv1927 = 'ffv1927'
ffv676 = 'ffv676'
ffv900 = 'ffv900'
ffv901 = 'ffv901'
ffva1156 = 'ffva1156'
ffva1517 = 'ffva1517'
ffva1760 = 'ffva1760'
ffva2104 = 'ffva2104'
ffva676 = 'ffva676'
ffvb1156 = 'ffvb1156'
ffvb1517 = 'ffvb1517'
ffvb1760 = 'ffvb1760'
ffvb2104 = 'ffvb2104'
ffvb676 = 'ffvb676'
ffvc1156 = 'ffvc1156'
ffvc1517 = 'ffvc1517'
ffvc1760 = 'ffvc1760'
ffvc2104 = 'ffvc2104'
ffvc900 = 'ffvc900'
ffvd1156 = 'ffvd1156'
ffvd1517 = 'ffvd1517'
ffvd1760 = 'ffvd1760'
ffvd900 = 'ffvd900'
ffve1156 = 'ffve1156'
ffve1517 = 'ffve1517'
ffve1760 = 'ffve1760'
ffve1924 = 'ffve1924'
ffve900 = 'ffve900'
ffvf1517 = 'ffvf1517'
ffvf1760 = 'ffvf1760'
ffvg1517 = 'ffvg1517'
ffvh1760 = 'ffvh1760'
fg484 = 'fg484'
fgg484 = 'fgg484'
fgg676 = 'fgg676'
fgga484 = 'fgga484'
fgga676 = 'fgga676'
fhg1761 = 'fhg1761'
fhga2104 = 'fhga2104'
fhgb2104 = 'fhgb2104'
fhgc2104 = 'fhgc2104'
figd2104 = 'figd2104'
flg1155 = 'flg1155'
flg1925 = 'flg1925'
flg1926 = 'flg1926'
flg1928 = 'flg1928'
flg1930 = 'flg1930'
flg1931 = 'flg1931'
flg1932 = 'flg1932'
flga2104 = 'flga2104'
flga2577 = 'flga2577'
flga2892 = 'flga2892'
flgb2104 = 'flgb2104'
flgb2377 = 'flgb2377'
flgc2104 = 'flgc2104'
flgf1924 = 'flgf1924'
flva1517 = 'flva1517'
flva2104 = 'flva2104'
flvb1760 = 'flvb1760'
flvb2104 = 'flvb2104'
flvc2104 = 'flvc2104'
flvd1517 = 'flvd1517'
flvd1924 = 'flvd1924'
flvf1924 = 'flvf1924'
fsga2577 = 'fsga2577'
fsgd2104 = 'fsgd2104'
fsva3824 = 'fsva3824'
fsvb3824 = 'fsvb3824'
fsve1156 = 'fsve1156'
fsvf1760 = 'fsvf1760'
fsvg1517 = 'fsvg1517'
fsvh1760 = 'fsvh1760'
fsvh1924 = 'fsvh1924'
fsvh2104 = 'fsvh2104'
fsvh2892 = 'fsvh2892'
ftg256 = 'ftg256'
ftgb196 = 'ftgb196'
hcg1155 = 'hcg1155'
hcg1931 = 'hcg1931'
hcg1932 = 'hcg1932'
rb484 = 'rb484'
rb676 = 'rb676'
rf1156 = 'rf1156'
rf1157 = 'rf1157'
rf1158 = 'rf1158'
rf1761 = 'rf1761'
rf1930 = 'rf1930'
rf676 = 'rf676'
rf900 = 'rf900'
rs484 = 'rs484'
sbg484 = 'sbg484'
sbg485 = 'sbg485'
sbv484 = 'sbv484'
sbv485 = 'sbv485'
sbva484 = 'sbva484'
sfva625 = 'sfva625'
sfva784 = 'sfva784'
sfvb784 = 'sfvb784'
sfvc784 = 'sfvc784'
vsva1365 = '-vsva1365'
vsva3697 = '-vsva3697'
lsva4737 = '-lsva4737'
[docs]
class Size():
_007s = '007s'
_010 = '010'
_010i = '010i'
_012s = '012s'
_014s = '014s'
_015 = '015'
_015i = '015i'
_020 = '020'
_020i = '020i'
_025 = '025'
_030 = '030'
_030i = '030i'
_035 = '035'
_035i = '035i'
_040 = '040'
_045 = '045'
_045i = '045i'
_060 = '060'
_065 = '065'
_080 = '080'
_085 = '085'
_095 = '095'
_100 = '100'
_100i = '100i'
_100t = '100t'
_100ti = '100ti'
_100tl = '100tl'
_115 = '115'
_11eg = '11eg'
_11p = '11p'
_125 = '125'
_12t = '12t'
_13p = '13p'
_15 = '15'
_1522 = "1522"
_1542 = "1542"
_1582 = "1582"
_15eg = '15eg'
_15p = '15p'
_15t = '15t'
_15ti = '15ti'
_15tl = '15tl'
_160 = '160'
_160t = '160t'
_160tl = '160tl'
_1742 = "1742"
_1782 = "1782"
_17eg = '17eg'
_190 = '190'
_19eg = '19eg'
_19p = '19p'
_2000t = '2000t'
_200t = '200t'
_200ti = '200ti'
_200tl = '200tl'
_21dr = '21dr'
_23p = '23p'
_25 = '25'
_25dr = '25dr'
_25t = '25t'
_27dr = '27dr'
_27p = '27p'
_28dr = '28dr'
_29dr = '29dr'
_29p = '29p'
_2cg = '2cg'
_2eg = '2eg'
_31p = '31p'
_325t = '325t'
_325tl = '325tl'
_33p = '33p'
_355t = '355t'
_355tl = '355tl'
_35p = '35p'
_35t = '35t'
_35ti = '35ti'
_35tl = '35tl'
_37p = '37p'
_39dr = '39dr'
_3cg = '3cg'
_3eg = '3eg'
_3p = '3p'
_410t = '410t'
_410tl = '410tl'
_420t = '420t'
_420tl = '420tl'
_43dr = '43dr'
_440 = '440'
_45p = '45p'
_46dr = '46dr'
_47dr = '47dr'
_47p = '47p'
_480t = '480t'
_480tl = '480tl'
_48dr = '48dr'
_49dr = '49dr'
_4cg = '4cg'
_4eg = '4eg'
_4ev = '4ev'
_50 = '50'
_50t = '50t'
_50ti = '50ti'
_50tl = '50tl'
_585t = '585t'
_58dr = '58dr'
_59dr = '59dr'
_5cg = '5cg'
_5eg = '5eg'
_5ev = '5ev'
_5p = '5p'
_6 = '6'
_6cg = '6cg'
_6eg = '6eg'
_70t = '70t'
_70tl = '70tl'
_75 = '75'
_75t = '75t'
_75ti = '75ti'
_75tl = '75tl'
_7cg = '7cg'
_7eg = '7eg'
_7ev = '7ev'
_7p = '7p'
_9cg = '9cg'
_9eg = '9eg'
_9p = '9p'
h580t = 'h580t'
h870t = 'h870t'
u060 = 'u060'
x1140t = 'x1140t'
x330t = 'x330t'
x415t = 'x415t'
x485t = 'x485t'
x550t = 'x550t'
x690t = 'x690t'
x980t = 'x980t'
[docs]
class Family():
artix7 = '7a'
kintex7 = '7k'
virtex7 = '7v'
zynq7000 = '7z'
spartan7 = '7s'
zynqUltrascale = 'zu'
kintexUltrascale = 'ku'
virtexUltrascale = "vu"
rtKintexUltrascale = "rk"
virtexuplus = "u2"
# versal = 'vc'
versal = 'vm'
versalHbm = "vh"
[docs]
class Speedgrade():
# higher number = faster
# * HP = High power
# * LP = Low power
# * HV = High Voltange
# * LV = Low voltange
# * I = Industrial
# * E = Extended temperature range 0°C to 100°C
# * Q = Expanded temperature range -40°C to 125°C
# * M = Military
# * G = Higher performance transceivers
_1 = "-1"
_1H = "-1H"
_1HP = "-1HP"
_1HV = "-1HV"
_1I = "-1I"
_1IL = "-1IL"
_1L = "-1L"
_1LV = "-1LV"
_1LP = "-1LP-e-S"
_1M = "-1M"
_1ML = "-1ML"
_1Q = "-1Q"
_1QL = "-1QL"
_2 = "-2"
_2_i = "-2-i"
_2G = "-2G"
_2HP = "-2HP"
_2I = "-2I"
_2IL = "-2IL"
_2L = "-2L"
_2LP = "-2LP"
_2LV = "-2LV"
_2LVI = "-2LVI"
_3 = "-3"
_3HP = "-3HP-e-S"
_3LP = "-3LP"
[docs]
class Grade():
AUTOMOTIVE = "a"
CUSTOMMER = "c"
DEFENSE_AND_SPACE = "q"
def __init__(self, family, size, package, speedgrade, grade="c"):
self.family = family
self.size = size
self.package = package
self.speedgrade = speedgrade
self.grade = grade
[docs]
def as_tuple(self):
return (
self.family,
self.size,
self.package,
self.speedgrade,
self.grade,
)
def __eq__(self, other):
return isinstance(other, self.__class__) and self.as_tuple() == other.as_tuple()
def __hash__(self):
return hash(self.as_tuple())
[docs]
def name(self):
F = self.Family
if self.family in (F.artix7, F.kintex7, F.virtex7, F.zynq7000, F.spartan7):
return ''.join(["x", self.grade, self.family, self.size, self.package, self.speedgrade])
else:
return ''.join(["x", self.grade, self.family, self.size, "-", self.package, self.speedgrade])
def __repr__(self):
return f"<{self.__class__.__name__:s} {self.grade:s} {self.family:s} {self.size:s} {self.package} {self.speedgrade:s}>"