Cocotb的功能覆盖和约束随机化扩展
项目描述
cocotb-coverage
Cocotb的功能覆盖和约束随机化扩展
此软件包允许您使用从CRV(约束随机验证)和MDV(度量驱动验证)方法中已知的约束随机化和功能覆盖技术,这些技术可在SystemVerilog或e中找到。此类扩展可以实现复杂项目的先进验证环境。
实现的功能旨在使SystemVerilog用户易于理解,并且与硬件验证语言相比提供了显著的扩展。
可以选择将覆盖数据库导出为可读的XML或YML格式,并提供了一个允许合并此类文件的函数。
安装
此软件包可以使用pip安装。版本1.1.0
是最新版本,也是推荐的。
pip install cocotb-coverage
参考文献
- cocotb核心软件包 - cocotb
- 此项目中使用的约束求解问题解析器 - python-constraint
- 文档
- PyPI软件包
- DVCon 2017论文 - 使用Python的新约束随机化和MDV方法
- DVCon 2017演示文稿 - 幻灯片
- 示例高级验证项目 - apbi2c_cocotb_example
路线图
- 1.1已发布 - 2020年8月7日
- 计划基本支持UCIS覆盖数据库格式
- 欢迎任何建议 - 鼓励您提交问题!
代码示例
# point represented by x and y coordinates in range (-10,10)
class Point(crv.Randomized):
def __init__(self, x, y):
crv.Randomized.__init__(self)
self.x = x
self.y = y
self.add_rand("x", list(range(-10, 10)))
self.add_rand("y", list(range(-10, 10)))
# constraining the space so that x < y
self.add_constraint(lambda x, y: x < y)
...
# create an arbitrary point
p = Point(0,0)
for _ in range (10):
# cover example arithmetic properties
@CoverPoint("top.x_negative", xf = lambda point : point.x < 0, bins = [True, False])
@CoverPoint("top.y_negative", xf = lambda point : point.y < 0, bins = [True, False])
@CoverPoint("top.xy_equal", xf = lambda point : point.x == point.y, bins = [True, False])
@CoverCross("top.cross", items = ["top.x_negative", "top.y_negative"])
def plot_point(point):
...
p.randomize() # randomize object
plot_point(p) # call a function which will sample the coverage
# export coverage to XML
coverage_db.export_to_xml(filename="coverage.xml")
# export coverage to YAML
coverage_db.export_to_yaml(filename="coverage.yml")
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
cocotb-coverage-1.2.0.tar.gz (22.3 kB 查看哈希值)
构建分发
cocotb_coverage-1.2.0-py3-none-any.whl (21.4 kB 查看哈希值)
关闭
cocotb-coverage-1.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0ac0af59be97aca48eb852817442b15d642f0eb4905fba8fbd9ee3da6a40365c |
|
MD5 | ad272dfc953767942e703d7ef18db179 |
|
BLAKE2b-256 | 2becc3db4c91faa759161aedeb26d38e41abca5e1d1a0eeef286fdda51c18959 |
关闭
cocotb_coverage-1.2.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 831a12425e02cef9715cdd6b7122ea0c20ba184b11675d55ec3057194e07841c |
|
MD5 | d9ad64e2b6a1f14e6e43512adaa280fa |
|
BLAKE2b-256 | f58040db1aee3604803993b8f8c9832e7c981fa5ef811115a19860a84149010d |