SPARTAN6 + Verilog - FPGA step by step 从0开始学习(1)


从0开始学习FPGA,最好的办法就是先建一个最简单的模块,并且跑起来,然后再慢慢展开。下面这个例子是要按照一定的周期点亮核心板上的一个led。

Step 1 软件安装

这个从0开始学习是用的xilinx的SPARTAN6。SPARTAN6集成开发环境用ISE,不能用Vivado,各自对应的版本不同。安装版本ISE14.7+ModelSim SE+64 10.4,网上安装方法很多,这里不赘述。

Step 2 硬件获取

硬件在TB搜SPARTAN6,有LX9的,有LX16的,百来块搞定核心板和下载器,芯片的材料可以在网上找。下载器需要安装驱动,驱动由找TB店家提供。

Step 3 开始从头到脚建一个工程

Step 3.1 新建一个工程

在ISE里点击New Project。
在这里插入图片描述
然后给工程取个名字,点下一步。看帖子说最好路径里不要出现中文,并且路径不要太深,避免文件名过长。
在这里插入图片描述
选择芯片类型,封装,speed。这里说明下,很多帖子,包括芯片的文档都说speed是-1,-2这样标识,但实际上我买的两块核心板的芯片都没有这样标识。芯片最后标识的是2C,代表-2。点击next。
在这里插入图片描述

点击finish。
在这里插入图片描述
现在左侧的导航栏里出现了刚才选的芯片。
在这里插入图片描述
现在在芯片上点右键,新建一个verilog文件。
在这里插入图片描述
选择verilog module,输入文件名,点next。
在这里插入图片描述
弹出一个对话框,让你定义模块的输入输出端口。这个端口不是芯片的管脚,只是模块的逻辑端口。现在定义两个逻辑端接口,一个是clk(这个名字随便取,后面通过约束文件关联到物理管脚上),这个就是板载的系统时钟,由晶振产生;一个是led,用一根线连接一个led和物理管脚,低电平点亮。点next。
在这里插入图片描述
点finish。
在这里插入图片描述
可以看到集成环境帮建立了一个新的verilog文件,后缀是.v。文件里只有一个模块最简定义。
在这里插入图片描述
编辑模块代码,如下。
module test2(
input clk, //板载时钟
output reg led //板载LED
);

reg[31:0] counter; //32位计数器

always@(posedge clk) //上升沿
if (counter<50_000_000) //板载时钟50M,计数1秒
counter=counter+1;
else if(counter>=50_000_000)
begin
counter=0;
led<=~led; //led点亮或熄灭
end
endmodule

##3.3 把设计好的工程烧录进芯片,看实际的效果。
先定义端口和物理管脚的绑定。右键点击verilog文件,选择New Source。
在这里插入图片描述

选择Implementation Constraints File,输入文件名,点击Next。
在这里插入图片描述
点击Finish,ISE建了一个空文件。
在这里插入图片描述
输入如下代码,并保存文件。
NET “clk” LOC=P8;
NET “led” LOC=P7;
在这里插入图片描述
上面的P8,P7是原理图上的芯片管脚名,一个是连再时钟上一个是连在led1上。
在这里插入图片描述
到这里最简单的工程文件就搞完了。依次右键->run下面三个:implement design, generate programming file和configure target device。会花点时间,第一个是综合,第二个产生bit文件,可以在工程目录下找到,第三个打开ISE的iMPACT。
在这里插入图片描述
impact的初始界面如下:
在这里插入图片描述
连接好下载器和核心板电源。点击boundary scan,然后在右边空白处右键点击,选择add xilinx device。
在这里插入图片描述
选择刚生成的bit文件,打开。
在这里插入图片描述
右键点击芯片,点击program。
在这里插入图片描述
在下图中点击OK。
在这里插入图片描述
会出现一个进度条,然后就是program succeed。
在这里插入图片描述
这个时候看核心板的led已经闪起来了!不过上述代码仿真的时候会出问题,led是红线,因为整个代码里没有给led初始化值。因此要加个reset信号才能正常仿真。下篇记下最简单的仿真。

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值