WebFPGA-浏览器中的Verilog开发

我认为许多程序员,从python-datasayentists到以苛刻的驱动程序开发人员结尾,有时都梦raise以求地叹息:“哦,这会越来越难……”。 当然,我们谈论的是Verilog,这是一种用于描述和建模电子系统的语言。 Verilog一直在编程语言中脱颖而出。 允许解决无法以任何其他方式无法克服的问题,但是,它需要特定的硬件平台FPGA-可编程逻辑集成电路。 进入Verilog开发的门槛相对较高,但可能会很快降低,因为目前

众筹项目 :WebFPGA。
项目的实质 :FPGA iCE40UP5k的调试板。 所有开发和调试软件都位于云中;与板的交互在浏览器中使用WebUSB API进行。
平台 :Kickstarter。
Ryan Jacobs(程序员),Mick Jacobs(电子工程师)发布。
地点 :美国加利福尼亚州洛杉矶。



该开发板结合了Lattice iCE40UP5k FPGA(5280逻辑单元,32 GPIO,1 Mbps SRAM)和STM32F04系列微控制器; 更准确地说,开发人员没有报告微控制器型号,而是从电路板照片判断,这是TSSOP-20,在TSSOP-20中,意法半导体仅发布了一个STM32F04系列微控制器-STM32L041F6,价格为2.02欧元。

有趣的是,该项目的作者之一Ryan Jacobs是UCLA的一名学生,他还没有说明性的简历,因此他提供了指向GitHub的链接,他已经在GitHub上获得了1,700颗星。

尽管该项目的云部分托管在6台服务器上(确切的特性尚未公布,但从整个规范中只能得知它们是“双至强”),但开发人员承诺,如果此次活动筹集的资金部分用于支付已购买的设备(如果收取的金额)如果项目超过10,000美元,那么这些额外的资金将表明存在大量潜在用户,服务器园区将得到扩展。 根据作者的说法,像Amazon或Azure这样的云存储不适合当前的业务模型,因此立即决定将整个后端部署在自己的服务器上。

为了避免潜在用户对服务器处理能力不足的不安,Ryan保证“服务器仅用于合成并向最终用户传输大小仅为3 KB的二进制代码”。 在我看来,通信量确实很小-“向上”留下了Verilog的源代码,该源代码也可以很好地压缩,“二进制”固件进来了,由于所用FPGA的容量相对较小,因此其大小确实很小。

但是我认为,通过从Verilog代码合成固件的过程来加载服务器,并不是所有事情都那么乐观。 即使我们省去了在通用FPGA空间中优化最终电路的物理布局的过程,这肯定需要相当快的图形界面以及与服务器不断交换大量信息包,但固件本身的合成过程仍然存在,我个人认为这是第一位的,必须占用足够多的处理器时间,其次,它本质上是不确定的,可能会延迟。

就我个人而言,我在零的上半部分就熟悉了FPGA(它们是Actel FPGA,其固件是在Libero + Synplify + ModelSim捆绑包中开发的),据我所记得,即使对于简单的教育项目,综合过程也从未如闪电一般。 实际上,就像任何编译过程一样,综合具有各种周期性的打and和停顿的特点,但是我们希望平均服务器响应时间在人类耐心的范围内。 顺便说一句,当作者在FAQ中讨论通过缓存二进制文件来优化编译时(如果Verilog文件代码和编译器标志未更改,则仅向用户提供最后收到的二进制文件),然后他提到“您不需要2分钟期望合成过程完成。”

如果由于某种原因您对通过浏览器进行的开发不满意(至少可以认为一开始该过程会很麻烦),则可以通过IceStorm / iCECube使用FPGA。

如果您对WebUSB技术感兴趣,则可以关注以下开放项目(所有链接均指向GitHub,因此您可以立即获得这些项目的支持):

  • WebUSB + Arduino的 。 它仅适用于具有完整USB的Arduino兼容主板,例如Arduino Zero或Adafruit Feather 32u4。
  • 网络灯 。 一个连接到ATtiny85微控制器并通过Internet控制的LED。 当然,如果您可以控制LED,则可以控制其他外部设备,所有可以连接到GPIO的设备。
  • Yubikey HOTP 。 用于保护计算机和智能手机上的个人数据的设备。 他们使用Facebook,Gmail,GitHub和许多其他服务。
  • webdfu 。 USB DFU用于对微控制器进行编程。 我本人将此模式用于基于STM32微控制器的设备编程。 现在,如果安装程序需要围绕技术安装进行操作并更新数十个设备的固件,那么您可以携带的不是Windows笔记本电脑,而是Android手机。
  • 用于RTOS Zephyr项目的JS IDE ,它允许您将代码下载到所有与Zephyr兼容的开发板上,其中有一百多种。 因此,现在购买诸如STM32F723E Discovery或UDOO Neo Full之类的东西,并在您的手机上为其编写代码。

