我正在研究一个VHDL项目,该项目将被放置在斯巴达6 fpga上。代码已准备就绪,但我不知道如何继续将其放到fpga上。
我可以访问另一个项目,并注意到该项目中有一个Microblaze处理器(.xmp)文件和一个定义所有“NET”接口的ucf文件。
最终我将使用FPGA和附加板连接器与一块硬件进行通信,但我需要将所有内容移到FPGA上。
一些资源和教程会很棒,特别是如何将微型光泽处理器纳入我的项目,即使我需要它。
由于
更新: 我开始模拟我的项目并出错。
第214行:语句不可合成,因为它在NOT(时钟边缘)条件下不保持其值
我在我的一个项目文件中用ana if语句
得到了这个if rising_edge(clk) then
-- other if statements that assign output values
end if
我尝试更改代码,但如果我这样做则不再有效。
不确定错误的含义是什么。
答案 0 :(得分:3)
UCF文件应包含属于每个信号的引脚以及任何时序条件的约束。 “最简单”的方法是阅读编写此类文件的指南,或使用可帮助您正确使用它们的内置工具
Here是Xilinx指南。
Thiis是最重要的限制因素之一:
TIMESPEC“TSidentifier”= PERIOD“TNM_reference”期间{HIGH |低} [high_or_low_time] INPUT_JITTER值; (从上面的文件中删除)
答案 1 :(得分:1)
新VHDL开发人员最好的教程之一是Mike Field的简介“Spartan 3E FPGA和VHDL简介”。您可以从他的GitHub account下载PDF和所有源代码,或者浏览chapters for the book on his website
您将在几小时内从简单的Hello World等效FPGA转换为使用DCM并生成VGA信号。
Mike在本书中使用了Papilio One和Digilent Basys2电路板,但您可以轻松地将示例调整到您正在使用的任何电路板上。您只需要相应地调整UCF文件。他使用Spartan-3而你使用Spartan-6的事实应该没有任何区别。
UCF或用户约束文件是告诉FPGA与外部世界的连接的文件。 UCF高度依赖于您的特定硬件,因为每个板都有一组不同的引脚。您可能正在使用其中一个受欢迎的制造商提供的电路板,因此您只需查看特定硬件的文档。
找到特定主板的原始UCF文件后,建议您删除所有未使用的行(意思是:所有未连接到vhdl代码中的任何节点的节点),否则编译器会发出警告或错误。
这应该足以让你入门。
ps:如果你没有任何具体的理由使用MicroBlaze,你现在可以放心地忽略它。