前言
在前面两篇博客中,分别阐述了如何配置WS2812 RGB 8x8点阵,和如何配置颜色识别模块,本文将说明如何级联两个模块,以及演示两个模块级联后的运行效果。
一、信号关联说明
已知WS2812顶层文件端口信号如下所示:
module ws2812_top
(
input wire sys_clk ,
input wire sys_rst_n ,
input wire r_valid ,
input wire g_valid ,
input wire b_valid ,
output wire led_data
);
颜色识别顶层文件端口信号如下图所示:
module cls381_top
(
input wire sys_clk ,
input wire sys_rst_n ,
output wire scl ,
output reg r_valid ,
output reg g_valid ,
output reg b_valid ,
inout wire sda
);
因此,颜色识别器件识别到了红色,那么r_valid信号有效;识别到了绿色,g_valid信号有效;识别到了蓝色,b_valid信号有效。因此,产生的三个有效信号会传输至WS2812顶层模块,指示显示的是什么类型的字符,如果没有识别到任何色彩信息,就显示白色字母“N”;识别到红色,显示红色字母“R”;识别到绿色,显示绿色字母“G”;识别到蓝色,显示蓝色字母“B”。
最终的顶层文件参考代码如下:
module color_recognize
(
input wire sys_clk ,
input wire sys_rst_n ,
output wire scl ,
output wire led_data ,
inout wire sda
);
wire r_valid ;
wire g_valid ;
wire b_valid ;
ws2812_top ws2812_top_inst
(
.sys_clk (sys_clk ),
.sys_rst_n (sys_rst_n ),
.r_valid (r_valid ),
.g_valid (g_valid ),
.b_valid (b_valid ),
.led_data (led_data )
);
cls381_top cls381_top_inst
(
.sys_clk (sys_clk ) ,
.sys_rst_n (sys_rst_n ) ,
.scl (scl ) ,
.r_valid (r_valid ) ,
.g_valid (g_valid ) ,
.b_valid (b_valid ) ,
.sda (sda )
);
endmodule
二、演示视频
颜色识别+RGB888点阵演示