I'm beginning to learn embedded with C (and maybe some C++) and someone from the office said they're willing to donate a free xilinx chip they've got sitting on their shelf. I was thinking more along the lines of an Arduino, especially that the Arduino tutorials and sample projects are abundant.
我开始学习嵌入C(可能还有一些C ++),办公室的人说他们愿意捐赠一个他们坐在架子上的免费xilinx芯片。我更多地考虑Arduino,尤其是Arduino教程和示例项目非常丰富。
-
Can someone confirm how xilinx chips compare to arduino? Are they known within the industry to be more "real world" in any way? or not?
有人可以确认xilinx芯片与arduino的比较吗?他们在行业内是否以任何方式更加“真实世界”?或不?
-
Are there specific xilinx chips (maybe older models) that I should avoid, at least while I'm still starting out?
是否有特定的xilinx芯片(可能是较旧的型号),我应该避免,至少在我还没有开始的时候?
-
Do they have a relatively steeper learning curve than an Arduino due to lack of tutorials or not?
由于缺乏教程,他们的学习曲线是否比Arduino更陡峭?
I'm interested in hearing whatever comes to your mind when you hear xilinx as opposed to Arduino. I know very little about chips, let alone this particular one, so it's very hard to have any informed comparison.
当你听到xilinx而不是Arduino时,我很想听听你的想法。我对芯片知之甚少,更不用说这个芯片了,所以很难有任何明智的比较。
5 个解决方案
#1
9
You are comparing chalk and cheese. Xilinx is a company, not a chip and Arduino is an open development platform based on Atmel AVR microcontroller.
你正在比较粉笔和奶酪。 Xilinx是一家公司,而不是芯片,Arduino是一个基于Atmel AVR微控制器的开放式开发平台。
Also 'a chip' alone is probably useless to you; it will have to be assembled onto a development board with subsidiary components and power supplies etc.
单独“芯片”也可能对你没用;它必须装配到带有辅助元件和电源等的开发板上。
Xilinx make FPGAs and other programmable logic devices. It is possible to have an FPGA with a hard or soft core processor embedded (i.e. a processor defined in FPGA logic gates), and for that core to be programmed in C, but if you are starting out, how many balls do you want to juggle at once? Such a core will be useless without the ability also to synthesize the peripheral hardware necessary to make it do something useful. They are used in highly specialised applications where the core and peripheral set need to be tightly coupled to the application. They are often used in applications where standards are still under development (such as wireless communications), where both firmware and software may need to change in-field to support changes. Another use of FPGAs is in directly implementing algorithms in hardware to take advantage of the parallelism and pipe-lining that they make possible offering massive acceleration compared to software solutions..
Xilinx制造FPGA和其他可编程逻辑器件。可以使用嵌入了硬核或软核处理器的FPGA(即FPGA逻辑门中定义的处理器),并且可以用C编程该核,但如果你刚开始,你想要多少个球?马上玩吧?如果没有能够合成使其做有用的必要外围硬件的能力,这样的核心将是无用的。它们用于高度专业化的应用程序,其中核心和外围设备需要与应用程序紧密耦合。它们通常用于标准仍在开发中的应用(例如无线通信),其中固件和软件可能需要在现场进行更改以支持更改。 FPGA的另一个用途是直接在硬件中实现算法,以利用并行性和管道衬里,与软件解决方案相比,它们可以提供大量加速。
While Arduino, or more specifically AVR (there are other AVR development platforms available) can be programmed in C and C++, if you are serious about using C++ in embedded systems, a 32-bit platform may be more appropriate (as well as having performance advantages). A development board based on an ARM Cortex-M3 or ARM 7 would be a good start, especially since ARM is also a common choice for soft-core processors on FPGAs if you eventually progress to that.
虽然Arduino,或者更具体地说AVR(还有其他可用的AVR开发平台)可以用C和C ++编程,但如果您认真考虑在嵌入式系统中使用C ++,32位平台可能更合适(并且具有性能)优点)。基于ARM Cortex-M3或ARM 7的开发板将是一个良好的开端,特别是因为如果您最终进步,ARM也是FPGA上软核处理器的常见选择。
#2
13
Xilinx chips are very commonly used, but not for what you want. Xilinx makes FPGAs and CPLDs, which are programmed with VHDL and Verilog (not respectively, both are programmed with both). They are used for prototyping logic circuits to be turned into integrated circuits. If you wanted to make your own ARM chip, for example, you could buy some code from ARM and put it on an FPGA from Xilinx and then program the result in C. I'm not recommending that, just trying to give you an idea of what these beasts are for. Anyway, Arduino is a solid platform for what you want. Go with that.
Xilinx芯片非常常用,但不适合您的需求。 Xilinx生产FPGA和CPLD,使用VHDL和Verilog进行编程(两者都不是两者都编程)。它们用于将原型逻辑电路转换为集成电路。例如,如果您想制作自己的ARM芯片,可以从ARM购买一些代码并将其放在Xilinx的FPGA上,然后将结果编程为C.我不推荐这样做,只是想给你一个想法这些野兽的用途。无论如何,Arduino是您想要的坚实平台。去吧。
#3
10
Xilinx is in the business of selling FPGA chips. Such a chip is going to worthless to you without the tooling you need to create the logic design and burn the chip. The tooling used to be quite expensive but is available for free for low-to-medium end chips (as pointed out in the comments). Google "Verilog" and "FPGA programming".
Xilinx的业务是销售FPGA芯片。如果没有创建逻辑设计和刻录芯片所需的工具,这样的芯片将毫无价值。工具过去非常昂贵,但可以免费用于中低端芯片(正如评论中所指出的那样)。谷歌“Verilog”和“FPGA编程”。
The essential difference between a FPGA and your Arduino is that you program hardware on a FPGA, software on an Arduino.
FPGA和Arduino之间的本质区别在于您在FPGA上编程硬件,在Arduino上编写软件。
#4
4
Xilinx makes FPGAs and associated software tools. FPGAs are - abstractly - loads of NAND gates configured with look-up-tables. They are often used in place of custom silicon chips for extra-fast logic when the number of units is not enough to justify creating an ASIC.
Xilinx制造FPGA和相关软件工具。 FPGA是抽象地 - 配置有查找表的NAND门的负载。当单元数量不足以证明创建ASIC时,它们通常用于代替定制硅芯片以实现超快逻辑。
FPGAs are programmed in VHDL or Verilog, which are - abstractly - hardware description languages. They are not like von Neumann or functional languages.
FPGA采用VHDL或Verilog编程,它们是抽象的硬件描述语言。它们不像冯诺依曼或函数式语言。
Mind you, you can load a 'soft-core' description of a regular CPU and program with C the CPU that the FPGA has loaded.... you don't want to do that when learning embedded. You may wind up needing to debug your CPU. Which, well, can be fun. If you want to do that.
请注意,您可以加载常规CPU的“软核”描述,并使用C加载FPGA的CPU编程....您不希望在学习嵌入式时这样做。您可能需要调试CPU。哪个,好吧,可以很有趣。如果你想这样做。
For embedded work, the Arduino is the current popular chip. You can program it with C.
对于嵌入式工作,Arduino是目前流行的芯片。你可以用C编程。
#5
1
As many here have already said Xilinx are FPGAs. FPGAs are "softlogic" in that you use a simalar development process to developing an ASIC, but you can test your design on hardware without requiring a fabrication plant to do so. The trade off is speed, they implement "meta-logic" instead layout a design composed of traditional "nand-nand" or "nor-nor" logic, they have programmable look up tables which can be programmed to implement arbitrary logic gates. This is simalar in concept to running an interpretor for a processor instead of native code.
这里有很多人已经说Xilinx是FPGA。 FPGA是“软逻辑”,因为您使用simalar开发过程来开发ASIC,但您可以在硬件上测试您的设计,而无需制造工厂这样做。折衷是速度,它们实现“元逻辑”而不是布局由传统的“nand-nand”或“nor-nor”逻辑组成的设计,它们具有可编程的查找表,可以对其进行编程以实现任意逻辑门。这在概念上是simalar运行处理器的解释器而不是本机代码。
While you can't achieve the same performance as you can with an asic, it allows low volume products to have most of the advantages of an asic with out the cost of a production run on at FAB facility. In addition you can treat an FPGA much more like a software design, and load different bitstreams for different modes of operation. Both Xilinx and Altera have dev kits that let you store your design on a compact flash and select different images at boot time.
虽然使用asic无法达到相同的性能,但它允许小批量产品具有asic的大部分优势,而不需要在FAB工厂生产的成本。此外,您可以将FPGA视为更像软件设计,并为不同的操作模式加载不同的比特流。 Xilinx和Altera都有开发工具包,可让您将设计存储在紧凑型闪存中,并在启动时选择不同的图像。
For embedded designs FPGA allow you something that you typically can't get out of an off the shelf processor, your design can have the EXACT hardware you need, you don't have to look threw 1000 different micros to find the "perfect match!" On top of that I've seen old systems that used either 16bit or 32bit processors moved to FPGA and acheived better performance, lower cost, and lower power than the processor based designs. There is something to be said for including "the right" hardware.
对于嵌入式设计,FPGA允许您通常无法从现成的处理器中获取,您的设计可以拥有您需要的EXACT硬件,您不必看起来投入1000个不同的微处理器来找到“完美匹配! “最重要的是,我已经看到使用16位或32位处理器的旧系统转移到FPGA,并且比基于处理器的设计实现了更好的性能,更低的成本和更低的功耗。包含“正确”硬件有一些东西可以说。
Both VHDL and Verilog are high level langauges and while different from C and C++ they aren't significantly harder just different and require a different thought process. You don't get a lot of built in libraries to do everything for you, so you might wind up getting "Cores" off sites like "OpenCores.com" and connecting them together to implement your designs, with the additional logic you need. FPGA code is going to generally be parrallel, you have to specifically implement serial behaviours, and you have to take into considerations pipeline stages and delays. So while the languages themself aren't more difficult, some of the concepts maybe. But they are also more rewarding, kinda like building a house instead of writing about a house.
VHDL和Verilog都是高级语言,虽然与C和C ++不同,但它们并不是特别难以区分,需要不同的思考过程。你没有很多内置的库可以为你做任何事情,所以你最终可能会在“OpenCores.com”之类的网站上获得“Cores”并将它们连接在一起以实现你的设计,并提供你需要的额外逻辑。 FPGA代码通常是并行的,您必须专门实现串行行为,并且您必须考虑流水线阶段和延迟。因此,虽然语言本身并不困难,但也有一些概念。但它们也更有价值,有点像建房子而不是写房子。
#1
9
You are comparing chalk and cheese. Xilinx is a company, not a chip and Arduino is an open development platform based on Atmel AVR microcontroller.
你正在比较粉笔和奶酪。 Xilinx是一家公司,而不是芯片,Arduino是一个基于Atmel AVR微控制器的开放式开发平台。
Also 'a chip' alone is probably useless to you; it will have to be assembled onto a development board with subsidiary components and power supplies etc.
单独“芯片”也可能对你没用;它必须装配到带有辅助元件和电源等的开发板上。
Xilinx make FPGAs and other programmable logic devices. It is possible to have an FPGA with a hard or soft core processor embedded (i.e. a processor defined in FPGA logic gates), and for that core to be programmed in C, but if you are starting out, how many balls do you want to juggle at once? Such a core will be useless without the ability also to synthesize the peripheral hardware necessary to make it do something useful. They are used in highly specialised applications where the core and peripheral set need to be tightly coupled to the application. They are often used in applications where standards are still under development (such as wireless communications), where both firmware and software may need to change in-field to support changes. Another use of FPGAs is in directly implementing algorithms in hardware to take advantage of the parallelism and pipe-lining that they make possible offering massive acceleration compared to software solutions..
Xilinx制造FPGA和其他可编程逻辑器件。可以使用嵌入了硬核或软核处理器的FPGA(即FPGA逻辑门中定义的处理器),并且可以用C编程该核,但如果你刚开始,你想要多少个球?马上玩吧?如果没有能够合成使其做有用的必要外围硬件的能力,这样的核心将是无用的。它们用于高度专业化的应用程序,其中核心和外围设备需要与应用程序紧密耦合。它们通常用于标准仍在开发中的应用(例如无线通信),其中固件和软件可能需要在现场进行更改以支持更改。 FPGA的另一个用途是直接在硬件中实现算法,以利用并行性和管道衬里,与软件解决方案相比,它们可以提供大量加速。
While Arduino, or more specifically AVR (there are other AVR development platforms available) can be programmed in C and C++, if you are serious about using C++ in embedded systems, a 32-bit platform may be more appropriate (as well as having performance advantages). A development board based on an ARM Cortex-M3 or ARM 7 would be a good start, especially since ARM is also a common choice for soft-core processors on FPGAs if you eventually progress to that.
虽然Arduino,或者更具体地说AVR(还有其他可用的AVR开发平台)可以用C和C ++编程,但如果您认真考虑在嵌入式系统中使用C ++,32位平台可能更合适(并且具有性能)优点)。基于ARM Cortex-M3或ARM 7的开发板将是一个良好的开端,特别是因为如果您最终进步,ARM也是FPGA上软核处理器的常见选择。
#2
13
Xilinx chips are very commonly used, but not for what you want. Xilinx makes FPGAs and CPLDs, which are programmed with VHDL and Verilog (not respectively, both are programmed with both). They are used for prototyping logic circuits to be turned into integrated circuits. If you wanted to make your own ARM chip, for example, you could buy some code from ARM and put it on an FPGA from Xilinx and then program the result in C. I'm not recommending that, just trying to give you an idea of what these beasts are for. Anyway, Arduino is a solid platform for what you want. Go with that.
Xilinx芯片非常常用,但不适合您的需求。 Xilinx生产FPGA和CPLD,使用VHDL和Verilog进行编程(两者都不是两者都编程)。它们用于将原型逻辑电路转换为集成电路。例如,如果您想制作自己的ARM芯片,可以从ARM购买一些代码并将其放在Xilinx的FPGA上,然后将结果编程为C.我不推荐这样做,只是想给你一个想法这些野兽的用途。无论如何,Arduino是您想要的坚实平台。去吧。
#3
10
Xilinx is in the business of selling FPGA chips. Such a chip is going to worthless to you without the tooling you need to create the logic design and burn the chip. The tooling used to be quite expensive but is available for free for low-to-medium end chips (as pointed out in the comments). Google "Verilog" and "FPGA programming".
Xilinx的业务是销售FPGA芯片。如果没有创建逻辑设计和刻录芯片所需的工具,这样的芯片将毫无价值。工具过去非常昂贵,但可以免费用于中低端芯片(正如评论中所指出的那样)。谷歌“Verilog”和“FPGA编程”。
The essential difference between a FPGA and your Arduino is that you program hardware on a FPGA, software on an Arduino.
FPGA和Arduino之间的本质区别在于您在FPGA上编程硬件,在Arduino上编写软件。
#4
4
Xilinx makes FPGAs and associated software tools. FPGAs are - abstractly - loads of NAND gates configured with look-up-tables. They are often used in place of custom silicon chips for extra-fast logic when the number of units is not enough to justify creating an ASIC.
Xilinx制造FPGA和相关软件工具。 FPGA是抽象地 - 配置有查找表的NAND门的负载。当单元数量不足以证明创建ASIC时,它们通常用于代替定制硅芯片以实现超快逻辑。
FPGAs are programmed in VHDL or Verilog, which are - abstractly - hardware description languages. They are not like von Neumann or functional languages.
FPGA采用VHDL或Verilog编程,它们是抽象的硬件描述语言。它们不像冯诺依曼或函数式语言。
Mind you, you can load a 'soft-core' description of a regular CPU and program with C the CPU that the FPGA has loaded.... you don't want to do that when learning embedded. You may wind up needing to debug your CPU. Which, well, can be fun. If you want to do that.
请注意,您可以加载常规CPU的“软核”描述,并使用C加载FPGA的CPU编程....您不希望在学习嵌入式时这样做。您可能需要调试CPU。哪个,好吧,可以很有趣。如果你想这样做。
For embedded work, the Arduino is the current popular chip. You can program it with C.
对于嵌入式工作,Arduino是目前流行的芯片。你可以用C编程。
#5
1
As many here have already said Xilinx are FPGAs. FPGAs are "softlogic" in that you use a simalar development process to developing an ASIC, but you can test your design on hardware without requiring a fabrication plant to do so. The trade off is speed, they implement "meta-logic" instead layout a design composed of traditional "nand-nand" or "nor-nor" logic, they have programmable look up tables which can be programmed to implement arbitrary logic gates. This is simalar in concept to running an interpretor for a processor instead of native code.
这里有很多人已经说Xilinx是FPGA。 FPGA是“软逻辑”,因为您使用simalar开发过程来开发ASIC,但您可以在硬件上测试您的设计,而无需制造工厂这样做。折衷是速度,它们实现“元逻辑”而不是布局由传统的“nand-nand”或“nor-nor”逻辑组成的设计,它们具有可编程的查找表,可以对其进行编程以实现任意逻辑门。这在概念上是simalar运行处理器的解释器而不是本机代码。
While you can't achieve the same performance as you can with an asic, it allows low volume products to have most of the advantages of an asic with out the cost of a production run on at FAB facility. In addition you can treat an FPGA much more like a software design, and load different bitstreams for different modes of operation. Both Xilinx and Altera have dev kits that let you store your design on a compact flash and select different images at boot time.
虽然使用asic无法达到相同的性能,但它允许小批量产品具有asic的大部分优势,而不需要在FAB工厂生产的成本。此外,您可以将FPGA视为更像软件设计,并为不同的操作模式加载不同的比特流。 Xilinx和Altera都有开发工具包,可让您将设计存储在紧凑型闪存中,并在启动时选择不同的图像。
For embedded designs FPGA allow you something that you typically can't get out of an off the shelf processor, your design can have the EXACT hardware you need, you don't have to look threw 1000 different micros to find the "perfect match!" On top of that I've seen old systems that used either 16bit or 32bit processors moved to FPGA and acheived better performance, lower cost, and lower power than the processor based designs. There is something to be said for including "the right" hardware.
对于嵌入式设计,FPGA允许您通常无法从现成的处理器中获取,您的设计可以拥有您需要的EXACT硬件,您不必看起来投入1000个不同的微处理器来找到“完美匹配! “最重要的是,我已经看到使用16位或32位处理器的旧系统转移到FPGA,并且比基于处理器的设计实现了更好的性能,更低的成本和更低的功耗。包含“正确”硬件有一些东西可以说。
Both VHDL and Verilog are high level langauges and while different from C and C++ they aren't significantly harder just different and require a different thought process. You don't get a lot of built in libraries to do everything for you, so you might wind up getting "Cores" off sites like "OpenCores.com" and connecting them together to implement your designs, with the additional logic you need. FPGA code is going to generally be parrallel, you have to specifically implement serial behaviours, and you have to take into considerations pipeline stages and delays. So while the languages themself aren't more difficult, some of the concepts maybe. But they are also more rewarding, kinda like building a house instead of writing about a house.
VHDL和Verilog都是高级语言,虽然与C和C ++不同,但它们并不是特别难以区分,需要不同的思考过程。你没有很多内置的库可以为你做任何事情,所以你最终可能会在“OpenCores.com”之类的网站上获得“Cores”并将它们连接在一起以实现你的设计,并提供你需要的额外逻辑。 FPGA代码通常是并行的,您必须专门实现串行行为,并且您必须考虑流水线阶段和延迟。因此,虽然语言本身并不困难,但也有一些概念。但它们也更有价值,有点像建房子而不是写房子。