【平头哥开源CPU——玄铁C910】开源项目库配置和前仿真记录

C910开源项目库配置

C910开源项目库中有很多问题,比如我做到make compile的时候一直在报错无法找到工程下的某个文件,主要原因是平头哥官方提供的环境变量配置文件类型是.csh的,而我的linux工作站里没有csh而且没有联网。所以把csh文件内容做了修改也成功跑通了,现在分享一下。

配置工程文件环境变量

首先第一步是配置工程文件的地址变量,主要用于使用Makefile做仿真。执行以下指令:

$ cd C910_RTL_FACTORY
$ source setup/setup.csh

(注:如果你的电脑支持csh,那么只需要直接在终端输入csh就会自动跳转到csh命令模式,后面还有一个需要修改的地方也可以进入csh模式之后直接source即可)
现在开始就遇到了第一个问题:由于我的虚拟机不支持csh,所以直接source setup.csh文档会报如下错误

在这里插入图片描述

对于这个问题,我采取的办法是把.csh文件改写成bash可以执行的文件,需要修改以下两个地方:
在这里插入图片描述

修改成:

#!/bin/bash

set pattern="\/setup"`echo '$'`
export CODE_BASE_PATH=`pwd|perl -pe "s/$pattern//"`
echo "Root of code base has been specified as:\n    $CODE_BASE_PATH"

然后再执行这个指令就可以了:

$ source setup/setup.csh

出现这个结果就说明没问题了(如果不放心的话可以再echo一下 CODE_BASE_PATH)
在这里插入图片描述

修改Makefile中的错误

第二步,是在smart_run文件夹里

$ cd ../smart_run
$ make help

这里又会报错,这是由于Makefile里的文件的最后几行引号没写全,按照前面的写法,在分号前面全都加上引号就不会报错了。
在这里插入图片描述

链接 GNU编译链

第三步,下载GNU编译链。XuanTie玄铁官网 (xrvm.cn)

第四步,还需要你再source一个.csh文件,这个文件是GNU编译链工具的地址,需要你修改成从平头哥官网上下载的编译链解压后的bin目录的地址。
在这里插入图片描述

只需要修改csh为bash,setenv改成export就行,注意等号后面要写你自己的GNU编译链的绝对地址。

#!/bin/bash

export TOOL_EXTENSION=这里写你GNU编译链的绝对地址

echo 'Toolchain path($TOOL_EXTENSION):'
echo "    $TOOL_EXTENSION"

然后在smart_run文件夹下source刚刚改过的.csh文件

source ./setup/example_setup.csh

新建work文档

第四步,尝试执行make compile,发现报错没有work文档
解决办法就是在smart_run文件夹下创建一个work文件夹就可以了,创建之后的文件结构如下:

|--C910_RTL_FACTORY/
  |--gen_rtl/     ## Verilog source code of C910
  |--setup/       ## Script to set the environment variables
|--smart_run/     ## RTL simulation environment
  |--impl/        ## SDC file, scripts and file lists for implementation
  |--logical/     ## SoC demo and test bench to run the simulation
  |--setup/       ## GNU tool chain setting
  |--tests/       ## Test driver and test cases
  |--work/        ## Working directory for builds
  |--Makefile     ## Makefile for building and running sim targets
|--doc/           ## The user and integration manual of C910

再次尝试运行 make compile,就成功啦!
在这里插入图片描述

前仿真

跑一下前仿真主要是为了走一下流程,看一下代码的情况。
默认你已经配置好了verdi和vcs环境。

首先我们打开smart_run文件夹下面的makefile文件,查看一下Makefile关于vcs的内容:
在这里插入图片描述

大概在94行的位置,这里是启动vcs生成fsdb文件的配置,我们只需要在进行编译的时候加上一个参数即可:

make compile SIM=vcs UPF=on

CASE说明

这里是一些case的介绍,不保证完全准确:

ISA_AMO:原子内存操作(Atomic Memory Operations)测试套件,用于验证处理器执行原子内存操作的正确性。这些操作包括加载/存储、比较交换(compare-and-swap)、加载/保留/释放(load/reserve/release)等。

smoke_bus:烟雾测试(smoke test),用于验证处理器的基本功能是否正常工作。该测试套件通常包含一些简单的指令和操作,以确保处理器能够正确执行基本的指令集架构(ISA)。

debug_gpr:通用寄存器(general-purpose register)调试测试套件,用于验证处理器的通用寄存器是否能够正确读写。该测试套件通常包含一些对通用寄存器的操作,例如加载、存储、比较等。

ISA_THEAD:线程支持测试套件,用于验证处理器是否支持线程执行。该测试套件通常包含一些多线程程序,以确保处理器能够正确调度和执行多个线程。

cache_op:缓存操作测试套件,用于验证处理器的缓存是否能够正确工作。该测试套件通常包含一些对缓存的操作,例如加载、存储、刷新等。

debug_memory:内存调试测试套件,用于验证处理器的内存访问是否正确。该测试套件通常包含一些对内存的操作,例如加载、存储、比较等。

ISA_FP:浮点运算测试套件,用于验证处理器的浮点运算单元是否能够正确执行浮点运算。该测试套件通常包含一些浮点运算指令,例如加、减、乘、除、平方根等。(此case无法跑通)

ISA_IMAC:整数乘加累加单元(integer multiply-accumulate unit)测试套件,用于验证处理器的整数乘加累加单元是否能够正确执行整数乘加累加运算。该测试套件通常包含一些整数乘加累加指令。(此case无法跑通)

