FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED

这篇具有很好参考价值的文章主要介绍了FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

最近要考试了,所以我赶紧补习FPGA,我们用的是小梅哥的AC620开发板,软件是Quartus。推荐看这个视频教程:零基础轻松学习FPGA,小梅哥FPGA设计思想与验证方法视频教程

设计步骤

设计定义

用按键控制LED灯的亮灭就是一个二选一多路器,两个IO,a、b,可以是高电平,也可以是低电平。
输入按键按下时,
LED与a端口状态保持一致,
输入按键释放时,
LED与b端口状态保持一致。

创建工程

1.创建工程
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
2.添加文件
没有文件就不用添加了
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
3.选择器件型号
AC620的型号如下
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
4.设置仿真软件
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
5.新建Verilog文件
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
6.点此处新建
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED

设计输入

module led_TEST(a,b,key_in,led_out);

module要和工程名称一致
a,b两个端口
key_in按键输入
led_out是led的输出

项目完整代码

module led_TEST(a,b,key_in,led_out);

		input a;//输入端口a
		input b;//输入端口b
		
		input key_in;//按键输入,实现输入通道的选择
		
		output led_out;//led控制端口
		
		
		//当key_in == 0: led_out=a;按键按下是a端口
		
		assign led_out = (key_in==0)? a:b;//假如key_in==0满足,led_out 就等于a,假如key_in==0不满足,led_out 就等于b
		
endmodule


开始验证
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
验证完成
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED

进行testbench验证

FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
再创建一个Verilog HDL文件作为testbench

`timescale 1ns/1ps

这里是仿真的量度和精度,1ns指以1ns为单位,1ps指可以精确到ps

testbench完整代码

`timescale 1ns/1ps

module led_test_tb;

//激励信号定义,对应连接到待测试模块的输入端口
	reg signal_a;
	reg signal_b;
	reg signal_c;

//	待检测信号的定义,对应到待测试模块的输出端口
	wire led;
	
	
//把他实例化进行连接,括号里面就是要连接的signal
	led_TEST led_TEST0(
		.a(signal_a),
		.b(signal_b),
		.key_in(signal_c),
		.led_out(led)
		);
	
//产生激励		
		initial begin
			signal_a=0;signal_b=0;signal_c=0;
			#100;//延时100ns
			signal_a=0;signal_b=0;signal_c=1;
			#100;
			signal_a=0;signal_b=1;signal_c=0;
			#100;
			signal_a=0;signal_b=1;signal_c=1;
			#100;
			signal_a=1;signal_b=0;signal_c=0;
			#100;
			signal_a=1;signal_b=0;signal_c=1;
			#100;
			signal_a=1;signal_b=1;signal_c=0;
			#100;
			signal_a=1;signal_b=1;signal_c=1;
			#200;
			$stop;//停止仿真
		end



endmodule

写完之后再进行验证

设置脚本

Assignments->Setting->Simulation
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
点最底下的Compile test bench

FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
添加你的testbench
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
添加完成之后,就可以开始仿真了。

开始仿真

FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
如果报错的话,要去设置一下仿真软件的路径:
Tools->Options
这里是你的Modelsim的路径,Modelsim-Altera也可以,选择你们安装的
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
再点击仿真
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
就出现了仿真波形
signal_c在低电平和a保持一致,signal_c高电平和b一致

FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED

布局布线

在功能仿真完成后,说明功能没有问题,那我们就可以全编译了
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
编译没问题后,可以开始门级仿真

后仿真

FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
选择其在极限情况下的仿真
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
他有个很小的0.45ns的脉冲
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED

引脚分配

Assignments->Pin Planner
根据板子的引脚表,我们给a和b分配的是GPIO
key_in用的M1
led_out用的L10
这个去查AC620的表就可以得到
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED

下载程序

点击Programmer
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED
右上角是Successful就成功了
FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED文章来源地址https://www.toymoban.com/news/detail-448459.html

