FPGA 大规模在线评测实验平台
核心功能
在线运行
支持学生在线申请 FPGA 硬件开发板,支持自动为学生自动分配空闲开发板。在开发板资源不够时,支持排队进入在线实验环境。
实验平台为每个学生分配一个由 FPGA 硬件开发板驱动的 FPGA 电路运行面板。通过运行面板,学生可看到电路的实时运行效果;通过输入外设,实现与 FPGA 上运行的电路进行实时交互。
随时随地
学生通过浏览器即可随时随地登录实验平台开始实验。点击“开始实验”后,进入 FPGA 电路运行面板实验环境。在电路运行面板上,学生可在线申请 FPGA 硬件开发板。
支持学生在线烧录位流到远程 FPGA 硬件开发板上运行,摆脱时间和空间限制。学生可在图书馆、自习室、宿舍等非机房环境中开展硬件实验。
当开发板出现异常时,支持学生一键远程重启开发板或切换新开发板。
外设丰富
提供丰富的输入/输出外设,支持外设数量与种类的可持续扩展,不受 FPGA 芯片引脚数量约束。当前外设包括:
· LED 灯:32 个
· LED 点阵:16*16,4 个
· 7 段数码管(带小数点位):9 个
· 拨码开关:32 个/组,共 2 组
· 按键:8 个
· 复位键:1 个
· 时钟键:1 个
· 音频输出:支持
· 视频输出:支持,HDMI/VGA
· 串口:支持
自动评测
学生提交位流文件后,平台可自动在远程 FPGA 硬件开发板上运行学生的电路,评测学生所提交电路的功能是否正确,性能是否满足要求。根据评测结果,自动为学生实验判分。自动评测功能的引入实现了统一、客观的评分标准,同时可大幅减轻教师的评阅工作量。
针对每个实验,都设置了多组测试用例。可按照学生通过的测试用例数量分阶段、分步骤给分。
高密度
通过将 FPGA 硬件开发板高密度封装于 FPGA 服务器中,有效避免传统 FPGA 开发板或者实验箱在使用过程中的损耗问题。 FPGA 服务器具有如下特点:
· 4U 标准机箱外壳。
· 每块开发板支持单独插拔,即插即用。
· 服务器通网通电后,可全年 7*24 小时运行。
· 每台服务器中包含 28 块 FPGA 硬件开发板。
· 支持本地交付,多台服务器可组成 FPGA 集群。
- FPGA 型号:XC7Z020,85k LCs
- FQSPI NOR FLASH:≥16MB
- Ethernet:1 路
- DDR3 RAM:1GB
- ARM硬核:2 个,主频766MHz,支持音视频硬件加速
实验体系
FPGA 快速入门
覆盖LED灯、LED点阵、数码管、拨码开关、复位键、按键、串口、音频、视频等外设。每个实验提供了详细的实验指导手册,可指导学生如何从零开始在 FPGA 在线实验平台完成所有实验内容
-
实验1:LED跑马灯实验
下载比特流文件后,即可看到使用32个LED灯实现的跑马灯效果。
-
实验2:LED灯开关实验
下载比特流文件后,拨动某个拨码开关后,对应LED灯亮;拨回后,对应LED灯灭。
-
实验3:4位加法器实验
下载比特流文件后,拨动拨码开关输入2个4位操作数,即可在数码管上显示经过加法器运算之后得到的计算结果。
-
实验4:数码管计数实验
下载比特流文件后,所有数码管按每秒变化1次的频率从000000000计数到FFFFFFFFF。当计数达到FFFFFFFFF后,下次重新从000000000开始计数。计数过程中,小数点位全部点亮。
-
实验5:数码管秒表计数实验
下载比特流文件后,数码管以“时.分.秒.毫秒”格式开始计数。时间位宽格式为:hh.mm.ss.xxx,计数过程中,时、分、秒后的小数点位全部点亮。
-
实验6:LED点阵汉字显示实验
下载比特流文件后,在4个16*16的LED点阵上滚动显示一排汉字,内容为:计算机系统能力培养。
-
实验7:串口读写
下载比特流文件后,可以使用串口发送字符串,在接收端可以看到发送的字符串内容,支持ASCII模式。
-
实验8:蜂鸣器实现7个音调
下载比特流文件后,可以使用7个按键实现7个音调(do、re、mi、fa、sol、la、si)。
-
实验9:蜂鸣器演奏生日快乐
下载比特流后,可以播放使用蜂鸣器演奏的生日快乐伴奏。
-
实验10:VGA显示屏保动画
下载比特流后,可以显示屏保动画。在屏保动画中,Logo标志在黑色背景屏幕内来回移动,碰到屏幕边缘会反弹,每次碰撞时播放提示音,反弹后的Logo切换一次颜色。
数字逻辑
门电路 | 组合逻辑 | 时序逻辑 | |||
---|---|---|---|---|---|
输出0 输出32位0 1位输入输出 32位输入输出 与门 非门 或门 或非门 与非门 异或门 同或门 32位与门 32位非门 32位或门 32位或非门 32位与非门 |
32位异或门 32位同或门 两位相等 32位相等 两数相等 两数相等(全亮版) |
奇偶校验 所有位做逻辑运算 vector反转 4字节颠倒顺序 实现7458模块 3-8译码器 8-3编码器 优先编码器 4选1数据选择器 4位数值比较器 2选1多路选择器 6选1多路选择器 简单编码器 2选1多路选择器 2选1总线 9选1多路选择器 |
半加器 全加器 4个数求最小(三目运算) 计算3位vector中1的个数 根据原理图实现电路1 根据原理图实现电路2 根据原理图实现电路3 根据表达式实现电路1 根据波形图实现电路1 根据波形图实现电路2 根据波形图实现电路3 根据波形图实现电路4 根据波形图实现电路5 根据波形图实现电路6 |
D触发器 D触发器组合 异步复位触发器 同步复位触发器 同步复位触发器组 同步复位特殊值触发器组 可异步复位的触发器组 带控制端的触发器组 D锁存器 门控触发器 根据真值表实现电路 根据波形图实现电路1 根据波形图实现电路2 上升沿检测 移位寄存器(1位) 移位寄存器(8位) |
算数左右移 双向移位寄存器 四位二进制加减计数器 十进制加减计数器 分频器 |
状态机 | LED外设实验 | 数码管外设 | 综合设计 | |
---|---|---|---|---|
验证1000序列(Moore) 验证1000序列(Mealy) 验证1101序列(Mealy) 验证1101序列(Moore) 序列识别 旅鼠1 旅鼠2 旅鼠3 旅鼠4 异步复位Moore状态机 同步复位Moore状态机 根据状态转换表实现状态机1 根据状态转换表实现状态机2 |
LED1闪烁 LED1可控闪烁 LED全闪烁 LED可控全闪烁 LED可控可数闪烁 LED1-8跑马灯 LED1-8可控跑马灯 LED1-8可控可数跑马灯 LED1-8可控往返跑马灯 LED13-20可控双向跑马灯 LED13-20可控双向往返跑马灯 LED低4高4可控跑马灯 LED低4高4可控往返跑马灯 LED无符号数值比较器 LED有符号数值比较器 |
数码管显示1个数 数码管显示8个数 数码管选择显示8数 数码管显示十进制无符号数 数码管显示十进制有符号数 数码管无符号数值比较器 数码管有符号数值比较器 数码管十进制无符号数值比较器 数码管十进制有符号数值比较器 数码管8个数选最大 数码管8个数选最小 数码管8个数选最多 数码管8个数选最少 数码管8个数求平均 数码管8个数升序排序 |
数码管8个数降序排序 数码管8个数动态升序排序 数码管8个数动态降序排序 |
计数器 格雷码计数器 字符自动机(正则表达式匹配) 表达式状态机(表达式校验) 表达式状态机-允许括号(表达式校验) 自动售货机 出租车计费 LED点阵螺旋曲线 控制屏幕画面移动 挡板接小球游戏 |
单周期CPU 、 流水线CPU
单周期CPU | 流水线CPU | |
---|---|---|
取指单元设计与实现 寄存器堆设计与实现 ALU算术逻辑单元设计与实现 DataMem数据存储设计与实现 控制器设计与实现 ALU控制器设计与实现 CPU顶层设计与实现 CPU上板验证:控制LED闪烁 CPU上板验证:控制数码管显示数字 CPU上板验证:计算斐波那契数列 |
实现寄存器堆 取指级基本实现 取指-译码中间级实现 译码级基本实现 执行级基本实现 访存级基本实现 写回级基本实现 解决寄存器读写冲突 取指级支持分支 译码级支持分支 译码级访存实现 执行级访存实现 访存级完整实现 写回级完整实现 取指级支持暂停 译码级冲突检测 |
执行级冲突检测 访存级冲突检测 解决访存冲突 实现流水线控制器 CPU上板验证:控制LED闪烁 CPU上板验证:控制数码管显示数字 CPU上板验证:计算斐波那契数列 CPU上板验证:实现秒表计数 CPU上板验证:输出三色图像 CPU上板验证:控制挡板左右移动 CPU上板验证:实现小球反弹动画 CPU上板验证:实现挡板接小球游戏 |
应用场景
· 基于 FPGA 在线实验平台,可支撑以下课程实验环节的开展:
数字逻辑 数字系统设计 计算机体系结构 计算机系统导论 EDA 技术与应用 |
数字电路 计算机组成原理 计算机系统基础 FPGA 数字系统技术 数字集成电路设计 |
· FPGA 在线实验可与线下的硬件开发板或实验箱形成互补,学生使用线下硬件开发板或实验箱开发和测试电路,提交到线上 FPGA 在线实验平台完成考核。
冒泡排序算法可视化
在希冀 FPGA 在线实验平台上,学生基于Verilog使用数码管实现的冒泡排序算法可视化。在启动排序后,将在数码管上展示出每一轮迭代中相邻两个数的交换过程。
演奏新年好(支持音频)
该视频演示了 FPGA 在线实验平台对音频的支持。在下载比特流文件后,使用7个按键可以产生7种音调。基于7种音调可以演奏歌曲《新年好》。通过将按键映射到电脑键盘,可提升按键的输入效率。
同时支持视频和音频
该视频演示了学生基于 FPGA 在线实验平台实现的希冀Logo屏保动画,在希冀Logo每次碰撞到屏幕边缘时,会切换一次颜色,并发出碰撞提示声。
控制视频画面移动
该视频演示了学生基于 FPGA 在线实验平台实现的使用按键作为输入控制希冀Logo上下左右移动的应用效果。该应用同时使用了 FPGA 在线实验平台的视频、音频、输入等多项功能。
基于单周期CPU的斐波那契数列计算
在希冀 FPGA 在线实验平台上,学生基于自己设计的单周期CPU实现了斐波那契数列计算。该CPU采用MIPS指令集架构,支持6条指令。从该视频中可以看出,该CPU具有较高的运算效率。
基于流水线CPU的秒表计数
在希冀 FPGA 在线实验平台上,学生使用自己设计的MIPS指令集架构CPU实现的秒表计数效果。该CPU具有5级流水线,支持22条指令。视频开头为秒表计数程序的汇编源代码。