亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rxcver.v

?? hi this is reference code for UART use UAER0_3
?? V
?? 第 1 頁 / 共 2 頁
字號:
// --------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------
// Copyright (c) 2001 - 2008 by Lattice Semiconductor Corporation
// --------------------------------------------------------------------
//
// Permission:
//
// Lattice Semiconductor grants permission to use this code for use
// in synthesis for any Lattice programmable logic product. Other
// use of this code, including the selling or duplication of any
// portion is strictly prohibited.
//
// Disclaimer:
//
// This VHDL or Verilog source code is intended as a design reference
// which illustrates how these types of functions can be implemented.
// It is the user's responsibility to verify their design for
// consistency and functionality through the use of formal
// verification methods. Lattice Semiconductor provides no warranty
// regarding the use or functionality of this code.
//
// --------------------------------------------------------------------
//
// Lattice Semiconductor Corporation
// 5555 NE Moore Court
// Hillsboro, OR 97214
// U.S.A
//
// TEL: 1-800-Lattice (USA and Canada)
// 503-268-8001 (other locations)
//
// web: http://www.latticesemi.com/
// email: techsupport@latticesemi.com
//
// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Ver: | Author |Mod. Date |Changes Made:
// V1.0 |        |          | Initial ver
// V1.1 | S.R.   |18/12/08  | modified to support Mico8
// --------------------------------------------------------------------

