ls-cpu-exb-001 体系结构与cpu设计教学实验系统是根据高等院校计算机专业本科生及研究生相关专业开设的《计算机体系结构》、《计算机组成原理》、《数字逻辑》等计算机基础软硬件课程的实验教学需要,自主研发,具有自主知识产权的集成实验设计、开发与教学平台。该实验系统围绕计算机系统的基础软硬件专业能力培养,可以满足不同层次院校开设上述课程实验的验证型、综合型、创新型实验教学要求。

产品背景
《计算机体系结构》、《计算机组成原理》、《数字逻辑》、《操作系统》等课程是计算机、软件工程、自动化、电子工程等专业的重要基础课程,是培养本科生及研究生基础软硬件系统能力的关键,但上述课程的实验教学环境非常贫乏,国内已有的硬件平台也相对使用多年,实验手段比较落后。这种状况造成了学生在理解、巩固和加深理论知识上受到制约,在计算机“系统观”的培养上缺乏实践能力与融会贯通的能力。
随着计算机软硬件技术的不断发展,处理器的设计与发展也日新月异,而计算机体系结构的诸多概念,对于学生教学而言仍然停留在概念阶段,由于计算机系统设计相当复杂,涉及底层的软硬件基础架构,学生们通常无法进行实践,即便动手做实验,也只能做一些简单的cpu指令设计,没有能力和配套的实验平台去进行一个全系统的学习实践,也因此无法接触到现代计算机系统结构中的很多经典概念。因此,高等院校在有关计算机基础软硬件系统能力的教学上,存在很大的缺失,也造成国内的计算机相关专业教学大多停留在如何“使用”计算机而不是如何“造”计算机。
“龙芯”是我国自主研发的高性能通用系列处理器,目前已经形成系列化产品并进行了规模化产业推广与应用;龙芯基于mips基础指令集进行扩展,从核心微结构设计、物理版图以至上层bios、内核源码等具备完全自主的开发与设计能力。为了提高我国高校在计算机系统结构方面的教学水平,培养具备“系统观”能力的计算机专业人才队伍,中国科学院计算技术研究所联合龙芯中科技术有限公司,以提高我国计算机体系结构为主的教学水平为目标,设计了面向系统能力培养的计算机fpga系统教学实验平台,弥补上述课程缺乏实验教学环境的不足,进行上述课程的配套实验设备开发及市场推广。
产品特点
适用于多种基础课程教学
实验系统硬件平台操作方便,基于标准fpga主板环境,具备丰富的接口资源和使用方式,在硬件设计上考虑了不同计算机课程的对硬件资源的需求,在实验安排上可以多层次,多角度,配合不同的实验案例,该实验系统可以满足《数字逻辑》、《计算机组成原理》、《计算机体系结构》、《操作系统》等多种硬件相关课程的实操性教学。在上述课程中,通过安排学生对教师所教学知识点进行及时上机操作,起到辅助教师教学、降低教师授课负担并有效提高教学质量。
“从易到难”的层次化教学设计
实验系统整体架构具备自主开放、技术先进的特点。从数字逻辑实验到组成原理/体系结构实验,实验系统在实验安排上注重从易到难,化繁为简,对各个需要操作的知识点进行模块化包装。其中在计算机组成原理与体系结构的教学实验安排中,可提供不同复杂程度的cpu参考代码,包括基于简单指令集的单周期cpu、扩展到多周期cpu,以致扩展到完整的可运行标准linux内核的cpu,根据学生能力不同以及教学或科研目的的不同,对教学内容进行不同层次的安排与设计,使学生培养达到从易到难,融会贯通的效果。
丰富的实验指导案例与方便可调试的系统平台
实验平台提供丰富完善的实验指导案例,针对《数字逻辑》、《组成原理与体系结构》、《操作系统》提供详实的实验操作说明。为了降低教师上手操作难度,上述实验指导书为教师提供全套的实验案例源代码与操作说明文档,教师完全可以根据实验指导书进行一步步操作,方便教学参考。同时在必要的情况下,我们也可根据教师实际需求提供进一步面对面的培训与长期的技术答疑支持。
特别的,为了降低教师及学生在fpga硬件平台上的实际操作难度,该实验平台除了提供详实的实验指导书之外,还专门设计了调试界面,其中fpga主板上自带的显示屏在fpga中进行了预先设置,可直接作为用户fpga rtl代码中的变量显示界面,甚至可以实时显示用户所指定的存储地址空间的内容。这样大大降低了把实验代码从仿真平台到实际fpga硬件上运行调试的难度。
计算机全系统的运行展示环境
实验系统的fpga开放源代码环境,使学生有机会能够接触并实践到体系结构中的诸多经典概念,采用最完整真实的cpu全套代码及其fpga开发流程来进行更多有创新有挑战的创新型实验,让学生从真正意义上操作一个功能完备的工程化cpu设计。实验系统在 cpu平台基础上可以进行全系统的软件层设计,包括从启动bios到加载标准linux内核,该系统提供了完整的软件运行环境代码,同时我们还在fpga硬件平台上配置了串口、显示接口、以太网等计算机常见接口,并通过灵活的授权方式提供相关接口控制器模块的ip授权,以及提供这些接口的配套驱动等软件代码,使得学生不但能够了解处理器本身的工作原理,也能深入地了解驱动、内核、操作系统等底层软件的工作原理,展示一个真实完整的计算机运行过程。
提供业界交流与服务平台
该实验室平台由中科院计算所龙芯团队进行研制推广,在提供教学实验平台的同时还提供科研与教学合作的机会,提供课程的教学老师和学生有机会与国内最前沿的计算机芯片和研发人员直接交流,从而能够最大程度上对计算机系统课程进行深入理解,并达到高校教学与企业需求的有效对接。
产品组成和介绍
该实验平台由定制开发的fpga主板和配套软件、代码及教材组成。其中fpga开发板采用xilinx系列大容量fpga,fpga可直接提供内存控制器,外接ddr3标准内存,并连接串口、lcd显示屏,以太网接口等,以满足不同的接口实验与驱动编程等教学需要。为了便于满足不同层次的教学需求和一些硬件基础实验课程需要,fpga主板上还提供了丰富的简单化的输入输出控制接口,如数码管、指示灯、拨码开关等。
实验平台的基本结构和软硬件结构图如下所示。

