SDNnet PX Programmming Language
写在前面
本篇是关于 SDNet PX Programming Language User Guide 其中「Introduction」 部分的一些翻译、理解以及我从其他方面看来的一些资料的整合。网上相关的资料十分少,因此欢迎同样在研究 px 的同学联系我一起探讨。
Introduction
PX 是用于特定领域的高级程序设计语言(the high-level domain-specific programming language)用于 Xilinx® 网络 SDNet™ 开发环境组成部件的可编程包处理器(PPP)。
注1:PPP 是 Programmable Packet Processor 的缩写
PX 可以用于两个目的。第一,生成用于 PPP 实例的架构的可合成的 RTL 代码(to generate synthesizable RTL code for the architecture of a
PPP instance);第二,更改已经存在的 PPP 实例的固件(to change firmware for an existing PPP instance);
注2: RTL 是指 Register Transfer Level,也就是寄存器传送级
PX 的目的是允许用户专注于需要的包处理功能而不需要关心达到高性能的具体实现细节,是一门声明性语言(a declarative language)。它关心包处理要做什么而不是怎么做。换句话说,它只给出要解决的问题而不是解决问题的方法。更具体地说,它描述了应用于包的规则而不是这些规则的执行过程。
PX 不同于典型的软件设计语言因为它缺少指定规则应用顺序的时间特性(it lacks a
temporal characteristic for specifying the order in which rules are applied)。同样的,PX 也不同于典型的硬件描述语言因为它缺少指定规则应用机器的空间特性(it lacks a spatial characteristic for specifying the machinery to be used for rule application)。目的是用户专注于包和协议而不必关心实现的细节。
PX 程序由一系列的包处理规则组成。它是面向对象的,包括两个基本类型的对象:一是执行包处理的的引擎(engines),二是允许引擎和引擎之外的部分通信的接口(interfaces)。PX 程序通过接口在引擎之间建立连接,指明了引擎和系统的功能。
其他资料
- PX 运行环境是 Xilinx 公司的网络 SDNet™ 开发环境。这个开发环境加上 Xilinx FPGA 和 SoC,可创建新一代硬件加速的软件定义网络。更多详情移步:SDx 开发环境
将可编程性从控制扩展至数据面板设计 - PX 是主要用于包处理方面。更具体的说,是定义一系列规则来控制包。
- 在 SDNet 环境下编写 PX 程序,然后烧录至 FPGA (现场可编程门阵列)。
如有不足,欢迎指出~