FPGA入门教程-Spartan-3A

FPGA入门教程-Spartan-3A

ID:44224450

大小:1.72 MB

页数:31页

时间:2019-10-19

FPGA入门教程-Spartan-3A_第1页
FPGA入门教程-Spartan-3A_第2页
FPGA入门教程-Spartan-3A_第3页
FPGA入门教程-Spartan-3A_第4页
FPGA入门教程-Spartan-3A_第5页
资源描述:

《FPGA入门教程-Spartan-3A》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、FPGA入门教程这里要注意,我们的实验板是Spartan3AN-XC3S200AN-FTG256,以前我们并没有把程序烧进板子里,所以可以乱选,但这次一定要根据这个图选。一直装不Modelsim或者装上了又用不了的同学,如果你的ISE版本比较高的话,展开这栏选择Isim,是ISE自带的仿真工具,这个也可以的。如图右键点击xc3s500e-4fg320,选择NewSource。选择VHDLModule,右侧输入文件名(文件名不能由数字开头),点Next进入下一步。本次实验是点亮实验板上的LED灯,我们这里可以用一个std_logic_vector来表示

2、led的输出端口。实验板上有8个LED灯,所以位宽为8。当你想点亮一个LED灯,只需给该led灯赋值‘1’高电平而其他位为‘0’;例如点亮第一个led灯,则:led<=“00000001”;这样的可以了,方法有很多种,仅供示范。由于我们做的实验是流水灯,灯的闪烁是流动的,所以led的状态变换应该由时钟Clk来决定,而Spartan3E的时钟频率为50Mhz,所以我们应该适当的对时钟分频,才能看得清楚led的流动。写完led的代码后点击左边的Synthesize–XST,进行对代码的综合。双击DesignSummary/Reports可以看到各种报告。

3、例如在红框内我们可以看到我们设计的流水灯用了多少个FlipFlops(触发器),多少个LUT(查找表)等。综合完电路后,如图右键点击工程NewSource。选择ImplementationConstraintsFile,命名后点击NEXT然后Finish。UCF文件就生成好了,如图。提醒一下还是找不到UCF文件的人,请注意你们选的是不是红色框框里Implementation选择图中选的Simulation是用来仿真的,平时想Modelsim上观察波形的时候才点这里。什么是UCF?UCF全称为UserConstraintsFile,即用户约束文件。IS

4、E中有多种用户约束,如管脚位置约束,区域约束,时序约束以及电平约束。我们这个实验只需要用到管脚位置约束。那什么又是管脚位置约束呢?我们写的代码中有各种端口。你在Port声明里有时钟CLK,有复位RST,有流水灯输出LED,由于我们要把程序烧进板子里,那么我们就要通过UCF文件告诉板子,我这个CLK对应你板子上的哪个管脚。这个是实验板的芯片,可以看到有很多I/O口,即可编程输入/输出口单元(IOB)。是芯片与外界电路的接口部分,提供输入缓冲,输出驱动,接口电平转换等功能。为了便于管理和适应各种电气标准,图中我们可以看到IOBank被分成4组,不同Ban

5、k的接口标准由其接口电压Vcco决定,一个Bank只有一种Vcco。这是FPGA芯片内部的结构,我们可以看到IOB与芯片内的CLB,BRAM相连。我们实验是点亮LED灯,我们要点亮的第一个LED灯相对应的ucf的代码是NET"LED<0>"LOC="M14";对LOC=“M14”,说明我们的第一个LED灯对应的管脚是M14管脚。其实我们也可以LOC=“J13”或者”K14”,但是我们的实验板上已经把M14这个管脚连接到对应实验板上的第一个LED灯了。所以我们应该通过编写ucf告诉综合器,我的端(PORT)里的输出LED实际上是对应着你芯片的M14管脚

6、。从上图中我们可以看到M14管脚连线到A2_IO1这个地方。A2_IO1的线最后会连接到左图蓝色方框位置。说明了M14管脚连接的是第一个LED灯。原理图请在WEBCC里下载有的人会疑惑为什么LED<0><=‘1’;而不是LED<0><=‘0’;的时候灯才会亮。左图是LED的原理图。图中我们可以看到,当LED1来了一个高电平‘1’的时候,二极管被导通,当是低电平的时候,左边和右边接地都为0,没有电流通过,所以LED不会被点亮。在编辑UCF文件里输入如图的代码。UCF文件的语法格式为NET“端口名(必须与vhd文件里的端口名大小写一致)”LOC=“loc

7、ation”例如NET“clk”LOC=“P9”;由于我的vhd代码中时钟是clk小写,所以这里必须也是小写。我的LED是大写,所以也必须大写,板子上有16个led灯,第一个灯用<0>代表,以此类推。约束对象的名字大小写敏感,而NET,LOC这些关键字大小写不敏感。LOC=“P9”的意思是把clk信号分配到FPGA板子上的P9管脚上,而Spartan3A板子上P9管脚就是40Mhz的时钟晶振。输入完之后点击保存。NET"LED<0>"LOC="M14";NET"LED<1>"LOC="M13";NET"LED<2>"LOC="K13";NET"LED

8、<3>"LOC="L13";NET"LED<4>"LOC="M16";NET"LED<5>"LOC="M15

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。