试用 wujian100 流程记录

简介: 试用 wujian100 流程记录

1. 前言

官方提供了
隔壁的几个帖子已经总结了开发环境的配置流程,无需赘述 我再说说他们没提到的

1.1 有关License的环境变量

请各位指向正确的license,具体可以在 tools/setup.csh 中改动,也可以自行在 terminal 里手动添加。

  • bash/zsh
export VCS_HOME=/home/xxxx/vcs/vcs/P-2019.06-1/
export PATH=$PATH:/home/xxxx/vcs/vcs/P-2019.06-1/bin/
export PATH=$PATH:/home/xxxx/scl/scl/2018.06-SP1/linux64/bin/
export LM_LICENSE_FILE=xxxx
export SNPSLMD_LICENSE_FILE=xxxx
  • csh
setenv VCS_HOME /home/xxxx/vcs/vcs/P-2019.06-1/
setenv LM_LICENSE_FILE xxxx
setenv SNPSLMD_LICENSE_FILE xxxx
setenv RISCV /home/xxxx/rocket-tools/
setenv LM_LICENSE_FILE xxxx
setenv SNPSLMD_LICENSE_FILE xxxx

1.2 遇到的问题

1.2.1 riscv64-unknown-elf-gcc 无法识别 选项 ‘-mabi=ilp32e’

image.png

应该是我的riscv-tools 工具链设置有问题,请大家自行下载官方工具

解压的时候需要注意,把解压后的文件放置在 riscv-tools 下,以便脚本能够找到 risc-tools/bin/

1.2.2 注意vcs的位置,我目前的机器是linux64的,需要修改setup.csh第14行

2. VCS仿真

2.1 流程

请参照官方文档

2.2 timer_test.c 仿真结果

运行

  ../tools/run_case -sim_tool vcs ../case/timer/timer_test.c

会得到 timer_test.c 的结果

image.png

我们看一眼 timer_test.c 的源码

image.png

看一来是配置了Timer 1d的寄存器,然后等待触发中断,清中断标志位,最后退出。

Hello Friend!

timer test successfully

就是代码的输出了。

2.3 我们看看其他的仿真/测试

image.png

测个gpio玩吧,

image.png

看看波形,这里我们用的是verdi,请自行导入 vcd 文件。

对照c的源码,

image.png

能看到是在将GPIO输出 0xa5a5a5a5,也就是 ob10100101101001011010010110100101。 我们来见检查一下

image.png

果然是这样,嗯,看起来是对的。

3. FPGA bitstream 编译

先占坑,后面慢慢填,
没有 synplify license 啊,穷。

4. 工程结构

我们来翻翻具体的设计。
官方文档提到的:

项目目录结构

|–Project //开源项目工作目录
|–riscv_toolchain //工具链安装目录,用户需要将工具链按照在该目录下。工具链可以在下载页面下载
|–wujian100_open //wujian100_open平台项目工程目录。wujian100_open 平台代码可以通过github下载获取
|–case //仿真使用的测试case
|–doc //wujian100_open平台的用户手册
|–fpga //FPGA制作相关脚本
|–lib //仿真编译使用的脚本及库文件
|–regress //回归测试的结果
|–sdk //软件开发套件
|–soc //SoC RTL源码
|–tb //test bench和monitor文件
|–tools //仿真脚本和环境变量设置文件
|–workdir //执行仿真的工作目录
|–LICENSE
|–README.md

4.1 一些文件

4.1.1 顶层文件

https://github.com/T-head-Semi/wujian100_open/blob/master/soc/wujian100_open_top.v

4.1.2 aou_top

https://github.com/T-head-Semi/wujian100_open/blob/master/soc/aou_top.v
下面接了 pmu_dummy_top (peripheral management unit) ,gpio0_sec_top 和 RTC

4.1.3 感兴趣的部分来了 core_top

https://github.com/T-head-Semi/wujian100_open/blob/master/soc/core_top.v

https://raw.githubusercontent.com/T-head-Semi/wujian100_open/master/soc/E902_20191018.v

想来 剔除注释和合并代码的脚本写的挺不错的,1MB的文件。 后续再仔细分析一下

未完待续

附录

几处typo, 这里的命令应该是 sudo apt-get install / sudo yum install

image.png

原文作者:YangWang
点击查看原文

相关文章
|
Ubuntu Linux Shell
Windows-下学习阿里平头哥-RISC-V-芯片开发平台-wujian100
上个月,在第六届互联网大会上,阿里的平头哥,对,就是那个人狠话不多的公司!他们宣布开源了 wujian100 这个芯片设计平台。搭载基于 RISC-V 架构的玄铁 902 处理器。
Windows-下学习阿里平头哥-RISC-V-芯片开发平台-wujian100
|
存储 安全 API
【嵌入式系统】DMA工作原理与常用函数解析
【嵌入式系统】DMA工作原理与常用函数解析
1158 0
【嵌入式系统】DMA工作原理与常用函数解析
|
芯片
芯片验证 | UVM的objection机制
芯片验证 | UVM的objection机制
472 1
|
Linux 网络安全 数据处理
【专栏】Linux下的xxd命令是一个强大的二进制数据处理工具,用于十六进制转储和数据分析,我教你应该如何使用!
【4月更文挑战第28天】Linux下的xxd命令是一个强大的二进制数据处理工具,用于十六进制转储和数据分析。它可以显示文件的十六进制和ASCII表示,方便查看内容、分析数据结构和比较文件。xxd支持指定输出格式、写入文件、数据提取和转换等功能。在网络安全分析、程序调试和数据恢复等领域有广泛应用。通过掌握xxd,用户能更深入理解和处理二进制数据。
1369 0
|
安全 jenkins 持续交付
企业实战(23)基于Docker平台的Jenkins添加node节点与报错详解(2)
企业实战(23)基于Docker平台的Jenkins添加node节点与报错详解(2)
215 0
Qt-做一个快速打包插件(一键完成项目软件打包)
Qt-做一个快速打包插件(一键完成项目软件打包)
286 0
|
存储 安全 前端开发
|
机器学习/深度学习 存储 算法
【Deep Learning 7】RNN循环神经网络
🍊本文旨在以一种通俗易懂的方式来介绍RNN,本文从天气预报开始引入RNN,随后对RNN进行详细介绍,并对几种变体的LSTM、CRU、BiLSTM进行重点介绍。最后以5个实验进行实战训练 🍊实验一:Pytorch+Bert+RNN实现文本分类预测模拟 🍊实验二:Pytorch+Bert+RNN实现对IMDB影评数据集进行二分类情感分析 🍊实验三:Pytorch+Bert+GRU实现对IMDB影评数据集进行二分类情感分析 🍊实验四:Pytorch+Bert+LSTM实现对IMDB影评数据集进行二分
377 1
|
Shell Linux 芯片
wujian100_open:基于VCS+Verdi的仿真过程示例
本文介绍 基于VCS+Verdi的仿真过程示例
1057 0
wujian100_open:基于VCS+Verdi的仿真过程示例
|
人工智能 算法 前端开发
揭秘五子棋AI设备的炼成:wujian100 SoC助力人机对弈(下)
技术解码栏目:是面向开发者详细解读芯片开放社区(OCC)上关于处理器、芯片、基础软件平台、集成开发环境及应用开发平台的相关技术,方便开发者学习及快速上手,提升开发效率。
852 0
揭秘五子棋AI设备的炼成:wujian100 SoC助力人机对弈(下)