coremark:CoreMark测试套件,用于评估处理器的性能。该测试套件包含一些常用的计算任务,例如矩阵乘法、滤波等。(此case无法跑通)

hello_world:经典的“Hello, World!”程序,用于验证处理器是否能够正确执行程序。

MMU:内存管理单元(memory management unit)测试套件,用于验证处理器的内存管理单元是否能够正确管理内存。该测试套件通常包含一些对内存页面的操作,例如分配、释放、映射等。

csr:控制和状态寄存器(control and status register)测试套件,用于验证处理器的控制和状态寄存器是否能够正确读写。该测试套件通常包含一些对控制和状态寄存器的操作,例如设置、清除、读取等。

ISA_BARRIER:内存屏障(memory barrier)测试套件,用于验证处理器的内存屏障是否能够正确保证内存操作的顺序。该测试套件通常包含一些对内存屏障的指令。

plic_int:平台级中断控制器(platform-level interrupt controller)测试套件,用于验证处理器的平台级中断控制器是否能够正确处理中断。该测试套件通常包含一些对中断的生成和处理的操作。

sleep:睡眠测试套件,用于验证处理器是否能够进入睡眠状态。该测试套件通常包含一些对睡眠模式的控制指令。

  • 34
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 玄铁C910是一款高性能的外部设备,适用于个人电脑的用户手册主要包含以下几个方面的内容: 1. 产品概述:用户手册首先介绍了玄铁C910的基本信息,包括外形特点、主要功能和适用范围等内容。用户可以通过阅读概述部分快速了解到这款设备的基本情况。 2. 安装与设置:接下来的章节详细介绍了玄铁C910的安装和设置方法。用户手册提供了图文并茂的教程,帮助用户轻松完成设备的连接和软件的安装,以及对设备进行一些基本设置的操作。 3. 使用说明:在这一部分,用户手册解释了玄铁C910的各个功能和使用方法。从设备的启动方法到具体的应用场景,用户可以通过手册了解设备的操作指南和使用技巧。 4. 常见问题解答:用户手册还为一些常见问题和故障提供了解决方案。从设备无法识别到连接不稳定等问题,用户可以通过查询这个章节找到解决问题的方法。 5. 其他说明:用户手册最后还包含了一些其他相关的说明,比如保修条款、技术支持联系方式等等。用户在遇到问题时可以及时联系售后服务或者技术支持部门。 综上所述,玄铁C910用户手册提供了一份全面且易懂的说明书,可以帮助用户正确安装、设置和使用这款设备。用户可以根据手册里的步骤和指南,充分发挥玄铁C910的性能和功能,提高个人电脑的使用体验。 ### 回答2: 玄铁C910是一款智能手机,用户手册是为了帮助用户正确使用和了解该手机的功能和操作而编写的指南。 首先,用户手册详细介绍了玄铁C910的外观和主要硬件配置。从外观方面,它可能具有精致的金属机身,屏幕大小和分辨率等信息。在硬件配置方面,用户手册会列出处理器、内存、存储容量和电池等关键参数,让用户对手机的性能有一个整体的了解。 其次,用户手册会详细介绍玄铁C910的系统操作。它会解释如何开关机、解锁屏幕、切换语言等基本操作,也会介绍如何连接无线网络、蓝牙和GPS等其他常用功能。此外,用户手册还可能提供有关如何调整音量、亮度和屏幕时间等设置,以及如何使用指纹或面部识别等高级安全功能的指导。 此外,用户手册还将详细介绍玄铁C910的系统应用和核心功能。它可能包括如何设置和使用各种通信应用程序,如电话、短信和电子邮件,以及如何浏览互联网、访问社交媒体和下载应用程序等。对于那些喜欢拍照的用户,用户手册可能会介绍如何使用相机应用程序,并提供一些摄影技巧和特殊功能的指导。 最后,用户手册还会对其它一些特殊功能进行讲解,比如如何使用语音助手、设置定时提醒或闹钟等。同时,可能还会列出一些常见问题和解决方案,以帮助用户自行解决一些常见的疑问和故障。 总之,玄铁C910用户手册是一个重要的辅助工具,它通过详细而清晰的指导,帮助用户更好地理解和使用这款智能手机的各项功能和操作。 ### 回答3: 玄铁C910是一款高性能的电视机顶盒,提供了丰富的功能和应用。用户手册是为了让用户更好地了解和使用这款产品而编写的指南。 这本用户手册主要分为几个部分:产品介绍、使用指南、功能说明和故障排除。在产品介绍部分,手册会详细介绍玄铁C910的外观、硬件配置以及支持的技术规格,帮助用户了解产品的性能和功能。使用指南部分会教用户如何正确安装电视机顶盒并与电视机连接,以及如何进行基本设置和使用。功能说明部分则会逐一介绍电视机顶盒的主要功能模块,如:电视节目收看、网络连接、应用程序安装等,用户可以根据自己的需求和兴趣选择和操作。最后,故障排除部分则会列举一些常见问题和解决办法,帮助用户在使用电视机顶盒时遇到问题能够迅速解决。 玄铁C910用户手册将以简明清晰的语言、图文并茂的实例来说明产品的使用方法和注意事项,以确保用户能轻松地掌握电视机顶盒的操作。用户手册的编写旨在提供全面的信息和指导,并提供实用的技巧和建议,让用户能够充分享受玄铁C910带来的高质量的电视娱乐体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值