開發與維運

试用 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
点击查看原文

Leave a Reply

Your email address will not be published. Required fields are marked *