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文件的基本结构

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

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

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

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

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

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

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

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

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

    2024年02月05日
    浏览(46)
  • 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日
    浏览(41)
  • 【FPGA/verilog -入门学习4】verilog 实现多路脉冲计数

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

    2024年02月04日
    浏览(48)
  • 【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日
    浏览(36)
  • 基于FPGA的DDS原理信号发生器设计 quartusII 9.1平台 Verilog HDL语言编程 可产生正弦波

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

    2024年04月27日
    浏览(59)
  • 【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日
    浏览(65)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包