图1 fpga实验平台框架图
实验平台根据用户高级设计需求,可提供高效率的龙芯cpu核,进行高级体系结构教学,并采用模块化配置,方便开发者进行修改和重新编译。
实验平台提供软件代码,包括运行于cpu之上的bios及内核,以及包含了所有io接口的驱动,配套编译器等软件。在此基础上,学生可以了解所有底层软件代码的,并重新进行编写更改功能,便于开展不同内容的软硬件结合实验。
实验内容
该教学实验平台可应用于计算机体系结构设计、操作系统内核设计、开发与验证环境,包括《数字逻辑》、《计算机组成原理》、《计算机体系结构》、《操作系统》等课程实验教学,弥补与补充其硬件实验环境的不足。促使学生达到巩固提高、融会贯通、能力训练、知识创新的学习效果。
在该教学实验平台的基础上,我们编制了相应课程的实验大纲与教材,并应用于计算机本科与研究生的实际实验教学过程中。
《数字逻辑》课程实验介绍
实验一:基本门电路与fpga环境熟悉
实验二:组合逻辑电路实验
实验三:锁存器、时钟与触发器电路实验
实验四:时序逻辑电路实验
实验五:存储器实验
实验六:数字逻辑综合实验(数字时钟)
《组成原理》、《体系结构》课程实验介绍
实验一 硬件平台入门
实验二 软件平台入门
实验三 数据运算:定点加法
实验四 数据运算:乘法器
实验五 寄存器堆实现
实验六 alu模块实现
实验七 存储器
实验八 单周期cpu实现
实验九 多周期cpu实现
课程设计 静态5级流水cpu实现
课程设计拓展题 完整龙芯cpu系统实现
实验教材
配套手册
《ls-cpu-exb-001平台用户使用手册》
《龙芯mips32处理器文档及使用说明》
实验指导书
《ls-cpu-exb-001数字逻辑实验指导手册》
《ls-cpu-exb-001组成原理、体系结构实验指导手册》
软件配套
配套实验verilog源代码
配套实验软件、源码