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

相关文章
解决pip install安装速度慢的问题
我们在编程过程中,会经常遇到要下载包的问题,而下载包常用的就是pip命令,但是很多情况下直接下载速度比较慢,我们可以使用镜像进行加持
|
人工智能 自然语言处理 文字识别
🚀AI来袭!职场办公效率跃升的秘密武器,你get了吗?
【8月更文挑战第1天】在科技飞速发展的时代,人工智能(AI)已成为职场提升效率的关键。从自动化日常任务如邮件处理(示例代码展示概念性的邮件自动回复脚本),到智能分析助力精准决策,再到运用OCR和NLP技术自动化文档处理提升协作效率,以及根据个人习惯提供个性化推荐优化工作流程。AI不仅大幅提高生产力,减少错误,还促进了更智能的工作方式,预示着一个更加精彩的职场未来。你准备好了吗?
440 0
|
负载均衡 Ubuntu 应用服务中间件
Apache(mod_proxy)+Tomcat负载均衡配置
Apache(mod_proxy)+Tomcat负载均衡配置
|
Python Windows
Anaconda最新版详细安装教程
Anaconda最新版详细安装教程
907 0
|
弹性计算
LVM丢失恢复
LVM丢失恢复
|
安全 jenkins 持续交付
企业实战(23)基于Docker平台的Jenkins添加node节点与报错详解(2)
企业实战(23)基于Docker平台的Jenkins添加node节点与报错详解(2)
338 0
Qt-做一个快速打包插件(一键完成项目软件打包)
Qt-做一个快速打包插件(一键完成项目软件打包)
519 0
|
机器学习/深度学习 人工智能 安全
【window下配置Maxim SDK环境】
【window下配置Maxim SDK环境】
728 0
【window下配置Maxim SDK环境】
|
SoC 内存技术
深入理解AMBA总线(五)AHB-lite Transfer进阶
深入理解AMBA总线(五)AHB-lite Transfer进阶
1797 0
|
运维 负载均衡 安全
Spring Cloud Zuul 基础搭建
通过前几篇文章的介绍,我们了解了Spring Cloud Eureka 如何搭建注册中心,Spring Cloud Ribbon 如何做负载均衡,Spring Cloud Hystrix 断路器如何保护我们的服务,以防止雪崩效应的出现,Spring Cloud Feign进行声明式服务调用都有哪些应用,相比Ribbon和Hystrix都有哪些改善。可以说,以上几个组件都是搭建一套微服务架构所必须的。通过以上思路,能够梳理出下面这种基础架构:
163 0
Spring Cloud Zuul 基础搭建

热门文章

最新文章