FPGA学习2:点灯


前言

第一次使用FPGA,试了一下点灯,熟悉FPGA从编写代码到烧写程序实现的过程。


一、新建项目

打开Quartus,选择新建一个项目

Alt
设置好项目位置和名字,选择NEXT
Alt
下一步添加文件,没有文件可以跳过,NEXT
Alt
根据所使用的芯片类型选择器件,如图,NEXT
Alt
选择仿真软件和编程语言,NEXT
Alt
最后一页是对前面选择的汇总,NEXT
Alt

二、编写程序

需要实现的内容:通过按键实现LED的亮灭。
下图为所使用的芯片中LED原理图,当引脚输出为逻辑0时,LED灭,输出1时,LED亮。
Alt
下图是按键的原理图,按键按下时从左侧输出低电平0,按键松开为高电平。
Alt
因此,当按键按下时,LED灭,按键松开时,LED亮。

1.代码编写

新建好项目后界面如图所示
Alt
点击文件图标,在弹出窗口中选择Verilog HDL File,点击OK。
Alt
出现编程界面
Alt
将该新建文件另存为.v文件,进行保存。
首先编写模块代码,类似于matlab里的函数

module led(key_in,led_out);

	input key_in;
	output led_out;
	
	assign led_out = key_in?1'd1:1'd0;

endmodule 

点击分析图标,对所写代码进行分析查看是否有错

Alt
编译通过跳出成功的提示框
Alt
编写执行函数

`timescale 1ns/1ns

module led_tb;

	reg key_in;
	wire led_out;
	
	
	led led(
		.key_in(key_in),
		.led_out(led_out)
	);
	
	initial begin
		key_in = 1;
		#200;
	   key_in = 0;
		#200;
		key_in = 1;
		#200;
		key_in = 0;
		#200;
	
	end
			
endmodule 

同样进行编译检查是否有错,完成后点击RTL Simulation进行仿真,仿真时会调用Modelsim软件执行

Alt

仿真后弹出的Modelsim界面如图所示,状态栏是灰色,点不了

Alt
点击灰色部分,状态栏便可恢复,点击图示的放大镜,便可预览所有波形,从波形上可以看出仿真正确。
Alt

2.布局布线,引脚分配

编译完成以后需要进行布局布线,点击三角按钮开始
Alt

弹出成功提示框
Alt
下面进行引脚分配,查阅芯片手册找到引脚分配,这里选择LED0和KEY1。

Alt
Alt
点击Assignments,下拉页面选Pin Planner
Alt
可以看出,软件已经列出了需要分配的输入输出端口,在Location处填入引脚名,然后关闭窗口
Alt

3.程序烧写

点击Programmer
Alt
弹出窗口中点击Add File添加文件

Alt

弹出窗口中选择output_files文件夹
Alt
接着选中.sof文件,点击Open

Alt
添加完如图所示,此时Start键是灰色,原因是没有连接板子,将板子连接到电脑上,点击Hardware Setup
Alt
弹出窗口选择USB-Blaster [USB-0],点击Close

Alt
点击Start开始下载,进度100%完成

Alt
完成以后,程序已经下载到芯片里,可以实现功能了。

按键松开时,LED点亮

Alt

按键按下时,LED熄灭
Alt


4.问题解决

4.1 Modelsim仿真弹出错误窗口

弹出错误提示框,原因是Modelsim的安装位置没有识别到
Alt
点击TOOL,在下拉选项卡中选择Options
Alt
点击EDA Tool Options,在右侧Modelsim-Altera中的安装路径有错误,需要更改
Alt
找到Modelsim的安装路径,并修改
Alt
修改如下所示
Alt

4.2Modelsim仿真错误

点击仿真时显示Nativelink Error,原因是上一个modelsim仿真文件没有停止并关闭,将其关闭后重新仿真便可以解决
Alt

4.3.Quartus仿真错误

点击三角按钮进行Compilation时出现以下错误,原因是电脑上运行Grammarly,产生了错误,将Grammarly退出即可解决问题。
参考链接
Alt



总结

本文记录了一下基础的FPGA从代码编写到实现的全过程。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值