fix name of nvboard

This commit is contained in:
Zihao Yu 2022-02-12 17:25:44 +08:00
parent 79d80df183
commit 98d6d04082
11 changed files with 31 additions and 33 deletions

View File

@ -7,7 +7,7 @@ INC_PATH ?=
# files of emu
TOPNAME ?= top
DIR ?= $(NBOARD_HOME)/emu
DIR ?= $(NVBOARD_HOME)/emu
OBJ_DIR = $(DIR)/obj_dir
# generated executable file
@ -21,8 +21,8 @@ SRCS ?= $(shell find $(SRC_DIR) -name "*.v" -or -name "*.c" -or -name "*.cc" -or
### Default rules...
# Build rules of nboard
include $(NBOARD_HOME)/scripts/nboard.mk
# Build rules of nvboard
include $(NVBOARD_HOME)/scripts/nvboard.mk
INCFLAGS = $(addprefix -I, $(INC_PATH))
CFLAGS += $(INCFLAGS) -DTOP_NAME="\"V$(TOPNAME)\""

View File

@ -14,8 +14,7 @@
│ ├── clock.h
│ ├── configs.h
│ ├── constrs.h
│ ├── event.h
│ ├── nboard.h
│ ├── nvboard.h
│ └── render.h
├── LICENSE
├── Makefile NVBOARD项目构建makefile
@ -30,18 +29,17 @@
├── README.en.md
├── README.md
└── src NVBORAD源码
├── clock.cpp
├── constrs.cpp
├── component.cpp
├── event.cpp
├── main.cpp
├── nvboard.cpp
├── render.cpp
└── uvga.cpp
└── vga.cpp
```
#### 安装教程
1. 将项目拷贝到本地,`git clone https://github.com/NJU-ProjectN/nvboard.git`
2. 接下来,把本项目的目录设置成环境变量`NBOARD_HOME`。
2. 接下来,把本项目的目录设置成环境变量`NVBOARD_HOME`。
#### 使用说明
@ -62,7 +60,7 @@ DIR = .
TOPNAME = top
# 需要在最后将NVBOARD的makefile包含进来
-include $(NBOARD_HOME)/Makefile
-include $(NVBOARD_HOME)/Makefile
```
@ -88,7 +86,7 @@ endmodule
接下来你需要在src文件中新建一个c++代码文件(如`update.cpp`)。
在`emu`下有一个`update.cpp`的示例。
可以看到`input_map`和`output_map`,这两个`std::map`就是nboard和verilog通信的渠道。
可以看到`input_map`和`output_map`,这两个`std::map`就是nvboard和verilog通信的渠道。
NVBOARD会在输入有了变化或时钟边沿处调用`dut_update()`当你在虚拟FPGA上改变输入比如按下`btnc`)的时候,
`input_map`里面对应的键值会随之更新,

View File

@ -10,4 +10,4 @@ DIR = .
TOPNAME = top
# 需要在最后将NVBOARD的makefile包含进来
-include $(NBOARD_HOME)/Makefile
-include $(NVBOARD_HOME)/Makefile

View File

@ -1,2 +1,2 @@
# 注意
emu添加了新的图像rom文件直接在$NBOARD_HOME运行 `make run` 会找不到该文件因此需要cd到emu文件夹下
emu添加了新的图像rom文件直接在$NVBOARD_HOME运行 `make run` 会找不到该文件因此需要cd到emu文件夹下

View File

@ -1,4 +1,4 @@
#include <nboard.h>
#include <nvboard.h>
#include <Vtop.h>
#include <vga.h>

View File

@ -1,10 +1,10 @@
# files of nboard
NBD_SRC = $(NBOARD_HOME)/src
# files of nvboard
NBD_SRC = $(NVBOARD_HOME)/src
NBD_SRCS := $(shell find $(NBD_SRC) -name "*.cpp")
NBD_LIB = $(NBOARD_HOME)/include
NBD_LIB = $(NVBOARD_HOME)/include
INC_PATH += $(NBD_LIB)
NBD_DST_DIR = $(NBOARD_HOME)/build
NBD_DST_DIR = $(NVBOARD_HOME)/build
NBD_OBJS := $(addprefix $(NBD_DST_DIR)/, $(addsuffix .o, $(basename $(notdir $(NBD_SRCS)))))
# The archive of nvboard
@ -12,13 +12,13 @@ NBD_ARCHIVE = $(NBD_DST_DIR)/NVBOARD.a
CXXFLAGS += -MMD -O3
$(NBD_DST_DIR)/%.o: $(NBD_SRC)/%.cpp
@echo + CXX "->" NBOARD_HOME/$(shell realpath $< --relative-to $(NBOARD_HOME))
@echo + CXX "->" NVBOARD_HOME/$(shell realpath $< --relative-to $(NVBOARD_HOME))
@mkdir -p $(dir $@)
@$(OBJCACHE) $(CXX) $(CXXFLAGS) -I$(NBD_LIB) -c -o $@ $<
# Build the archive of nvboard
$(NBD_ARCHIVE): $(NBD_OBJS)
@echo + AR "->" $(shell realpath $@ --relative-to $(NBOARD_HOME))
@echo + AR "->" $(shell realpath $@ --relative-to $(NVBOARD_HOME))
@ar rcs $(NBD_ARCHIVE) $(NBD_OBJS)
# Rule (`#include` dependencies): paste in `.d` files generated by gcc on `-MMD`

View File

@ -1,4 +1,4 @@
#include <nboard.h>
#include <nvboard.h>
#include <vector>
#include <iostream>
#include <map>

View File

@ -1,6 +1,6 @@
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <nboard.h>
#include <nvboard.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/time.h>
@ -15,7 +15,7 @@ static map<void *, vector<input_pin >> input_pin_map;
static map<void *, vector<output_pin>> output_pin_map;
map<input_pin, int> input_map;
map<output_pin, int> output_map;
string nboard_home;
string nvboard_home;
int read_event();
@ -111,7 +111,7 @@ void nvboard_init() {
// To avoid the SDL bugs on hby's linux
//usleep(200000);
nboard_home = getenv("NBOARD_HOME");
nvboard_home = getenv("NVBOARD_HOME");
load_background(main_renderer);
load_texture(main_renderer);

View File

@ -73,17 +73,17 @@ SDL_Rect btn_rects[6] = {
{BTNC_X, BTNC_Y - 2 * (BTNC_HEIGHT + BTNC_SEP), BTNC_WIDTH, BTNC_HEIGHT}
};
extern std::string nboard_home;
extern std::string nvboard_home;
void load_background(SDL_Renderer *renderer) {
sfpga_background = IMG_Load((nboard_home + "/pic/" + BG_PATH).c_str());
sfpga_background = IMG_Load((nvboard_home + "/pic/" + BG_PATH).c_str());
tfpga_background = SDL_CreateTextureFromSurface(renderer, sfpga_background);
SDL_Rect rect_bg = {0, 0, WINDOW_WIDTH, WINDOW_HEIGHT};
SDL_RenderCopy(renderer, tfpga_background, NULL, &rect_bg);
#ifdef SEG_BKGND_ENA
#ifdef SEG_BKGND_CUSTOM
sseg7_background = IMG_Load((nboard_home + "/pic/" + VSEGLED_BG_PATH).c_str());
sseg7_background = IMG_Load((nvboard_home + "/pic/" + VSEGLED_BG_PATH).c_str());
#else
sseg7_background = SDL_CreateRGBSurface(0, SEG_TOT_WIDTH, SEG_TOT_HEIGHT, 32, 0, 0, 0, 0);
SDL_FillRect(sseg7_background, NULL, SDL_MapRGB(sseg7_background->format, 0x00, 0x00, 0x00));
@ -102,17 +102,17 @@ void fill_rect_texture(SDL_Renderer *renderer, SDL_Surface **surface, SDL_Textur
void load_texture(SDL_Renderer *renderer) {
// buttons
sbutton_on = IMG_Load((nboard_home + "/pic/" + VBTN_ON_PATH).c_str());
sbutton_on = IMG_Load((nvboard_home + "/pic/" + VBTN_ON_PATH).c_str());
assert(sbutton_on != nullptr);
tbutton_on = SDL_CreateTextureFromSurface(renderer, sbutton_on);
sbutton_off = IMG_Load((nboard_home + "/pic/" + VBTN_OFF_PATH).c_str());
sbutton_off = IMG_Load((nvboard_home + "/pic/" + VBTN_OFF_PATH).c_str());
assert(sbutton_off != nullptr);
tbutton_off = SDL_CreateTextureFromSurface(renderer, sbutton_off);
// switches
sswitch_on = IMG_Load((nboard_home + "/pic/" + VSW_ON_PATH).c_str());
sswitch_on = IMG_Load((nvboard_home + "/pic/" + VSW_ON_PATH).c_str());
tswitch_on = SDL_CreateTextureFromSurface(renderer, sswitch_on);
sswitch_off = IMG_Load((nboard_home + "/pic/" + VSW_OFF_PATH).c_str());
sswitch_off = IMG_Load((nvboard_home + "/pic/" + VSW_OFF_PATH).c_str());
tswitch_off = SDL_CreateTextureFromSurface(renderer, sswitch_off);
// 7 segs

View File

@ -1,5 +1,5 @@
#include <vga.h>
#include <nboard.h>
#include <nvboard.h>
#include <macro.h>
#include <assert.h>