Added spiOverJtag for Spartan3E (xc3s500evq100)
This commit is contained in:
parent
f8da6717ce
commit
a12793ed70
|
|
@ -1,4 +1,4 @@
|
||||||
XILINX_PARTS := xc6slx16ftg256 xc6slx16csg324 xc6slx45csg324 xc6slx100fgg484 \
|
XILINX_PARTS := xc3s500evq100 xc6slx16ftg256 xc6slx16csg324 xc6slx45csg324 xc6slx100fgg484 \
|
||||||
xc6slx150tfgg484 \
|
xc6slx150tfgg484 \
|
||||||
xc7a35tcpg236 xc7a35tcsg324 xc7a35tftg256 \
|
xc7a35tcpg236 xc7a35tcsg324 xc7a35tftg256 \
|
||||||
xc7a50tcpg236 xc7a75tfgg484 xc7a100tcsg324 xc7a100tfgg484 xc7a200tsbg484 \
|
xc7a50tcpg236 xc7a75tfgg484 xc7a100tcsg324 xc7a100tfgg484 xc7a200tsbg484 \
|
||||||
|
|
|
||||||
|
|
@ -44,12 +44,18 @@ elif subpart == "xc7s":
|
||||||
elif subpart == "xc6s":
|
elif subpart == "xc6s":
|
||||||
family = "Spartan6"
|
family = "Spartan6"
|
||||||
tool = "ise"
|
tool = "ise"
|
||||||
|
speed = -3
|
||||||
|
elif subpart == "xc3s":
|
||||||
|
family = "Spartan3E"
|
||||||
|
tool = "ise"
|
||||||
|
speed = -4
|
||||||
else:
|
else:
|
||||||
print("Error: unknown device")
|
print("Error: unknown device")
|
||||||
os.sys.exit()
|
os.sys.exit()
|
||||||
|
|
||||||
if tool in ["ise", "vivado"]:
|
if tool in ["ise", "vivado"]:
|
||||||
pkg_name = {
|
pkg_name = {
|
||||||
|
"xc3s500evq100" : "xc3s_vq100",
|
||||||
"xc6slx16ftg256" : "xc6s_ftg256",
|
"xc6slx16ftg256" : "xc6s_ftg256",
|
||||||
"xc6slx16csg324" : "xc6s_csg324",
|
"xc6slx16csg324" : "xc6s_csg324",
|
||||||
"xc6slx45csg324" : "xc6s_csg324",
|
"xc6slx45csg324" : "xc6s_csg324",
|
||||||
|
|
@ -73,18 +79,20 @@ if tool in ["ise", "vivado"]:
|
||||||
cst_type = "UCF"
|
cst_type = "UCF"
|
||||||
tool_options = {'family': family,
|
tool_options = {'family': family,
|
||||||
'device': {
|
'device': {
|
||||||
|
"xc3s500evq100": "xc3s500e",
|
||||||
"xc6slx16ftg256": "xc6slx16",
|
"xc6slx16ftg256": "xc6slx16",
|
||||||
"xc6slx16csg324": "xc6slx16",
|
"xc6slx16csg324": "xc6slx16",
|
||||||
"xc6slx45csg324": "xc6slx45",
|
"xc6slx45csg324": "xc6slx45",
|
||||||
"xc6slx100fgg484": "xc6slx100",
|
"xc6slx100fgg484": "xc6slx100",
|
||||||
"xc6slx150tfgg484": "xc6slx150t"}[part],
|
"xc6slx150tfgg484": "xc6slx150t"}[part],
|
||||||
'package': {
|
'package': {
|
||||||
|
"xc3s500evq100": "vq100",
|
||||||
"xc6slx16ftg256": "ftg256",
|
"xc6slx16ftg256": "ftg256",
|
||||||
"xc6slx16csg324": "csg324",
|
"xc6slx16csg324": "csg324",
|
||||||
"xc6slx45csg324": "csg324",
|
"xc6slx45csg324": "csg324",
|
||||||
"xc6slx100fgg484": "fgg384",
|
"xc6slx100fgg484": "fgg384",
|
||||||
"xc6slx150tfgg484": "fgg484"}[part],
|
"xc6slx150tfgg484": "fgg484"}[part],
|
||||||
'speed' : -3
|
'speed' : speed
|
||||||
}
|
}
|
||||||
else:
|
else:
|
||||||
cst_type = "xdc"
|
cst_type = "xdc"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
NET "sdi_dq0" LOC = P27 | IOSTANDARD = LVCMOS33;
|
||||||
|
NET "sdo_dq1" LOC = P44 | IOSTANDARD = LVCMOS33;
|
||||||
|
NET "csn" LOC = P24 | IOSTANDARD = LVCMOS33;
|
||||||
|
NET "sck" LOC = P50 | IOSTANDARD = LVCMOS33;
|
||||||
|
|
||||||
Binary file not shown.
|
|
@ -1,8 +1,12 @@
|
||||||
module spiOverJtag
|
module spiOverJtag
|
||||||
(
|
(
|
||||||
output csn,
|
output csn,
|
||||||
|
|
||||||
`ifdef spartan6
|
`ifdef spartan6
|
||||||
output sck,
|
output sck,
|
||||||
|
`endif
|
||||||
|
`ifdef spartan3e
|
||||||
|
output sck,
|
||||||
`endif
|
`endif
|
||||||
output sdi_dq0,
|
output sdi_dq0,
|
||||||
input sdo_dq1,
|
input sdo_dq1,
|
||||||
|
|
@ -41,6 +45,10 @@ module spiOverJtag
|
||||||
|
|
||||||
`ifdef spartan6
|
`ifdef spartan6
|
||||||
assign sck = drck;
|
assign sck = drck;
|
||||||
|
`else
|
||||||
|
`ifdef spartan3e
|
||||||
|
assign sck = drck;
|
||||||
|
assign runtest = tmp_up_s;
|
||||||
`else
|
`else
|
||||||
STARTUPE2 #(
|
STARTUPE2 #(
|
||||||
.PROG_USR("FALSE"), // Activate program event security feature. Requires encrypted bitstreams.
|
.PROG_USR("FALSE"), // Activate program event security feature. Requires encrypted bitstreams.
|
||||||
|
|
@ -61,7 +69,27 @@ module spiOverJtag
|
||||||
.USRDONETS(1'b1) // 1-bit input: User DONE 3-state enable output
|
.USRDONETS(1'b1) // 1-bit input: User DONE 3-state enable output
|
||||||
);
|
);
|
||||||
`endif
|
`endif
|
||||||
|
`endif
|
||||||
|
|
||||||
|
`ifdef spartan3e
|
||||||
|
BSCAN_SPARTAN3 bscane2_inst (
|
||||||
|
.CAPTURE(capture), // 1-bit output: CAPTURE output from TAP controller.
|
||||||
|
.DRCK1 (drck), // 1-bit output: Gated TCK output. When SEL
|
||||||
|
// is asserted, DRCK toggles when
|
||||||
|
// CAPTURE or SHIFT are asserted.
|
||||||
|
.DRCK2 (), // 1-bit output: USER2 function
|
||||||
|
.RESET (), // 1-bit output: Reset output for TAP controller.
|
||||||
|
.SEL1 (sel), // 1-bit output: USER1 instruction active output.
|
||||||
|
.SEL2 (), // 1-bit output: USER2 instruction active output.
|
||||||
|
.SHIFT (), // 1-bit output: SHIFT output from TAP controller.
|
||||||
|
.TDI (tdi), // 1-bit output: Test Data Input (TDI) output
|
||||||
|
// from TAP controller.
|
||||||
|
.UPDATE (update), // 1-bit output: UPDATE output from TAP controller
|
||||||
|
.TDO1 (tdo), // 1-bit input: Test Data Output (TDO) input
|
||||||
|
// for USER1 function.
|
||||||
|
.TDO2 () // 1-bit input: USER2 function
|
||||||
|
);
|
||||||
|
`else
|
||||||
`ifdef spartan6
|
`ifdef spartan6
|
||||||
BSCAN_SPARTAN6 #(
|
BSCAN_SPARTAN6 #(
|
||||||
`else
|
`else
|
||||||
|
|
@ -88,5 +116,6 @@ module spiOverJtag
|
||||||
.TDO (tdo) // 1-bit input: Test Data Output (TDO) input
|
.TDO (tdo) // 1-bit input: Test Data Output (TDO) input
|
||||||
// for USER function.
|
// for USER function.
|
||||||
);
|
);
|
||||||
|
`endif
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue