做这个东西的目的是锻炼一下自己的编程能力以及系统思维能力
首先,清楚自己要干什么,正点原子大家应该都看过,系统框图是一个比较重要的东西,引导我们去设计和思考。
下面先给出系统框图:
模块划分好后,结构就比较清晰了,可以分成三个文件实现,一个是LED控制模块,一个是串口接收模块,还有一个是顶层模块。
串口接收模块
module uart_recv ( input clk, input rst_n, input uart_rx, output reg [7:0] rx_data, output reg data_valid ); reg [1:0] signal; wire falling_edge; always @ (posedge clk or negedge rst_n) begin if (!rst_n) begin signal[0] <= 1'd0; signal[1] <= 1'd0; end else begin signal[0] <= uart_rx; signal[1] <= signal[0]; end end assign falling_edge = ~signal[0] & signal[1]; //检测下降沿 reg rx_flag; always @ (posedge clk or negedge rst_n) begin if (!rst_n) begin rx_flag <= 1'd0; end else if (falling_edge) begin &nbs


最低0.47元/天 解锁文章
7296

被折叠的 条评论
为什么被折叠?



