跳转至

云实验平台介绍

本文是云实验平台的使用指南。如果不做大组的扩展实验的话,基于云的实验平台已经足够同学们使用了。

平台也提供在线 Vivado、课程助手和 MCP 接口。详细的配置和使用方法可以参考接下来的几篇文档。

总体介绍

ThinPAD-Cloud 教学计算机实验平台是清华大学计算机科学与技术系为计算机系统类课程教学实验专门设计的。实验平台的设计目标充分考虑了完整计算机系统设计和实现的需要,以现场可编程门阵列(FPGA)为核心、配置静态存储器(SRAM)作为内存,可以实现指令流水功能。同时,教学计算机配备了较为丰富的外部接口,如串口、闪存、HDMI、网口等,以及硬件实验必不可少的手拨开关、指示灯,可以完成计算机组成原理的课程实验,也可以满足大多数硬件课程实验的要求。

上图是 ThinPAD-Cloud 教学计算机的外观,基于 FPGA 的 ThinPAD-Cloud 教学计算机实验平台具有完全的可编程性,学生可以充分发挥自己的创造性,设计出新颖的架构和创新的应用。同时 ThinPAD-Cloud 平台配置的大容量 FPGA(100K LEs)使得学生可以完成较复杂的处理器设计(如带有缓存的流水线 CPU)成为可能。

与市面上大多数 FPGA 开发板不同,ThinPAD-Cloud 板载了 8MB 的大容量的静态存储器 SRAM,而不是 DDR 动态存储器。由于 SRAM 具有访存延迟低、周期固定的特点,这一设计极大降低了内存控制器和 CPU 访存部分的设计难度,有助于学生实现一个完整的计算机系统。

在外围电路设计上,ThinPAD-Cloud 提供了 32 位拨码开关和多个按钮开关,16 位 LED 和两个 7 段数码管,用于完成基础实验和辅助调试。实验平台还提供了串口、HDMI、以太网、USB 等常见的计算机外围接口。其中串口主要用于上位机(即与所连接的计算机)通信,输出调试信息,是实验开发过程中最主要的通信接口。HDMI 接口可以外接显示器输出图像,从而实现终端显示、图形界面等。以太网和 USB 接口供学生自由开发,扩展网络通信、键盘鼠标支持、U 盘读写等功能。如果学生完成图形显示和键盘等扩展功能后,整个平台就拥有了自己的输入输出功能,可以作为独立的计算机系统运行,实验成果的可展示性得到很大的提升。

此外,ThinPAD-Cloud 还板载了控制模块,集设计文件写入 FPGA、串口转换、SRAM 读写和 Flash 读写等功能于一体。平台只需连接一根 USB 线到开发计算机,免去了外接 JTAG 下载线和 USB 转串口线的不便。这些功能支持 Windows、MAC 和 Linux 三大主流操作系统,将实验平台连接到装有这些操作系统的计算机后无须安装其他专用程序就可以使用,为实验环境准备带来方便。实验平台内置的 SRAM、Flash 读写工具,可以帮助实验者快速地把软件程序加载进存储器中,避免通过串口加载的长时间等待,也可以读取存储器内容,帮助对存储器相关实验进行检查。

ThinPAD-Cloud 实验平台还实现了基于互联网的远程实验功能,实验用户可通过互联网访问远程实验平台,获得和本地实验完全一样的效果,极大地提高了通过该平台进行硬件实验教学的可用性。

实验平台结构

实验平台以一片 Xilinx 公司的 Artix-7 系列 FPGA 为核心,其型号为 XC7A100TFGG676。它具有 101440 个逻辑单元(LE),与计算机组成原理相关的大多数实验都可以在其上完成。较大的逻辑容量使学生不但可以在上面实现一个常规的支持指令流水的 CPU,还可以扩展实现更高级的功能(如缓存)。

上图是实验平台硬件组成及结构。实验平台上配置了 SRAM 和 Flash 闪存两类存储芯片,作为计算机系统的存储器使用。其中 SRAM 由四片 1Mx16 位的芯片组成,每两片组织为一个独立单元,分别称为 BaseRAM 和 ExtRAM,每个单元的容量都是 1Mx32 位,即 4MB。两个单元的地址、数据和控制信号分开连接到 FPGA。这种内存模式对实现指令流水的计算机架构比较合适,可以将指令和数据存储在两个不同的存储空间,实现在一个机器周期中同时访问指令和数据,以避免指令流水带来的结构冲突。当然,用户也可以将两个存储器单元逻辑上合并为一个 8MB 的内存单元使用,以运行一些要求内存容量比较高的程序,如完成嵌入式操作系统等的实验。

实验平台配置的非易失性存储器是一片 8MB 容量,16 位数据位宽的 NOR 闪存。实验者可以使用它来实现文件系统,也可以用来存储操作系统镜像文件。在调试硬件逻辑时,每次启动可以从闪存直接加载软件。由于从闪存载入镜像文件比串口快,可极大地节省调试硬件逻辑的时间。

实验平台配置有一个串口控制器,支持简单的异步串行接口通信功能。串口控制器与 FPGA 之间是并行的接口,包括 8 位数据信号线和几根控制信号线,其中数据信号与 BaseRAM 的数据线共享。

为了硬件实验调试的需要,实验平台提供了简单的 I/O 组件,包括有 32 位 DIP 开关、2 个带硬件去抖动的按键、4 个无去抖动的按键直接连接到 FPGA 作为用户输入。其中硬件去抖动按钮主要用作单步时钟输入(不建议作为时钟信号输入,后续实验也不会安排去抖动按钮作为时钟输入)和复位信号输入,其余按钮开关可以在小实验中用作数据、指令输入。板上还有两个 7 段式数码管,和 16 个 LED 灯连接到 FPGA。这些输出信号,一方面可在实验中用于显示结果,另一方面也可以作为调试输出,连接到内部逻辑中,观察信号状态。

实验平台上为 FPGA 提供两个时钟输入,频率分别是 50MHz 和 11.0592MHz。其中 50MHz 可以作为 CPU 设计的主时钟,也可以连接到 FPGA 内部的时钟管理单元,生成所需的任意频率的时钟。11.0592MHz 主要用于串口通信,该时钟信号经过整数倍分频后可以直接得到标准的串口的波特率数值。

此外,实验平台上还提供了丰富的外部接口资源,包括 DVI 并串编码芯片,它可将图像数据经由 HDMI 接口输出到显示器上;100M 以太网网卡芯片,可提供网络连接能力;还有 USB 接口芯片,可支持键盘、鼠标、U 盘等常见计算机外设。

作者:Youyou Lu (56.41%), gaoyichuan (20.51%), 于越洋 (12.82%), Kang Chen (7.69%), Jiajie Chen (2.56%)