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

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

?? rs232tx.v

?? 本實驗利用PS2接口實現了與鍵盤通信
?? V
字號:
//------------------------------------------------------------------------------
// This block takes care of framing up an RS232 output word,
// and sending it out the "txd" line in a serial fashion.
// The user is responsible for providing appropriate clk
// and clock enable (tx_clk) to achieve the desired Baudot interval
// (a new bit is transmitted each (tx_clk/clock_factor) pulses)
// (NOTE: the state machine operates at "clock_factor" times the
//   desired BAUD rate.  Set it to anything between 2 and 16,
//   inclusive.  It may be useful to adjust the clock_factor in order to
//   generate good BAUD clocks from odd Fclk frequencies on your board.)
// A load operation may be performed at any time.  If two consecutive loads
// are performed while the transmitter is operating, the second load will
// overwrite the contents of the first load operation.
// Each time the "load_request" line becomes high the unit has finished
// sending its previous character.  One clk after the rising edge of
// "load_request", the tx shift register is loaded with a new character from
// the holding buffer.  The holding buffer may also be loaded at this time,
// that is, on the first clk following the assertion of "load_request"
//
// Once the new data is loaded, the "load_request" line will drop low again,
// acknowledging receipt of the next character to be transmitted.
//
// If the "load_request" line is tied to "load," the unit will send
// data characters continuously, with no gaps in between transmissions.
//
// Note that support is not provided for 1.5 stop bits, only integral
// numbers of stop bits are allowed.  A selection of more than 2 for
// number of stop bits will still work fine, it will simply introduce
// a delay between characters being transmitted, although the length
// of the transmitter shift register will also grow to include one
// stage for each stop bit requested...

