我正在研究在FPGA上进行开发,但是用Python或Scala编写代码并将其转换为VHDL或Verilog会更容易。
我希望将许多传感器连接到设备上,随着数据的进入,计算速度非常快,因此可以在视频墙上显示,因此FPGA可以输入数十个传感器和几个视频墙上的控制器。
这是用Scala编写的代码库。对于这个我很好奇,如果代码是用Java编写的,而Scala会影响它生成的内容。
http://simplifide.com/drupal6/
这是VHDL转换器的python。
对于这两个方面,我很好奇这些局限性。
我更喜欢简化,因为我在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)那么,作为一个程序,这比手工构建一个大电路更容易。
答案 0 :(得分:6)
是的,有一个python风格的HDL可用且免费。 MYHDL
这将生成VHDL或verilog。它还可以模拟代码和输出.VDI,您可以在gtkwave
中查看如果您想编辑VHDL代码,可以使用GHDL。谷歌你得到了很多资源。有可用的操作系统Fedora Electronics Lab它有开发现代电子产品的所有工具。
所有这些都是开源的。使用这些工具构建和模拟。 要闪存到FPGA中,您需要xilinx或Altera工具链来生成比特流并对其进行闪存。祝一切顺利 !
答案 1 :(得分:3)
如果你能负担得起,我认为任何事情都不会让你的生活比NI的LabView的FPGA插件更容易。 LabView的可视化环境非常适合FPGA编程,它可以为您处理许多烦人的细节(除非您必须担心它们是算法的一部分,例如通过构建管道以达到您的时钟速度目标)。此外,您可能会发现NI的实时(非FPGA)或DSP或DAQ或其他解决方案足以满足您的需求。
答案 2 :(得分: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来处理其他事情。
答案 3 :(得分:1)
我认为您正在寻找ModaëTechnologies提供的一些工具here。您可以从算法/行为级别的Ruby或Python代码开始。他们的工具能够自动推断数据类型并将代码转换为RTL级别的HDL(当前为VHDL)。
答案 4 :(得分:0)
一两年前,我使用过MyHDL和LabVIEW。我在MyHDL中编写了HDL,将其导出为VHDL,并在LabVIEW中将其作为外部IP导入。
这对FPGA开发很有用,因为它可以跟踪每个顺序分支所消耗的时钟,因为它的图形表示。以图形方式对算法进行流水线处理和切片非常值得确保正确的值一起处理。 但是,当涉及生成常量,初始化器列表或生成递归结构时,从可视化到实际硬件的映射这种方法是......次优的。
它基本上是python,但语法看起来很像Verilog,装饰器专用于@always等语句。 您可以在HDL代码中自由使用任何python-valid代码。出于测试目的,可能适用于在寄存器传输级别(RTL)上实际执行测试函数之前使用python编写测试函数。 生成递归结构时,您可以使用通常的语句。 需要一个查找表(LUT)为您的算法?一行列表理解:完成。 有关功能的完整列表,请访问网站。
LabVIEW非常适合开始,因为您可以专注于实际实施。 一旦你掌握了并行和RTL的思考,并考虑实现更复杂的算法,你可能会发现MyHDL更好