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

📄 uar_sm.v

📁 it is a verilog code written for MELAY state machine based UART and it wll synthesize in xinlix
💻 V
字号:
//*****************************************************************************************////    Project      : FPGA based Digital Design using Verilog HDL//    File         : uar_sm.v//    Author       : Irfan Faisal Mir & Nauman Mir//    Company      : Chip Designing Course//    Start Date   : //    Last Updated : //    Version      : 0.1//    Abstract     : This module implements...........// //    Modification History://==========================================================================================//    Date                       By                    Version            Change Description//==========================================================================================//                               Irfan & Nauman        0.1                Original Version////******************************************************************************************//module uar_sm(// Inputs              clk_16x,              rst_n,              din_rdy,              shift_count,              count_sample,              // Outputs              start_bit_sig,              data_bits_sig,              stop_bit_sig             );  // Inputsinput       clk_16x ;input       rst_n ;input       din_rdy ;input [3:0] shift_count ;input [3:0] count_sample;// Outputsoutput      start_bit_sig ;output      data_bits_sig ;output      stop_bit_sig ;parameter [3:0] IDLE          = 4'b0001 ;parameter [3:0] START_BIT_ST  = 4'b0010 ;parameter [3:0] DATA_BITS_ST  = 4'b0100 ;parameter [3:0] STOP_BIT_ST   = 4'b1000 ;// Register and Wire Declaration reg       start_bit_sig ;reg       data_bits_sig ;reg       stop_bit_sig ;reg [3:0] rx_state ;// State Register, Next State & Output Logicalways @(posedge clk_16x or negedge rst_n)begin  if(~rst_n) begin     rx_state <= #1 IDLE ;  end   else begin    case(rx_state)        IDLE         : begin                          if(din_rdy)                             rx_state <= #1 START_BIT_ST ;                          else                                  rx_state <= #1 IDLE ;                       end         START_BIT_ST : begin			   if(shift_count == 4'd1)                              rx_state <= #1 DATA_BITS_ST ;                           else                                   rx_state <= #1 START_BIT_ST ;                        end         DATA_BITS_ST : begin			   if(shift_count == 4'd9)                              rx_state <= #1 STOP_BIT_ST ;                           else                                   rx_state <= #1 DATA_BITS_ST ;                        end         STOP_BIT_ST  : begin			   if(count_sample == 4'd9)                              rx_state <= #1 IDLE ;                           else                                   rx_state <= #1 STOP_BIT_ST ;                        end              default      : begin                           rx_state <= #1 IDLE ;                        end         endcase   end   endalways @(rx_state)begin   case(rx_state)      IDLE         : begin                        start_bit_sig = 1'b0 ;                        data_bits_sig = 1'b0 ;                        stop_bit_sig = 1'b0 ;                     end      START_BIT_ST : begin                        start_bit_sig = 1'b1 ;                        data_bits_sig = 1'b0 ;                        stop_bit_sig = 1'b0 ;                     end      DATA_BITS_ST : begin                        start_bit_sig = 1'b0 ;                        data_bits_sig = 1'b1 ;                        stop_bit_sig = 1'b0 ;                     end      STOP_BIT_ST  : begin                        start_bit_sig = 1'b0 ;                        data_bits_sig = 1'b0 ;                        stop_bit_sig = 1'b1 ;                     end           default      : begin                        start_bit_sig = 1'b0 ;                        data_bits_sig = 1'b0 ;                        stop_bit_sig = 1'b0 ;                     end      endcaseendendmodule

⌨️ 快捷键说明

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