所有关于电路

到c++或不到c++的DSP和FPGA

N

线程启动

n3rdx

2021年1月29日加入
5
为了本职位的目的:我是一名中等经验的设计工程师,在小型卫星飞行硬件的功率调节、开关、配电和基于单片机(c++,或ColdFire或MSP MCU)的低电平控制方面有原创设计经验,另外还独立设计了一些无线电收发器,我在pcb上布置,并从发表的文章中获得工作经验。没有太多的EE FPGA主题的历史,除了我有FPGA板在我面前,并为通用的网络控制应用程序编程他们ok。我还不能做的是DSP应用由于我缺乏培训在那方面。我可以算一下,但到目前为止还没有开始详细的开发。到目前为止,我取得了很多non-DSP控制应用程序开发Spartan-7(我写了Xilinx董事会文件的斯巴达边缘加速器和使用),我有我的处理Avnet MiniZed / SoC家庭开发板但是想探索如果我可以使用Spartan-7作为我的项目需要的成本低得多。

我可以问几个问题吗?我目前已经与Vivado/Vitis投资了XILINX工具链,并且最近已经完成了microblaze的开发:
  • 是否有独立的c++库DSP函数,可以在裸金属XILINX FGPA上编译?在Microblaze RTOS环境中使用?
  • 是否有方法转换Gnu Octave DSP例程到c++代码编译通过Vitis或这是一个不可行的开发途径?
  • 对于FPGA通用设备,DSP应用程序甚至可能使用非DSP硬件?如果是,可能的约束是什么?
  • 在XILINX FPGA设备上使用DSP片有什么好的教程吗?
谢谢
D

DrBit

2021年1月26日加入
4
我做了很多DSP,大部分是超声波。这就是我们的工作方式。
通常,信号在模块与AXI4流之间流动。Xilinx对此有很多支持。冷杉、FFT等。
然后我使用即时SoC它们对AXI4 Streams有很好的支持。使用即时SoC,你用c++编写代码,编译器制作硬件和软件。即时SoC非常容易使用,我通常在一个项目中有几个即时SoC核心。
编写和使用自己的程序也非常容易Verilog或VHDL叉骨对系统的扩展。

andrewmm

2011年2月25日加入
1221年
HLS是Xilinx的最新产品
您用(c++)编写代码,然后将其编译为FPGA代码进行合成
另一种常用的方法是MatLab,同样,你用MatLab代码编写,然后编译成FPGA工具可以合成的代码。

优点是你可以用擅长设计的工具来模拟和设计DSP代码,

我看过一些很好的演示,
还有一些现实世界中很糟糕的例子,

不管怎样,
目前,你仍然必须设计算法在FPGA领域工作

我确信,我们必须采用高级编码方式,
但我想说的是,你不能只写c++就得到好的FPGA结果。
N

线程启动

n3rdx

2021年1月29日加入
5
然后我使用即时SoC它们对AXI4 Streams有很好的支持。使用即时SoC,你用c++编写代码,编译器制作硬件和软件。即时SoC非常容易使用,我通常在一个项目中有几个即时SoC核心。
编写和使用自己的程序也非常容易Verilog或VHDL叉骨对系统的扩展。
谢谢你的建议,DrBit。介绍中提到RISC-V软CPU可能我一定在计算机体系结构课程学习在早期迭代中很久以前——你开发裸金属应用程序,或者你使用RTOS的软CPU项目如果我可以问吗?我之前对FreeRTOS有些熟悉,但我想过在Microblaze中使用FreeRTOS。我已经完成了Microblaze裸金属,FreeRTOS是我在RTOS领域有更多经验的清单上的好。我最近在microblaze上的一个项目是编写一个驱动程序输出图形使用SEEED Studio spartan7板与自定义头Digilent Pmod OLEDrgb 1" LCD面板我让它工作的时候很有趣。键盘和键盘也进行了测试。

最后一个问题:即时Soc(我正在研究它)是否依赖于任何特定的XILINX FPGA系列?

谢谢

N3RDX
D

DrBit

2021年1月26日加入
4
谢谢你的建议,DrBit。介绍中提到RISC-V软CPU可能我一定在计算机体系结构课程学习在早期迭代中很久以前——你开发裸金属应用程序,或者你使用RTOS的软CPU项目如果我可以问吗?我之前对FreeRTOS有些熟悉,但我想过在Microblaze中使用FreeRTOS。我已经完成了Microblaze裸金属,FreeRTOS是我在RTOS领域有更多经验的清单上的好。我最近在microblaze上的一个项目是编写一个驱动程序输出图形使用SEEED Studio spartan7板与自定义头Digilent Pmod OLEDrgb 1" LCD面板我让它工作的时候很有趣。键盘和键盘也进行了测试。

最后一个问题:即时Soc(我正在研究它)是否依赖于任何特定的XILINX FPGA系列?

谢谢

N3RDX
即时SoC不是用RTOS设计的大型项目。我设计裸金属与此,但我通常结束在一个项目的两个即时SoC/RISC-V cpu。因为只创建需要的硬件,所以开销很小。
对于时间紧迫的应用,我喜欢这种方法。

即时SoC产生的VHDL代码不依赖于设备。我在Spartan-6和Artix上使用了相同的代码,它也运行在例如Lattice设备上。
B

bdrmachine

2010年1月26日加入
7
我做了很多DSP,大部分是超声波。这就是我们的工作方式。
通常,信号在模块与AXI4流之间流动。Xilinx对此有很多支持。冷杉、FFT等。
然后我使用即时SoC它们对AXI4 Streams有很好的支持。使用即时SoC,你用c++编写代码,编译器制作硬件和软件。即时SoC非常容易使用,我通常在一个项目中有几个即时SoC核心。
编写和使用自己的程序也非常容易Verilog或VHDL叉骨对系统的扩展。
我最近遇到了几次提到的即时SoC,很好奇,所以我进行了研究。我的理解是它把c++转换成VHDL。遗憾的是,我只使用了Verilog。
D

DrBit

2021年1月26日加入
4
我最近遇到了几次提到的即时SoC,很好奇,所以我进行了研究。我的理解是它把c++转换成VHDL。遗憾的是,我只使用了Verilog。
我不认为这是个问题。verilog包装器是在编译时生成的,在大多数(所有?)合成工具中,你可以混合使用VHDL和verilog。然而,我使用大多数VHDL,没有使用verilog包装器/头测试。您永远不需要编辑生成的VHDL模块。
叉骨可以将verilog作为输入的类。

andrewmm

2011年2月25日加入
1221年
我不认为这是个问题。verilog包装器是在编译时生成的,在大多数(所有?)合成工具中,你可以混合使用VHDL和verilog。然而,我使用大多数VHDL,没有使用verilog包装器/头测试。您永远不需要编辑生成的VHDL模块。
叉骨可以将verilog作为输入的类。
Re tools and verilog / VHDL,
众所周知,每种语言的模拟器都有不同的价格点,
内置在intel / altera和Xilinx fpga中的模拟器同时支持这两种模拟器,但请注意,其他一些模拟器并不支持。