社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python程序员 • 7 年前 • 647 次点击  

试用

您可以在如下地址试用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
 
647 次点击