天天看点

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

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’

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

应该是我的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 的结果

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

我们看一眼 timer_test.c 的源码

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

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

Hello Friend!

timer test successfully           

就是代码的输出了。

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

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

测个gpio玩吧,

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

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

对照c的源码,

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

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

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

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

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

试用 wujian100 流程记录1. 前言2. VCS仿真3. FPGA bitstream 编译4. 工程结构附录

原文作者:YangWang

点击查看原文