Py学习  »  Python

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

Python程序员 • 5 年前 • 470 次点击  

试用

您可以在如下地址试用Chips的web应用:http://dawsonjon.pythonanywhere.com/

使用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
译者:少年



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/unwJ1YyC7f
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12871
 
470 次点击