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’

应该是我的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 的结果
我们看一眼 timer_test.c 的源码
看一来是配置了Timer 1d的寄存器,然后等待触发中断,清中断标志位,最后退出。
Hello Friend!
timer test successfully
就是代码的输出了。
2.3 我们看看其他的仿真/测试
测个gpio玩吧,
看看波形,这里我们用的是verdi,请自行导入 vcd 文件。
对照c的源码,
能看到是在将GPIO输出 0xa5a5a5a5,也就是 ob10100101101001011010010110100101。 我们来见检查一下
果然是这样,嗯,看起来是对的。
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.v4.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
原文作者:YangWang
点击查看原文