spiOverJtag: use build.py for all devices, add xc6slx45

This commit is contained in:
Gwenhael Goavec-Merou 2021-07-11 08:57:46 +02:00
parent 7d3000f88d
commit 0d57b58c26
3 changed files with 41 additions and 10 deletions

View File

@ -1,13 +1,26 @@
VIVADO := vivado -nolog -nojournal -mode batch -source
PARTS := xc7a35tcpg236 xc7a35tcsg324 xc7a35tftg256 xc7a50tcpg236 xc7a75tfgg484 xc7a100tfgg484 xc7a200tsbg484 xc7s50csga324
BIT_FILES := $(addsuffix .bit,$(addprefix spiOverJtag_, $(PARTS)))
XILINX_PARTS := xc6slx45csg324 xc6slx100fgg484 \
xc7a35tcpg236 xc7a35tcsg324 xc7a35tftg256 \
xc7a50tcpg236 xc7a75tfgg484 xc7a100tfgg484 xc7a200tsbg484 \
xc7s50csga324
XILINX_BIT_FILES := $(addsuffix .bit,$(addprefix spiOverJtag_, $(XILINX_PARTS)))
ALTERA_PARTS := 10cl025256 ep4ce2217 5ce223
ALTERA_BIT_FILES := $(addsuffix .rbf, $(addprefix spiOverJtag_, $(ALTERA_PARTS)))
BIT_FILES := $(ALTERA_BIT_FILES) $(XILINX_BIT_FILES)
all: $(BIT_FILES)
$(BIT_FILES) : spiOverJtag_%.bit : tmp_%/spiOverJtag.runs/impl_1/xilinx_spiOverJtag.bit
$(XILINX_BIT_FILES) : spiOverJtag_%.bit : tmp_%/spiOverJtag.bit
cp $< $@
tmp_%/spiOverJtag.runs/impl_1/xilinx_spiOverJtag.bit : xilinx_spiOverJtag.vhd
$(VIVADO) xilinx_spiOverJtag.tcl -tclargs $*
tmp_%/spiOverJtag.bit : xilinx_spiOverJtag.v
./build.py $*
$(ALTERA_BIT_FILES): spiOverJtag_%.rbf: tmp_%/spiOverJtag.sof
quartus_cpf --option=bitstream_compression=off -c $< $@
tmp_%/spiOverJtag.sof: altera_spiOverJtag.v
./build.py $*
clean:
-rm -rf tmp_* *.jou *.log .Xil

View File

@ -39,7 +39,7 @@ elif subpart == "xc7s":
family = "Spartan 7"
tool = "vivado"
elif subpart == "xc6s":
family = "Spartan 6"
family = "Spartan6"
tool = "ise"
else:
print("Error: unknown device")
@ -47,6 +47,8 @@ else:
if tool in ["ise", "vivado"]:
pkg_name = {
"xc6slx45csg324" : "xc6s_csg324",
"xc6slx100fgg484" : "xc6s_fgg484",
"xc7a35tcpg236" : "xc7a_cpg236",
"xc7a35tcsg324" : "xc7a_csg324",
"xc7a35tftg256" : "xc7a_ftg256",
@ -59,18 +61,29 @@ if tool in ["ise", "vivado"]:
}[part]
if tool == "ise":
cst_type = "UCF"
tool_options = {'family': family,
'device': {
"xc6slx45csg324": "xc6slx45",
"xc6slx100fgg484": "xc6slx100"}[part],
'package': {
"xc6slx45csg324": "csg324",
"xc6slx100fgg484": "fgg384"}[part],
'speed' : -3
}
else:
cst_type = "xdc"
cst_file = currDir + "constr_" + pkg_name + "." + cst_type
tool_options = {'part': part+ '-1'}
cst_file = currDir + "constr_" + pkg_name + "." + cst_type.lower()
files.append({'name': currDir + 'xilinx_spiOverJtag.v',
'file_type': 'verilogSource'})
files.append({'name': cst_file, 'file_type': cst_type})
tool_options = {'part': part+ '-1'}
else:
full_part = {
"10cl025256": "10CL025YU256C8G",
"ep4ce2217" : "EP4CE22F17C6",
"5ce223" : "5CEFA2F23I7"}[part]
"5ce223" : "5CEFA2F23I7",
"5cse423" : "5CSEMA4U23C6",
"5cse623" : "5CSEBA6U23I7"}[part]
files.append({'name': currDir + 'altera_spiOverJtag.v',
'file_type': 'verilogSource'})
files.append({'name': currDir + 'test_jtag.sdc',
@ -93,3 +106,8 @@ edam = {'name' : "spiOverJtag",
backend = get_edatool(tool)(edam=edam, work_root=build_dir)
backend.configure()
backend.build()
if tool == "vivado":
import shutil
shutil.copy("tmp_" + part + "/spiOverJtag.runs/impl_1/spiOverJtag.bit",
"tmp_" + part);

Binary file not shown.