欢迎回到Digilent博客!
您已经听说过fpga,并了解到需要下载Vivado。你甚至可能发现了一个关于如何安装Vivado的伟大指南,启动它,得到了你需要的额外文件,通过在Vivado创建初始项目,修改项目,以适应我们的FPGA,现在怎么办?如果这听起来比你愿意承认的更熟悉,那么你来对地方了。我们已经做了几篇文章来帮助你启动和运行一个新的Vivado项目,包括:可以在这里),最初在Vivado中设置Verilog项目(可以在这里),修改我们的Verilog项目和XDC文件,使其在我们的FPGA上工作(可以在这里),以及最后一篇关于生成我们将用于编程FPGA的比特流的文章(您正在阅读的文章!)让我们开始吧!
虽然我们可以简单地编写一个FPGA程序并配置我们的电路板,然后继续下一个程序,fpga已经够复杂了这是一个好主意,添加一些预先制作的板文件,以帮助平滑的编程过程。我将使用Digilent的艺术在本系列教程的整个过程中,Verilog是我选择的FPGA编程语言,以及Xilinx的Vivado设计套件的2016.4 WebPACK版本。
让我们继续生成比特流!在实践中,你可以简单地点击GUI左侧的“程序和调试”小节下的“生成比特流”按钮,但我们将手动地走过前面所需的每个步骤。假设您的Verilog模块和XDC文件已经按您的喜好编辑并保存,继续并点击GUI左侧的“Synthesis”小节下的“Run Synthesis”。
第一次运行合成(以及以后的时间,如果你不勾选“不要再次显示这个对话框”),你会看到一个向导显示一些合成选项。我们要做的是将“启动目录”留在“默认启动目录”文件夹中,并选择在本地主机(您的计算机)上运行启动,而不是只生成脚本。你也会得到一个下拉选项来选择“工作的数量”,Vivado可以使用;这实际上是Vivado允许在您的计算机上使用的计算机内核的数量。我建议您选择可用的最大数字,因为准备好为FPGA编程的位流是非常计算机密集型的。边注,整个合成的组合,实现和比特流的生成会花费相当多的时间(在某些情况下超过10分钟)自Vivado过程大量的事情隐藏用户和使用整个FPGA,而不仅仅是我们身体利用。当你对你的选择感到满意后,点击确定,然后等待合成过程完成,这可能需要几分钟,这取决于你的计算机。
一旦完成,你就会看到一个弹出窗口,询问你下一步想做什么。继续并选择“Run Implementation”选项。然后,您将看到一个用于实现过程的类似向导,您将希望保留默认选项,但使用最大核数(作业)。这个过程也可能需要几分钟。
你会收到第二个弹出窗口,询问你下一步想做什么。你要选择“生成比特流”,但作为一个边注你未必想点击“不要再显示这个对话框”这次的盒子,因为如果你正在设计一个电路FPGA来运行,你可能只是想看看Vivado能够成功地让它通过合成和实现。如果出现错误,您不会希望生成错误的比特流。然后,您将能够选择一些位流生成选项,就像合成和实现一样。当您对您的选择感到满意时,单击OK让Vivado生成比特流。
再过几分钟,比特流将最终生成,我们所要做的就是用它为我们的FPGA编程!您将看到另一个有用的弹出窗口,在那里我们将获得选择打开硬件管理器的选项,在那里我们将能够确保Vivado连接到我们的FPGA。
如果您的FPGA还没有连接到您的计算机(或如果它是第一次连接),您将在顶部看到一个绿色的条,表明当前没有打开硬件目标(FPGA)。将FPGA连接到计算机后(通常是通过微型USB线缆),确认LED电源指示灯打开后,点击绿色栏中的“Open Target”按钮,然后选择“Auto connect”。
然后,我们将被要求选择用于加载FPGA的位流文件(我们不必担心调试探测,因为在这个项目中没有任何调试探测)。位流文件查找起来有点不直观;你可以找到它,进入你告诉Vivado最初保存你的项目的文件夹,yourProjectName.runs文件夹,impl_1文件夹,然后选择你看到的.bit文件。在本教程中,verilog模块被命名为top,因此位流被称为top.bit。单击“确定”确认您选择的位流,然后单击“程序”(您可以启用或禁用“启用启动结束检查”)。幸运的是,编程过程本身将花费不到10秒的时间,所以这是一个很好的节奏变化。
我们终于完成了!在我设置本教程(和我的XDC文件)的方式中,我在Arty上使用了第一个开关(丝印上的SW0)来控制第一个单色LED (LD4)的状态,如下图所示。
我希望大家都喜欢这个教程系列!
请随意评论任何问题,你有任何其他教程,你想看到在未来!

我能问一下关于位文件的问题吗?如何创建位文件?我刚开始学习matlab。谢谢
你好,
Xilinx的Vivado设计套件可以创建位文件。在Digilent,我们没有人真正使用过MATLAB,所以在这方面,我们没有大量的建议可以提供给你。MATLAB有一个很好的介绍页面,里面有一些相关的视频可以在他们的网站上找到在这里.
如果您对此有任何问题,请将您的问题发布在我们的技术论坛上,https://forum.blog.digilentinc.com/在那里,Digilent的一位工程师将能够看到并回答您的问题。
谢谢,
詹姆斯·科尔文
你能建议在vivado中运行Matlab代码的任何方法吗
Vivado本身不运行MatLab代码,但我们有另一篇文章可能会让你感兴趣在这里.这个页面在MathWorks的网站上也许对你也有好处。
你好,你认为你可以创建一个ravencoin kawpow矿工/算法的比特流?