fix name of nvboard
This commit is contained in:
parent
79d80df183
commit
98d6d04082
6
Makefile
6
Makefile
|
@ -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)\""
|
||||
|
|
16
README.md
16
README.md
|
@ -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`里面对应的键值会随之更新,
|
||||
|
|
|
@ -10,4 +10,4 @@ DIR = .
|
|||
TOPNAME = top
|
||||
|
||||
# 需要在最后将NVBOARD的makefile包含进来
|
||||
-include $(NBOARD_HOME)/Makefile
|
||||
-include $(NVBOARD_HOME)/Makefile
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
# 注意
|
||||
emu添加了新的图像rom文件,直接在$NBOARD_HOME运行 `make run` 会找不到该文件,因此需要cd到emu文件夹下
|
||||
emu添加了新的图像rom文件,直接在$NVBOARD_HOME运行 `make run` 会找不到该文件,因此需要cd到emu文件夹下
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include <nboard.h>
|
||||
#include <nvboard.h>
|
||||
#include <Vtop.h>
|
||||
#include <vga.h>
|
||||
|
||||
|
|
|
@ -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`
|
|
@ -1,4 +1,4 @@
|
|||
#include <nboard.h>
|
||||
#include <nvboard.h>
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include <vga.h>
|
||||
#include <nboard.h>
|
||||
#include <nvboard.h>
|
||||
#include <macro.h>
|
||||
#include <assert.h>
|
||||
|
||||
|
|
Loading…
Reference in New Issue