`timescale 1ns/100ps
module rs232tx (
                clk,
                tx_clk,
                reset,
                load,
                data,
                load_request,
                txd
                );

  parameter START_BITS_PP  = 1;
  parameter DATA_BITS_PP  = 8;
  parameter STOP_BITS_PP  = 1;
  parameter CLOCK_FACTOR_PP  = 16;
  parameter TX_BIT_COUNT_BITS_PP = 4;  // = ceil(log(total_bits)/log(2)));

// State encodings, provided as parameters
// for flexibility to the one instantiating the module
  parameter m1_idle = 0;
  parameter m1_waiting = 1;
  parameter m1_sending = 3;
  parameter m1_sending_last_bit = 2;


// I/O declarations
  input clk;
  input tx_clk;
  input reset;
  input load;
  input[DATA_BITS_PP-1:0] data;
  output load_request;
  output txd;

  reg load_request;

// local signals
  `define TOTAL_BITS START_BITS_PP + DATA_BITS_PP + STOP_BITS_PP
  
  reg [`TOTAL_BITS-1:0] q;                 // Actual tx shifter
  reg [DATA_BITS_PP-1:0] data_in_waiting;  // Data waiting to be sent next
  reg [TX_BIT_COUNT_BITS_PP-1:0] tx_bit_count_l;
  reg [3:0] prescaler_count_l;
  reg [1:0] m1_state;
  reg [1:0] m1_next_state;

  wire [`TOTAL_BITS-1:0] tx_word = {{STOP_BITS_PP{1'b1}},
                                   data_in_waiting,
                                   {START_BITS_PP{1'b0}}};
  wire begin_last_bit;
  wire start_sending;
  wire tx_clk_1x;


  // This is a prescaler to produce the actual transmit clock.
  always @(posedge clk)
  begin
    if (reset) prescaler_count_l <= 0;
    else if (tx_clk)
    begin
      if (prescaler_count_l == (CLOCK_FACTOR_PP-1)) prescaler_count_l <= 0;
      else prescaler_count_l <= prescaler_count_l + 1;
    end
  end
  assign tx_clk_1x = ((prescaler_count_l == (CLOCK_FACTOR_PP-1) ) && tx_clk);

  // This is the transmitted bit counter
  always @(posedge clk)
  begin
    if (start_sending) tx_bit_count_l <= 0;
    else if (tx_clk_1x)
    begin
      if (tx_bit_count_l == (`TOTAL_BITS-2)) tx_bit_count_l <= 0;
      else tx_bit_count_l <= tx_bit_count_l + 1;
    end
  end
  assign begin_last_bit = ((tx_bit_count_l == (`TOTAL_BITS-2) ) && tx_clk_1x);

  // This is the holding register.  It can be reloaded at any time.
  always @(posedge clk)
  begin
    if (load) data_in_waiting <= data;
  end

  assign start_sending = ((tx_clk_1x && load_request && load)
                           ||(tx_clk_1x && (m1_state==m1_waiting)));


  // This state machine handles sending out the transmit data
  
  // State register.
  always @(posedge clk)
  begin : state_register
    if (reset) m1_state <= m1_idle;
    else m1_state <= m1_next_state;
  end

  // State transition logic
  always @(m1_state or tx_clk_1x or load or begin_last_bit)
  begin : state_logic
    // Signal is low unless changed in a state condition.
    load_request <= 0;
    case (m1_state)
      m1_idle :
            begin
              load_request <= 1;
              if (tx_clk_1x && load) m1_next_state <= m1_sending;
              else if (load) m1_next_state <= m1_waiting;
              else m1_next_state <= m1_idle;
            end
      m1_waiting :
            begin
              if (tx_clk_1x) m1_next_state <= m1_sending;
              else m1_next_state <= m1_waiting;
            end
      m1_sending :
            begin
              if (begin_last_bit) m1_next_state <= m1_sending_last_bit;
              else m1_next_state <= m1_sending;
            end
      m1_sending_last_bit :
            begin
              load_request <= tx_clk_1x;
              if (load & tx_clk_1x) m1_next_state <= m1_sending;
              else if (tx_clk_1x) m1_next_state <= m1_idle;
              else m1_next_state <= m1_sending_last_bit;
            end
      default :
            begin
              m1_next_state <= m1_idle;
            end
    endcase
  end


  // This is the transmit shifter
  always @(posedge clk)
  begin : txd_shifter
    if (reset) q <= -1;  // set to all ones
    else if (start_sending) q <= tx_word;
    else if (tx_clk_1x) q <= {1'b1,q[`TOTAL_BITS-1:1]};
  end
  
  assign txd = q[0];

endmodule

//`undef TOTAL_BITS

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩在线观看| 欧美激情中文不卡| 欧美亚洲国产一区二区三区| 成+人+亚洲+综合天堂| 成人午夜视频在线| 99九九99九九九视频精品| 99久久综合精品| 色狠狠av一区二区三区| 欧美三电影在线| 欧美一区二区三区性视频| 欧美成人性福生活免费看| 久久久不卡网国产精品一区| 中文av一区特黄| 亚洲一区在线播放| 免费观看一级欧美片| 国产乱子轮精品视频| av福利精品导航| 欧美日韩一级黄| 久久天堂av综合合色蜜桃网| 国产清纯白嫩初高生在线观看91 | 午夜免费欧美电影| 麻豆免费精品视频| 成人激情免费视频| 欧美精品粉嫩高潮一区二区| 欧美大尺度电影在线| 国产精品美女久久久久久久| 亚洲香蕉伊在人在线观| 久久99在线观看| 成人高清视频在线| 欧美电影一区二区| 国产精品免费看片| 午夜精品久久久久久久| 国产精品456| 欧美日本一道本| 中文字幕日韩av资源站| 日一区二区三区| 成人国产在线观看| 日韩欧美你懂的| 亚洲精品免费播放| 国产精品一级黄| 欧美日韩一级大片网址| 国产色一区二区| 日韩va欧美va亚洲va久久| 99国产精品久| 久久亚洲春色中文字幕久久久| 亚洲精品欧美二区三区中文字幕| 国产一区二区在线影院| 欧美日韩一区二区三区高清 | 《视频一区视频二区| 蜜桃视频一区二区三区 | 91精品国产欧美一区二区成人| 国产日韩欧美不卡在线| 久久精品国产亚洲aⅴ| 欧美午夜精品理论片a级按摩| 国产欧美一区二区精品婷婷 | 国产精品久久久久久久久免费相片| 丝袜美腿一区二区三区| 欧美综合一区二区三区| 国产精品久久久久久久久图文区| 国产精品18久久久久久久久| 正在播放亚洲一区| 偷拍日韩校园综合在线| 欧洲国产伦久久久久久久| 国产精品理伦片| 不卡视频一二三| 中文字幕一区二区在线观看| 国产精品99久久不卡二区| 26uuu亚洲| 国产一区二区调教| 2024国产精品| 国产传媒日韩欧美成人| 国产欧美日韩不卡免费| 成人美女在线视频| 国产精品乱人伦一区二区| 成人av在线看| 亚洲素人一区二区| 色婷婷综合久久久久中文一区二区| 中文字幕亚洲一区二区av在线| 成人影视亚洲图片在线| 亚洲美女一区二区三区| 欧美四级电影在线观看| 五月激情综合婷婷| 欧美v日韩v国产v| 国产成人免费9x9x人网站视频| 国产网站一区二区三区| 99久免费精品视频在线观看| 亚洲女女做受ⅹxx高潮| 欧美精品成人一区二区三区四区| 日韩精品一级二级| 久久美女高清视频 | 亚洲一区二三区| 欧美喷水一区二区| 黄色精品一二区| 国产精品美女久久久久aⅴ| 不卡电影一区二区三区| 亚洲国产中文字幕在线视频综合 | 亚洲天堂中文字幕| 7777精品伊人久久久大香线蕉完整版 | 中文字幕亚洲电影| 精品视频在线免费| 国产美女一区二区| 亚洲人成影院在线观看| 日韩一区二区精品在线观看| 国产成人午夜精品5599| 亚洲一区二区四区蜜桃| 久久夜色精品国产欧美乱极品| eeuss影院一区二区三区| 五月激情综合色| 国产精品入口麻豆九色| 欧美日韩国产不卡| 成人综合婷婷国产精品久久| 亚洲成a天堂v人片| 国产精品美女一区二区| 日韩免费高清av| 在线影视一区二区三区| 国产传媒久久文化传媒| 日韩精品每日更新| 亚洲欧美日本韩国| 国产人久久人人人人爽| 欧美一卡二卡三卡| 欧美伊人精品成人久久综合97 | 日韩一区二区三区电影在线观看 | 久久在线免费观看| 91精品在线免费| 日本精品一区二区三区四区的功能| 麻豆免费精品视频| 午夜激情一区二区| 亚洲最新视频在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美色欧美亚洲另类二区| 丰满亚洲少妇av| 精品一区二区三区在线观看| 亚洲成人午夜电影| 一个色综合av| 亚洲女与黑人做爰| 亚洲欧美综合网| 国产精品乱人伦中文| 国产日韩精品一区二区浪潮av | 国产精品亚洲成人| 精彩视频一区二区| 蜜桃免费网站一区二区三区| 日韩精品电影在线| 日韩精品一级中文字幕精品视频免费观看 | 欧美性极品少妇| 在线观看日韩一区| 97se亚洲国产综合自在线| 国产宾馆实践打屁股91| 国产成人在线视频免费播放| 极品少妇xxxx偷拍精品少妇| 免费欧美高清视频| 九一九一国产精品| 久久国产三级精品| 九九久久精品视频| 国产传媒久久文化传媒| 成人伦理片在线| 99国产一区二区三精品乱码| 91亚洲午夜精品久久久久久| va亚洲va日韩不卡在线观看| 99精品久久只有精品| 91在线视频在线| 欧美性欧美巨大黑白大战| 3atv一区二区三区| 精品国产乱码久久久久久久久| 精品国产一区二区三区四区四| 久久九九久精品国产免费直播| 国产精品视频观看| 亚洲精品成人精品456| 亚洲第一狼人社区| 免费欧美日韩国产三级电影| 国产一区二区三区高清播放| 成人精品一区二区三区四区| 日本韩国欧美三级| 日韩午夜av一区| 国产精品国产三级国产普通话三级| 一区二区三区在线免费| 日韩精品成人一区二区三区| 国产一区激情在线| 色婷婷精品久久二区二区蜜臂av| 欧美偷拍一区二区| 欧美精品一区视频| 亚洲色图另类专区| 日韩av网站在线观看| 福利91精品一区二区三区| 欧美日韩亚洲丝袜制服| 久久精品日产第一区二区三区高清版 | 久久99精品国产.久久久久| www.在线成人| 欧美r级在线观看| 亚洲激情在线激情| 国产一区二区免费看| 欧美综合在线视频| 欧美激情一区三区| 日韩激情一区二区| 99vv1com这只有精品| 日韩精品一区二区三区蜜臀| 亚洲男人电影天堂| 国产传媒一区在线| 精品国产一区二区三区忘忧草| 一区二区视频免费在线观看| 国产一区 二区 三区一级|