`ifndef RXCVER_FILE
`define RXCVER_FILE
`include "system_conf.v"
`include "rxcver_fifo.v"
`timescale 1ns/10ps
module rxcver #(parameter DATAWIDTH=8,
                parameter FIFO=0)
     (
     // Global reset and clock
     reset,
     clk,
     // Register
     rbr,
     rbr_fifo,	     
     // Rising edge of rbr, lsr read strobes
     rbr_rd,
     lsr_rd,
     // Receiver input
     sin,
     // Receiver control
     databits,
     parity_en,
     parity_even,
     parity_stick,
     // Receiver status
     rx_rdy,
     overrun_err,
     parity_err,
     frame_err,
     break_int,
     fifo_empty,
     fifo_almost_full,
     divisor  
     );
   
   input         reset   ;
   input         clk     ;
   input         rbr_rd ;
   input         lsr_rd ;
   input         sin    ;
   input [1:0]   databits ;
   input         parity_en;
   input         parity_even;
   input         parity_stick;

   output [7:0]           rbr_fifo;
   output [DATAWIDTH-1:0]  rbr ;  
   output 		   rx_rdy      ;
   output 		   overrun_err ;
   output 		   parity_err  ;
   output 		   frame_err   ;
   output 		   break_int   ;
   output                  fifo_empty  ;
   output                  fifo_almost_full;
   input[15:0]             divisor;
   
   reg [3:0] 	           databit_recved_num;
   reg [DATAWIDTH-1:0]     rsr;
   reg 			   rx_parity_err  ;
   reg 			   rx_frame_err ;
   reg 			   rx_idle;
   reg 			   rbr_datardy;
   reg [3:0] 	           count;
   reg 			   hunt;
   reg 			   hunt_one;
   reg 			   sin_d0;
   reg 			   sin_d1;
   reg 			   rx_frame_err_d1;
   reg 			   rx_idle_d1;
   reg 			   overrun_err_int;
   reg 			   parity_err_int;
   reg 			   frame_err_int;
   reg 			   break_int_int;
   reg 			   sampled_once;
   reg 			   rxclk_en;    

   wire [7:0]             rbr_fifo;
   wire [2:0]             rbr_fifo_error;

   reg [DATAWIDTH-1:0]     rbr; 

   
   // State Machine Definition
   parameter 	idle   = 3'b000;
   parameter 	shift  = 3'b001;
   parameter 	parity = 3'b010;
   parameter 	stop   = 3'b011;
   parameter    idle1  = 3'b100;
   reg [2:0]    cs_state;
parameter    lat_family = `LATTICE_FAMILY;
   // FIFO signals for FIFO mode
   wire         fifo_full;
   wire         fifo_empty;
   wire         fifo_almost_full;
   wire         fifo_almost_empty;
   reg[10:0]    fifo_din;
   reg          fifo_wr;
   reg          fifo_wr_q;
   wire         fifo_wr_pulse;

   reg [15:0]   counter;
   wire [15:0]  divisor_2;
   assign divisor_2 = divisor/2;
   reg          sin_d0_delay; 

   
   ////////////////////////////////////////////////////////////////////////////////
   // Generate hunt
   ////////////////////////////////////////////////////////////////////////////////
   
   // hunt : will be TRUE when start bit is found
     always @(posedge clk or posedge reset) begin
     if (reset)
       hunt <= 1'b0;
     else if ((cs_state == idle) && (sin_d0 == 1'b0) && (sin_d1 == 1'b1))
       // Set Hunt when SIN falling edge is found at the idle state
       hunt <= 1'b1;
     else if (sampled_once && ~sin_d0)
        // Start bit is successfully sampled twice after framing error
        // set Hunt_r "true" for resynchronizing of next frame
       hunt <= 1'b1;
     else if (~rx_idle || sin_d0)
       hunt <= 1'b0;
     end
   
   
   // hunt_one :
   //   hunt_one, used for BI flag generation, indicates that there is at
   //   least a '1' in the (data + parity + stop) bits of the frame.
   //   Break Interrupt flag(BI) is set to '1' whenever the received input
   //   is held at the '0' state for all bits in the frame (Start bit +
   //   Data bits + Parity bit + Stop bit).  So, as long as hunt_one is still
   //   low after all bits are received, BI will be set to '1'.
     always @(posedge clk or posedge reset) begin
        if (reset)
          hunt_one <= 1'b0;
        else if (hunt)
          hunt_one <= 1'b0;
        else if ((rx_idle == 1'b0) && (counter == divisor_2) && (sin_d0 == 1'b1))
          hunt_one <= 1'b1;
     end
   
   // rbr_datardy :
   // This will be set to indicate that the data in rbr is ready for read and
   // will be cleared after rbr is read.
   //
   generate 
   begin
      if (FIFO == 1) begin
       always @(posedge clk or posedge reset) begin
        if (reset) 
          rbr_datardy <= 1'b0;
        else begin
	   if (fifo_empty)	   
            // clear RbrDataRDY when RBR is read by CPU in 450 or FIFO is
	    // empty in 550 mode
            rbr_datardy <= 1'b0; 
	   else if (!fifo_empty)	   
            // set RbrDataRDY at RxIdle_r rising edge
            rbr_datardy <= 1'b1;
        end    
       end
      end
      else begin
       always @(posedge clk or posedge reset) begin
        if (reset) 
          rbr_datardy <= 1'b0;
        else begin
           if (rbr_rd)   	   
            // clear RbrDataRDY when RBR is read by CPU in 450 or FIFO is
	    // empty in 550 mode
            rbr_datardy <= 1'b0;
           else if ((rx_idle == 1'b1) && (rx_idle_d1 == 1'b0))	   
            // set RbrDataRDY at RxIdle_r rising edge
            rbr_datardy <= 1'b1;
        end    
       end
      end
   end
