创建和编程我们的第一个FPGA项目第3部分:修改项目

欢迎回到Digilent博客!

您已经听说过fpga,并了解到需要下载Vivado。也许你甚至找到了一个关于如何安装Vivado的伟大指南,启动它,得到了你需要的额外文件,通过在Vivado创建初始项目,现在怎么办?如果这听起来比你愿意承认的更熟悉,那么你来对地方了。在接下来的几天里,我们将通过一系列的文章来帮助你建立和运行一个新的Vivado项目,包括:可以在这里),最初在Vivado中设置Verilog项目(可以在这里),修改我们的Verilog项目和XDC文件,使其在我们的FPGA上工作(您正在阅读的文章!),最后生成我们将用于编程的FPGA的位流。让我们开始吧!

虽然我们可以简单地编写一个FPGA程序并配置我们的电路板,然后继续下一个程序,fpga已经够复杂了这是一个好主意,添加一些预先制作的板文件,以帮助平滑的编程过程。我将使用Digilent的艺术在本系列教程的整个过程中,Verilog是我选择的FPGA编程语言,以及Xilinx的Vivado设计套件的2016.4 WebPACK版本。

让我们继续修改我们创建的新项目最后一次.我们将遇到的第一个窗口是一个向导,让我们配置一个新模块;这是Verilog项目的一部分,我们可以在其中为我们正在创建的项目定义输入和输出。在本教程中,我们只将一个LED分配给一个开关的值,所以我们只需要创建一个输入和一个输出(让“Bus”框不选中它们)。我将输入和输出分别命名为“sw”和“led”,尽管您可以根据自己的喜好命名。您还可以重命名模块(如果您保留顶部。V建议作为之前的文件名,你的模块目前将被称为“top”)到一些更直观的东西,如果你这样想。

我们首先看看Vivado和源文件的位置

最后,我们在主要Vivado GUI可以“东西”,即代码添加到我们的Verilog模块告诉Vivado模块应该做什么,改变XDC文件通知Vivado物理别针什么你打算使用你的模块,添加IP如果你选择这样做,和更多。让我们继续并为我们的顶级模块添加Verilog代码。

在这个特殊的教程中,我们想做的是让LED的状态依赖于相关开关的状态。Verilog中最好地模拟此行为的关键字是分配.双击Design Sources文件夹中的Sources窗口中的顶层模块代码,使其在GUI右上角的编辑器中打开。我们想要添加的代码行是
分配led = sw;
它会在我们刚在向导中创建的命名模块的右花括号和分号之间。这些都是我们需要在这个项目的Verilog模块中做的。

顶部模块向导在Vivado
我们已经在我们的顶级模块中添加了代码

XDC文件将需要更多的操作,并且是使fpga对终端用户如此通用的焦点;当这个文件被编辑时,我们本质上是在通知Vivado“黑匣子”上的所有输入和输出在FPGA上的物理位置。在如何使用我们在Verilog模块中创建的HDL实际连接点A到点B方面,Vivado完成了所有繁重的工作,而我们只需要担心一些外部美学问题。自然地,当你进入更复杂的设计时,这种类比就会失效,但这种思考方式很有趣。但是回到XDC文件本身;我们实际上是如何编辑它的?

您可以在Sources窗口左上角的Constraints文件夹中找到XDC文件。双击它将打开Vivado GUI右上角的XDC文件。如果您正在为Digilent板使用主XDC文件,您将注意到XDC文件中的所有内容当前都被注释掉了符号,以便Vivado不会将其解释为要使用的代码。对于这个项目,我们想要做的(让LED的状态被分配到一个开关的状态)是启用我们的LED和开关的选择。

在Vivado中哪里可以找到约束文件
简要介绍XDC文件

这里需要注意的是,尽管我在前一段中描述了XDC文件,但我们不能仅仅使用任何引脚来实现LED和开关。由于我希望使用Arty上已经存在的嵌入式开关和led(因为这是我的选择),这些组件已经预先连接到FPGA上的一个引脚,不能在没有对板进行物理修改的情况下重新路由。然而,如果我有一个外部开关和LED,理论上我可以将它们连接到FPGA中任何我可以物理访问的引脚上。虽然这似乎并不不同于单片机,这真的进场当你开始创建硬件控制器,可以将多达你想无论你需要而不是局限于任何单片机内置。

Digilent主XDC文件由FPGA上的物理组组织,如交换机、Pmod Headers、以太网PHY等。对于本教程项目,我们可以向下滚动到开关和led部分,并通过删除在相关的代码行前面签名。然后,我们需要编辑大头针的名称(在紧随其后的花括号之间)get_ports语句)来匹配我们在Verilog模块中调用的任何函数。

我们编辑的XDC文件名与模块名匹配

唷!Verilog模块和XDC文件已经编辑完毕,可以使用了!在保存这个项目之后,我们将能够生成我们的位流和程序FPGA,这将是最后文章在本系列教程中!另外看看我们的维基有关这个项目的更多资源。

0
第一个投票。

关于詹姆斯·科尔文

我最喜欢的事情就是学习新东西。特别是涉及某些技术的事情;电脑组件、有趣的小工具、游戏、编码技术等。我喜欢和我的妻子和两个儿子在一起,也喜欢和朋友们在一起。在我的日常工作中,我管理Digilent论坛和北美支持团队。

查看所有由James Colvin→发布的帖子

留下一个回复

您的电子邮件地址将不会被公布。必填字段被标记