试用
使用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
译者:少年
领取专属 10元无门槛券
私享最新 技术干货