【紫光HiYou开源入门轻量级PCIE开发板PG2L25G】实验例程1-基于紫光FPGA 的LED 流水灯

本原创文章由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com)

在FPGA技术于5G、AI及低空经济等新兴领域持续"破圈"、国产替代加速的宏大背景下,小眼睛科技联合紫光同创及电子发烧友共同发起了"拥抱开源------一起来做FPGA开发板"的项目。历时半年,集结了100多位来自各行各业的工程师智慧,我们成功打造了这款凝聚集体心血的紫光HiYou开源开发板(OPHW-25H)。

这款基于国产紫光同创Logos-2系列芯片的开发板,不仅是千元内入门级产品中唯一配备PCIe接口的轻量级利器,更实现了从硬件设计到底层代码的全方位开源,旨在为广大开发者提供一个高性价比、高扩展性的国产FPGA学习与验证平台,共同点燃技术创新的火花。

(详情见技术论坛:https://www.szlogicmatrix.com/)

****1.****实验简介

实验目的:

通过按键控制4个LED灯按顺序依次点亮和熄灭。OPHW-25开发板有4个用户LED灯(LED0~3),FPGA输出高电平时对应的LED灯亮灯(详情请查看"OPHW-25开发板硬件使用手册")。控制4个LED灯按顺序依次点亮和熄灭。

实验环境:

Window11

PDS2022.2

硬件环境:

OPHW-25开发板

****2.****实验原理

通常的时,分,秒的计时进位大家应该不陌生;

1小时=60分钟=3600秒,当时针转动1小时,秒针跳动3600次;

在数字电路中的时钟信号也是有固定的节奏的,这种节奏的开始到结束的时间,我们通常称之为周期(T)。

在数字系统中通常关注到时钟的频率,那频率与周期的关系如下:

OPHW-25板卡上单端时钟有一个50MHz和一个27MHz的晶振提供时钟给到OPHW-25;实验分析:

控制LED亮灭需要控制IO输出的高低电平即可(低电平点亮,高电平熄灭),原理图如下:

控制LED依次0 .5s亮,0.5s灭,需要控制IO依次输出0 .5s高电平,0.5s低电平周期变化。如下图波形:

若使用50MHz外部输入时钟,时钟周期为20ns(在verilog设计中的计数器的计时原理基本上是一致的,确认输入时钟周期和目标计时时间后可得到计数器的计数值到达多少后可得到计时宽度);

IO输出状态只有两种:1或0;我们可以使用一个计数器,计数满25000000个时钟周期时变化不同LED点亮。

****3.****实验源码设计

****3.1.****文件头设计

在module之前添加文件头,文件头中包含信息有:公司,作者,时间,设计名,工程名,模块名,目标器件,EDA工具(版本),模块描述,版本描述(修改描述)等信息;以及仿真时间单位定义;

`timescale1ns/1ps表示仿真精度是1ns,显示精度是1ps;

`defineUD#1定义UD表示#1;#1仅仿真有效,表示延时一个仿真精度,结合上一条语句表示延时1ns;

3.2.设计module

此段代码是标准的module创建的模型,module创建时需要确认输入输出信号并定义好位宽,之后在对module进行具体的逻辑设计;管脚与管脚之间用","隔开,最后一个管脚不用间隔符号;

创建module时需要定义输入输出信号;本实验输入时钟和复位即可,输出是控制LED的亮灭,OPHW-25板卡上共有4个LED,故而输出4bit位宽的信号;

单个状态计数25_000_000,即24_999_999=25'b1_0111_1101_0111_1000_0011_1111;所以计数器的位宽为25位即可;

当计数器计数到25'd24_999_999时,计数过程包含了从0~26'd2499_9999的时钟周期,故而总时长时25'd25_000_000×Tclk;硬件输入时钟为50MHz,所以此计数器的计数周期是0 .5s;

在指定的时间刻度上对LED 的状态进行变更,以达到控制LED 依次亮灭的目的; led_light_cnt的计时周期为0 .5s,故在led_light_cnt上取一个点来变更LED的显示状态即可完成每隔0.5s让LED显示发生变化;由于LED亮和灭只有两个状态,在赋值处理上将寄存器进行移位操作;

3.3.完整的Module

****3.4.****硬件管脚分配

OPHW-25的LED和CLK与FPGA的IO连接部分的原理图如下,详情可查看硬件使用手册或原理图:

复位设计是低电平有效,OPHW-25开发板提供了4个用户按键,按键低电平有效,但按键按下时,IO上的输入电压为低;当没有按下按键时,IO上的输入电压为高电平;选择任一个用户按键作为复位输入即可。

****4.****实验现象

4颗LED灯按照设定的顺序和时间依次点亮和熄灭。

相关推荐
坏孩子的诺亚方舟15 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐15 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐15 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH16 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
zlinear数据采集卡16 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安16 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐17 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯17 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客17 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c
Hello-FPGA17 天前
Xilinx KU040 FPGA Camera Link 图像采集
c++·fpga开发