24 #include "../../../Common/str.h"
30 int deviceID = getDeviceByIDCODE(IDCODE);
32 throw runtime_error(
string(
"Unknown device with IDCODE = ").append(
to_string(IDCODE)).append(
" . Maybe the device is not Xilinx US+ device?"));
38 int deviceID = getDeviceByName(name);
40 throw runtime_error(
string(
"Unknown device: ").append(name).append(
". Maybe the device is not Xilinx US+ device?"));
45 setDeviceByNameOrThrow(partName);
49 int deviceID = getDeviceByNameOrThrow(name);
50 setDevice(deviceID, name);
54 int deviceID = getDeviceByIDCODEorThrow(idcode);
548 bool customNameSet =
false;
549 #define setCustomPartName(x) {customNameSet = true; partName = x;}
737 setCustomPartName(
"xcu200-fsgd2104-2-e");
741 setCustomPartName(
"xcu250-figd2104-2l-e");
745 setCustomPartName(
"xcu26-l2vsva1365e");
752 setCustomPartName(
"xcu50-fsvh2104-2lv-e");
759 setCustomPartName(
"xcu55c-l2fsvh2892e");
776 setCustomPartName(
"xck26-sfvc784-2lv-c");
780 setCustomPartName(
"xck26-sfvc784-2lv-i");
784 setCustomPartName(
"xck26-sfvc784-2lv-c");
792 setCustomPartName(
"xczu5eg-1sfvc784");
796 setCustomPartName(
"xczu9eg-2ffvb1156");
800 setCustomPartName(
"xczu7ev-2ffvc1156");
804 setCustomPartName(
"xczu7ev-2ffvc1156");
808 setCustomPartName(
"xczu15eg-2sffvb1156i");
812 setCustomPartName(
"xczu2cg-1sfvc784e");
816 setCustomPartName(
"xczu3eg-1sfvc784i");
820 setCustomPartName(
"xczu4ev-1sfvc784i");
824 setCustomPartName(
"xczu5ev-2sfvc784i");
828 setCustomPartName(
"xczu9eg-2ffvb1156i");
832 setCustomPartName(
"xczu7ev-fbvb900");
839 setCustomPartName(
"xczu3eg-sfvc784-1-e");
843 setCustomPartName(
"xczu5ev-sfvc784-1-e");
847 setCustomPartName(
"xczu6eg-2ffvb1156e");
851 setCustomPartName(
"xczu9eg-2ffvb1156e");
855 setCustomPartName(
"xczu15eg-2ffvb1156e");
859 setCustomPartName(
"xcvu9p-3flgb2104e");
863 setCustomPartName(
"xcvu9p-2flgb2104e");
867 setCustomPartName(
"xcvu13p-3fhgb2104e");
871 setCustomPartName(
"xcvu13p-2fhgb2104e");
875 setCustomPartName(
"xcvu37p-2fsvh2892e4539");
879 setCustomPartName(
"xcvu47p-2fsvh2892e4539");
883 setCustomPartName(
"xczu11eg-3ffvc1760e");
887 setCustomPartName(
"xqzu19eg-2ffvc1760e");
891 setCustomPartName(
"xczu19eg-2ffvc1760e");
895 setCustomPartName(
"xczu3eg-1sfvc784e");
899 setCustomPartName(
"xczu3eg-1sfvc784e");
903 setCustomPartName(
"xczu2cg-1sbva484e");
907 setCustomPartName(
"xczu3eg-1sfvc784e");
911 setCustomPartName(
"xczu7ev-1fbvb900e");
915 setCustomPartName(
"xczu9eg-1ffvc900e");
919 setCustomPartName(
"xczu9eg-2ffvc900i");
923 setCustomPartName(
"xczu15eg-1ffvc900e");
927 setCustomPartName(
"xczu6eg-1ffvc900i");
931 setCustomPartName(
"xczu9eg-1ffvb1156e");
935 setCustomPartName(
"xczu11eg-1ffvc1760i");
939 setCustomPartName(
"zu7ev-ffvc1156");
943 setCustomPartName(
"xczu11eg");
947 setCustomPartName(
"xczu29dr");
951 setCustomPartName(
"xczu48dr-2fsvg1517e5184");
955 setCustomPartName(
"xczu49dr-2ffvf1760");
959 setCustomPartName(
"xczu67dr-2fsve1156i");
963 setCustomPartName(
"xczu3eg-sbva484-1-i");
970 setCustomPartName(
"xcvu19p-2fsvb3824e");
974 setCustomPartName(
"xcvu9p-l2fsgd2104e");
978 setCustomPartName(
"xcvu9p-lga2104e");
982 setCustomPartName(
"xcvu37p-l2fsvh2892e");
986 setCustomPartName(
"xcvu29p-l2fsga2577e");
990 setCustomPartName(
"xcvu9p-3flgb2104e");
994 setCustomPartName(
"xcvu9p-2flgb2104e");
998 setCustomPartName(
"xcvu13p-3fhgb2104e");
1002 setCustomPartName(
"xcvu13p-2fhgb2104e");
1006 setCustomPartName(
"xcvu5p-2flgb2104e");
1010 setCustomPartName(
"xcvu9p-2flgb2104e");
1014 setCustomPartName(
"xcvu13p-2fhgb2104e");
1018 setCustomPartName(
"xcvu9p-2flgb2104e");
1022 setCustomPartName(
"xcvu13p-2fhgb2104e");
1026 setCustomPartName(
"xczu28dr-2ffvg1517");
1030 setCustomPartName(
"xczu48dr-2ffvg1517");
1034 setCustomPartName(
"xczu29dr-2ffvf1760e");
1038 setCustomPartName(
"xczu49dr-2ffvf1760e");
1042 setCustomPartName(
"xczu28dr-2ffvg1517");
1046 setCustomPartName(
"xczu48dr-2ffvg1517");
1050 setCustomPartName(
"xczu11eg-3ffvc1760e");
1054 setCustomPartName(
"xczu19eg-2ffvc1760e");
1058 setCustomPartName(
"xczu28dr-2ffvg1517");
1062 setCustomPartName(
"xczu48dr-ffvg1517-2-i");
1066 setCustomPartName(
"xczu48dr-2ffvg1517");
1074 setCustomPartName(
"xcku5p-ffvb676-2-e");
1078 setCustomPartName(
"xczu19eg-ffvd1760-2L-e");
1082 setCustomPartName(
"xczu21dr-ffvd1156-2L-e");
1086 setCustomPartName(
"xczu29dr-ffvf1760-2-e");
1090 setCustomPartName(
"xczu39dr-ffvf1760-2-i");
1094 setCustomPartName(
"xczu28dr-ffvg1517-2-e");
1098 setCustomPartName(
"xczu5ev-sfvc784-1-e");
1102 setCustomPartName(
"xczu3eg-sfvc784-1-e");
1105 default:
throw runtime_error(
"Unknown device ID.");
1107 #undef setCustomPartName
1109 if(customPartName !=
"")
1110 partName = customPartName;
1113 log(
"Initialized device resource string for \"" + initializedResourceStringShortPartName +
"\"");
1117 if(initializedResourceStringShortPartName ==
"") {
1118 cout <<
"A list of currently supported Xilinx UltraScale+ devices: " << endl;
1120 cout <<
" UltraScale+ Artix: " << endl;
1121 cout <<
" XCAU10P, XCAU15P, XCAU20P, XCAU25P" << endl;
1124 cout <<
" UltraScale+ Kintex: " << endl;
1125 cout <<
" XCKU3P, XQKU3P, XCKU5P, XQKU5P, XCKU9P, XQKU9P, XCKU11P, XQKU11P, XCKU13P, XQKU13P, XCKU15P, XQKU15P, XCKU19P, XQKU19P" << endl;
1128 cout <<
" UltraScale+ Virtex: " << endl;
1129 cout <<
" XCVU3P, XQVU3P, XCVU5P, XQVU5P, XCVU7P, XQVU7P, XCVU9P, XQVU9P, XCVU11P, XQVU11P, XCVU13P, XQVU13P, " << endl;
1130 cout <<
" XCVU19P, XQVU19P, XCVU23P, XQVU23P, XCVU27P, XQVU27P, XCVU29P, XQVU29P, XCVU31P, XQVU31P, XCVU33P, " << endl;
1131 cout <<
" XQVU33P, XCVU35P, XQVU35P, XCVU37P, XQVU37P, XCVU45P, XQVU45P, XCVU47P, XQVU47P, XCVU57P, XQVU57P" << endl;
1134 cout <<
" UltraScale+ Zynq RFSoC: " << endl;
1135 cout <<
" XCZU21DR, XQZU21DR, XCZU25DR, XCZU27DR, XCZU28DR, XQZU28DR, XCZU29DR, XQZU29DR, XCZU39DR, XCZU42DR, " << endl;
1136 cout <<
" XCZU43DR, XCZU46DR, XQZU48DR, XQZU49DR, XCZU47DR, XCZU48DR, XCZU49DR" << endl;
1139 cout <<
" UltraScale+ Zynq MPSoC: " << endl;
1140 cout <<
" XCZU1, XAZU1, XQZU1, XCZU2, XAZU2, XQZU2, XCZU3, XAZU3, XQZU3, XCZU4, XAZU4, XQZU4, " << endl;
1141 cout <<
" XCZU5, XAZU5, XQZU5, XCZU6, XAZU6, XQZU6, XCZU7, XAZU7, XQZU7, XCZU9, XAZU9, XQZU9, " << endl;
1142 cout <<
" XCZU11, XAZU11, XQZU11, XCZU15, XAZU15, XQZU15, XCZU17, XAZU17, XQZU17, XCZU19, XAZU19, XQZU19" << endl;
1145 cout <<
" UltraScale+ Alveo: " << endl;
1146 cout <<
" XCU200, Alveo U200, XCU250, Alveo U250, XCU26, Alveo U26, XCUX35, Alveo U35, XCU50, Alveo U50, " << endl;
1147 cout <<
" XCU55N, Alveo U55N, XCU55C, Alveo U55C, XCU280, Alveo U280, XCU30, Alveo U30, XCU25, Alveo U25" << endl;
1150 cout <<
" Misc UltraScale+ Boards: " << endl;
1151 cout <<
" ZCU 102, ZU-GMSL2, ZCU104, ZCU106, AXU15EG, AXU2CG, AXU3EG, AXU4EV, AXU5EV, AXU9EG, ULTRAZED-EV, CHAMP-XD1S, ZU-3EG, " << endl;
1152 cout <<
" ZU-5EV, HTG-Z999-06, HTG-Z999-09, HTG-Z999-15, HTG-930-9-3, HTG-930-9, HTG-930-13-3, HTG-930-13, HTG-937-37P, HTG-937-47P, " << endl;
1153 cout <<
" HTG-Z922-11, HTG-Z922-19-DG, HTG-Z922-19, CZU3EG, CZU4EV, TE0802, TE0803-04-3BE11, TE0807-03-7DE21, TE0808-05-9BE21, " << endl;
1154 cout <<
" TE0808-05-9GI21, TE0808-05-BBE21, TE0812, TEB0911, TEB0912, TYSOM-3-ZU7EV, XPEDITE2600, AMC574, ZCU208, ZCU216, ZCU670, " << endl;
1155 cout <<
" Ultra96, K26C, K26I, KV260, AMC584, HTG-960, VCU1525, VCU118, VCU128, VCU129, HTG-940-9-3, HTG-940-9, HTG-940-13-3, " << endl;
1156 cout <<
" HTG-940-13, HTG-9200-5P, HTG-9200-9P, HTG-9200-13P, HTG-VUP-PCIE-HH-9P, HTG-910-9, HTG-VUP-PCIE-HH-13P, HTG-910-13, " << endl;
1157 cout <<
" HTG-ZRF-FMC-28, HTG-ZRF-FMC-48, HTG-ZRF16-29, HTG-ZRF16-49, HTG-ZRF-HH-28, HTG-ZRF-HH-48, HTG-ZUSP-PCIE-11-3, " << endl;
1158 cout <<
" HTG-ZUSP-PCIE-19-2, HTG-ZRF8-R2-28, HTG-ZRF8-28, HTG-ZRF8-R2-48-I, HTG-ZRF8-48-I, HTG-ZRF8-R2-48, HTG-ZRF8-48" << endl;
1159 cout <<
" ZUBoard 1CG, KCU 116, Vermeo T1 MPSoC, Vermeo T1 RFSoC, ZCU 1275, ZCU 1285, ZCU 111, PYNQ-ZU" << endl;
@ XUSP_DEVICE_HTG_VUP_PCIE_HH_13P
@ XUSP_DEVICE_HTG_Z999_15
@ XUSP_DEVICE_HTG_Z999_09
@ XUSP_DEVICE_VERMEO_T1_MP
@ XUSP_DEVICE_TE0808_05_9BE21
@ XUSP_DEVICE_HTG_9200_9P
@ XUSP_DEVICE_VERMEO_T1_RF
@ XUSP_DEVICE_HTG_ZRF8_R2_28
@ XUSP_DEVICE_HTG_ZRF16_29
@ XUSP_DEVICE_HTG_Z922_11
@ XUSP_DEVICE_HTG_9200_5P
@ XUSP_DEVICE_HTG_940_13_3
@ XUSP_DEVICE_TYSOM_3_ZU7EV
@ XUSP_DEVICE_HTG_ZRF8_R2_48
@ XUSP_DEVICE_HTG_930_9_3
@ XUSP_DEVICE_HTG_930_13_3
@ XUSP_DEVICE_HTG_ZRF16_49
@ XUSP_DEVICE_HTG_ZUSP_PCIE_11_3
@ XUSP_DEVICE_GENESYS_3EG
@ XUSP_DEVICE_HTG_940_9_3
@ XUSP_DEVICE_TE0808_05_9GI21
@ XUSP_DEVICE_HTG_ZRF_FMC_28
@ XUSP_DEVICE_HTG_Z922_19_DG
@ XUSP_DEVICE_HTG_Z999_06
@ XUSP_DEVICE_HTG_9200_13P
@ XUSP_DEVICE_HTG_VUP_PCIE_HH_9P
@ XUSP_DEVICE_HTG_Z922_19
@ XUSP_DEVICE_HTG_937_47P
@ XUSP_DEVICE_HTG_ZRF_HH_48
@ XUSP_DEVICE_ULTRAZED_EV
@ XUSP_DEVICE_ZUBOARD_1CG
@ XUSP_DEVICE_TE0808_05_BBE21
@ XUSP_DEVICE_HTG_937_37P
@ XUSP_DEVICE_TE0803_04_3BE11
@ XUSP_DEVICE_XPEDITE2600
@ XUSP_DEVICE_GENESYS_5EV
@ XUSP_DEVICE_HTG_ZRF_FMC_48
@ XUSP_DEVICE_HTG_ZRF8_R2_48_I
@ XUSP_DEVICE_HTG_ZUSP_PCIE_19_2
@ XUSP_DEVICE_TE0807_03_7DE21
@ XUSP_DEVICE_HTG_ZRF_HH_28
int getDeviceByNameOrThrow(std::string) override
int getDeviceByIDCODE(int) override
void setDeviceByNameOrThrow(std::string) override
void setDevice(int, std::string="") override
void setDeviceByPartNameOrThrow() override
int getDeviceByIDCODEorThrow(int) override
void setDeviceByIDCODEOrThrow(int) override
int getDeviceByName(std::string) override
void clearResourceStringArrays()
void printResourceStringInfo()
std::string to_string(Endianness e)
bool stringContains(std::string checkedString)
Returns false. End of recursion for template.
std::string stringToLower(std::string str)
Replaces all uppercase characters in str with lowercase and returns the resulting string.
std::string removeSpaces(std::string str)
Removes all space chars of str returns the resulting string.