Xilinx SDNet(SDx 开发环境)2018.2
附带安装教程- 软件大小:348.88 MB
- 更新日期:2020-03-30 13:56
- 软件语言:简体中文
- 软件类别:编程工具
- 软件授权:免费版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:
软件介绍 人气软件 下载地址
Xilinx SDNet编译器是一套功能强大的SDx 开发环境,该程序主要针对Xilinx编程环境而开发,可以为用户提供一系列的编程帮助,系统采用的P4语言是一种新兴的语言标准,主要用于描述可编程数据平面,该平面可以针对包括CPU,FPGA和NPU在内的多种技术;该程序系统中的高级设计环境是较早创建的,以简化针对FPGA硬件的数据包处理数据平面的设计,SDNet的某些设计目标与P4语言的目标非常相似,SDNet非常重视自定义体系结构;SDNet允许程序员通过明确指定处理引擎的数据流图来构建新的数据平面,SDNet处理引擎具有特殊的行为,包括:ParsingEngines,LookupEngines,EditingEngines,TupleEngines和UserEngines;每个都是根据特定应用程序的处理生成的,基本类型类似于P4中的顶级组件,例如解析器和控制块;使开发人员可以在点对点连接级别显式声明体系结构,为了实现P4规范,P4-SDNet编译器将控件映射到SDNet引擎的自定义数据平面架构上;需要的用户可以下载体验
软件功能
1、支持软件定义的硬件处理
网络 SDNet™ 开发环境加上 Xilinx FPGA 和 SoC,可创建新一代硬件加速的软件定义网络。
SDNet 支持带高吞吐量及低时延的包处理功能。
它可通过软件可编程的数据层硬件来实现可改变竞争格局的差异化,带来可以动态地与控制层软件协同的内容智能性。
这可应对现代以内容为导向、随心所欲的零接触联网的性能、灵活性及安全挑战。
SDNet 可在网络交换、网络切分、数据中心组网和多路访问边缘计算 (MEC) 中发现数据层加速应用
包括支持网络功能虚拟化 (NFV) 和网络安全性(IPSec、SSL、NGFW 等)的软件定义网络 (SDN)。
2、软件定义可编程性
SDNet 支持软件定义数据层硬件开发,支持现代 P4 数据包处理语言。
它可为当前 P4 增加一些新颖的概括,有助于高效利用 Xilinx 器件的独特白盒硬件功能。
这些可帮助系统架构师为具体网络需求定义准确拟合的硬件,与潜在浪费固定资源的 ASIC 替代方案形成了鲜明的对比。
此外,SDNet 还可将标准运行时软件 API 创建在 P4 编程的数据层中,确保针对慢路径数据包处理及网络运行与管理的标准软件堆栈进行的投资得到保护。
软件特色
1、经过改进的、高度灵活的服务质量
2、流量及会话敏感性功能
3、完全可编程硬件数据层与 I/O
4、在线路速度下支持网络功能,包括用户定义、自定义功能
5、1G 到 400G 的可扩展线速
6、安全应用的数据包分类,如入侵预防和检测 (ip/ids) 以及深度数据包检查 (DPI)
7、数据包生成和检查 l2-l7 协议测试仪
8、在国防和军事应用中定制协议处理
SDNet 使用其 P4 编程模型所释放的独特功能,可帮助运营商和 MSO 动态地提供独特的差异化服务,不会对现有的服务造成任何中断,也不需要硬件重新认证或上门服务。
这可让服务供应商获得更高的收入潜力,显著节省资本支出、运营成本以及上市时间。
网络设备供应商和网络连接服务器提供商可从功能丰富的灵活硬件平台实现类似的优势,该平台可通过部署内容敏感的数据层硬件实现广泛的差异化。
安装步骤
1、用户可以点击本网站提供的下载路径下载得到对应的程序安装包
2、只需要使用解压功能将压缩包打开,双击主程序即可进行安装,弹出程序安装界面
3、同意上述协议条款,然后继续安装应用程序,点击同意按钮即可
4、可以根据自己的需要点击浏览按钮将应用程序的安装路径进行更改
5、弹出以下界面,用户可以直接使用鼠标点击下一步按钮,可以根据您的需要不同的组件进行安装
6、弹出应用程序安装进度条加载界面,只需要等待加载完成即可
7、根据提示点击安装,弹出程序安装完成界面,点击完成按钮即可
方法
1、使用SDNet环境时,将Crack文件夹中的SDNet_2018.lic进行授权即可!
使用说明
外部函数
P4 16核心库未定义任何外部函数。 但是,p4c-sdnet确实允许用户定义和使用自己的外部函数。
对于每次调用extern函数,p4c-sdnet都会生成一个唯一的SDNet UserEngine。 您必须提供RTL源代码,
并且该接口必须与SDNet数据平面所期望的相匹配。
对于每个UserEngine,SDNet编译器都会在其工作目录中生成一个子目录。
可以在编译器生成的Verilog存根文件(engine_name.v.stub)中找到接口定义。
注意:可以多次调用同一个extern函数。
因此,每个对应的UserEngine在生成的SDNet代码中都有一个唯一的名称。 sdnet_info.json文件可用于将P4外部函数调用与SDNet UserEngines关联
所有外部函数都应具有@Xilinx_MaxLatency()注释。 否则,数据平面假定最大延迟为一个周期。
extern函数可以维持状态,但该状态对于每个调用点而言都是局部的(即,对同一函数的多次调用会导致数据平面中的多个状态)。
当相应的UserEngine为有状态时,请注意,由于条件程序流,P4程序不希望引擎运行时,引擎有时可能会接收有效的元组输入。
为了解决这个问题,p4c-sdnet在每个extern函数UserEngine接口中都包含一个stateful_valid位,以指示引擎是应该实际运行还是应该通过元组。 没有状态的外部用户引擎可以安全地忽略此位。
表属性和匹配类型
P4 16语言规范定义了标准和其他表属性。 p4c-sdnet支持所有标准属性(键,操作,default_action)和一个其他属性(大小),但有以下限制:
给定表的所有键必须具有相同的匹配类型。
一个表最多可以具有一个LPM键。
default_action是在编译时分配的,不能在运行时更改。
P4 16核心库定义了三种表匹配类型(精确,三进制和lpm)。
p4c-sdnet支持所有这些匹配类型。另外,p4c-sdnet还支持直接匹配类型。
SDNet使用Xilinx IP块来实现其查找表。表的匹配类型确定对表属性值范围的限制:键大小,元素数和深度。
表值
需要特别注意表中存储的每个值。表中的每个值都必须是action_id和action_data的串联,而不仅仅是一个值。
以下是要存储为表中值的级联位向量的示例:
action_id的长度(以位为单位)等于上限(lg(#actions + 1))。
请注意,所有操作的数据都存储在所有条目中–它不像C联合,不同值重叠。换句话说,以位为单位的长度等于所有动作参数的总长度。
action_id由操作列表确定,该列表在p4c-sdnet信息文件中进行了描述。
生成此信息文件需要使用--sdnet_info 参数。
以下是基于提供的示例设计的示例命令:“ p4c-sdnet forward.p4 -o forward.px --sdnet_info forward_p4_info.json”操作ID在数据结构中列出
P4语言力求与任何底层硬件体系结构无关。 这种方法要求p4c-sdnet始终采用最坏情况的参数,这可能会损害整体性能。 但是,p4c-sdnet支持表2中列出的自定义P4注释,以帮助提高性能。
Xilinx P4 16扩展
可以在xilinx_core.p4库中找到Xilinx P4 16扩展,该库与标准P4库标头(data / p4include /)位于同一目录中。 这些库扩展可由各种Xilinx定义的体系结构使用。
直接匹配表除了三个预定义的match_kind标识符外,p4c-sdnet编译器还支持直接标识符。
标识符定义可以在p4include / xilinx_core.p4库中找到:match_kind {direct}
直接标识符可在表的键属性内使用,与预定义类型完全一样。
直接匹配表将密钥用作其条目的索引。该表有2个N项,其中N是密钥的大小(以位为单位)。在运行时,如果在使用前未由控制平面初始化该条目,则直接表不会丢失,并且返回未定义的值。
可变数据包
警告!可变数据包是一项实验功能。它提供了在解析过程中直接访问数据包头的功能,并有助于减少大型设计中的资源使用和延迟。
P4 16语言提供了两个用于处理包数据的内置外部命令。解析器块使用packet_in extern从数据包中提取数据,控制块使用packet_out extern将数据重新插入到数据包中。当前的P4范例
数据包处理是在解析过程中将所有标头与有效载荷分开之前重新插入。
p4c-sdnet编译器支持一种新的实验性外部解析程序,称为packet_mod。此外部消息可直接用于原位修改原始数据包报头,而无需将其与有效负载分开。它通过维护一个从头到尾遍历原始数据包的数据包游标来实现此目的,类似于packet_in使用的游标,但它只能写入数据包数据,而不是仅读取数据包数据。
使用以下方法在p4include / xilinx_core.p4库中定义了packet_mod extern:
update()方法直接从包游标开始修改标头值,然后将游标前进标头的大小。 可选的32位掩码值可用于选择要更新的字段子集。 掩码的每一位代表
标头,最高有效位对应于第一个标头字段(在其声明中),最低有效位对应于最后一个标头字段。在不带掩码的情况下调用update()方法时,所有标头字段都会更新。当前的限制是报头总共最多可以具有32个字段,换句话说,掩码最多可以具有32位。
extract()方法删除从数据包游标开始的标头。标头可以包含一个可变长度字段,在这种情况下,必须将其长度的表达式作为第二个参数传递给此方法。
generate()方法在数据包游标之前插入数据。该参数可以是标头,标头堆栈或联合类型。它也可以是仅包含具有此类类型的字段的结构。
advance()方法将数据包游标向前移动,而不修改任何数据包数据。可以使用标头类型且不带参数的方法来调用该方法,在这种情况下,光标将按标头的大小(以位为单位)前进。该方法也可以称为
带有常量值或表达式参数,表示要使游标前进的位数。
length()方法返回从数据包游标到数据包末尾的剩余位数。 p4c-sdnet当前不支持此方法。
p4c-sdnet中的packet_mod extern在解析器块内部使用。这与在控制块内部使用的packet_out extern相反。之所以使用解析器,是因为packet_mod extern遍历一个与packet_in extern类似的从头到尾的数据包,
使使用解析器转换语句描述控制流更加自然。
在p4c-sdnet中,支持一个包括packet_mod外部模式(称为XilinxStreamSwitch)的实验性体系结构。
P4 16规范具有体系结构-语言分离:这使目标提供者可以灵活地描述其自己的数据包转发体系结构中P4可编程组件的性质。 此体系结构描述提供了容器漏洞的签名,P4开发人员可以使用其所需的功能填充这些漏洞。 以通用方式指定容器,以保持P4的协议独立性。 Xilinx的p4c-sdnet编译器目前支持开发人员可以针对的三种架构:
XilinxSwitch架构说明
针对XilinxSwitch架构的设计生成了带有三个可自定义块容器的管道。图1显示了模块如何在管道内连接。块参数是通用定义的,这使开发人员可以灵活地定义
通过交换机传递多少报头和控制数据。
第一个容器(XilinxParser)是一个解析块,用于从数据包中提取标头。
下一个容器(XilinxPipeline)是一个控制块,可用于修改标头和控制数据。最后一个容器(XilinxDeparser)是另一个控制块,用于指定应重新解析回数据包的订单标头。
XilinxSwitch体系结构描述的P4 16源代码如下:解析器XilinxParser (packet_in pkt,输出H头);
控制XilinxPipeline (inout H标头,inout C控件);
控制XilinxDeparser (在H头中,packet_out pkt);
软件包XilinxSwitch (XilinxParser prsr,XilinxPipeline 管道,XilinxDeparser dprsr);
附录A:用于XilinxSwitch架构的示例P4 16程序中提供了此架构的P4编程组件示例。
XilinxStreamSwitch架构描述小心! XilinxStreamingSwitch体系结构是一项实验功能。它是为试验packet_mod extern提供的。
XilinxStreamSwitch架构与XilinxSwitch架构相似。两者共享相同的解析和入口管道描述。但是,两种架构之间的解析器说明有所不同。
XilinxEngineOnly架构说明
XilinxEngineOnly架构不会生成完整的转发管道。 它可用于生成没有任何系统构建逻辑的独立SDNet引擎(即,生成的SDNet代码不会指定具有连接的多个引擎)。 通常,该体系结构没有预定义的P4块容器或包。 开发人员可以根据需要定义这些组件。
对于仅需要单个块的开发人员(例如,仅数据包解析器)或希望进行自己的SDNet系统构建的高级开发人员,此体系结构很有用。 以下代码概述了P4 16解析器设计,该设计可用于从网络数据包中提取5元组。 使用p4c-sdnet编译此设计将生成一个SDNet ParsingEngine
P4编译器包含在SDNet环境中。 它可以与SDNet工具结合使用来编译P4_16代码。 可在SDNet安装位置找到工具,库和示例:
可执行文件:bin / p4c-sdnet
库:data / p4include /
示例:examples / p4examples /
操作系统支持当前仅在64位Linux操作系统上支持P4编译器。 尽管它可以在许多发行版上运行,但以下各项得到了官方支持:Ubuntu•CentOS
使用p4c-sdnet进行编译在Linux命令提示符下,使用以下命令编译P4 16源代码。
然后,可以将生成的输出文件用作SDNet设计环境中的源文件。
$ p4c-sdnet输入.p4 -o输出.sdnet
支持大多数P4编译器共有的以下命令行选项:
此外,在调试问题或向Xilinx报告问题时,可以使用-v选项获取详细报告。 可以将多个-v标志一起使用以提高输出的详细程度,例如:
如果在一个设计中生成了多个开关,每个开关使用-toplevel选项使用不同的名称,则在使用SDNet编译每个开关时必须使用-prefix命令行选项,以确保名称空间不相交。
SDNet信息文件
从用于SDNet的P4进行编译时,可以转换某些P4对象和变量名称。 这对于各种编译器优化过程都是必需的。 尽管这些更改中的大多数与用户无关,但在与控件交互时可能与某些更改有关
平面或使用Vivado合成时。 如果将--sdnet_info标志传递给p4c-sdnet,则会生成一个JSON文件以及SDNet源代码。 JSON文件包含有用的
有关编译的信息,包括但不限于:
SDNet对象的原始P4名称(例如UserEngines,LookupEngines等)
LookupEngine请求和响应元组字段
UserEngine输入和输出元组字段
解决方案中心
在设计周期的所有阶段,请访问Xilinx解决方案中心以获取有关设备,软件工具和知识产权的支持。主题包括设计帮助,咨询和故障排除技巧。
文档浏览器和设计中心Xilinx®Documentation Navigator提供对Xilinx文档,视频和支持的访问
资源,您可以对其进行过滤和搜索以查找信息。要打开Xilinx文档浏览器(DocNav):
从Vivado®IDE中,选择“帮助”>“文档和教程”。
在Windows上,选择开始>所有程序> Xilinx设计工具> DocNav。
在Linux命令提示符下,输入docnav。
Xilinx设计中心提供了按设计任务和其他主题组织的文档的链接,您可以使用它们来学习关键概念并解决常见问题。要访问设计中心:
在Xilinx文档浏览器中,单击“设计中心视图”选项卡。
人气软件
-
redis desktop manager2020.1中文 32.52 MB
/简体中文 -
s7 200 smart编程软件 187 MB
/简体中文 -
GX Works 2(三菱PLC编程软件) 487 MB
/简体中文 -
CIMCO Edit V8中文 248 MB
/简体中文 -
JetBrains DataGrip 353 MB
/英文 -
Dev C++下载 (TDM-GCC) 83.52 MB
/简体中文 -
TouchWin编辑工具(信捷触摸屏编程软件) 55.69 MB
/简体中文 -
信捷PLC编程工具软件 14.4 MB
/简体中文 -
TLauncher(Minecraft游戏启动器) 16.95 MB
/英文 -
Ardublock中文版(Arduino图形化编程软件) 2.65 MB
/简体中文