arty-a7: add UART harness Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
diff --git a/Info.md b/Info.md index 72bb922..19ad4ea 100644 --- a/Info.md +++ b/Info.md
@@ -37,7 +37,7 @@ # Details -Last updated on Fri Mar 22 22:39:24 UTC 2019 (2019-03-22T22:39:24+00:00). +Last updated on Fri Mar 22 23:47:22 UTC 2019 (2019-03-22T23:47:22+00:00). Created using [Project X-Ray](https://github.com/SymbiFlow/prjxray) version [5e9211d](https://github.com/SymbiFlow/prjxray/commit/5e9211d57ccc0c1c46088bcf858f8f552fe6301f). @@ -96,7 +96,7 @@ * [`8c6097166bf4b43969c49894dc464d1202f19683d7287a63ec709bc867d97105 ./artix7/element_counts.csv`](./artix7/element_counts.csv) * [`6864d8edcef442cb129f83b9c5cd27be85d1b4bded8007bbeadcfc70717f8c48 ./artix7/gridinfo/grid-xc7a50tfgg484-1-db.txt`](./artix7/gridinfo/grid-xc7a50tfgg484-1-db.txt) - * [`3aacff527ff9389f20510c56014b7bc2c54116d9d0d3199216743cfbdd09664d ./artix7/harness/README.md`](./artix7/harness/README.md) + * [`2b18b3806f0e58024469eac1fe11749d04c6b035d2c2eafa7d2f30bf57173fa9 ./artix7/harness/README.md`](./artix7/harness/README.md) * [`8416e8eef29e5defebbd3e45f60baa15cbcc22d66647a8da62ec7c42eff8b521 ./artix7/harness/arty-a7/pmod/design.bit`](./artix7/harness/arty-a7/pmod/design.bit) * [`c98eefb677a5cd469b75223d6ceb0e95f5d331de00291193caed008f33ee746c ./artix7/harness/arty-a7/pmod/design.dcp`](./artix7/harness/arty-a7/pmod/design.dcp) * [`13382ee7fffcd88636892517929e7c60a6e82bb63324a4e48414bb16eb81174b ./artix7/harness/arty-a7/pmod/design.json`](./artix7/harness/arty-a7/pmod/design.json) @@ -105,6 +105,10 @@ * [`578bbe948ecc1af59c3e9cda0aacd53841d31534a6ec156af9d2779aee8770f4 ./artix7/harness/arty-a7/swbut/design.dcp`](./artix7/harness/arty-a7/swbut/design.dcp) * [`124264a1ac88ce1e72eef3d337dc1b67287413036e1e0bf4e1eb52df3cef17ee ./artix7/harness/arty-a7/swbut/design.json`](./artix7/harness/arty-a7/swbut/design.json) * [`d8c1255df5bc352fbff05b9688b86becfc7d28ee82663256332e0a7b8ac4b338 ./artix7/harness/arty-a7/swbut/design.txt`](./artix7/harness/arty-a7/swbut/design.txt) + * [`7f92af7280a5e8563dd764c52356e2f914a20b5d413ff1441c546da6101df21c ./artix7/harness/arty-a7/uart/design.bit`](./artix7/harness/arty-a7/uart/design.bit) + * [`78616f1443dcacb0af37f78ba507c81f0a6115770e538430d5c7382aa48edd6a ./artix7/harness/arty-a7/uart/design.dcp`](./artix7/harness/arty-a7/uart/design.dcp) + * [`8df57ddc871785ba1710beb4a14c6ceed706cfb48bfbc425182f2a96742fdd13 ./artix7/harness/arty-a7/uart/design.json`](./artix7/harness/arty-a7/uart/design.json) + * [`0583aa7502ee7a0303510c524f5500d8e1b9598aa26016d3d0e4e9623bf8ab8d ./artix7/harness/arty-a7/uart/design.txt`](./artix7/harness/arty-a7/uart/design.txt) * [`3e70378bc05fe32951fed4816f634ff35e5f1511d992ebf8e6718d6d8a65943f ./artix7/harness/basys3/swbut/design.bit`](./artix7/harness/basys3/swbut/design.bit) * [`8cac3f210fcc33e78fe576841c286a19138be26004dee70397f93a0b3019e451 ./artix7/harness/basys3/swbut/design.dcp`](./artix7/harness/basys3/swbut/design.dcp) * [`2e19b7f8aaaf6fd6e891fa16ceb351eaf659202ef512598ec8f518c57d6ab484 ./artix7/harness/basys3/swbut/design.json`](./artix7/harness/basys3/swbut/design.json)
diff --git a/artix7/harness/README.md b/artix7/harness/README.md index a13f3b8..e4fc25f 100644 --- a/artix7/harness/README.md +++ b/artix7/harness/README.md
@@ -39,6 +39,7 @@ Supported harness configurations; * [SWBUT](#swbut) * [PMOD](#pmod) + * [UART](#uart) ## [Basys 3](basys3) @@ -83,3 +84,11 @@ Supported boards; * [Arty A7-35T](#Arty%20A7-35T) +## UART + +Harness which maps a board's UART, a reset button, an LED into the region of +interest (plus a clock). + +Supported boards; + * [Arty A7-35T](#Arty%20A7-35T) +
diff --git a/artix7/harness/arty-a7/uart/design.bit b/artix7/harness/arty-a7/uart/design.bit new file mode 100644 index 0000000..7aca898 --- /dev/null +++ b/artix7/harness/arty-a7/uart/design.bit Binary files differ
diff --git a/artix7/harness/arty-a7/uart/design.dcp b/artix7/harness/arty-a7/uart/design.dcp new file mode 100644 index 0000000..6a838ac --- /dev/null +++ b/artix7/harness/arty-a7/uart/design.dcp Binary files differ
diff --git a/artix7/harness/arty-a7/uart/design.json b/artix7/harness/arty-a7/uart/design.json new file mode 100644 index 0000000..9d4f505 --- /dev/null +++ b/artix7/harness/arty-a7/uart/design.json
@@ -0,0 +1,260 @@ +{ + "info": { + "GRID_X_MAX": 58, + "GRID_X_MIN": 10, + "GRID_Y_MAX": 51, + "GRID_Y_MIN": 0 + }, + "ports": [ + { + "name": "clk", + "node": "CLK_HROW_TOP_R_X60Y130/CLK_HROW_CK_BUFHCLK_L0", + "pin": "E3", + "wire": "HCLK_VBRK_X34Y130/HCLK_VBRK_CK_BUFHCLK0" + }, + { + "name": "din[0]", + "node": "INT_R_X25Y126/WW2BEG1", + "pin": "C2", + "wire": "VBRK_X61Y132/VBRK_WW2END1", + "wires_outside_roi": [ + "BRAM_INT_INTERFACE_R_X37Y87/INT_INTERFACE_LH6", + "BRAM_R_X37Y85/BRAM_LH6_2", + "BRKH_INT_X31Y99/BRKH_INT_LV12", + "CLBLL_L_X24Y126/CLBLL_WW2END1", + "CLBLL_L_X26Y123/CLBLL_WW4END3", + "CLBLL_L_X38Y87/CLBLL_LH6", + "CLBLL_L_X40Y87/CLBLL_LH4", + "CLBLL_R_X31Y87/CLBLL_LH12", + "CLBLM_L_X32Y87/CLBLM_LH12", + "CLBLM_L_X36Y87/CLBLM_LH8", + "CLBLM_R_X25Y123/CLBLM_WW4END3", + "CLBLM_R_X33Y87/CLBLM_LH10", + "CLBLM_R_X35Y87/CLBLM_LH8", + "CLBLM_R_X39Y87/CLBLM_LH4", + "CLBLM_R_X41Y87/CLBLM_LH2", + "CLK_HROW_TOP_R_X60Y130/CLK_HROW_WW2END1_5", + "CMT_FIFO_L_X107Y97/CMT_FIFO_LH2_0", + "CMT_TOP_L_UPPER_T_X106Y96/CMT_TOP_LH2_0", + "DSP_L_X34Y85/DSP_LH10_2", + "HCLK_R_X110Y78/HCLK_LV5", + "HCLK_R_X64Y130/HCLK_NN2BEG2", + "INT_INTERFACE_L_X34Y87/INT_INTERFACE_LH10", + "INT_INTERFACE_L_X42Y87/INT_INTERFACE_LH2", + "INT_INTERFACE_R_X23Y126/INT_INTERFACE_WW2END1", + "INT_L_X24Y126/WW2A1", + "INT_L_X26Y123/WW4C3", + "INT_L_X30Y123/WW4A3", + "INT_L_X32Y87/LH11", + "INT_L_X34Y87/LH9", + "INT_L_X36Y87/LH7", + "INT_L_X38Y87/LH5", + "INT_L_X40Y87/LH3", + "INT_L_X42Y87/LH1", + "INT_R_X25Y123/NL1BEG2", + "INT_R_X25Y123/WW4END3", + "INT_R_X25Y124/NL1END2", + "INT_R_X25Y124/NN2BEG2", + "INT_R_X25Y125/NN2A2", + "INT_R_X25Y126/NN2END2", + "INT_R_X25Y126/WW2BEG1", + "INT_R_X27Y123/WW4B3", + "INT_R_X31Y100/LV13", + "INT_R_X31Y101/LV14", + "INT_R_X31Y102/LV15", + "INT_R_X31Y103/LV16", + "INT_R_X31Y104/LV17", + "INT_R_X31Y105/LV0", + "INT_R_X31Y105/LV18", + "INT_R_X31Y106/LV1", + "INT_R_X31Y107/LV2", + "INT_R_X31Y108/LV3", + "INT_R_X31Y109/LV4", + "INT_R_X31Y110/LV5", + "INT_R_X31Y111/LV6", + "INT_R_X31Y112/LV7", + "INT_R_X31Y113/LV8", + "INT_R_X31Y114/LV9", + "INT_R_X31Y115/LV10", + "INT_R_X31Y116/LV11", + "INT_R_X31Y117/LV12", + "INT_R_X31Y118/LV13", + "INT_R_X31Y119/LV14", + "INT_R_X31Y120/LV15", + "INT_R_X31Y121/LV16", + "INT_R_X31Y122/LV17", + "INT_R_X31Y123/LV18", + "INT_R_X31Y123/WW4BEG3", + "INT_R_X31Y87/LH12", + "INT_R_X31Y87/LV0", + "INT_R_X31Y88/LV1", + "INT_R_X31Y89/LV2", + "INT_R_X31Y90/LV3", + "INT_R_X31Y91/LV4", + "INT_R_X31Y92/LV5", + "INT_R_X31Y93/LV6", + "INT_R_X31Y94/LV7", + "INT_R_X31Y95/LV8", + "INT_R_X31Y96/LV9", + "INT_R_X31Y97/LV10", + "INT_R_X31Y98/LV11", + "INT_R_X31Y99/LV12", + "INT_R_X33Y87/LH10", + "INT_R_X35Y87/LH8", + "INT_R_X37Y87/LH6", + "INT_R_X39Y87/LH4", + "INT_R_X41Y87/LH2", + "INT_R_X43Y68/LOGIC_OUTS18", + "INT_R_X43Y68/NR1BEG0", + "INT_R_X43Y69/LV0", + "INT_R_X43Y69/NR1END0", + "INT_R_X43Y70/LV1", + "INT_R_X43Y71/LV2", + "INT_R_X43Y72/LV3", + "INT_R_X43Y73/LV4", + "INT_R_X43Y74/LV5", + "INT_R_X43Y75/LV6", + "INT_R_X43Y76/LV7", + "INT_R_X43Y77/LV8", + "INT_R_X43Y78/LV9", + "INT_R_X43Y79/LV10", + "INT_R_X43Y80/LV11", + "INT_R_X43Y81/LV12", + "INT_R_X43Y82/LV13", + "INT_R_X43Y83/LV14", + "INT_R_X43Y84/LV15", + "INT_R_X43Y85/LV16", + "INT_R_X43Y86/LV17", + "INT_R_X43Y87/LH0", + "INT_R_X43Y87/LV18", + "IO_INT_INTERFACE_R_X43Y68/INT_INTERFACE_LOGIC_OUTS18", + "IO_INT_INTERFACE_R_X43Y68/INT_INTERFACE_LOGIC_OUTS_B18", + "PCIE_INT_INTERFACE_L_X30Y123/INT_INTERFACE_WW4B3", + "PCIE_INT_INTERFACE_R_X27Y123/INT_INTERFACE_WW4B3", + "PCIE_TOP_X71Y125/PCIE_WW4B3_3", + "RIOB33_X43Y67/IOB_IBUF0", + "RIOI3_X43Y67/IOI_ILOGIC0_O", + "RIOI3_X43Y67/IOI_LOGIC_OUTS18_1", + "RIOI3_X43Y67/RIOI_I0", + "RIOI3_X43Y67/RIOI_IBUF0", + "RIOI3_X43Y67/RIOI_ILOGIC0_D", + "R_TERM_INT_X112Y71/TERM_INT_LOGIC_OUTS_L_B18", + "VBRK_X105Y91/VBRK_LH2", + "VBRK_X61Y132/VBRK_WW2END1", + "VBRK_X66Y128/VBRK_WW4END3", + "VBRK_X80Y91/VBRK_LH12", + "VBRK_X85Y91/VBRK_LH10", + "VBRK_X96Y91/VBRK_LH6" + ] + }, + { + "name": "din[1]", + "node": "INT_L_X0Y102/EE2BEG2", + "pin": "A9", + "wire": "VBRK_X9Y107/VBRK_EE2A2", + "wires_outside_roi": [ + "CMT_FIFO_R_X7Y112/CMT_FIFO_EE2A2_1", + "CMT_TOP_R_LOWER_B_X8Y113/CMT_TOP_EE2A2_2", + "INT_INTERFACE_R_X1Y102/INT_INTERFACE_EE2A2", + "INT_L_X0Y102/EE2BEG2", + "INT_L_X0Y102/SE2END2", + "INT_L_X0Y102/SW2A2", + "INT_L_X0Y103/SE6END2", + "INT_L_X0Y103/SW2BEG2", + "INT_L_X0Y103/SW6E2", + "INT_L_X0Y104/SW6D2", + "INT_L_X0Y105/SW6C2", + "INT_L_X0Y106/SW6B2", + "INT_L_X0Y107/SW6A2", + "INT_L_X0Y119/SE2A3", + "INT_L_X0Y120/EL1END3", + "INT_L_X0Y120/SE2BEG3", + "INT_L_X0Y120/WL1BEG3", + "INT_L_X0Y121/LOGIC_OUTS_L18", + "INT_L_X0Y121/WL1BEG_N3", + "INT_R_X1Y102/EE2A2", + "INT_R_X1Y107/LVB0", + "INT_R_X1Y107/SW6BEG2", + "INT_R_X1Y108/LVB1", + "INT_R_X1Y109/LVB2", + "INT_R_X1Y110/LVB3", + "INT_R_X1Y111/LVB4", + "INT_R_X1Y112/LVB5", + "INT_R_X1Y113/LVB6", + "INT_R_X1Y114/LVB7", + "INT_R_X1Y115/LVB8", + "INT_R_X1Y116/LVB9", + "INT_R_X1Y117/LVB10", + "INT_R_X1Y118/LVB11", + "INT_R_X1Y119/LVB12", + "INT_R_X1Y119/SE2END3", + "IO_INT_INTERFACE_L_X0Y102/INT_INTERFACE_SE2A2", + "IO_INT_INTERFACE_L_X0Y102/INT_INTERFACE_SW2A2", + "IO_INT_INTERFACE_L_X0Y103/INT_INTERFACE_SE4C2", + "IO_INT_INTERFACE_L_X0Y103/INT_INTERFACE_SW4END2", + "IO_INT_INTERFACE_L_X0Y120/INT_INTERFACE_EL1BEG3", + "IO_INT_INTERFACE_L_X0Y120/INT_INTERFACE_WL1END3", + "IO_INT_INTERFACE_L_X0Y121/INT_INTERFACE_LOGIC_OUTS_L18", + "IO_INT_INTERFACE_L_X0Y121/INT_INTERFACE_LOGIC_OUTS_L_B18", + "LIOB33_X0Y121/IOB_IBUF1", + "LIOI3_X0Y121/IOI_ILOGIC1_O", + "LIOI3_X0Y121/IOI_LOGIC_OUTS18_0", + "LIOI3_X0Y121/LIOI_I1", + "LIOI3_X0Y121/LIOI_IBUF1", + "LIOI3_X0Y121/LIOI_ILOGIC1_D", + "L_TERM_INT_X2Y107/L_TERM_INT_SW2BEG2", + "L_TERM_INT_X2Y108/L_TERM_INT_SW4C2", + "L_TERM_INT_X2Y125/L_TERM_INT_WR1BEG2", + "L_TERM_INT_X2Y126/TERM_INT_LOGIC_OUTS_L_B18", + "VBRK_X9Y107/VBRK_EE2A2" + ] + }, + { + "name": "dout[0]", + "node": "INT_L_X2Y145/SW6BEG0", + "pin": "T10", + "wire": "VBRK_X9Y151/VBRK_SW4A0", + "wires_outside_roi": [ + "CMT_FIFO_R_X7Y149/CMT_FIFO_SW4A0_8", + "CMT_TOP_R_UPPER_T_X8Y148/CMT_TOP_SW4A0_8", + "INT_INTERFACE_R_X1Y145/INT_INTERFACE_SW4A0", + "INT_L_X0Y141/SW6END0", + "INT_R_X1Y141/SW6E0", + "INT_R_X1Y142/SW6D0", + "INT_R_X1Y143/SW6C0", + "INT_R_X1Y144/SW6B0", + "INT_R_X1Y145/SW6A0", + "VBRK_X9Y151/VBRK_SW4A0" + ] + }, + { + "name": "dout[1]", + "node": "INT_L_X2Y147/SW6BEG0", + "pin": "D10", + "wire": "VBRK_X9Y153/VBRK_SW4A0", + "wires_outside_roi": [ + "CMT_FIFO_R_X7Y149/CMT_FIFO_SW4A0_10", + "CMT_TOP_R_UPPER_T_X8Y148/CMT_TOP_SW4A0_10", + "INT_INTERFACE_R_X1Y147/INT_INTERFACE_SW4A0", + "INT_L_X0Y143/SW6END0", + "INT_R_X1Y143/SW6E0", + "INT_R_X1Y144/SW6D0", + "INT_R_X1Y145/SW6C0", + "INT_R_X1Y146/SW6B0", + "INT_R_X1Y147/SW6A0", + "VBRK_X9Y153/VBRK_SW4A0" + ] + } + ], + "required_features": [ + "", + "CLK_BUFG_REBUF_X60Y117.CLK_BUFG_REBUF_R_CK_GCLK16_TOP.CLK_BUFG_REBUF_R_CK_GCLK16_BOT", + "CLK_BUFG_REBUF_X60Y117.GCLK16_ENABLE_ABOVE", + "CLK_BUFG_REBUF_X60Y117.GCLK16_ENABLE_BELOW", + "CLK_BUFG_REBUF_X60Y142.GCLK16_ENABLE_ABOVE", + "CLK_HROW_TOP_R_X60Y130.BUFHCE.BUFHCE_X0Y0.IN_USE", + "CLK_HROW_TOP_R_X60Y130.BUFHCE.BUFHCE_X0Y0.ZINV_CE", + "CLK_HROW_TOP_R_X60Y130.CLK_HROW_CK_MUX_OUT_L0.CLK_HROW_R_CK_GCLK16", + "CLK_HROW_TOP_R_X60Y130.CLK_HROW_R_CK_GCLK16_ACTIVE" + ] +}
diff --git a/artix7/harness/arty-a7/uart/design.txt b/artix7/harness/arty-a7/uart/design.txt new file mode 100644 index 0000000..6473e9d --- /dev/null +++ b/artix7/harness/arty-a7/uart/design.txt
@@ -0,0 +1,6 @@ +name node pin wire +clk CLK_HROW_TOP_R_X60Y130/CLK_HROW_CK_BUFHCLK_L0 E3 HCLK_VBRK_X34Y130/HCLK_VBRK_CK_BUFHCLK0 +din[0] INT_R_X25Y126/WW2BEG1 C2 VBRK_X61Y132/VBRK_WW2END1 +din[1] INT_L_X0Y102/EE2BEG2 A9 VBRK_X9Y107/VBRK_EE2A2 +dout[0] INT_L_X2Y145/SW6BEG0 T10 VBRK_X9Y151/VBRK_SW4A0 +dout[1] INT_L_X2Y147/SW6BEG0 D10 VBRK_X9Y153/VBRK_SW4A0