问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ISE 14.7开发环境下的FPGA点灯实验完整教程

创作时间:
作者:
@小白创作中心

ISE 14.7开发环境下的FPGA点灯实验完整教程

引用
CSDN
1.
https://blog.csdn.net/Roy_tly/article/details/120806404

本文将介绍如何使用ISE 14.7开发环境完成一个简单的FPGA点灯实验。以Xilinx Spartan-6系列的黑金开发板为例,通过驱动LED灯的亮灭,帮助读者理解FPGA开发的基本流程。

1. 明确驱动对象

LED灯是最基本的输出设备,其工作原理简单:高电平(1)点亮,低电平(0)熄灭。

2. 明确驱动管脚

驱动逻辑:高电平(1)点亮,低电平(0)熄灭。

3. 驱动逻辑

以下是具体的VHDL代码实现:

`timescale 1ns / 1ps
module led_driver
(
    input sys_clk,    //50Mhz , 20ns
    output led0,
    output led1,
    output led2,
    output led3
);
reg [31:0] cnt = 'd0;
reg [4:0] cnt_1s = 'd0;
always@(posedge sys_clk)
begin
    if(cnt < 32'd50000000)
        cnt <= cnt + 1'b1;
    else
    begin
        cnt <= 32'd0;
        cnt_1s <= cnt_1s + 1'd1;
    end
end
assign led0 = cnt_1s[0];
assign led1 = cnt_1s[1];
assign led2 = cnt_1s[2];
assign led3 = cnt_1s[3];
endmodule

4. 新建工程

工程设置

  1. 工程命名及路径
  2. 芯片选型
  3. 工程设置预览

添加文件

设置源文件的文件类型、名称、路径

预览设置

设置约束文件的文件类型、名称、路径

端口约束

一般端口定义:

NET “端口名称” LOC = 引脚编号 | IOSTANDARD = “电压” ;

时钟端口定义:

NET "端口名称" LOC = 引脚编号 | TNM_NET = sys_clk_pin;

具体约束示例:

NET "sys_clk" LOC = T8 | TNM_NET = sys_clk_pin;
NET led0 LOC = P4 | IOSTANDARD = "LVCMOS33";
NET led1 LOC = N5 | IOSTANDARD = "LVCMOS33";
NET led2 LOC = P5 | IOSTANDARD = "LVCMOS33";
NET led3 LOC = M6 | IOSTANDARD = "LVCMOS33";

生成器件可识别文件

  1. 进行“综合”(Synthesize)操作
  2. 进行“实现”(Implement)操作
  3. 进行“生成编译文件”(Generate)操作

编译完成将产生bit文件。

5. 加载程序到器件

打开加载界面iMPACT

  1. 初始化识别JTAG
  2. 添加配置文件,此处先取消
  3. 烧录确认,此处先取消

加载烧录文件

  1. 选择.bit文件
  2. 弹窗确认是否使用存储器烧录,此处点击NO
  3. 对芯片下载bit程序
  4. 点击OK确认

下载完成后的标识/现象

此时可以查看板载LED点亮效果。

本文原文来自CSDN,作者Roy_tly。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号