【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处
适用于板卡型号:

紫光同创PGL22G开发平台(盘古22K)

一:盘古22K开发板(紫光同创PGL22G开发平台)简介

盘古22K开发板是基于紫光同创Logos系列PGL22G芯片设计的一款FPGA开发板,全面实现国产化方案,板载资源丰富,高容量、高带宽,外围接口丰富,不仅适用于高校教学,还可以用于实验项目、项目开发,一板多用,满足多方位的开发需求。

二:实验目的

在连续信号中,检测是否包含特定序列,例如检测“11011000 “中是否包含”101”。
1、拨码开关 SW0-SW7 作为序列信号输入;
2、KEY1-KEY3 作为特定信号输入序列,KEY 按下后对应的 LED 灯会亮起,表示对应位为 1,
再按一下会熄灭,表示对应位为 0;
3、K8 为序列检测开始和序列检测结束按键,初次按下 KEY8,开始检测,此时 LED8 也会被点亮,显示当前状态,再按一下停止检测,LED8 熄灭;结束后序列串中出现特定序列的次数显示在数码管上。
三:实验原理
SW0~SW7 的状态为检测序列;
LED1~LED3 为特定序列;
数码管显示的结果为 LED[3:1]在 SW[7:0]中出现的次数。
四:实验源码设计
方案设计
从实验目的分析此实验的实现需要有三个功能模块:
1、按键 LED 模块;
按键调整特定序列,由 KEY[2:0]控制特定序列值;KEY8 控制是否检测;输出用 LED 来显
示及保存特定序列,同时也将特定序列与检测使能信号传递给检测模块;
2、序列对比模块;
由拨码开关提供待检测序列,接收按键控制模块传递过来的特定序列与检测使能信号控制
与代检测序列进行比较;比较结果输出给到数码管显示模块进行显示;
3、数码管控制模块
数码管显示模块的目标是将统计结果显示出来,用动态数码管显示的方式即可;
对应模块之间的连线如下框图:

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第1张图片

顶层模块(含数码管显示模块)设计

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第2张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第3张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第4张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第5张图片

按键 LED 控制模块  

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第6张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第7张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第8张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第9张图片

 序列检测模块设计 

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第10张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第11张图片

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第12张图片

五:实验现象
实验步骤:
1、调整输入序列,更改拨码开关 SW1-SW8 的输入值(SW[7:0]);
2、调整固定序列,通过轻触按键 KEY1-KEY3 改变 LED 状态(LED[2:0]);
3、按下轻触按键 KEY8,进入检测(LED8 灭),查看数码管显示的统计结果;
4、按下轻触按键 KEY8,退出检测(LED8 亮),重新执行前面三个步骤。

【紫光同创国产FPGA教程】——【PGL22G第五章】序列检测器实验例程_第13张图片

实验现象
当 SW[7:0]=8’b10101010;LED[2:0]=3’b101 时,按下 Key8 后数码管显示数字 3;
当 SW[7:0]=8’b10101010;LED[2:0]=3’b100 时,按下 Key8 后数码管显示数字 0;
当 SW[7:0]=8’b11111111;LED[2:0]=3’b111 时,按下 Key8 后数码管显示数字 6;
当 SW[7:0]=8’b00000111;LED[2:0]=3’b111 时,按下 Key8 后数码管显示数字 1。

你可能感兴趣的:(FPFA,fpga开发,fpga开发)