用于分析和转换网络列表的Python包

spydrnet的Python项目详细描述


https://img.shields.io/pypi/v/spydrnet.svghttps://img.shields.io/pypi/pyversions/spydrnet.svghttps://travis-ci.com/byuccl/spydrnet.svg?branch=master

分析和转换netlists的灵活框架。填补了FPGA在可靠性和研究上的一个重要空白。目前作为纯Python包提供。在

简单的例子

SpyDrNet可以用来从头开始创建网络列表。因为它是一个低级的框架,所以手工创建netlist可能很乏味(很像在汇编中编写高级应用程序)。为了帮助快速生产,为常见的网络列表格式提供了解析器和编写器。目前只支持EDIF,但路线图包括结构化Verilog、structural VHDL、Verilog Quartus映射文件(Intel’s VQM)和JSON。在

正在加载示例网络列表

包中包含了几个示例网络列表,以介绍框架、其特性和功能。要列出和加载这些网络列表,请修改以下示例:

>>>importspydrnetassdn>>>sdn.example_netlist_names['4bitadder','8051',...,'zpu4']>>>netlist=sdn.load_example_netlist_by_name('4bitadder')

正在解析网络列表

^{pr2}$

查看与任何Netlist元素关联的数据

>>>netlist.data{'.NAME':'adder','EDIF.identifier':'Z4bitadder',...}

列出网络列表中的库

>>>list(library.nameforlibraryinnetlist.libraries)['VIRTEX','UNILIB','work']

列出库中的定义

>>>library=netlist.libraries[2]>>>list(definition.namefordefinitioninlibrary.definitions)['adder']

列出定义中的端口、电缆和实例

>>>definition=library.definitions[0]>>>list(port.nameforportindefinition.ports)['data1(3:0)','data2(3:0)','answer(3:0)','clk','reset','enable']>>>list(cable.nameforcableindefinition.cables)['answer_1(0)','answer_1(1)','answer_1_(2)','answer_1(3)',...]>>>list(instance.nameforinstanceindefinition.children)['un3_answer1_axbxc3','un2_answer2_axbxc3','reset_c_i',...]

组成网络列表

此示例按给定名称将网络列表导出到EDIF格式的网络列表文件中。在

>>>sdn.compose(netlist,'<filename>.edf')

也可使用以下等效代码。在

>>>netlist.compose('<filename>.edf')

其他示例

文档中提供了有关网络列表创建、分析和转换的其他示例。在

安装

SpyDrNet的稳定版本可以使用pip安装:

> pip install spydrnet

要使用所有可选依赖项从PyPI安装:

> pip install spydrnet[all]

有关更多安装说明,请参见安装.rst。在

虫子

bug可以在issues page上报告,也可以通过fork/pull请求修复。所有的改变都是受欢迎的。关于新特性的讨论可以在mailing list上找到。在

简史

BYU Configurable Computing Lab主动维护BYU EDIF Tools-一个用于创建、修改或分析EDIF网络列表的Java API。这些工具绑定到EDIF网络列表格式,并提供JEDIF工具,能够使电路扁平化(通过删除分层组织)并应用容错技术,如triple modular redundancy (TMR)。SpyDNet的开发始于2016年,其理念是创建一个可访问、独立于格式的网络列表分析和转换工具。底层的中间数据结构被设计为保留适当的网表关系作为通用网表,同时允许保留格式特定的构造。一个语言无关的原型被开发出来,这个原型很快就在实验室中用于网络列表分析和可靠性转换研究。这里介绍了一个更成熟的(尽管仍有增长空间)工具。在

设计说明

我们试图围绕可扩展性和模块化的原则来构建这个工具。我们注意以有组织的方式将项目的不同部分分开。在

如何作出贡献

如果这个工具对您有用,或者您有新的特性想法,您可以随意提出请求,或者查看问题以了解如何做出贡献。我们也欢迎新的想法、错误修复和建议(请参见贡献.rst)。在

特别感谢

特别感谢NetworkX-“一个用于创建、操作和研究结构的python包,这个成熟的项目已经被用作SpyDrNet文档和代码结构的模板。作为一个用于分析电路节点之间关系的健壮和完整的库,它也节省了大量的精力。在

许可证

根据BSD 3条款许可发布(参见许可证):

Copyright (C) 2019, Brigham Young University
All rights reserved.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将Java小程序转换为应用程序   音频数据格式和文件格式Java声音   java如何使用jsoup维护变量cookie和会话?   您能否使用类似于Java中python关键字args的概念来最小化访问器方法的数量?   JavaSpring引导HTTPS和重定向   如何反转直角三角形(Java)   JavaPowerMockito:拦截所有静态方法   java Vaadin TouchKit基本主题问题   java如何指定文件的路径。要在其文件系统中动态加载的类文件?   java Google Play Services Unity   java MyBatis SQL Builder类,如%   java无法访问Internet Explorer中的小程序   java如何计算2d数组中的行之间的差异?   在GridBagLayout中调用SetContraints时发生java NullPointerException   java同步锁和独立线程:Android   泛型我能让这个java pulk()方法更安全吗?   java为火车线上的所有车站创建距离地图   java在素数阶循环群中查找元素   java正在查找什么类型的类