⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart_rx.v

📁 32位单精度浮点加法器
💻 V
字号:
//-----------------------------------------------------------------------------//  //  Copyright (c) 2009 Xilinx Inc.////  Project  : Programmable Wave Generator//  Module   : uart_rx.v//  Parent   : wave_gen.v and uart_led.v//  Children : uart_rx_ctl.v uart_baud_gen.v meta_harden.v////  Description: //     Top level of the UART receiver.//     Brings together the metastability hardener for synchronizing the //     rxd pin, the baudrate generator for generating the proper x16 bit//     enable, and the controller for the UART itself.//     ////  Parameters://     BAUD_RATE : Baud rate - set to 57,600bps by default//     CLOCK_RATE: Clock rate - set to 50MHz by default////  Local Parameters:////  Notes       : ////  Multicycle and False Paths//     The uart_baud_gen module generates a 1-in-N pulse (where N is//     determined by the baud rate and the system clock frequency), which//     enables all flip-flops in the uart_rx_ctl module. Therefore, all paths//     within uart_rx_ctl are multicycle paths, as long as N > 2 (which it//     will be for all reasonable combinations of Baud rate and system//     frequency).//`timescale 1ns/1psmodule uart_rx (  // Write side inputs  input            clk_rx,       // Clock input  input            rst_clk_rx,   // Active HIGH reset - synchronous to clk_rx  input            rxd_i,        // RS232 RXD pin - Directly from pad  output     [7:0] rx_data,      // 8 bit data output                                 //  - valid when rx_data_rdy is asserted  output           rx_data_rdy,  // Ready signal for rx_data  output           frm_err       // The STOP bit was not detected);//***************************************************************************// Parameter definitions//***************************************************************************  parameter BAUD_RATE    = 115_200;             // Baud rate  parameter CLOCK_RATE   = 50_000_000;//***************************************************************************// Reg declarations//***************************************************************************//***************************************************************************// Wire declarations//***************************************************************************  wire             rxd_clk_rx;   // RXD pin, synchronized to clk_rx  wire             baud_x16_en;  // 1-in-N enable for uart_rx_ctl FFs  //***************************************************************************// Code//***************************************************************************  /* Synchronize the RXD pin to the clk_rx clock domain. Since RXD changes  * very slowly wrt. the sampling clock, a simple metastability hardener is  * sufficient */  meta_harden meta_harden_rxd_i0 (    .clk_dst      (clk_rx),    .rst_dst      (rst_clk_rx),     .signal_src   (rxd_i),    .signal_dst   (rxd_clk_rx)  );  uart_baud_gen #  ( .BAUD_RATE  (BAUD_RATE),    .CLOCK_RATE (CLOCK_RATE)  ) uart_baud_gen_rx_i0 (    .clk         (clk_rx),    .rst         (rst_clk_rx),    .baud_x16_en (baud_x16_en)  );  uart_rx_ctl uart_rx_ctl_i0 (    .clk_rx      (clk_rx),    .rst_clk_rx  (rst_clk_rx),    .baud_x16_en (baud_x16_en),    .rxd_clk_rx  (rxd_clk_rx),        .rx_data_rdy (rx_data_rdy),    .rx_data     (rx_data),    .frm_err     (frm_err)  );endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -