首页 > 其他分享 >[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-05 FPGA流水灯实验

[米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-05 FPGA流水灯实验

时间:2024-07-23 19:52:40浏览次数:12  
标签:仿真 文件 led FPGA 05 开发板 安路 LED

软件版本:Anlogic -TD5.9.1-DR1_ES1.1

操作系统:WIN10 64bit

硬件平台:适用安路(Anlogic)FPGA

实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板

板卡获取平台:https://milianke.tmall.com/

登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!

1概述

流水灯以及Helloworld实验是我们首次接触编程必做的实验。我们这里就要完成经典的流水灯实验。通才来说,能够独立完成本实验代表了编程者初步掌握了编程共计的使用和基本的编程能力,已经站在了编程世界的大门口了。

在完成本实验前,请确保已经完成前面的实验,包括已经掌握以下能力:

1:完成了TD软件安装

2:完成了modelsim安装以及TD库的编译

3:掌握了TD仿真环境的设置

4:掌握了modesim通过do文件启动仿真

 

实验目的:

1:掌握流水灯入门实验的代码编写

2:掌握仿真测文件tb的编写

3:掌握modelsim仿真

4:编译并且固化程序到FPGA验证

1.1 LED灯简介

发光二极管,简称为LED,是一种常用的发光器件,通过电子与空穴复合释放能量发光,它在照明领域应用广泛。相比其它灯光源,LED效率高、寿命较长、功耗小、低碳环保、材料不易受到环境影响而相对稳定。

发光二极管与普通二极管一样具有单向导电性,在LED当中只有正极接入正极,负极接入负极它才会有电流流通进去。电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。常用的是发红光、绿光或黄光的二极管。发光二极管的反向击穿电压大于5伏,使用时必须串联限流电阻以控制通过二极管的电流。

直插型发光二极管

贴片型发光二极管

1.2 硬件电路分析

L1_DR1开发板共有8路LED,其中1路PS端的LED,7路PL端LED。当FPGA输出为高电平时,LED点亮;当FPGA输出为低电平时,LED灯熄灭。

1.3 程序设计

本次实验目的为7个LED实现流水灯的效果,LED变换间隔时间需要基于系统时钟来计数,实现间隔时间的计时,除此之外,添加系统复位使程序恢复至默认状态,输出结果由7个LED灯亮灭显示。命名模块名为run_led,此模块需要两个输入的端口,分别为系统时钟和系统复位,输出为7位的 LED 端口

2 FPGA工程

fpga工程的创建过程不再重复,如有不清楚的请看前面实验。

米联客的代码管理规范,在对应的FPGA工程路径下创建uisrc路径,并且创建以下文件夹

01_rtl:放用户编写的rtl代码

02_sim:仿真文件或者工程

03_ip:放使用到的ip文件

04_pin:放fpga的pin脚约束文件或者时序约束文件

05_boot:放编译好的bit或者bin文件(一般为空)

06_doc:放本一些相关文档(一般为空)

3 Modelsim仿真

3.1准备工作

再次提醒,在进行modelsim仿真前,请提前完成,如果有不清楚的,以下3步请看前面课程内容:

1:完成了modelsim安装以及TD库的编译

2:掌握了TD仿真环境的设置

3:掌握了modesim通过do文件启动仿真

 

对于向执行什么级别的仿真,就执行对应的HDL2Bit Flow

当 HDL2Bit Flow 运行至 Read Design 这一步时,可执行 Behavioral Simulation;

当 HDL2Bit Flow 运行至 Optimize RTL 这一步时,可执行 Post-RTL Simulation;

当 HDL2Bit Flow 运行至 Optimize Gate 这一步时,可执行 Post-Gate Simulation;

当 HDL2Bit Flow 运行至 Optimize Routing 这一步时,可执行 Post-Route Simulation。

以执行Behavioral Simulation仿真来说,只要执行Read Design 这一步,如下图

右击FPGA Flow中 Read Design,Rerun

3.2产生do文件

在tool菜单中选择simulation

我们这里也是选择已经编写好的仿真测试文件

仿真测试文件源码如下,对于led这种低速仿真,仿真精度可以设置为1ns,另外仿真阶段可以把间隔时间设置小一些,这样仿真速度就快了:

`timescale 1ns / 1ns

 

module sim_top_tb();

 

reg I_sysclk,I_rstn;      //时钟信号以及复位信号

wire [6:0]  O_led;        //仿真的LED 信号

 

run_led#

(

.T_INR_CNT_SET(1000)       //设置一个较小的时钟计数参数,可以大大缩小我们仿真需要的时间

)

run_led_inst(

 .I_sysclk(I_sysclk),      //例化时钟接口

 .I_rstn(I_rstn),          //例化复位接口

 .O_led(O_led)             //例化led接口

);

 

initial begin

   I_sysclk  <= 1'b0;     //时钟信号的寄存器设置初值

   I_rstn        <= 1'b0;     //复位信号的寄存器设置初值

   #100;                  //延时100个时间单位

   I_rstn        <= 1'b1;     //复位恢复高点平,模拟复位完成

end

 

always #20 I_sysclk=~I_sysclk;    //每过20个时钟周期,模拟的系统时钟信号进行一次翻转

 

endmodule

可以看到产生的do文件中,自动添加了仿真文件tb_run_led.v以及run_led.v程序路径

3.3启动modelsim仿真

启动后,右击需要观察的信号,添加到波形窗口

设置restart

设置运行100ms(如果运行时间太长可以修改小一些)

4下载演示

下载程序前,先确保FPGA工程已经编译。

4.1硬件连接

(该教程为通用型教程,教程中仅展示一款示例开发板的连接方式,具体连接方式以所购买的开发板型号以及结合配套代码管脚约束为准。)

请确保下载器和开发板已经正确连接,并且开发板已经上电(注意JTAG端子不支持热插拔,而USB接口支持,所以在不通电的情况下接通好JTAG后,再插入USB到电脑,之后再上电,以免造成JTAG IO损坏)

 

4.2程序下载

单击下载按钮

可以看到已经识别到芯片

4.2.1下载bit

选择bit文件

选中后单击Run

下载成功

可以看到流水灯开始运行。

 

4.3运行结果

(该教程为通用型教程,教程中仅展示一款示例开发板的上板现象,具体现象以所购买的开发板型号以及配套代码上板现象为准。)

标签:仿真,文件,led,FPGA,05,开发板,安路,LED
From: https://www.cnblogs.com/milianke/p/18319453

相关文章

  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载- [米联客-安路飞龙DR1-FPSOC] FPGA基础篇
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述前面实验中我们完成了基......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-03安路TD结合modelsim仿真
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑!1概述FPGA开发中对设计的代码功能......
  • XILINX FPGA Debug 工具ILA和VIO
    原因在需要观测、调试FPGA内部逻辑时,2个工具ILA和VIO是非常有用的工具,ILA是内部逻辑分析仪,用于分析信号抓取波形,VIO是虚拟IO,用于手动修改FPGA内部变量,可以大大方便调试。https://docs.amd.com/r/en-US/ug908-vivado-programming-debuggingILA集成逻辑分析器(ILA)是一项强大的工......
  • 安川伺服驱动器 SGDB-05ADG
    安川伺服驱动器维修经验总结:1、示波器检查驱动器的电流监控输出端时,发现它全为噪声,无法读出;故障原因:电流监控输出端没有与交流电源相隔离(变压器)。处理方法:可以用直流电压表检测观察。2、电机在一个方向上比另一个方向跑得快;(1)故障原因:无刷电机的相位搞错。处理......
  • 题解:P10717「KDOI-05」简单的树上问题
    \(\text{Link}\)题意给你一颗\(n\)个结点的树,有\(k\)次操作,第\(i\)次操作:每个点初始都处于未激活状态;以\(p_{i,j}\)的概率激活点\(j\);对于每个未激活的点\(i\),如果存在激活的结点\(j,k\)且\(i\)在\(j\)到\(k\)的路径上,则\(i\)也会被激活。给出\(v_{i......
  • 0054_Spiral-Matrix【M】
    JY:矩阵螺旋式遍历(一圈圈螺旋式、从外到里)参考:0054_Spiral-Matrix【M】·语雀1、基于矩阵4个边界指针实现顺时针顺序一层层遍历,共需遍历math.ceil(min(m,n)/2)圈fromtypingimportList,DictclassSolution:defspiralOrder(self,matrix:List[Lis......
  • 0059_Spiral-Matrix-ii【M】
    JY:矩阵的螺旋遍历相似题:0054_Spiral-Matrix【M】参考:0059_Spiral-Matrix-ii【M】 1、基于4个边界指针参考0054_Spiral-Matrix【M】中的解法2classSolution:defgenerateMatrix(self,n:int)->[[int]]:left,right,top,bottom=0,n-1,0,n......
  • 05内存情况
    documentReader类型DefaultBeanDefinitionDocumentReaderdelegate类型BeanDefinitionParserDelegate,临时对象属性|-Set<String>usedNames|-ParseStateparseState|-beanNameGenerator(DefaultBeanNameGenerator)BeanDefinition类型GenericBeanDefinition......
  • UNS0874A | UNC4672AV1 HIEE205012R1 间接励磁系统
    产品型号:UNS0874A产品类别:间接励磁系统产品成色:全新、非全新质量保障:365天原产地;美国库存;有货品牌;ABB定义:UNS0874A驱动控制器是电动车或混动车等设备的核心控制部件之一,负责将电池组提供的高压直流电转化为适合驱动电机工作的交流电信号,从而控制电机的旋转速度和......
  • 05document转为BeanDefinition并注册过程
    接着之前的文章4继续分析,文章4里的步骤七里xmlReader(XmlBeanDefinitionReader)的registerBeanDefinitions(doc,resource)方法里最终走到调用他的好友documentReader.registerBeanDefinitions(doc,createReaderContext(resource))方法Ⅰ、代码流程一、程序入口位于documentRea......