Windows-下学习阿里平头哥-RISC-V-芯片开发平台-wujian100

简介: 本文介绍 Windows-下学习阿里平头哥-RISC-V-芯片开发平台-wujian100

前言

上个月,在第六届互联网大会上,阿里的平头哥,对,就是那个人狠话不多的公司!他们宣布开源了 wujian100 这个芯片设计平台。搭载基于 RISC-V 架构的玄铁 902 处理器。 基础硬件代码和配套软件代码发布在了 GitHub 上了,使用的是 MIT 许可证。大家也都可以去下载学习。 GitHub 链接:https://github.com/T-head-Semi/wujian100_open

搭建仿真环境

安装 Linux 环境

我们要去学习 wujian100 这个代码,首先要去搭建一下运行仿真的环境。跑无剑这个仿真是需要 Linux 环境的,所以我就安装了 WSL( Windows subsystem of Linux),我这里呢安装了 Ubuntu 18.04 的版本。要安装 WSL ,首先要去 控制面板->程序->启用或关闭 Windows 功能 勾选开启 适用于 Linux 的 Windows 子系统 这个选项,这样你就可以去微软应用商店正常安装 Linux 子系统了。

安装好子系统之后,我们直接进入到子系统下面进行操作就可以了。

新建目录 Clone 官方代码

首先我们按照官方在 GitHub 上的教程新建一个项目目录,然后进入到目录, clone 官方发布的代码。

$ mkdir test_prj
$ cd test_prj
$ git clone https://github.com/T-head-Semi/wujian100_open.git

安装 RISC-V 工具链

接下来,新建工具链目录,去官方给定的地址下载编译代码需要的 risc-v 工具链,解开压缩包,找到 riscv64-elf-x86_64-20190731.tar.gz 这个工具链,拷贝到工具链目录,解压安装工具链即可。

$ mkdir riscv_toolchain
$ cd riscv_toolchain
# 下面这条命令不一定跟我一样,工具链下载后的具体路径根据你自己的系统确定
$ cp /mnt/d/download/T-Head\ Tools\ package/T-Head\ RISC-V\ Toolchain-V1.2.2/riscv64-elf-x86_64-20190731.tar.gz ./  

$ tar -zxvf riscv64-elf-x86_64-20190731.tar.gz

安装仿真工具

仿真工具可以选择官方推荐的 VCS 仿真,但是我这里呢使用 iverilog 进行仿真, gtkwave 来查看波形文件,verilator 是编辑软件。然后由于我这边安装的 ubuntu18.04 默认没有安装 make 工具,所以也一起安装了。

$ sudo apt install iverilog gtkwave verilator 
$ sudo apt install make

注:有些同学可能是 Ubuntu 16.04 版本,直接通过 apt 命令安装 iverilog 会自动安装一个版本较低的,低版本运行这个仿真是有问题的,这时建议同学自己手动编译安装 10.0 以上版本的 iverilog 。

编辑 setup 脚本,配置环境变量

工具安装完成之后,编辑 setup 脚本并通过执行它,来设置 EDA 环境变量。 由于原本的脚本是 csh 在 bash 环境下有一些不兼容的地方,所以我这里做了一些修改,修改内容如下:

setup.sh 脚本内容

#Copyright (c) 2019 Alibaba Group Holding Limited
#
#Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:


#set VCS path
#setenv VCS_HOME 
#set path=($VCS_HOME/linux/bin $path)

#set VCS license
#setenv SNPSLMD_LICENSE_FILE 

#set iverilog path
export iverilog_path=(/usr/bin)
export gtkwave_path=(/usr/bin)
export path=($iverilog_path:$path)
export path=($gtkwave_path:$path)


#set tools path
export TOOL_PATH='../../riscv_toolchain'

export wujian100_open_PATH='`pwd | perl -pe "s/wujian100_open.*/wujian100_open\//"`'
$ cd ../wujian100_open/tools 
$ vim setup.sh
$ chmod +x setup.sh
$ source setup.sh

运行仿真

接下来,进入到 workdir 目录下运行仿真,然后通过 gtkwave 打开仿真波形。

$ cd ../workdir
$ ../tools/run_case -sim_tool iverilog ../case/timer/timer_test.c

当你看到 Hello Friend! 就表明你的仿真就跑起来了。

VCD info: dumpfile test.vcd opened for output.
        ******START TO LOAD PROGRAM******

Hello Friend!

timer test successfully
***************************************

*              Test Pass              *

***************************************

Step4 (Run simulation) is finished

用 gtkwave 打开 workdir 目录下的 test.vcd 波形文件,查看仿真波形,(打开波形文件需要图形化界面,我这里还安装了 VcXsrv,具体安装方法请自行搜索一下)波形图如下

$ gtkwave test.vcd

image.png

好了,到这里你的仿真就跑起来了,然后接下来就是进行综合生成 bit 流文件了,下一篇文章在来更新 vivado 综合的步骤。

首次发表于个人博客:Windows-下学习阿里平头哥-RISC-V-芯片开发平台-wujian100.html 视频教程:【RISC-V学习】我是怎么拿到平头哥半导体的开发板的

文章来源:芯片开放社区
文章链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180flWxVN5&id=651025121967865856

相关文章
|
4天前
|
Windows
逆向学习Windows篇:通过编写函数处理菜单消息
逆向学习Windows篇:通过编写函数处理菜单消息
7 0
|
4天前
|
安全 API C++
逆向学习Windows篇:C++中多线程的使用和回调函数的实现
逆向学习Windows篇:C++中多线程的使用和回调函数的实现
6 0
|
4天前
|
安全 API Windows
逆向学习Windows篇:文件操作详解
逆向学习Windows篇:文件操作详解
5 0
|
4天前
|
存储 数据安全/隐私保护 Windows
逆向学习Windows篇:进程句柄操作详解
逆向学习Windows篇:进程句柄操作详解
5 0
|
4天前
|
监控 安全 Windows
逆向学习Windows篇:lab的使用和生成过程,以及“dell”的导出函数和作用
逆向学习Windows篇:lab的使用和生成过程,以及“dell”的导出函数和作用
3 0
|
4天前
|
Windows
逆向学习Windows篇:动态加载与def导出
逆向学习Windows篇:动态加载与def导出
4 0
|
4天前
|
C++ UED 开发者
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
逆向学习 MFC 篇:视图分割和在 C++ 的 Windows 窗口程序中添加图标的方法
4 0
|
1月前
|
Serverless API 数据安全/隐私保护
Serverless 应用引擎产品使用之阿里函数计算中在本地搭建Windows开发环境与阿里云函数计算进行交互如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
机器人 Linux 数据安全/隐私保护
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
96 0
|
1月前
|
机器人 Linux 数据安全/隐私保护
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)(下)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
86 0