【问题标题】:How to put VHDL project on Spartan 6 FPGA如何将 VHDL 项目放在 Spartan 6 FPGA 上
【发布时间】:2013-03-21 13:06:28
【问题描述】:

我正在开发一个 VHDL 项目,该项目将被放置到 spartan 6 fpga 上。代码已经准备好了,但我不知道如何继续将它放到 fpga 上。

我可以访问另一个项目,并注意到该项目中有一个 Microblaze 处理器 (.xmp) 文件和一个定义所有“NET”接口的 ucf 文件。

最终我将使用 FPGA 和附加板连接器与一个硬件进行通信,但我需要将所有东西都移到 FPGA 上。

一些资源和教程会很棒,尤其是如何将 microblaze 处理器引入我的项目,如果我什至需要它的话。

谢谢

更新: 我开始模拟我的项目并出现错误。

第 214 行:语句不可合成,因为它在 NOT(clock-edge) 条件下不保持其值

我在我的一个项目文件中的 ana if 语句中得到了这个

if rising_edge(clk) then
-- other if statements that assign output values
end if

我尝试更改代码,但如果我这样做了,它就不再起作用了。

不确定错误的确切含义。

【问题讨论】:

  • 如果您的项目是纯 VHDL,没有嵌入式 CPU。你可以忽略Microblaze。 UCF 很重要:除其他外,您可以使用它将 VHDL 端口名称映射到连接到板上设备的 FPGA 引脚。
  • @BrianDrummond - 感谢您提供信息。我不使用任何 Microblaze,所以我不需要它。关于如何开始将 ucf 文件放在一起的任何想法?谢谢

标签: vhdl fpga xilinx spartan


【解决方案1】:

UCF 文件应包含属于每个信号的引脚的约束以及任何时序条件。 “最简单”的方法是阅读编写此类文件的指南,或使用可帮助您正确编写这些文件的内置工具

Here 是 Xilinx 指南。

这是最重要的限制之一:

TIMESPEC “TSidentifier”=PERIOD “TNM_reference” 周期 {HIGH |低的} [high_or_low_time] INPUT_JITTER 值; (从上面的文件中截取)

【讨论】:

    【解决方案2】:

    对于新 VHDL 开发人员来说,最好的教程之一是简短的教程“Spartan 3E FPGA 和 VHDL 简介,作者是 Mike Field。您可以从他的 GitHub account 下载 PDF 和所有源代码,或浏览 @987654322 @。

    您将在几个小时内从 FPGA 中的简单 Hello World 等价物转变为使用 DCM 并生成 VGA 信号。

    Mike 在书中同时使用了 Papilio One 和 Digilent Basys2 开发板,但您可以轻松地将示例调整到您正在使用的任何开发板上。您只需要相应地调整 UCF 文件。他使用的是 Spartan-3 而你使用的是 Spartan-6 这一事实应该没有任何区别。

    UCF 或用户约束文件是告诉您的 FPGA 与外部世界的连接的文件。 UCF 高度依赖于您的特定硬件,因为每个板都有不同的引脚集。您可能正在使用某家流行制造商提供的电路板,因此您只需查看特定硬件的文档即可。

    在为您的特定板找到原始 UCF 文件后,建议您删除所有不使用的行(意思是:所有未连接到 vhdl 代码中的任何内容的节点),否则编译器会发出警告或错误。

    这应该足以让您入门。

    ps:如果您没有任何使用 MicroBlaze 的特定理由,您可以暂时忽略它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 2013-12-06
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      相关资源
      最近更新 更多