fix README
This commit is contained in:
parent
4223ab0a6b
commit
cd1db11aa7
53
README.md
53
README.md
|
@ -1,10 +1,10 @@
|
|||
# nvboard
|
||||
# NVBoard
|
||||
|
||||
#### 介绍
|
||||
## 介绍
|
||||
|
||||
nvboard是基于SDL开发的虚拟FPGA开发板,可以在Verilator仿真环境中模拟FPGA,支持RGB LED,七段数码管,开关,键盘和VGA。
|
||||
NVBoard(NJU Virtual Board)是基于SDL开发的虚拟FPGA开发板,可以在Verilator仿真环境中模拟FPGA,支持LED,七段数码管,开关,键盘和VGA。
|
||||
|
||||
#### 软件架构
|
||||
## 软件架构
|
||||
|
||||
软件架构说明
|
||||
|
||||
|
@ -25,11 +25,11 @@ nvboard是基于SDL开发的虚拟FPGA开发板,可以在Verilator仿真环境
|
|||
│ ├── render.h
|
||||
│ └── vga.h
|
||||
├── LICENSE
|
||||
├── Makefile NVBOARD项目构建makefile
|
||||
├── pic NVBOARD图片信息
|
||||
├── Makefile NVBoard项目构建Makefile
|
||||
├── pic NVBoard图片信息
|
||||
├── README.en.md
|
||||
├── README.md
|
||||
└── src NVBORAD源码
|
||||
└── src NVBorad源码
|
||||
├── component.cpp
|
||||
├── event.cpp
|
||||
├── nvboard.cpp
|
||||
|
@ -37,28 +37,28 @@ nvboard是基于SDL开发的虚拟FPGA开发板,可以在Verilator仿真环境
|
|||
└── vga.cpp
|
||||
```
|
||||
|
||||
#### 安装教程
|
||||
## 安装教程
|
||||
|
||||
1. 将项目拷贝到本地,`git clone https://github.com/NJU-ProjectN/nvboard.git`;
|
||||
2. 接下来,把本项目的目录设置成环境变量 `NVBOARD_HOME`。
|
||||
|
||||
#### 示例
|
||||
## 示例
|
||||
|
||||
本项目下的emu是一个演示项目,在该目录下通过 `make run` 命令可运行该项目。
|
||||
|
||||
### 使用说明
|
||||
## 使用说明
|
||||
|
||||
#### 编写C++文件
|
||||
### 编写C++文件
|
||||
|
||||
NVBoard提供了以下几组API
|
||||
|
||||
- nvboard_init: 初始化nvboard
|
||||
- nvboard_quit: 退出nvboard
|
||||
- nvboard_bind_pin(pin, signal): 将HDL的信号signal连接到nvboard里的引脚pin上
|
||||
- nvboard_update: 更新NVBoard中各组件的状态,每当电路状态发生改变时都需要调用该函数
|
||||
- `nvboard_init()`: 初始化NVBoard
|
||||
- `nvboard_quit()`: 退出NVBoard
|
||||
- `nvboard_bind_pin(pin, signal)`: 将HDL的信号signal连接到NVBoard里的引脚pin上
|
||||
- `nvboard_update()`: 更新NVBoard中各组件的状态,每当电路状态发生改变时都需要调用该函数
|
||||
|
||||
为了方便进行信号的绑定,可以在你的项目目录下编写约束文件(.cons),通过命令 `make cons` 能够依据编写的约束文件生成c++文件,
|
||||
调用该文件中的 `nvboard_bind_pins`函数即可完成所有信号的绑定。约束文件的格式如下所示
|
||||
为了方便进行信号的绑定,可以在你的项目目录下编写约束文件(.cons),通过命令`make cons`能够依据编写的约束文件生成c++文件,
|
||||
调用该文件中的`nvboard_bind_all_pins(dut)`函数即可完成所有信号的绑定。约束文件的格式如下所示
|
||||
|
||||
```
|
||||
top=top_name
|
||||
|
@ -68,14 +68,14 @@ signal pin
|
|||
signal (pin1,pin2,... pink)
|
||||
```
|
||||
|
||||
在约束文件的开头,需要指定指定顶层模块名为top_name。约束文件支持两种信号绑定方式,`signal pin`表示将顶层模块的signal信号绑定到引脚pin上,
|
||||
`signal (pin1,pin2,...,pink)`表示将顶层模块的signal信号的每一位从高到低依次绑定到 `pin2,pin1,...,pink`上。
|
||||
在约束文件的开头,需要指定顶层模块名为`top_name`。约束文件支持两种信号绑定方式,`signal pin`表示将顶层模块的`signal`端口信号绑定到引脚`pin`上,
|
||||
`signal (pin1,pin2,...,pink)`表示将顶层模块的`signal`信号的每一位从高到低依次绑定到`pin1,pin2,...,pink`上。
|
||||
|
||||
可以查看在该项目的board目录下的板卡配置文件中查看NVBoard的引脚信息。
|
||||
可以在该项目的board目录下的板卡配置文件中查看NVBoard的引脚信息。
|
||||
|
||||
##### 编写makefie
|
||||
### 编写makefile
|
||||
|
||||
你可以在任意运行在NVBOARD的项目目录下编写makefile,makefile格式如下
|
||||
你可以在任意运行在NVBoard的项目目录下编写makefile,makefile格式如下
|
||||
|
||||
```makefile
|
||||
# 需要手动指定项目目录
|
||||
|
@ -88,12 +88,11 @@ DIR = .
|
|||
# 需要指定顶层模块名称
|
||||
TOPNAME = top
|
||||
|
||||
# 需要在最后将NVBOARD的makefile包含进来
|
||||
# 需要在最后将NVBoard的makefile包含进来
|
||||
-include $(NVBOARD_HOME)/Makefile
|
||||
|
||||
```
|
||||
|
||||
##### 体验NVBoard
|
||||
### 体验NVBoard
|
||||
|
||||
最后,你只需要在项目目录下执行
|
||||
|
||||
|
@ -101,8 +100,8 @@ TOPNAME = top
|
|||
make run
|
||||
```
|
||||
|
||||
命令,即可在NVBOARD上模拟运行你自己的verilog代码!
|
||||
命令,即可在NVBoard上模拟运行你自己的verilog代码!
|
||||
|
||||
#### 特技
|
||||
## 特技
|
||||
|
||||
1. 可以用 `include/configs.h`选择贴图,让自己的虚拟FPGA开发板更有特色,贴图放在 `pic`目录下;
|
||||
|
|
|
@ -11,7 +11,7 @@ void nvboard_bind_pins(Vtop* top);
|
|||
|
||||
int main() {
|
||||
|
||||
nvboard_bind_pins(&dut);
|
||||
nvboard_bind_all_pins(&dut);
|
||||
nvboard_init();
|
||||
|
||||
while(1){
|
||||
|
|
|
@ -76,7 +76,7 @@ def bind_vec_pins(f, inout, signal, pins):
|
|||
|
||||
|
||||
def init_info(f, top):
|
||||
write_dep(bind_f, "#include <nvboard.h>\n#include \"V" + top + ".h\"\n\nvoid nvboard_bind_pins(V" + top + "* top){\n")
|
||||
write_dep(bind_f, "#include <nvboard.h>\n#include \"V" + top + ".h\"\n\nvoid nvboard_bind_all_pins(V" + top + "* top){\n")
|
||||
|
||||
dep = 0
|
||||
start_of_line = True
|
||||
|
|
Loading…
Reference in New Issue