Chips 2.0:基于python语言的高级FPGA设计工具

试用

使用C设计组件,使用Python设计FPGA

在Chips里,设计过程类似于在单个芯片中实现的计算机网络。一个芯片由许多并行运行的互连组件组成。每个组件就像一台运行C程序的计算机。

这些组件之间通过总线相互通信。 芯片的设计——组件和以及组件之间的连接——这部分由Python实现。

Chips主要分为三部分:

1.一个Python库,通过使用高速总线将数字组件连接在一起来构建和模拟芯片。

2. 一个既有的数字组件的集合。

3. 一个用C语言编写的硬件编译器,可以使用C语言编写新的数字组件。

简单例子

代码如下:

在更高的抽象层次上工作

在Chips中,门,时钟,复位,有限状态机和流量控制的细节都由工具处理,这可以让设计人员有更多的精力地思考架构和算法。这样做的好处如下:

设计过程更简单。

更简单的设计过程使得工作时间减少。

更简单的设计过程使得bugs出现率较低。

Chips“自带电池”

相对于传统的硬件描述语言,对于什么代码能够转换成硬件语言有很多的限制条件。

使用Chips几乎所有的合法代码都可以转换成硬件语音。包括除法,单精度和双精度IEEE浮点,数学函数,三角函数,定时等待,伪随机数和递归函数调用。

Python可提供验证环境

Chips提供了在Python中本地模拟设计的功能。Python是一种优秀的编程语言,包含许多应用领域第三方库,使得它成为验证芯片的完美环境。

像NumPy,SciPy和MatPlotLib这样的库将会对工程师有很大帮助,但这些仅仅是一小部分。

后台

在后台方面,Chips使用了一些新颖的技术以达到紧凑高效的逻辑——软件和硬件的混合体。

编译器不仅将C代码转换为CPU指令,还能即时生成定制的流水线RISC CPU。CPU可以为任何特定的C程序提供最佳指令集。

通过最小化每个并发任务执行所需的逻辑,设计师可以降低功耗和资源或成本。性能的提升则可以通过增加单个设备中并发任务数量来实现(比如小型设备数十个,大型设备大约一千个或更多)。

虽然Chips生成的代码紧凑且高效,但FPGA设计人员很高兴知道如下事实:如果他们需要的话,他们仍然可以处理和性能相关的关键数据路径,甚至还可以加入一些自定义的组件!

从github安装

$ git clone --recursive https://github.com/dawsonjon/Chips-2.0.git

$ cd Chips-2.0

$ sudo python setup install

从PyPI安装

$ pip-install chips

英文原文:https://github.com/dawsonjon/Chips-2.0

译者:少年

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180601A0A73V00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券