【问题标题】:How commonly used are the xilinx chips?xilinx 芯片有多常用?
【发布时间】:2010-07-26 19:16:06
【问题描述】:

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

  • 谁能确认一下 xilinx 芯片与 arduino 相比如何?他们在行业内是否以任何方式被称为更“真实的世界”?还是不行?

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

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

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

【问题讨论】:

    标签: c++ c embedded arduino xilinx


    【解决方案1】:

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

    【讨论】:

    • 还有用于硬件描述的 SystemC 越来越受欢迎。但这仍然不是库珀想要的。
    • Xilinx 和英特尔(两家最重要的 FPGA 制造商)还开始支持不同的语言。 OpenCL、Xilinx HLS(某种不符合标准的 C/C++ 混合)就是其中的一些例子。
    【解决方案2】:

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

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

    【讨论】:

    • @Hans,是的,Verilog 和 VHDL 在我与他的谈话中敲响了警钟。所以 FPGA 不是一个好的选择,除非你为一家有工具可烧的公司工作?
    • 工具集的一部分是一个模拟器,允许您在烧录之前测试自定义逻辑设计。是的,代码是 VHDL,而不是 C。你是在编程硬件,而不是软件。
    • 有 C 的衍生工具可用于 FPGA 编程(例如,查找 HandelC。)现在中小型 FPGA 的工具也是免费的。但这仍然完全不适合 OP 的要求,我非常同意。
    • 哇。等一下。 FPGA 工具根本不贵。它们中的大多数都是完全免费的。它与编程 C 几乎不一样......但它是免费的。 (除非“virtex芯片”是价值数百美元的高端产品)
    • 达伦说了什么。我为学校的一个班级买了一个(Xilinx)CPLD 套件:一个带有一些闪烁灯和按钮之类的板。它没有数十亿的门,但整个套餐只需 60 美元。那纯粹是硬件成本。它还附带(免费?10 美元?)Xilinx 软件的学生版,但这就是让我放弃 Windows 的原因(它导致分区停止启动)。 Verilog 基于 C 语法,但基本上仍用于编程门阵列而不是寄存器。
    【解决方案3】:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

      • Arduino 是芯片吗?我以为这只是一个业余爱好者/学生开发板。
      • Arduino 有点像包装的东西。我记得它依赖于 Atmel AVR 系列。使用的架构是 16 位哈佛。
      • 最近? arduino 软件包括 g++ 编译器,因此可以使用许多 C++ 功能。但是,您始终可以使用外部 AVR g++ 编译器
      【解决方案5】:

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

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

      对于嵌入式设计,FPGA 允许您提供通常无法从现成的处理器中获得的东西,您的设计可以拥有您需要的确切硬件,您不必寻找 1000 个不同的微控制器来找到“完美的一对!”最重要的是,我看到使用 16 位或 32 位处理器的旧系统迁移到 FPGA,并获得了比基于处理器的设计更好的性能、更低的成本和更低的功耗。包含“正确的”硬件是有道理的。

      VHDL 和 Verilog 都是高级语言,虽然与 C 和 C++ 不同,但它们并不难,只是不同,需要不同的思维过程。您没有很多内置库来为您做所有事情,因此您可能会从“OpenCores.com”之类的网站上获取“核心”并将它们连接在一起以实现您的设计,以及您需要的额外逻辑。 FPGA 代码通常是并行的,您必须专门实现串行行为,并且必须考虑流水线阶段和延迟。因此,虽然语言本身并不难,但其中一些概念可能会更难。但它们也更有价值,有点像盖房子而不是写房子。

      【讨论】:

        猜你喜欢
        • 2020-08-25
        • 2019-06-22
        • 1970-01-01
        • 1970-01-01
        • 2019-09-11
        • 2020-09-02
        • 1970-01-01
        • 1970-01-01
        • 2014-10-21
        相关资源
        最近更新 更多