2022-02-25 19:56:36 +08:00
|
|
|
|
# Weekend group
|
|
|
|
|
|
2023-01-04 22:40:08 +08:00
|
|
|
|
## helloworld
|
|
|
|
|
|
|
|
|
|
This a demo for llvm build and sim with verilator.
|
|
|
|
|
|
|
|
|
|
## jtag
|
|
|
|
|
|
|
|
|
|
This is a demo of jtag simulation by openocd running on verilator.
|
|
|
|
|
|
2025-04-01 10:32:58 +08:00
|
|
|
|
|
|
|
|
|
## install JLink deb software and driver
|
|
|
|
|
|
|
|
|
|
https://www.segger.com/downloads/jlink/
|
|
|
|
|
|
2023-01-04 22:40:08 +08:00
|
|
|
|
## install verilator
|
|
|
|
|
|
|
|
|
|
`sudo apt install verilator`
|
|
|
|
|
|
|
|
|
|
## install openocd
|
|
|
|
|
|
|
|
|
|
```shell
|
2025-03-24 20:35:07 +08:00
|
|
|
|
sudo apt-get install libjim-dev
|
|
|
|
|
sudo apt-get install libjaylink-dev
|
2025-04-01 15:12:36 +08:00
|
|
|
|
sudo apt-get install libhidapi-dev
|
2023-01-04 22:40:08 +08:00
|
|
|
|
git clone https://github.com/riscv/riscv-openocd.git
|
|
|
|
|
cd riscv-openocd
|
|
|
|
|
./bootstrap
|
2025-04-01 15:12:36 +08:00
|
|
|
|
./configure --prefix=$RISCV --enable-remote-bitbang --enable-jtag_vpi --enable-ftdi --enable-jlink --enable-cmsis-dap
|
2023-01-04 22:40:08 +08:00
|
|
|
|
make
|
|
|
|
|
sudo make install
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-01 19:01:00 +08:00
|
|
|
|
## maybe install CMSIS-DAP probes driver
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo cp openocd/contrib/60-openocd.rules /etc/udev/rules.d
|
|
|
|
|
sudo udevadm control --reload
|
|
|
|
|
sudo reboot
|
|
|
|
|
```
|
|
|
|
|
|
2023-01-04 22:40:08 +08:00
|
|
|
|
## may be install sv2v
|
|
|
|
|
|
|
|
|
|
`https://github.com/zachjs/sv2v`
|
|
|
|
|
|
|
|
|
|
## install ninja
|
|
|
|
|
|
|
|
|
|
`sudo apt-get install -y ninja-build`
|
|
|
|
|
|
|
|
|
|
## Gen quasar core
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://github.com/Lampro-Mellon/Quasar.git
|
|
|
|
|
cd tools
|
|
|
|
|
vim configs/quasar.config # to config the core
|
|
|
|
|
make clean
|
|
|
|
|
make conf
|
|
|
|
|
make sbt_
|
|
|
|
|
# Quasar/generated_rtl/quasar_wrapper.sv
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## install Bit-Vector
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
wget https://cpan.metacpan.org/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz
|
|
|
|
|
tar -xvf
|
|
|
|
|
cd
|
|
|
|
|
perl Makefile.PL
|
|
|
|
|
make
|
|
|
|
|
sudo make install
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## build and install riscv tools
|
|
|
|
|
|
|
|
|
|
* Opetion1 :<https://github.com/riscv-collab/riscv-gnu-toolchain.git>
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# build 64bit
|
|
|
|
|
sudo make clean
|
2025-03-24 20:06:12 +08:00
|
|
|
|
./configure --prefix=/opt/riscv
|
2023-01-04 22:40:08 +08:00
|
|
|
|
sudo make -j12
|
|
|
|
|
|
2025-03-24 19:43:29 +08:00
|
|
|
|
# build 32bit
|
2023-01-04 22:40:08 +08:00
|
|
|
|
sudo make clean
|
2025-03-26 10:50:06 +08:00
|
|
|
|
./configure --prefix=/opt/riscv --with-arch=rv32gc --with-abi=ilp32 --enable-multilib
|
2023-01-04 22:40:08 +08:00
|
|
|
|
sudo make -j12
|
|
|
|
|
```
|
|
|
|
|
|
2024-11-08 01:27:22 +08:00
|
|
|
|
## install xilinx
|
|
|
|
|
|
|
|
|
|
1. 下载vivado安装文件
|
|
|
|
|
2. 下载vivado lisence
|
|
|
|
|
3. 解压vivado的安装文件,sudo执行xsetup开始安装
|
|
|
|
|
4. 安装vivado之后,安装 Hardware Server
|
|
|
|
|
5. 通过执行安装路径的bin目录的vivado来启动
|
|
|
|
|
6. 安装Xilinx Platform Cable USB II 下载器驱动
|
|
|
|
|
1. cd /tools/Xilinx/Vivado/2021.2/data/xicom/cable_drivers/lin64/install_script/install_drivers
|
|
|
|
|
2. sudo ./install_drivers
|
|
|
|
|
3. lsusb 检查安装的usb设备
|
|
|
|
|
4. 重新拔插后显示 Bus 005 Device 011: ID 03fd:0008 Xilinx, Inc. Platform Cable USB II
|
2025-03-29 00:13:02 +08:00
|
|
|
|
7. 配置Unused pin,避免报错 end of startup status: low
|
|
|
|
|
1. 在XDC文件里面添加 set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup [current_design]
|
2024-11-08 01:27:22 +08:00
|
|
|
|
|
2022-03-20 17:06:02 +08:00
|
|
|
|
## tips
|
|
|
|
|
|
2022-03-27 17:56:02 +08:00
|
|
|
|
* jtag的reset引脚要设置正确 jtag_trst_n 低电平复位
|
2022-03-20 17:06:02 +08:00
|
|
|
|
* 仿真的时候jtag的tclk不能太快,要低于soc的clk
|
2022-03-27 17:56:02 +08:00
|
|
|
|
* SweRV启动/复位后程序从`reset_vec`(0x80000000)开始,遇到错误(code=0),就会跳到mtvec(中断向量表)指示的地址
|
2022-03-20 17:06:02 +08:00
|
|
|
|
* 物理仿真的时候 adapter speed 不能太快
|
|
|
|
|
* data段放到0x200太小,GDB调试RISCV至少要4K的程序空间?
|
|
|
|
|
* soc的ram和rom直接接到了lsu和ifu,和DCCM/ICCM无关
|
2022-03-27 17:56:02 +08:00
|
|
|
|
* program.hex 用于 $readmemh 必须以空行结束
|
|
|
|
|
|
|
|
|
|
## Todo
|
|
|
|
|
|
|
|
|
|
* gdb怎么复位soc
|
|
|
|
|
* gdb没有把程序加载到mem,ifu还是用老代码
|
|
|
|
|
* mem分bank后,怎么加载,用于仿真=>for循环分别加载
|
2022-11-03 17:00:26 +08:00
|
|
|
|
* Quasar升级scala版本发现openocd运行不正常
|