写在前面

本篇是关于 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 程序通过接口在引擎之间建立连接,指明了引擎和系统的功能。

其他资料

  1. PX 运行环境是 Xilinx 公司的网络 SDNet™ 开发环境。这个开发环境加上 Xilinx FPGA 和 SoC,可创建新一代硬件加速的软件定义网络。更多详情移步:SDx 开发环境
    将可编程性从控制扩展至数据面板设计
  2. PX 是主要用于包处理方面。更具体的说,是定义一系列规则来控制包。
  3. 在 SDNet 环境下编写 PX 程序,然后烧录至 FPGA (现场可编程门阵列)。

如有不足,欢迎指出~

SDNnet PX Programmming Language的更多相关文章

  1. HIGH-SPEED PACKET PROCESSING USING RECONFIGURABLE COMPUTING

    摘要 本文介绍了一种新的工具链,它将一门称为 PX 的专门用于包处理的编程语言运用到基于 FPGA 技术的高性能可重构计算架构(HIGH-PERFORMANCE RECONFIGURABLECOMPU ...

  2. 纯Shading Language绘制飞机火焰效果

    上篇<纯Shading Language绘制HTML5时钟>体现了GLSL可编程性特点,但没有体现GLSL可编程出各种酷炫效果的特点,今天我们将用纯Shading Language绘制火焰 ...

  3. The Go Programming Language. Notes.

    Contents Tutorial Hello, World Command-Line Arguments Finding Duplicate Lines A Web Server Loose End ...

  4. LODOP直线px转换mm变斜线

    LODOP中打印项顶边距左边距,宽高,可以选择的单位很多,详细可在LODOP官网下载参考LODOP技术手册. 关于LODOP打印直线和虚线,可查看本博客相关博文:Lodop如何打印直线.Lodop打印 ...

  5. 用正则表达式把页面中的px全部替换成rem

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. bc - An arbitrary precision calculator language

    bc(1) General Commands Manual bc(1) NAME bc - An arbitrary precision calculator language SYNTAX bc [ ...

  7. px、dp和sp,这些单位有什么区别?

    DP 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以 首先我们解释一下什么是像素密度.假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算 ...

  8. px-rem px转换为rem的工具

    将px转换为rem的工具,github地址:https://github.com/finance-sh/px-rem 将px转换为rem的工具 怎样转换静态文件 安装: npm install px- ...

  9. px-rem 一个将px转换为rem的工具

    将px转换为rem的工具,github地址:https://github.com/finance-sh/px-rem 怎样转换静态文件 安装: npm install px-rem -g 然后跑下命令 ...

随机推荐

  1. Kubernetes 容器平台实战

    一.什么是Kubernetes? Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署,自动扩缩容,维护等功能. 通过Kubernetes可以做到: 快速部署应用 快 ...

  2. 【HDU】3555【Bomb】

    题目链接 此题题意就是给你T个n,找出n以内的包含49的数的个数. 很裸的一题数位dp. 直接dp包含49的数的个数有点麻烦,所以我先算出不包含49的数的个数,然后用n+1来减(因为计算不包含49的数 ...

  3. 【Shader】这是一篇记录随笔,我要开始学Shader了!

    背景: 前天学校有场招聘会,转了一圈只看到一家和unity有关的公司,还是做VR游戏的,然后HR也很好说话.和我说话的HR正好是做UnityVR方面的,聊了会受益匪浅,自己就像是找到了方向似的,突然很 ...

  4. Windows下用HackRF和SDR#收听FM

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 HackRF链接:https://item.taobao.com/item.htm?spm=a1z10.1- ...

  5. nice和renice命令详解

    基础命令学习目录首页 进程调度是linux中非常重要的概念.linux内核有一套高效复杂的调度机制,能使效率极大化,但有时为了实现特定的要求,需要一定的人工干预.比如,你希望操作系统能分配更多的CPU ...

  6. Django_WSGIRequest对象

    WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数.这个参数就是dja ...

  7. Beta周王者荣耀交流协会第一次Scrum会议

    1.立会照片 成员王超,高远博,冉华,王磊,王玉玲,任思佳,袁玥全部到齐. master:王超 2.时间跨度: 2017年11月10日 15:10 — 15:50 ,总计40分钟. 3.地 点: 一食 ...

  8. 欢迎来怼--第三十六次Scrum会议

    一.小组信息 队名:欢迎来怼 小组成员 队长:田继平 成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/12/1 11:35~11:55,总计20min. 地点 ...

  9. Daily Scrum (2015/10/26)

    今晚由于我们组成员就团队Week5作业的个人贡献分开会协商,所以把今天的编码工作往后延迟了.考虑到有些成员代码还没理解够,正好TFS的代码阅读分配的工作时间还没进行完,所以在会议之后我们让成员回寝自由 ...

  10. 第五周作业总结(内含用Junit测试ArrayStack和LinkedStack课堂练习报告)

    ---恢复内容开始--- 学号 20162310<程序设计与数据结构>第五周学习总结 教材学习内容总结 集合分为线性集合(集合中的元素排成一行)和非线性集合(按不同于一行的方式来组织元素, ...