Python热门培训内容之基于python语言的高级FPGA设计工具


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


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


Chips主要分为三部分:


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


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


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


简单例子


代码如下:


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



在更高的抽象层次上工作


在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


立即咨询有惊喜哦 !