在项目页面上,开发人员谈论在Chrome,Opera和Edge中对WebUSB技术的支持,但是mozilla.org现在具有其他信息,Edge不在兼容浏览器列表中:



鉴于Microsoft Edge现在仅占浏览器市场的5.2%,这并不重要,但是如果您仍然拥有Edge,请注意可能存在的不兼容性。 另一方面,现在有机会在Chrome OS中开发FPGA,这在原理上是以前不可能的。

我应该帮助这个项目吗? 我认为值得。 不幸的是,当我已经想加入支持者行列时,事实证明要订购WebFPGA,您必须是美国或加拿大的居民。 如果您是全球“城堡”的居民,那么作者在外交上要求与他联系,并承诺考虑可以采取什么措施。 我不太了解此限制的含义,通常,众筹活动的作者只需确定将物品运送到不同国家/地区的不同费用(根据项目所在国家/地区的邮件费率),因此在比北美不那么繁荣的地区也可以收到包裹。

据我所知,FPGA iCE40UP5k不受任何出口限制,可在Mouser上以6.46欧元的价格免费获得。 STM32L041F6微控制器的价格为2.02欧元,可免费订购。 也许众筹活动的作者决定遵循帕累托80/20原则,并轻轻地拒绝与文明世界之外的客户合作? 如果他真的独自完成该项目,那么这可能是正确的业务决策。

当然,该项目有些争议。 在浏览器中使用云软件在Verilog上进行开发-很好,很酷; 特别是对于那些拥有众多现实生活中的法律先例并尊重一些专有软件并从torrent下载一些非常酷和便捷的IDE以便在Verilog上进行开发然后在您的业务中使用它的国家来说,这种现象比,例如在前一个国家。 苏联。 我自己当然不会从torrent下载任何内容,也不会建议您,但是有人可以做到,您可以期望他提供一切。

另一方面,现在可以为FPGA使用某种免费的编程环境(至少iCEcube2,尽管它已绑定到您的莱迪思帐户和工作计算机的MAC地址,但是免费分发的)以及来自中国制造商的廉价调试板,因此,如果您不能购买专用软件,则不必专注于云计算。 但是-该项目本身非常酷(Verilog!在浏览器中!WOW!),并且由于开发而可以带来更多的收益。 也许,随着时间的流逝,生态圈将诞生,靠近Arduino或Raspberry Pi的用户社区,并且业余FPGA爱好者将能够像现在的微控制器世界一样自由地交换Verilog代码,编译的内核和其他开发。 总的来说,在我看来,竞选的利大于弊。

众筹活动的作者值得赞扬的是,他们没有掩盖竞争性设备存在的事实,这些设备还试图将有趣的填充和相当低的价格结合起来:

  • MojoBoard V3的价格为75美元,采用TQFP-144封装的Spartan 6 XC6SLX9 FPGA,在84个GPIO微控制器配套ATmega32U4上进行组合;
  • 另一个众筹项目IceBreaker已成功关闭; 售价69美元的主板带有莱迪思iCE40UP5k FPGA和FT2232转换器。
  • TinyFPGA BX,价格38美元,FPGA ICE40LP8K(7680逻辑单元),41引脚GPIO。

就个人而言,在俄罗斯居住期间,我无法完全参与WebFPGA项目,但是我使用“无偿捐款”(类似于Habré上的“寄钱给作者”按钮)向Ryan寄了5美元。 首先,在我看来,该项目本身非常有趣且有用。 其次,一小笔捐款自动使我订阅了该项目的所有新闻,因此我感到有点沃伦·巴菲特(Warren Buffett),他有时会购买他感兴趣的公司的股份,因此后来作为股东(尽管是少数派)每年都会收到一整套报告。

根据作者的身份来判断,其中一位正在GitHub上过夜,因此即使该项目没有启动,我们仍然会获得很多非常有用的源代码,并且随着时间的流逝,可能会有很多人准备好说举起堕落的旗帜。

我有一个与开源硬件和众筹有关的小博客 ; 如果您在电子领域有任何有趣的DIY开发或众筹项目,我将不胜感激。

Source: https://habr.com/ru/post/zh-CN457910/


All Articles