不费力的FPGA编程

2021-02-05 14:00:34 来源: 半导体行业观察

来源:内容转载自「 悦智网 」,作者:Stephen Cass,谢谢。



现场可编程门阵列(FPGA)曾经因价格高昂而让许多编程爱好者可望却不可及,而近年来其价格已大幅降低,而且开始出现在各种小型项目中。FPGA具备可重构硬件的特点,可实现多种不同的使用方式,例如实现新异的CPU。不过从创客的角度来看,其主要吸引力来自处理大量输入/输出信号的电路能力。


我们可以很好地同步处理多个输入(例如一组麦克风或其他传感器输入),同时在不损失定时精度的前提下生成大量输出信号。我很羡慕那些基于FPGA的项目,其能力远超传统微控制器,例如,驱动9000个智能LED。不过我本人并不愿意钻研FPGA,因为除了价格之外,还存在另外一个入门障碍——学习怎样对它进行编程。传统上来说,FPGA编程使用的是专业的硬件描述语言(例如Verilog或VHDL)。不过SparkFun Electronics和Alchitry进行了全新的生产合作,承诺实现轻松的编程入门和硬件集成。于是我决定冒险一试,看看是否能实现这一目标。


作为一个测试项目,我决定建造动态雕塑,这在一定程度上受到了乔治•卡茨(George Cutts)电动雕塑作品《巨变》(Sea Change)的启发。去年我独自去纽约时,在户外的暴风国王艺术中心看到了这座雕塑。《巨变》使用了两个旋转的组件,这两个组件通过运动结合在一起。那么,我能用更多的单独控制可移动部件来实现它吗?



我花130美元购买了一个Alchitry Au套件,作为我项目的基础。套件包括核心的Alchitry开发板,配有3.3万个逻辑单元的Xilinx Artix 7 FPGA是它的特色。 该开发板有8个内置LED,内存为256兆字节(MB),还有102个输入/输出插脚(运行电压为3.3伏)。 此外,它还有一个Qwiic连接器,采用基于SparkFun的I2C协议物理接口的开放标准。 有了这个连接器,它可轻松连接任一制造商生产的使用Qwiic接口的微控制器或传感器。

软件方面,套件使用了Alchitry Labs。Alchitry Labs是一种集成开发环境(IDE),可运行Xilinx Vivado程序包,由Vivado程序包创建实际的FPGA配置文件。需要强调的是,Vivado只能在Windows系统中运行(借助虚拟机,让它在我的Mac电脑上运行也没问题),另外免费版Vivado有一项强制报告功能,要求用户发回相关的设计信息(例如逻辑单元的使用数量),可能会有很多人觉得很不方便。

Alchitry Labs设计用于Alchitry Au和Alchitry Cu开发板编程。Alchitry Cu相对不那么复杂,价格较低,其FPGA只有7680个逻辑单元和79个输入/输出插脚,但有一个开源工具链支持。FPGA编程是通过Lucid语言完成的,该语言能够为新手提供一些安全防护,可以提供有用的高层次抽象概念。项目中预设了要求定义的必要功能(例如重置按钮、板载LED或串行接口)。点击库模块可添加附加组件,例如串行外设接口(SPI)、I2C、脉冲宽度调制及HDMI编码和解码等。


教程内容很丰富,但过于庞杂,需要整理。例如,我找到的使用伺服控制器的文档是针对Alchitry现在已停售的Mojo开发板的,输入/输出插脚的应用方式略有不同,但不是很难理解。其中很多内容都是基于Au套件附带的I/O Element开发板编写的,我用一组(极小的)指拨开关输入数字,得出的基本数学运算结果很快就在I/O Element板上的4个7段显示器上显示出来。

虽然我是一个FPGA新手,但是这些教程让我成功经历了从硬件编程到软件编写的思维转变。你不是在写一个程序,而是一个需要工具链处置的规范,更多要考虑的是组合优化,而不是时序逻辑。

我的雕塑包含18个垂直分布的伺服机,每一个伺服机都连接了一个水平杆,水平杆的两端分别安装了黑色和红色的方块,能够根据需要前后摆动。为什么是18个?使用连接了普通微控制器的外部伺服板,能够驱动16个伺服机,我想驱动更多系统,但是17这个数字好像太小气。增加伺服机本身就是一个挑战。每个伺服机首次通电都要先消耗1安电流,然后降到实际运行中的几百毫安。即使一次处理18安电流也不小了,我工作台的最大输出只有10安。我设计组装了一种应急电源,将这些伺服机分为2串,一串9个,然后为每串的5伏电源线增加手动开关,一次给一串电源通电。

幸运的是,这些伺服机将接受3.3伏的控制信号,我可以直接把它们连接到Au套件所包含的模型板上。模型板上有FPGA开发板,FPGA开发板能够控制伺服机。FPGA通过连接RedBoard Turbo微控制器上的Qwiic接口来接受指令,按照SparkFun使用的I2C协议运行一个计时器项目。RedBoard上安装了一个LCD键盘,并提供控制伺服图案的用户界面。最终,我做出了一个颇为吸引人的作品,但更重要的是,我现在有了在更多项目中使用FPGA的信心。目标达成。

*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。


今天是《半导体行业观察》为您分享的第2577内容,欢迎关注。

推荐阅读


成熟制程工艺Top榜单:中芯国际与台积电之间只差一个UMC

原创

华为海思的进退两难

5G基站芯片的新竞争


半导体行业观察

半导体第一垂直媒体

实时 专业 原创 深度


识别二维码 ,回复下方关键词,阅读更多

晶圆|MCU |射频|封测|美国|苹果|华为|汽车芯片

回复 投稿 ,看《如何成为“半导体行业观察”的一员 》

回复 搜索 ,还能轻松找到其他你感兴趣的文章!

责任编辑:Sophie

相关文章

半导体行业观察
摩尔芯闻

热门评论