9

我开始学习嵌入 C(可能还有一些 C++),办公室里有人说他们愿意捐赠他们架子上的免费 xilinx 芯片。我更多的是按照 Arduino 的思路思考,尤其是 Arduino 教程和示例项目非常丰富。

  • 有人可以确认 xilinx 芯片与 arduino 相比如何吗?他们在行业内是否以任何方式被认为是更“真实的世界”?或不?

  • 是否有我应该避免使用的特定 xilinx 芯片(可能是旧型号),至少在我刚开始的时候?

  • 由于缺乏教程,他们的学习曲线是否比 Arduino 更陡峭?

当您听到 xilinx 而不是 Arduino 时,我很想听听您想到的任何东西。我对芯片知之甚少,更不用说这个特定的了,所以很难有任何知情的比较。

4

5 回答 5

13

Xilinx 芯片非常常用,但不是你想要的。Xilinx 制造 FPGA 和 CPLD,它们使用 VHDL 和 Verilog 进行编程(不是分别,两者都使用两者进行编程)。它们用于将逻辑电路原型化为集成电路。例如,如果您想制作自己的 ARM 芯片,您可以从 ARM 购买一些代码,然后将其放在 Xilinx 的 FPGA 上,然后用 C 编程结果。我不建议这样做,只是想给您一个想法这些野兽的用途。无论如何,Arduino 是您想要的可靠平台。随它去吧。

于 2010-07-26T20:08:01.047 回答
10

Xilinx 从事 FPGA 芯片销售业务。如果没有创建逻辑设计和烧录芯片所需的工具,这样的芯片对你来说毫无价值。该工具过去非常昂贵,但可免费用于中低端芯片(如评论中所指出的)。谷歌“Verilog”和“FPGA 编程”。

FPGA 和 Arduino 之间的本质区别在于,您在 FPGA 上编写硬件,在 Arduino 上编写软件。

于 2010-07-26T19:28:01.097 回答
9

你在比较粉笔和奶酪。Xilinx 是一家公司,而不是一个芯片,而 Arduino 是一个基于 Atmel AVR 微控制器的开放式开发平台。

此外,单独的“芯片”可能对您毫无用处;它将必须组装到带有辅助组件和电源等的开发板上。

Xilinx 制造 FPGA 和其他可编程逻辑器件。可以有一个嵌入了硬核或软核处理器的 FPGA(即在 FPGA 逻辑门中定义的处理器),并且该内核可以用 C 语言编程,但是如果您刚开始,您想要多少个球一次玩弄?如果没有能力合成必要的外围硬件以使其做有用的事情,这样的核心将毫无用处。它们用于高度专业化的应用程序,其中核心和外设集需要与应用程序紧密耦合。它们通常用于标准仍在开发中的应用(例如无线通信),其中固件和软件都可能需要在现场进行更改以支持更改。

虽然可以用 C 和 C++ 对 Arduino 或更具体地说是 AVR(还有其他可用的 AVR 开发平台)进行编程,但如果您认真考虑在嵌入式系统中使用 C++,32 位平台可能更合适(以及具有性能)好处)。基于 ARM Cortex-M3 或 ARM 7 的开发板将是一个良好的开端,特别是因为如果您最终取得进展,ARM 也是 FPGA 上软核处理器的常见选择。

于 2010-07-27T08:34:00.983 回答
4

Xilinx 生产 FPGA 和相关的软件工具。FPGA - 抽象地 - 负载配置有查找表的 NAND 门。当单元数量不足以证明创建 ASIC 的合理性时,它们通常用于代替定制硅芯片以实现超快速逻辑。

FPGA 是用 VHDL 或 Verilog 编程的,它们抽象地是硬件描述语言。它们不像冯诺依曼或函数式语言。

请注意,您可以加载常规 CPU 的“软核”描述,并使用 C 对 FPGA 已加载的 CPU 进行编程……学习嵌入式时您不想这样做。您可能最终需要调试您的CPU。嗯,这很有趣。如果你想这样做。

对于嵌入式工作,Arduino 是当前流行的芯片。您可以使用 C 对其进行编程。

于 2010-07-26T20:20:51.240 回答
1

正如这里的许多人已经说过 Xilinx 是 FPGA。FPGA 是“软逻辑”,因为您使用类似的开发过程来开发 ASIC,但您可以在硬件上测试您的设计,而无需制造厂这样做。权衡是速度,他们实现“元逻辑”而不是布局由传统“nand-nand”或“nor-nor”逻辑组成的设计,他们具有可编程查找表,可以编程以实现任意逻辑门。这在概念上与为处理器而不是本机代码运行解释器是相似的。

虽然您无法获得与使用 asic 相同的性能,但它允许小批量产品具有 asic 的大部分优势,而无需在 FAB 工厂进行生产运行的成本。此外,您可以将 FPGA 更多地视为软件设计,并为不同的操作模式加载不同的比特流。Xilinx 和 Altera 都有开发套件,可让您将设计存储在紧凑型闪存中,并在启动时选择不同的映像。

对于嵌入式设计,FPGA 为您提供了通常无法从现成的处理器中获得的东西,您的设计可以拥有您需要的确切硬件,您不必寻找 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.

于 2010-08-05T16:40:04.490 回答