5

我正在考虑在 FPGA 上进行开发,但用 Python 或 Scala 编写代码并将其转换为 VHDL 或 Verilog 会更容易。

我想让许多传感器连接到一个设备上,当数据进来时,计算会很快完成,所以它可以显示在视频墙上,所以 FPGA 将有几十个传感器和几个视频控制器作为输入墙。

这是一个用 Scala 编写的代码库。对于这个,我很好奇代码是否是用 Java 和 Scala 编写的,这会影响它生成的内容。

http://simplifide.com/drupal6/

这是一个 python 到 VHDL 的转换器。

http://www.myhdl.org/doku.php

有了这两个,我对这些限制感到好奇。

我更喜欢简化,因为我在 Scala 方面比 Python 更强大,但似乎 myhdl 可能是一个更强大的平台,只是从一些基本的环顾来看。

更新:

FPGA的原因是它可以很好的一次完成多个任务,所以当数据进来的时候,根据用户的需要,根据实验,很容易把FPGA上的代码改成能够适应需求。

所以举个例子,如果你在一栋写字楼的每一层有8 x 3个不同的天气传感器,那么就有温度、风速、气压传感器(每个传感器8个,每层一个),并添加传感器来测试变形墙壁,然后一个实时界面同时读取这些内容并不断更新视觉显示可能会有所帮助。

这是一个虚构的例子,但它可以解释为什么 FPGA 会有用,否则我需要许多不同的 DSP,然后将它们输入计算机来进行视觉显示,而 FPGA 可以做的更快,因为它是硬件,具有较低的电力需求。

有两个开源库可以帮助简化开发,但我不确定哪个是用于将程序转换为 VHDL/Verilog 的更好平台。

这只是一个例子。如果我想在 FPGA 上进行量子电路仿真,正如本文所建议的那样(http://www.cc.gatech.edu/computing/nano/documents/Radecka%20-%20FPGA%20Emulation%20of%20Quantum%20Circuits .pdf),那么将其作为程序执行会比手动构建大型电路更容易。

4

5 回答 5

6

是的,有一个 python 样式的 HDL 可用并且它是免费的。高密度脂蛋白

这将生成 VHDL 或 verilog 。它还可以模拟代码并输出 .VDI,您可以在gtkwave中查看

或者,如果您想编辑 VHDL 代码,您可以使用 GHDL。谷歌它你会得到很多资源。有可用的操作系统Fedora Electronics Lab它拥有开发现代电子产品的所有工具。

所有这些都是开源的。使用这些工具进行构建和模拟。要刷入 FPGA,您需要 xilinx 或 Altera 工具链来生成比特流并刷入它们。祝一切顺利 !

于 2013-10-30T12:20:32.743 回答
3

如果您负担得起,我认为没有什么比 National Instruments 的 LabView FPGA 插件更能让您的生活更轻松的了。LabView 的可视化环境非常适合 FPGA 编程,它为您处理了许多烦人的细节(除非您必须担心它们作为算法的一部分,例如通过构建管道来达到您的时钟速度目标)。此外,您可能会发现 NI 的实时(非 FPGA)或 DSP 或 DAQ 或其他解决方案足以满足您的需求。

于 2012-10-14T16:23:24.440 回答
1

这是一个虚构的例子,但它可以解释为什么 FPGA 会有用,否则我需要许多不同的 DSP,然后将它们输入计算机来进行视觉显示,而 FPGA 可以做的更快,因为它是硬件,具有较低的电力需求。

这完全取决于您需要执行的算法的确切性质。

有两个开源库可以帮助简化开发,但我不确定哪个是用于将程序转换为 VHDL/Verilog 的更好平台。

这只是一个例子。如果我想在 FPGA 上进行量子电路仿真,正如本文所建议的那样 (http://www.cc.gatech.edu/computing/nano/documents/Radecka%20-%20FPGA%20Emulation%20of%20Quantum%20Circuits .pdf),那么将其作为程序执行会比手动构建大型电路更容易。

看起来您正在寻找一个高级综合工具,而这两个工具都不是。对于为算法生成 RTL,代码生成器肯定会有所帮助,但您仍然需要使用 HDL 来处理其他事情。

于 2012-10-14T17:41:23.817 回答
1

我认为您正在寻找 Modaë Technologies 在这里提供的一些工具。您可以从算法/行为级别的 Ruby 或 Python 代码开始。他们的工具能够自动推断数据类型并将代码转换为 RTL 级别的 HDL(当前为 VHDL)。

于 2014-09-29T18:25:33.513 回答
0

一两年前,我使用 MyHDL 和 LabVIEW。我在 MyHDL 中编写了 HDL,将其导出为 VHDL,并将它们作为外部 IP 导入 LabVIEW。

实验室视图

它非常适合 FPGA 开发,因为它是图形表示,您可以跟踪每个顺序分支消耗的时钟。以图形方式对算法进行流水线化和切片非常重要,以确保一起处理正确的值。然而,当涉及到生成常量、初始化器列表或生成递归结构时,从视觉到实际硬件的映射这种方法是......次优的。

我的HDL

它基本上是 python,但语法看起来很像 Verilog,带有专门用作 @always 等语句的装饰器。您可以在 HDL 代码中自由使用任何 python 有效的代码。出于测试目的,它可能适用于在寄存器传输级别 (RTL) 上实际实现之前用 python 编写测试函数。生成递归结构时,您有通常的 for 语句。您的算法需要查找表 (LUT) 吗?一行列表理解:完成。有关功能的完整列表,请参阅网站。

概括

LabVIEW 非常适合开始,因为您可以专注于实际实施。一旦你掌握了并行思考和 RTL 并研究实现更复杂的算法,你可能会发现 MyHDL 在

  • 在不受专有平台约束的情况下管理您的 IP
  • 使用完整的 python 功能测试你的代码
  • 共享、版本控制等
于 2018-03-07T10:09:35.343 回答