module UartRecv ( //input sys_clk , sys_rst_n , uart_rxd , //output LED );//input portsinput sys_clk ; //system clock;input sys_rst_n ; //system reset, low is active;input uart_rxd ; //uart rxd input ; //output portsoutput reg [WIDTH-1:0] LED ;//reg define reg [WIDTH-1:0] buff ; reg [WIDTH-1:0] data_out ; reg uart_rxd_dly1 ; //uart rxd input ; reg uart_rxd_dly2 ; //uart rxd input ; reg uart_rxd_dly3 ; //uart rxd input ; reg uart_rxd_dly4 ; //uart rxd input ; reg rxd_negdge_sig_dly1 ; reg [SIZE-1:0] counter ; //wire define wire rxd_negdge_sig ;//parameter define parameter WIDTH = 8;parameter SIZE = 16;/********************************************************************************************************* Main Program ** ********************************************************************************************************/always @(posedge sys_clk or negedge sys_rst_n) begin if (sys_rst_n ==1'b0) begin uart_rxd_dly1 <= 1'b0; uart_rxd_dly2 <= 1'b0; uart_rxd_dly3 <= 1'b0; uart_rxd_dly4 <= 1'b0; end else begin uart_rxd_dly1 <= uart_rxd ; uart_rxd_dly2 <= uart_rxd_dly1; uart_rxd_dly3 <= uart_rxd_dly2; uart_rxd_dly4 <= uart_rxd_dly3; end endassign rxd_negdge_sig = (~uart_rxd_dly3) & uart_rxd_dly4; always @(posedge sys_clk or negedge sys_rst_n) begin if (sys_rst_n ==1'b0) rxd_negdge_sig_dly1 <= 1'b0; else rxd_negdge_sig_dly1 <= rxd_negdge_sig; endalways @(posedge sys_clk or negedge sys_rst_n) begin if ( sys_rst_n == 1'b0 ) counter <= 16'b0; else if ( rxd_negdge_sig_dly1 == 1'b1 && counter > 57200 ) counter <= 16'b0; else if ( counter <= 57200 ) counter <= counter + 16'b1; else ;endalways @(posedge sys_clk or negedge sys_rst_n) begin if ( sys_rst_n == 1'b0 ) buff <= 8'b0; else begin case ( counter ) 7800 : buff[0] <= uart_rxd_dly4 ; 13000 : buff[1] <= uart_rxd_dly4 ; 18200 : buff[2] <= uart_rxd_dly4 ; 23400 : buff[3] <= uart_rxd_dly4 ; 28600 : buff[4] <= uart_rxd_dly4 ; 33800 : buff[5] <= uart_rxd_dly4 ; 39000 : buff[6] <= uart_rxd_dly4 ; 44200 : buff[7] <= uart_rxd_dly4 ; default : buff <= buff ; endcase endendalways @(posedge sys_clk or negedge sys_rst_n) begin if (sys_rst_n ==1'b0) LED <= 8'b0; else LED <= buff; endendmodule//end of RTL code
导读:目前正在解读《FPGA收取数据代码》的相关信息,《FPGA收取数据代码》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《FPGA收取数据代码》的详细说明。
简介:在这里给大家提供一个FPGA收取数据的代码。
提醒:《FPGA收取数据代码》最后刷新时间 2024-03-14 01:00:09,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《FPGA收取数据代码》该内容的真实性请自行鉴别。