Lab3-王轩-Cache实验:独立测试与CPU集成

需积分: 0 4 下载量 81 浏览量 更新于2024-08-05 收藏 437KB PDF 举报
"王轩的Lab3-Cache实验指导,涵盖了Cache的实现与独立测试,以及与CPU的结合和性能测试。实验分为两阶段,第一阶段是Cache的独立测试,第二阶段是与CPU集成并测试benchmark性能,如快速排序和伪矩阵乘法。文档提供了建立Vivado工程的详细步骤,包括添加源代码文件,设置不同阶段的顶层文件,并介绍了如何生成和加载测试程序的指令及数据。" 实验第一阶段主要涉及Cache的实现和独立测试。这一阶段的目的是确保Cache的正确性,测试工作独立于CPU进行。在文档《Lab3-王轩-cache编写指导.docx》中,可以找到更多关于Cache实现的具体指导。 实验第二阶段是将Cache与CPU整合,同时测试benchmark性能。这一阶段的目标不仅是为了验证Cache的正确性,而且为撰写实验报告收集数据。工程中已包含了完整的CPU代码,并处理了Cache miss时的流水线暂停问题。为了测试,提供了快速排序和伪矩阵乘法两个基准程序,帮助学生评估Cache在不同应用场景下的性能。 在Vivado工程的建立过程中,需要遵循以下步骤: 1. 创建新的Vivado工程,并将`./3_CacheLab/CPUSrcCode`和`./3_CacheLab/CacheSrcCode`目录下的所有`.v`和`.sv`文件添加到工程中。 2. 在“DesignSource”部分,将`WBSegReg.v`设置为顶层文件,用于综合,因为关注的是Cache占用的硬件资源。 3. 在“Simulation Source”中,设定`cpu_tb.v`为顶层文件,以便在仿真时同时考虑CPU和Cache。 在进行CPU和Cache的联合测试之前,需要准备指令和数据。对于快速排序的测试,需要执行以下操作: 1. 进入`./3_CacheLab/ASM-Benchmark/generate_inst`目录,使用CMD运行`python asm2verilog.py QuickSort.S InstructionRAM.sv`命令,将汇编代码`QuickSort.S`转换为包含指令流的`InstructionRAM.sv`文件。 2. 将生成的`InstructionRAM.sv`文件内容替换Vivado工程中原有的`InstructionRAM.sv`,以提供快速排序所需的指令。 同样,还需要生成快速排序所需的数据,这通常涉及解析和转换汇编或C代码以生成数据存储器的内容,以便在实验中使用。 这个实验过程旨在让学习者深入理解Cache的工作原理及其对系统性能的影响,同时掌握Vivado工具的使用,包括设计、综合和仿真。通过实际操作,学生将能够更好地理解和优化计算机系统的存储层次结构。