endgenerate
   
   // sampled_once :
   //   This will be set for one clk clock after a framing error occurs not
   //   because of BREAK and a low sin signal is sampled by the clk right
   //   after the sample time of the Stop bit which causes the framing error.
   always @ (posedge clk or posedge reset)  begin 
        if (reset)
          sampled_once <= 1'b0;
        else if (rx_frame_err && ~rx_frame_err_d1 && ~sin_d0 && hunt_one)
          // Start bit got sampled once
          sampled_once <= 1'b1;
        else
          sampled_once <= 1'b0;
     end
   
   
   // rx_idle Flag
     always @ (posedge clk or posedge reset)  begin
     if (reset)
          rx_idle <= 1'b1;                               
     else if (cs_state == idle)
          rx_idle <= 1'b1;
     else
          rx_idle <= 1'b0;		
     end
   
    ////////////////////////////////////////////////////////////////////////////////
   // Receiver Finite State Machine
   ////////////////////////////////////////////////////////////////////////////////
   //  rx_parity_err:
   //               rx_parity_err is a dynamic Parity Error indicator which is
   //               initialized to 0 for even parity and 1 for odd parity.
   //               For odd parity, if there are odd number of '1's in the
   //               (data + parity) bits, the XOR will bring rx_parity_err back to 0
   //               which means no parity error, otherwise rx_parity_err will be 1 to
   //               indicate a parity error.
   // parity_stick='1' means Stick Parity is enabled.  In this case,
   //               the accumulated dynamic rx_parity_err result will be ignored.  A new
   //               value will be assigned to rx_parity_err based on the even/odd parity
   //               mode setting and the sin sampled in parity bit.
   //                  parity_even='0'(odd parity):
   //                     sin needs to be '1', otherwise it's a stick parity error.
   //                  parity_even='1'(even parity):
   //                     sin needs to be '0', otherwise it's a stick parity error.
   
   always @ (posedge clk or posedge reset) begin 
        if (reset) begin
           rsr <= 0;
           databit_recved_num <= 4'h0;
           rx_parity_err <= 1'b1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女bb生活片| 蜜臀久久99精品久久久画质超高清| 精品无码三级在线观看视频| 欧美一级艳片视频免费观看| 成人免费毛片aaaaa**| 国产亚洲一区字幕| 成人av网址在线| 亚洲欧美激情插 | 国产精品毛片久久久久久| 高清beeg欧美| 夜夜夜精品看看| 日韩欧美一区二区在线视频| 国产一区二三区| 中文字幕日韩精品一区| 欧美性猛片xxxx免费看久爱| 日韩精品国产精品| 久久久精品黄色| 91美女片黄在线观看91美女| 日韩专区在线视频| 国产欧美精品区一区二区三区| 99久久久国产精品| 奇米四色…亚洲| 欧美激情一区二区| 欧美日本精品一区二区三区| 国产在线观看免费一区| 亚洲人成小说网站色在线| 欧美精品aⅴ在线视频| 国产九色sp调教91| 亚洲黄色免费电影| 久久精品视频免费| 欧美日韩一区二区三区高清| 国产精华液一区二区三区| 亚洲精品成人精品456| 日韩欧美在线1卡| 日本韩国一区二区三区视频| 国内精品嫩模私拍在线| 一区二区三区不卡视频在线观看| 日韩精品一区二区三区中文精品| 91社区在线播放| 国内精品免费在线观看| 亚洲小说春色综合另类电影| 亚洲图片激情小说| 精品日产卡一卡二卡麻豆| 色一情一伦一子一伦一区| 国产九色精品成人porny| 亚洲不卡一区二区三区| 亚洲人xxxx| 欧美激情艳妇裸体舞| 欧美成人a∨高清免费观看| 91福利视频网站| eeuss鲁片一区二区三区在线观看| 青青草91视频| 亚洲成人av一区二区| 国产精品第13页| 国产日韩欧美a| 日韩精品在线网站| 欧美一区二区视频免费观看| 欧美三级日韩三级| 色综合久久88色综合天天6| 成人精品高清在线| 国产一区二区剧情av在线| 裸体健美xxxx欧美裸体表演| 亚洲成人免费视频| 亚洲影院久久精品| 亚洲综合丝袜美腿| 亚洲一区二区视频在线| 亚洲人快播电影网| 中文字幕亚洲电影| 国产精品久久久久永久免费观看| 久久日韩精品一区二区五区| 精品国产精品一区二区夜夜嗨| 69堂国产成人免费视频| 91精品啪在线观看国产60岁| 欧美日韩电影在线播放| 欧美日韩国产综合一区二区三区| 在线观看中文字幕不卡| 欧美性大战久久久久久久蜜臀| 91麻豆国产福利在线观看| 一本大道久久a久久综合| 91国产精品成人| 欧洲一区在线电影| 欧美伦理电影网| 欧美伦理电影网| 欧美成人在线直播| 日本一区二区三区四区| 国产精品白丝在线| 亚洲欧美日韩在线播放| 激情综合色播激情啊| 国产麻豆午夜三级精品| 国产99久久久国产精品潘金 | 丁香啪啪综合成人亚洲小说| 高清av一区二区| 一道本成人在线| 欧美日韩色综合| 精品国产凹凸成av人网站| 国产日韩欧美制服另类| 亚洲男人的天堂在线aⅴ视频 | 国产亚洲污的网站| 中文字幕中文乱码欧美一区二区| 亚洲色图一区二区| 日韩中文欧美在线| 国产一区不卡在线| 97精品国产露脸对白| 欧美日韩成人在线| 久久久亚洲高清| 一区二区三区日韩欧美精品| 偷拍日韩校园综合在线| 国产乱子轮精品视频| 99re视频这里只有精品| 欧美精品v国产精品v日韩精品| 精品国产亚洲在线| 亚洲欧美福利一区二区| 蜜芽一区二区三区| 99久久精品情趣| 欧美一级欧美三级| 综合婷婷亚洲小说| 久久国产精品色婷婷| 一本色道久久加勒比精品| 欧美videos大乳护士334| 18成人在线观看| 韩国精品主播一区二区在线观看 | 久久综合成人精品亚洲另类欧美| 亚洲天堂久久久久久久| 另类综合日韩欧美亚洲| 欧美中文字幕久久| 国产欧美日韩不卡免费| 丝袜美腿成人在线| 成人精品国产福利| 欧美成人综合网站| 亚洲成国产人片在线观看| 粉嫩久久99精品久久久久久夜| 欧美日韩大陆在线| 亚洲人成影院在线观看| 国产精品一区二区在线播放| 欧美日韩国产综合视频在线观看| 国产午夜精品久久久久久免费视| 亚洲观看高清完整版在线观看| 丰满白嫩尤物一区二区| 精品三级av在线| 亚洲成a人v欧美综合天堂下载| a在线欧美一区| 久久久一区二区| 精品制服美女久久| 中文字幕精品一区| 久久99久久久欧美国产| 欧美高清hd18日本| 亚洲一线二线三线久久久| 北条麻妃国产九九精品视频| 精品国产一区a| 久久不见久久见中文字幕免费| 在线影院国内精品| 国产精品麻豆欧美日韩ww| 国产精选一区二区三区| 日韩欧美色电影| 日本不卡一区二区| 欧美巨大另类极品videosbest| 一区二区视频在线| 日本韩国精品一区二区在线观看| 国产精品欧美综合在线| 风间由美一区二区三区在线观看| 久久久久久日产精品| 黄色日韩三级电影| 2020国产成人综合网| 久久99精品久久久久久久久久久久 | 喷白浆一区二区| 在线电影一区二区三区| 肉色丝袜一区二区| 91精品国产综合久久久蜜臀图片| 亚洲自拍偷拍综合| 欧美性一二三区| 首页欧美精品中文字幕| 欧美电影在线免费观看| 美国十次了思思久久精品导航| 在线成人av影院| 青青草国产成人av片免费| 日韩免费看网站| 国产精品911| 中文字幕在线不卡国产视频| 色哟哟日韩精品| 偷拍一区二区三区四区| 欧美一区二区三区性视频| 久久99九九99精品| 国产精品人妖ts系列视频| 91毛片在线观看| 午夜不卡av在线| 精品久久一二三区| 成人av在线播放网站| 亚洲综合在线观看视频| 日韩一级片在线观看| 国产又粗又猛又爽又黄91精品| 国产日韩影视精品| 色偷偷一区二区三区| 青娱乐精品视频| 国产精品少妇自拍| 欧美日韩亚洲综合| 国产在线视频不卡二| 亚洲欧美一区二区三区久本道91| 欧美高清视频一二三区| 国产电影精品久久禁18| 亚洲综合色自拍一区|