From 5ad4f2de858fd40b1685854294c12d9c02ee667e Mon Sep 17 00:00:00 2001 From: Sun Jiru Date: Mon, 17 Jan 2022 15:07:03 +0800 Subject: [PATCH] implement 7-segment display --- README.md | 3 +-- build/emu_board | Bin 133376 -> 0 bytes include/configs.h | 4 +-- include/constrs.h | 7 +++--- include/render.h | 11 ++++---- pic/vbg_2.png | Bin 0 -> 10160 bytes pic/vbtn_off.png | Bin 1772 -> 12163 bytes pic/vbtn_on.png | Bin 1800 -> 12139 bytes src/constrs.cpp | 2 +- src/main.cpp | 2 +- src/render.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++--- 11 files changed, 72 insertions(+), 19 deletions(-) delete mode 100755 build/emu_board create mode 100644 pic/vbg_2.png diff --git a/README.md b/README.md index 8aeceb7..e6b65df 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,9 @@ Virtual FPGA需要使用Verilator生成的一些接口。 当你在虚拟FPGA上改变输入(比如拨动一个开关)的时候, 虚拟FPGA会自动调用`update_input()`,让你编写的模块能够收到这个改变。 模块得到新的输出之后,虚拟FPGA会调用`update_output()`,把模块的输出同步到GUI上。 - ##### 体验虚拟FPGA -要改变某个按键或开关的状态,可以使用键盘快捷键,也可以点击鼠标。 +要改变某个按键或开关的状态,可以使用键盘快捷键,将来也可以点击鼠标。 #### 参与贡献 diff --git a/build/emu_board b/build/emu_board deleted file mode 100755 index 834930f10ed8597eddb1ec53e650ad807390808f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133376 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 literal 0 HcmV?d00001 diff --git a/pic/vbtn_off.png b/pic/vbtn_off.png index be740564222cd1684bcca3557c74b6f112ea57b9..0dba63b6e5f161d412f3be79083eb95ca80f7939 100644 GIT binary patch literal 12163 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 delta 648 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 - printf("out : %d %d %d %d\n", (dut_ptr->out >> 3) & 1, (dut_ptr->out >> 2) & 1, (dut_ptr->out >> 1) & 1, (dut_ptr->out >> 0) & 1); update_output(dut_ptr); update_gui_output(render); } diff --git a/src/render.cpp b/src/render.cpp index 28fc2a7..bea7f51 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -27,6 +27,26 @@ static SDL_Texture *tled_off, *tled_r, *tled_g, *tled_b, static SDL_Texture *tfpga_background; static SDL_Texture *tseg7_background; +static SDL_Rect segs_rect[8] = { + {SEG_X + SEG_SEP + SEG_VER_WIDTH, SEG_Y + SEG_SEP, SEG_HOR_WIDTH, SEG_HOR_HEIGHT}, + {SEG_X + SEG_SEP + SEG_VER_WIDTH + SEG_HOR_WIDTH, SEG_Y + SEG_SEP + SEG_HOR_HEIGHT, SEG_VER_WIDTH, SEG_VER_HEIGHT}, + {SEG_X + SEG_SEP + SEG_VER_WIDTH + SEG_HOR_WIDTH, SEG_Y + SEG_SEP + 2 * SEG_HOR_HEIGHT + SEG_VER_HEIGHT, SEG_VER_WIDTH, SEG_VER_HEIGHT}, + {SEG_X + SEG_SEP + SEG_VER_WIDTH, SEG_Y + SEG_SEP + 2 * SEG_HOR_HEIGHT + 2 * SEG_VER_HEIGHT, SEG_HOR_WIDTH, SEG_HOR_HEIGHT}, + {SEG_X + SEG_SEP, SEG_Y + SEG_SEP + 2 * SEG_HOR_HEIGHT + SEG_VER_HEIGHT, SEG_VER_WIDTH, SEG_VER_HEIGHT}, + {SEG_X + SEG_SEP, SEG_Y + SEG_SEP + SEG_HOR_HEIGHT, SEG_VER_WIDTH, SEG_VER_HEIGHT}, + {SEG_X + SEG_SEP + SEG_VER_WIDTH, SEG_Y + SEG_SEP + SEG_HOR_HEIGHT + SEG_VER_HEIGHT, SEG_HOR_WIDTH, SEG_HOR_HEIGHT}, + {SEG_X + 2 * SEG_SEP + 2 * SEG_VER_WIDTH + SEG_HOR_WIDTH, SEG_Y + SEG_SEP + 2 * SEG_HOR_HEIGHT + 2 * SEG_VER_HEIGHT, SEG_DOT_WIDTH, SEG_DOT_HEIGHT} +}; + +SDL_Rect operator+(const SDL_Rect &A, const SDL_Rect &B) { + SDL_Rect ret; + ret.x = A.x + B.x; + ret.y = A.y + B.y; + ret.w = A.w + B.w; + ret.h = A.h + B.h; + return ret; +} + extern std::string nboard_home; void load_background(SDL_Renderer *renderer) { @@ -131,7 +151,7 @@ std::string input_switches[] = { static const int switches_cnt = sizeof(input_switches) / sizeof(std::string); static void update_gui_switch(SDL_Renderer *renderer, int index, bool val) { - index = 15 - index; + index = switches_cnt - 1 - index; SDL_Rect rect = {SWITCH_X + (SWITCH_WIDTH + SWITCH_SEP) * index, SWITCH_Y, SWITCH_WIDTH, SWITCH_HEIGHT}; SDL_RenderCopy(renderer, val ? tswitch_on : tswitch_off, NULL, &rect); } @@ -192,13 +212,19 @@ std::string output_rgb_leds[] = { RGB_LEDS }; -std::string output_seg7_leds[] = { - SEG7_LEDS +std::string output_seg7_enbs[] = { + SEG7_ENBS }; +const int seg7_enbs_cnt = sizeof(output_seg7_enbs) / sizeof(std::string); + +std::string output_seg7_segs[] = { + SEG7_SEGS +}; +const int seg7_segs_cnt = sizeof(output_seg7_segs) / sizeof(std::string); static void update_gui_naive_led(SDL_Renderer *renderer, int index, bool val) { //std::cout << "update " << index << std::endl; - index = 15 - index; + index = naive_leds_cnt - 1 - index; SDL_Rect rect = {LED_X + (LED_WIDTH + LED_SEP) * index, LED_Y, LED_WIDTH, LED_HEIGHT}; SDL_RenderCopy(renderer, val ? tled_g : tled_off, NULL, &rect); } @@ -237,6 +263,22 @@ static void update_gui_rgb_led(SDL_Renderer *renderer, int index, int color) { } } +static void update_gui_7segs(SDL_Renderer *renderer, int index, bool enable) { + SDL_Rect move = {index * (SEG_HOR_WIDTH + SEG_DOT_WIDTH + SEG_SEP * 4), 0, 0, 0}; + SDL_Rect dst_rect[8]; + for (int i = 0; i < 8; ++i) { + dst_rect[i] = move + segs_rect[i]; + } + SDL_RenderCopy(renderer, (enable && !output_map["sega"]) ? tsegled_hor_on : tsegled_hor_off, NULL, &dst_rect[0]); + SDL_RenderCopy(renderer, (enable && !output_map["segb"]) ? tsegled_ver_on : tsegled_ver_off, NULL, &dst_rect[1]); + SDL_RenderCopy(renderer, (enable && !output_map["segc"]) ? tsegled_ver_on : tsegled_ver_off, NULL, &dst_rect[2]); + SDL_RenderCopy(renderer, (enable && !output_map["segd"]) ? tsegled_hor_on : tsegled_hor_off, NULL, &dst_rect[3]); + SDL_RenderCopy(renderer, (enable && !output_map["sege"]) ? tsegled_ver_on : tsegled_ver_off, NULL, &dst_rect[4]); + SDL_RenderCopy(renderer, (enable && !output_map["segf"]) ? tsegled_ver_on : tsegled_ver_off, NULL, &dst_rect[5]); + SDL_RenderCopy(renderer, (enable && !output_map["segg"]) ? tsegled_hor_on : tsegled_hor_off, NULL, &dst_rect[6]); + SDL_RenderCopy(renderer, (enable && !output_map["segb"]) ? tsegled_dot_on : tsegled_dot_off, NULL, &dst_rect[7]); +} + // After SDL receives the changes of inputs, call update_gui_input() // After updating the outputs of module, call update_gui_output() @@ -268,6 +310,14 @@ void update_gui_output(SDL_Renderer *renderer) { } // check seg7s + for (int i = 0; i < seg7_enbs_cnt; ++i) { + std::string &str = output_seg7_enbs[i]; + if (output_map.count(str)) { + if (output_map[str] || (prev_output_map[str] != output_map[str])) { + update_gui_7segs(renderer, i, output_map[str]); + } + } + } SDL_RenderPresent(renderer); return; @@ -288,6 +338,10 @@ void init_gui(SDL_Renderer *renderer) { for (int i = 0; i < naive_leds_cnt; ++i) { update_gui_naive_led(renderer, i, 0); } + + for (int i = 0; i < seg7_enbs_cnt; ++i) { + update_gui_7segs(renderer, i, 0); + } SDL_RenderPresent(renderer); } \ No newline at end of file