本文整理汇总了Python中vunit.project.Project.get_dependencies_in_compile_order方法的典型用法代码示例。如果您正苦于以下问题:Python Project.get_dependencies_in_compile_order方法的具体用法?Python Project.get_dependencies_in_compile_order怎么用?Python Project.get_dependencies_in_compile_order使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vunit.project.Project
的用法示例。
在下文中一共展示了Project.get_dependencies_in_compile_order方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: VUnit
# 需要导入模块: from vunit.project import Project [as 别名]
# 或者: from vunit.project.Project import get_dependencies_in_compile_order [as 别名]
#.........这里部分代码省略.........
return self._simulator_factory.create()
@property
def vhdl_standard(self):
return self._vhdl_standard
@property
def _preprocessed_path(self):
return join(self._output_path, "preprocessed")
@property
def codecs_path(self):
return join(self._output_path, "codecs")
@property
def use_debug_codecs(self):
return self._use_debug_codecs
def _create_tests(self, simulator_if):
"""
Create the test suites by scanning the project
"""
scanner = TestScanner(simulator_if,
self._configuration)
test_list = scanner.from_project(self._project, entity_filter=self._tb_filter)
test_list.keep_matches(self._test_filter)
return test_list
def _compile(self, simulator_if):
"""
Compile entire project
"""
simulator_if.compile_project(self._project, self._vhdl_standard)
def _run_test(self, test_cases, report):
"""
Run the test suites and return the report
"""
runner = TestRunner(report,
join(self._output_path, "tests"),
verbose=self._verbose,
num_threads=self._num_threads)
runner.run(test_cases)
def _post_process(self, report):
"""
Print the report to stdout and optionally write it to an XML file
"""
report.print_str()
if self._xunit_xml is not None:
xml = report.to_junit_xml_str()
ostools.write_file(self._xunit_xml, xml)
def add_builtins(self, library_name="vunit_lib", mock_lang=False, mock_log=False):
"""
Add vunit VHDL builtin libraries
"""
library = self.add_library(library_name)
add_vhdl_builtins(library, self._vhdl_standard, mock_lang, mock_log)
def add_com(self, library_name="vunit_lib", use_debug_codecs=None):
"""
Add communication package
"""
if not self._project.has_library(library_name):
library = self.add_library(library_name)
else:
library = self.library(library_name)
if use_debug_codecs is not None:
self._use_debug_codecs = use_debug_codecs
add_com(library, self._vhdl_standard,
use_debug_codecs=self._use_debug_codecs)
def add_array_util(self, library_name="vunit_lib"):
"""
Add array utility package
"""
library = self.library(library_name)
add_array_util(library, self._vhdl_standard)
def add_osvvm(self, library_name="osvvm"):
"""
Add osvvm library
"""
if not self._project.has_library(library_name):
library = self.add_library(library_name)
else:
library = self.library(library_name)
add_osvvm(library)
def get_project_compile_order(self, target=None):
"""
Get all project files in compile order. An optional target
file may be specified causing only its direct and indirect
dependencies to be included.
"""
if target is not None:
target = abspath(target)
return self._project.get_dependencies_in_compile_order(target=target)
示例2: TestProject
# 需要导入模块: from vunit.project import Project [as 别名]
# 或者: from vunit.project.Project import get_dependencies_in_compile_order [as 别名]
#.........这里部分代码省略.........
label2Foo : foo2
port map(clk => '1',
rst => '0',
output => "00");
end architecture;
""")
self.project.add_library("libcomp1", "work_path")
self.add_source_file("libcomp1", "comp1.vhd", """\
entity foo is
end entity;
architecture arch of foo is
begin
end architecture;
""")
self.project.add_library("libcomp2", "work_path")
self.add_source_file("libcomp2", "comp2.vhd", """\
entity foo2 is
end entity;
architecture arch of foo2 is
begin
end architecture;
""")
self.assert_has_component_instantiation("top.vhd", "foo")
self.assert_has_component_instantiation("top.vhd", "foo2")
self.assert_compiles("comp1.vhd", before="top.vhd")
self.assert_compiles("comp2.vhd", before="top.vhd")
def test_get_dependencies_in_compile_order_without_target(self):
self.create_dummy_three_file_project(False)
deps = self.project.get_dependencies_in_compile_order(target=None)
self.assertEqual(len(deps), 3)
self.assertTrue(deps[0] == self.project.get_source_files_in_order()[0])
self.assertTrue(deps[1] == self.project.get_source_files_in_order()[1])
self.assertTrue(deps[2] == self.project.get_source_files_in_order()[2])
def test_get_dependencies_in_compile_order_with_target(self):
self.create_dummy_three_file_project(False)
deps = self.project.get_dependencies_in_compile_order(target=self.project.get_source_files_in_order()[1].name)
self.assertEqual(len(deps), 2)
self.assertTrue(deps[0] == self.project.get_source_files_in_order()[0])
self.assertTrue(deps[1] == self.project.get_source_files_in_order()[1])
# To test that indirect dependencies are included
deps = self.project.get_dependencies_in_compile_order(target=self.project.get_source_files_in_order()[2].name)
self.assertEqual(len(deps), 3)
self.assertTrue(deps[0] == self.project.get_source_files_in_order()[0])
self.assertTrue(deps[1] == self.project.get_source_files_in_order()[1])
self.assertTrue(deps[2] == self.project.get_source_files_in_order()[2])
def test_has_verilog_module(self):
self.project.add_library("lib", "lib_path")
self.add_source_file("lib", "module.v", """\
module name;
endmodule
""")
library = self.project.get_library("lib")
modules = library.get_modules()
self.assertEqual(len(modules), 1)
def test_finds_verilog_package_dependencies(self):
示例3: VUnit
# 需要导入模块: from vunit.project import Project [as 别名]
# 或者: from vunit.project.Project import get_dependencies_in_compile_order [as 别名]
#.........这里部分代码省略.........
self._tb_filter.__doc__)
test_list.keep_matches(self._test_filter)
return test_list
def _compile(self, simulator_if):
"""
Compile entire project
"""
simulator_if.compile_project(self._project, self._vhdl_standard,
continue_on_error=self._keep_compiling)
def _run_test(self, test_cases, report):
"""
Run the test suites and return the report
"""
runner = TestRunner(report,
join(self._output_path, "tests"),
verbose=self._verbose,
num_threads=self._num_threads)
runner.run(test_cases)
def _post_process(self, report):
"""
Print the report to stdout and optionally write it to an XML file
"""
report.print_str()
if self._xunit_xml is not None:
xml = report.to_junit_xml_str()
ostools.write_file(self._xunit_xml, xml)
def add_builtins(self, library_name="vunit_lib", mock_lang=False, mock_log=False):
"""
Add vunit VHDL builtin libraries
"""
library = self.add_library(library_name)
supports_context = self._simulator_factory.supports_vhdl_2008_contexts()
add_vhdl_builtins(library, self._vhdl_standard, mock_lang, mock_log,
supports_context=supports_context)
def add_com(self, library_name="vunit_lib", use_debug_codecs=None):
"""
Add communication package
:param use_debug_codecs: Use human readable debug codecs
`None`: Use command line argument setting
`False`: Never use debug codecs
`True`: Always use debug codecs
"""
if not self._project.has_library(library_name):
library = self.add_library(library_name)
else:
library = self.library(library_name)
if use_debug_codecs is not None:
self._use_debug_codecs = use_debug_codecs
supports_context = self._simulator_factory.supports_vhdl_2008_contexts()
add_com(library, self._vhdl_standard,
use_debug_codecs=self._use_debug_codecs,
supports_context=supports_context)
def add_array_util(self, library_name="vunit_lib"):
"""
Add array utility package
"""
library = self.library(library_name)
add_array_util(library, self._vhdl_standard)
def add_osvvm(self, library_name="osvvm"):
"""
Add osvvm library
"""
if not self._project.has_library(library_name):
library = self.add_library(library_name)
else:
library = self.library(library_name)
add_osvvm(library)
def get_compile_order(self, source_files=None):
"""
Get the compile order of all or specific source files and
their dependencies
:param source_files: A list of :class:`.SourceFile` objects or `None` meaing all
:returns: A list of :class:`.SourceFile` objects in compile order.
"""
if source_files is None:
source_files = self.get_source_files()
target_files = [source_file._source_file # pylint: disable=protected-access
for source_file in source_files]
source_files = self._project.get_dependencies_in_compile_order(target_files)
return SourceFileList([SourceFile(source_file, self._project, self)
for source_file in source_files])
示例4: TestProject
# 需要导入模块: from vunit.project import Project [as 别名]
# 或者: from vunit.project.Project import get_dependencies_in_compile_order [as 别名]
#.........这里部分代码省略.........
label2Foo : foo2
port map(clk => '1',
rst => '0',
output => "00");
end architecture;
""")
self.project.add_library("libcomp1", "work_path")
comp1 = self.add_source_file("libcomp1", "comp1.vhd", """\
entity foo is
end entity;
architecture arch of foo is
begin
end architecture;
""")
self.project.add_library("libcomp2", "work_path")
comp2 = self.add_source_file("libcomp2", "comp2.vhd", """\
entity foo2 is
end entity;
architecture arch of foo2 is
begin
end architecture;
""")
self.assert_has_component_instantiation("top.vhd", "foo")
self.assert_has_component_instantiation("top.vhd", "foo2")
self.assert_compiles(comp1, before=top)
self.assert_compiles(comp2, before=top)
def test_get_dependencies_in_compile_order_without_target(self):
self.create_dummy_three_file_project()
deps = self.project.get_dependencies_in_compile_order()
self.assertEqual(len(deps), 3)
self.assertTrue(deps[0] == self.project.get_source_files_in_order()[0])
self.assertTrue(deps[1] == self.project.get_source_files_in_order()[1])
self.assertTrue(deps[2] == self.project.get_source_files_in_order()[2])
def test_get_dependencies_in_compile_order_with_target(self):
self.create_dummy_three_file_project()
deps = self.project.get_dependencies_in_compile_order(
target_files=[self.project.get_source_files_in_order()[1]])
self.assertEqual(len(deps), 2)
self.assertTrue(deps[0] == self.project.get_source_files_in_order()[0])
self.assertTrue(deps[1] == self.project.get_source_files_in_order()[1])
# To test that indirect dependencies are included
deps = self.project.get_dependencies_in_compile_order(
target_files=[self.project.get_source_files_in_order()[2]])
self.assertEqual(len(deps), 3)
self.assertTrue(deps[0] == self.project.get_source_files_in_order()[0])
self.assertTrue(deps[1] == self.project.get_source_files_in_order()[1])
self.assertTrue(deps[2] == self.project.get_source_files_in_order()[2])
def test_compiles_same_file_into_different_libraries(self):
pkgs = []
second_pkgs = []
self.project.add_library("lib", "lib_path")
other_pkg = self.add_source_file("lib", "other_pkg.vhd", """
package other_pkg is
end package other_pkg;
""")