tinyriscv/fpga/README.md

180 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 1.概述
介绍如何将tinyriscv移植到FPGA平台上和如何通过JTAG下载程序到FPGA。
1.软件xilinx vivado(以2018.1版本为例)开发环境。
2.FPGAxilinx Artix-7 35T。
3.调试器CMSIS-DAP或者DAPLink。
# 2.FPGA移植步骤
## 2.1创建工程
首先打开vivado软件新建工程方法如下图所示
![](./images/create_prj_1.png)
或者通过File菜单新建工程如下图所示
![](./images/create_prj_2.png)
然后进入下一步,如下图所示:
![](./images/create_prj_3.png)
直接点击Next按钮进入下一步如下图所示
![](./images/create_prj_4.png)
输入工程名字和工程路径勾选上Create project subdirectiry选项然后点击Next按钮如下图所示
![](./images/create_prj_5.png)
选择RTL Project并勾选上Do not specify sources at this time然后点击Next按钮如下图所示
![](./images/create_prj_6.png)
在Search框里输入256-1然后选中xc7a35tftg256-1这个型号然后点击Next按钮如下图所示
![](./images/create_prj_7.png)
直接点击Finish按钮。
至此,工程创建完成。
## 2.2添加RTL源文件
在工程主界面点击左侧的Add Sources按钮如下图所示
![](./images/add_src_1.png)
进入到如下图的界面:
![](./images/add_src_2.png)
选中第二项Add or create design sources然后点击Next按钮如下图所示
![](./images/add_src_3.png)
点击Add Directories按钮选择tinyriscv项目里的整个rtl文件夹如下图所示
![](./images/add_src_4.png)
勾选上红色框里那两项然后点击Finish按钮。
至此RTL源文件添加完成。
## 2.3添加约束文件
在工程主界面点击左侧的Add Sources按钮如下图所示
![](./images/add_src_1.png)
进入到如下图的界面:
![](./images/add_src_5.png)
选择第一项Add or create constraints然后点击Next按钮如下图所示
![](./images/add_src_6.png)
点击Add Files按钮选择tinyriscv项目里的FPGA/constrs/tinyriscv.xdc文件如下图所示
![](./images/add_src_7.png)
勾选上Copy constraints files into project然后点击Finish按钮。**如果你的开发板和我的不一样,则需要将约束文件里的引脚配置改成你的开发板上对应的引脚**。
至此,约束文件添加完成。
## 2.4生成Bitstream文件
点击下图所示的Generate Bitstream按钮即可开始生成Bitstream文件。
这包括综合、实现(布局布线)等过程,因此时间会比较长。
![](./images/add_src_8.png)
## 2.5下载Bitstream文件到FPGA
连接好下载器和FPGA开发板将下载器插入PC然后给板子上电接着点击vivado主界面的左下角的Open Hardware Manager按钮如下图所示
![](./images/download_1.png)
接着点击Open target按钮然后选择Auto Connect如下图所示
![](./images/download_2.png)
连接成功后点击Program device按钮如下图所示
![](./images/download_3.png)
弹出如下界面然后直接点击Program按钮。
![](./images/download_4.png)
至此即可将Bitstream文件下载到FPGA。
# 3.下载程序到FPGA
将CMSIS-DAP调试器连接好FPGA板子和PC电脑。
打开一个CMD窗口然后cd进入到tinyriscv项目的tools/openocd目录执行命令
`openocd.exe -f tinyriscv.cfg`
如果执行成功的话则会如下图所示:
![openocd](./images/openocd.png)
然后打开另一个CMD窗口执行以下命令来连接openocd注意电脑要启用telnet host服务。
`telnet localhost 4444`
接着执行以下命令来停住CPU
`halt`
使用load_image命令将固件下载到FPGA这里以freertos.bin文件为例如下所示
`load_image D:/gitee/open/tinyriscv/tests/example/FreeRTOS/Demo/tinyriscv_GCC/freertos.bin 0x0 bin 0x0 0x1000000`
使用verify_image命令来校验是否下载成功如下所示
`verify_image D:/gitee/open/tinyriscv/tests/example/FreeRTOS/Demo/tinyriscv_GCC/freertos.bin 0x0`
如果下载出错的话会有提示的,没有提示则说明下载成功。
最后断开与openocd的连接
`exit`
整个下载过程如下图所示:
![openocd_cli](./images/openocd_cli.png)
**注意下载完成后需要退出openocd服务(ctrl+c)然后按一下FPGA板子上的复位按键即可开始运行程序。**
不要通过reset或者resume命令来运行程序。
# 4.Vivado仿真设置
如果要在vivado里进行RTL仿真的话还需要添加tb目录里的tinyriscv_soc_tb.v文件具体方法和添加RTL源文件类似只是在源文件类型里选择simulation sources如下图所示
![add_sim](./images/add_sim.png)
最后设置一下define.v文件的路径如下图所示
![defines](./images/defines.png)
最后还要指定inst.data文件的路径即修改tinyriscv_soc_tb.v文件里的下面这一行
```
// read mem data
initial begin
$readmemh ("F://yourpath/inst.data", tinyriscv_soc_top_0.u_rom._rom);
end
```
设置完成后即可进行RTL仿真。