如何在Spartan 6 FPGA上实现VHDL项目

如何在Spartan 6 FPGA上实现VHDL项目,vhdl,fpga,xilinx,spartan,Vhdl,Fpga,Xilinx,Spartan,我正在进行一个VHDL项目,该项目将安装在spartan 6 fpga上。代码已经准备好了,但我不确定如何将其放到fpga上 我访问了另一个项目,并注意到该项目中有一个Microblaze processor.xmp文件和一个定义所有网络接口的ucf文件 最终,我将使用FPGA和附加板连接器与一块硬件进行通信,但我需要将所有内容移动到FPGA上 一些资源和教程会很棒,特别是如何将microblaze处理器引入我的项目,如果我需要的话 谢谢 更新: 我开始模拟我的项目,但出现了一个错误 第214行

我正在进行一个VHDL项目,该项目将安装在spartan 6 fpga上。代码已经准备好了,但我不确定如何将其放到fpga上

我访问了另一个项目,并注意到该项目中有一个Microblaze processor.xmp文件和一个定义所有网络接口的ucf文件

最终,我将使用FPGA和附加板连接器与一块硬件进行通信,但我需要将所有内容移动到FPGA上

一些资源和教程会很棒,特别是如何将microblaze处理器引入我的项目,如果我需要的话

谢谢

更新: 我开始模拟我的项目,但出现了一个错误

第214行:语句不可合成,因为它在NOTclock边缘条件下不保持其值

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

if rising_edge(clk) then
-- other if statements that assign output values
end if
我试着改变代码,但如果我这样做,它就不再起作用了


不确定错误的确切含义。

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

这是Xilinx指南

这是最重要的限制条件之一:

TIMESPEC“TSidentifier”=时段“TNM|u参考”时段{HIGH | LOW} [高\u或低\u时间]输入\u抖动值;从上述文件中剪切


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

这是Xilinx指南

这是最重要的限制条件之一:

TIMESPEC“TSidentifier”=时段“TNM|u参考”时段{HIGH | LOW} [高\u或低\u时间]输入\u抖动值;从上述文件中剪切


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

在几小时内,您将从FPGA中的简单Hello World等效程序过渡到使用DCM并生成VGA信号

Mike在书中同时使用了Papilio One和Digilent Basys2板,但您可以轻松地将示例改编为您正在使用的任何板。您只需要相应地调整UCF文件。事实上,他用的是斯巴达-3,而你用的是斯巴达-6,这不会有任何区别

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

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

这应该足以让你开始


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

对于新的VHDL开发人员来说,最好的教程之一是Mike Field编写的Spartan 3E FPGA和VHDL简介。您可以从his下载PDF和所有源代码,或浏览

在几小时内,您将从FPGA中的简单Hello World等效程序过渡到使用DCM并生成VGA信号

Mike在书中同时使用了Papilio One和Digilent Basys2板,但您可以轻松地将示例改编为您正在使用的任何板。您只需要相应地调整UCF文件。事实上,他用的是斯巴达-3,而你用的是斯巴达-6,这不会有任何区别

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

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

这应该足以让你开始


ps:如果您没有任何特定的理由使用MicroBlaze,您现在可以安全地忽略它。

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