Skip to content

Commit da89e4e

Browse files
committed
Remove --work_dir from efinity and add tests
1 parent 20f43f8 commit da89e4e

File tree

4 files changed

+104
-2
lines changed

4 files changed

+104
-2
lines changed

edalize/tools/efinity.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,6 @@ def setup(self, edam):
130130
os.path.join(self.efinity_home, "scripts", "efx_run.py"),
131131
"--prj",
132132
self.name + ".xml",
133-
"--work_dir",
134-
self.work_root,
135133
"--flow",
136134
"compile",
137135
],

tests/test_tool_efinity.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from .edalize_tool_common import tool_fixture
2+
3+
4+
def test_tool_efinity(tool_fixture):
5+
import os
6+
7+
tool_options = {"family": "Trion", "part": "T8F81", "timing": "C2"}
8+
9+
orig_env = os.environ.copy()
10+
os.environ["EFINITY_HOME"] = "path/to/efinity/intallation"
11+
tf = tool_fixture("efinity", tool_options=tool_options)
12+
os.environ = orig_env
13+
14+
name = "design"
15+
16+
tf.tool.configure()
17+
tf.compare_config_files(
18+
[
19+
name + ".xml",
20+
]
21+
)
22+
23+
24+
def test_tool_efinity_no_env(tool_fixture):
25+
import pytest
26+
27+
with pytest.raises(RuntimeError) as e:
28+
tf = tool_fixture("efinity")
29+
assert "The environment variable EFINITY_HOME is not set" in str(e.value)

tests/tools/efinity/Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#Auto generated by Edalize
2+
3+
all: outflow/design.bit
4+
5+
outflow/design.bit: sdc_file sv_file.sv vlog_file.v vlog05_file.v vlog_incfile vhdl_file.vhd vhdl_lfile vhdl2008_file another_sv_file.sv
6+
$(EDALIZE_LAUNCHER) env EFXPT_HOME=path/to/efinity/intallation/pt EFXPGM_HOME=path/to/efinity/intallation/pgm path/to/efinity/intallation/bin/python3 path/to/efinity/intallation/scripts/efx_run.py --prj design.xml --flow compile

tests/tools/efinity/design.xml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<efx:project name="design" description="" last_change_date="" location="" sw_version="" xmlns:efx="http://www.efinixinc.com/enf_proj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.efinixinc.com/enf_proj enf_proj.xsd">
3+
<efx:device_info>
4+
<efx:family name="Trion"/><efx:device name="T8F81"/><efx:timing_model name="C2"/> </efx:device_info>
5+
<efx:design_info def_veri_version="verilog_2k" def_vhdl_version="vhdl_2008">
6+
<efx:top_module name="top_module"/> <efx:design_file name="sv_file.sv" version="sv_09"/>
7+
<efx:design_file name="vlog_file.v" version=""/>
8+
<efx:design_file name="vlog05_file.v" version=""/>
9+
<efx:design_file name="vlog_incfile" version=""/>
10+
<efx:design_file name="vhdl_file.vhd" version=""/>
11+
<efx:design_file name="vhdl_lfile" version=""/>
12+
<efx:design_file name="vhdl2008_file" version=""/>
13+
<efx:design_file name="another_sv_file.sv" version="sv_09"/>
14+
<efx:top_vhdl_arch name=""/>
15+
</efx:design_info>
16+
<efx:package_info>
17+
<efx:package name=""/>
18+
</efx:package_info>
19+
<efx:constraint_info>
20+
<efx:sdc_file name="sdc_file" />
21+
</efx:constraint_info>
22+
<efx:sim_info/>
23+
<efx:misc_info/>
24+
<efx:ip_info/>
25+
<efx:synthesis tool_name="efx_map">
26+
<efx:param name="work_dir" value="work_syn" value_type="e_string"/>
27+
<efx:param name="write_efx_verilog" value="on" value_type="e_bool"/>
28+
<efx:param name="seq_opt" value="0" value_type="e_option"/>
29+
<efx:dynparam name="vlogparam_bool" value="True"/>
30+
<efx:dynparam name="vlogparam_int" value="42"/>
31+
<efx:dynparam name="vlogparam_str" value="hello"/>
32+
<efx:defmacro name="vlogdefine_bool" value="True"/>
33+
<efx:defmacro name="vlogdefine_int" value="42"/>
34+
<efx:defmacro name="vlogdefine_str" value="hello"/>
35+
</efx:synthesis>
36+
<efx:place_and_route tool_name="efx_pnr">
37+
<efx:param name="work_dir" value="work_pnr" value_type="e_string" />
38+
<efx:param name="verbose" value="off" value_type="e_bool" />
39+
<efx:param name="load_delaym" value="on" value_type="e_bool"/>
40+
</efx:place_and_route>
41+
<efx:bitstream_generation tool_name="efx_pgm">
42+
<efx:param name="mode" value="active" value_type="e_string"/>
43+
<efx:param name="width" value="1" value_type="e_string"/>
44+
<!-- on, off, smart -->
45+
<efx:param name="enable_roms" value="smart" value_type="e_option"/>
46+
<efx:param name="spi_low_power_mode" value="on" value_type="e_bool"/>
47+
<efx:param name="io_weak_pullup" value="on" value_type="e_bool"/>
48+
<efx:param name="oscillator_clock_divider" value="DIV8" value_type="e_option"/>
49+
<!-- on, off -->
50+
<efx:param name="bitstream_compression" value="on" value_type="e_bool"/>
51+
<!-- on, off -->
52+
<efx:param name="enable_external_master_clock" value="off" value_type="e_bool"/>
53+
<!-- posedge, negedge -->
54+
<efx:param name="active_capture_clk_edge" value="posedge" value_type="e_option"/>
55+
<efx:param name="jtag_usercode" value="0xFFFFFFFF" value_type="e_string"/>
56+
<!-- on, off -->
57+
<efx:param name="release_tri_then_reset" value="on" value_type="e_bool"/>
58+
</efx:bitstream_generation>
59+
<efx:debugger>
60+
<efx:param name="work_dir" value="work_dbg" value_type="e_string" />
61+
<efx:param name="auto_instantiation" value="off" value_type="e_bool" />
62+
<efx:param name="profile" value="NONE" value_type="e_string" />
63+
</efx:debugger>
64+
<efx:security>
65+
<!-- on, off -->
66+
<efx:param name="randomize_iv_value" value="on" value_type="e_bool"/>
67+
<efx:param name="iv_value" value="" value_type="e_string"/>
68+
</efx:security>
69+
</efx:project>

0 commit comments

Comments
 (0)