到了这里,关于FPGA/Verilog HDL/AC620零基础入门学习——第一个项目按键控制LED的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Verilog HDL】FPGA-Verilog文件的基本结构

    【Verilog HDL】FPGA-Verilog文件的基本结构

    🎉欢迎来到FPGA专栏~Verilog文件的基本结构 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ Verilog HDL系列博客参考书籍 《

    2024年02月04日
    浏览(10)
  • FPGA用verilog HDL实现串口通讯协议

    FPGA用verilog HDL实现串口通讯协议

    串口通信是一种通过串行传输数据的通信方式。它使用单个数据线将数据位逐个传输,而不是同时传输多个数据位。串口通信常用于连接计算机与外部设备,如打印机、调制解调器、传感器等。 串口通信一般使用的是异步传输方式,即发送方和接收方的时钟不同步。数据传输

    2024年02月05日
    浏览(14)
  • fpga开发基于verilog HDL的四人抢答器

    fpga开发基于verilog HDL的四人抢答器

    鱼弦:CSDN内容合伙人、CSDN新星导师、全栈领域创作新星创作者 、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen) 智能电子抢答器可容纳4组参赛者抢答,每组设一个抢答钮。 ③ 电路具有第一抢答信号的鉴别和锁存功能。

    2024年02月04日
    浏览(12)
  • 【FPGA】组合逻辑电路三种建模方式(Verilog HDL 门级建模、Verilog HDL 数据流建模、组合电路行为级建模)

    【FPGA】组合逻辑电路三种建模方式(Verilog HDL 门级建模、Verilog HDL 数据流建模、组合电路行为级建模)

    目录   Verilog HDL 门级建模 各种逻辑门的表示和使用 门级建模书写实例 Verilog HDL 数据流建模 数据流建模 数据流建模书写实例 组合电路行为级建模 always语句 条件语句 多路分支语句 循环语句 for while repeat forever 行为级建模示例   可以理解为对逻辑电路中各个门依次进行描述

    2024年04月13日
    浏览(19)
  • FPGA实验报告 Verilog HDL:7人表决器 巴克码信号发生器 FPGA数字时钟

    写在前面:本文提供以下三个任务的思路讲解和代码实现, 如需参考引脚配置说明,可以点击下方链接跳转查看完整实验报告 ;本实验使用的是Altera公司的cycloneⅢ类型的芯片。 Verilog HDL实现:7人表决器 信号发生器 多功能数字时钟 实验目标:实现7人投票表决电路,支持人

    2024年02月05日
    浏览(15)
  • Verilog HDL语言基础知识

    Verilog HDL语言基础知识

    目录 Verilog HDL语言基础知识  6.1.2  Verilog HDL模块的结构 6.1.3 逻辑功能定义 6.2.1  常量 6.3 运算符及表达式 6.4.2 条件语句 先来看两个Verilog HDL程序。 例6.1    一个8位全加器的 Verilog HDL源代码 【例6.2】一个8位计数器的Verilog HDL源代码     从上面的例子可以看出:     ①

    2024年02月05日
    浏览(9)
  • 【FPGA/verilog -入门学习4】verilog 实现多路脉冲计数

    【FPGA/verilog -入门学习4】verilog 实现多路脉冲计数

    设计一个脉冲计数器,其功能如下 输入脉冲:4路脉冲信号,分别对每路进行脉冲检测并计数 使能信号:高电平进行计数,低电平清零计数器 计数器:在使能信号高电平期间,对脉冲信号的上升沿进行检测并递增计数值 编写测试脚本,进行仿真验证 使用上一章的一路脉冲检

    2024年02月04日
    浏览(10)
  • 【FPGA/verilog -入门学习2】verilog 生成上升沿下降沿脉冲

    【FPGA/verilog -入门学习2】verilog 生成上升沿下降沿脉冲

    使用脉冲边沿检测法设计一个上下降沿检测功能 preg1 =pluse preg2=preg2 preg1 比pluse 晚一个时钟, preg2比preg1晚一个时钟 在利用 与/非指令合并,生成上升沿的一个脉冲的 r_pluse = {r_pluse[0],pulse}; //等效于 r_pluse[0] =pluse r_pluse[1] =r_pluse[1] vlg_design testbench_top 3次测试中,测试1,测试2 ,

    2024年02月04日
    浏览(10)
  • 基于FPGA的DDS原理信号发生器设计 quartusII 9.1平台 Verilog HDL语言编程 可产生正弦波

    基于FPGA的DDS原理信号发生器设计 quartusII 9.1平台 Verilog HDL语言编程 可产生正弦波

    基于FPGA的DDS原理信号发生器设计 quartusII 9.1平台 Verilog HDL语言编程  可产生正弦波、方波、锯齿波以及三角波   频率幅度可调节   代码+原理图 在现代电子技术领域,针对各种应用的信号发生器是一种非常核心的设备,而基于现场可编程逻辑门阵列(FPGA)的直接数字合成(

    2024年04月27日
    浏览(11)
  • 【FPGA/verilog -入门学习10】verilog 查表法实现正弦波形发生器

    【FPGA/verilog -入门学习10】verilog 查表法实现正弦波形发生器

    用查找表设计实现一个正弦波形发生器 寻址的位宽是10位,数据量是1024个,输出的数据是16位 数据量是1024个: x = linspace(0,2*pi,1024) 输出数据是16位: y范围:0~2^16 -1 = 0~65535 y =( sin(x)+1)*65535/2 寻址的位宽是10位 输入是0~1023 1023 占用10位 操作步骤 1,使用matlab 生成数据,制作

    2024年02月05日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包