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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mem_interface_top_tap_ctrl_0.txt

?? 利用fpga讀寫ddr的源代碼 實測可以使用
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2005 Xilinx, Inc.
// This design is confidential and proprietary of Xilinx, All Rights Reserved.
///////////////////////////////////////////////////////////////////////////////
//   ____  ____
//  /   /\/   /
// /___/  \  /   Vendor             : Xilinx
// \   \   \/    Version            : $Name: mig_v1_7 $
//  \   \        Application        : MIG
//  /   /        Filename           : mem_interface_top_tap_ctrl.v
// /___/   /\    Date Last Modified : $Date: 2007/02/15 12:06:16 $
// \   \  /  \   Date Created       : Mon May 2 2005
//  \___\/\___\
//
// Device      : Virtex-4
// Design Name : DDR SDRAM
// Description: The tap control logic which claculates the relation between the
//              FPGA clock and the dqs from memory. It delays the dqs so as to
//              detect the edges of the dqs and then calculates the mid point
//              so that the data can be registered properly.
///////////////////////////////////////////////////////////////////////////////

`timescale 1ns / 1ps


module mem_interface_top_tap_ctrl
  (
   input        CLK,
   input        RESET,
   input        RDY_STATUS,
   input        DQS,
   input        CTRL_DUMMYREAD_START,
   output       DLYINC,
   output       DLYCE,
   output       DLYRST,
   output       SEL_DONE,
   output       VALID_DATA_TAP_COUNT,
   output [5:0] DATA_TAP_COUNT
   );

   reg          prev_dqs_level;
   reg          dly_inc;
   reg          dly_ce;
   reg          dly_rst;
   reg [1:0]    transition;
   reg          first_edge;
   reg          second_edge;
   reg          second_edge_r1;
   reg          second_edge_r2;
   reg          second_edge_r3;
   reg          transition_rst;
   reg          sel_complete;
   reg [5:0]    tap_counter;
   reg [5:0]    first_edge_tap_count;
   reg [5:0]    second_edge_tap_count;
   reg [5:0]    pulse_width_tap_count ;
   reg [5:0]    data_bit_tap_count;
   reg [2:0]    state;
   reg          idelay_rst_idle;
   reg          idelay_rst_idle_r1;
   reg          idelay_rst_idle_r2;
   reg          idelay_rst_idle_r3;
   reg          idelay_rst_idle_r4;
   reg          idelay_rst_idle_r5;
   reg          idelay_rst_idle_r6;
   reg          idelay_inc_idle;
   reg          idelay_inc_idle_r1;
   reg          idelay_inc_idle_r2;
   reg          idelay_inc_idle_r3;
   reg          idelay_inc_idle_r4;
   reg          idelay_inc_idle_r5;
   reg          idelay_inc_idle_r6;
   reg          detect_edge_idle;
   reg          detect_edge_idle_r1;
   reg          detect_edge_idle_r2;
   reg          detect_edge_idle_r3;
   reg          detect_edge_idle_r4;
   reg          detect_edge_idle_r5;
   reg          detect_edge_idle_r6;
   reg [2:0]    first_edge_cnt;
   reg [3:0]    flag;
   reg [3:0]    dly_after_first_cnt;
   reg [5:0]    pulse_center_tap_count ;
   reg          valid_data_count;
   reg          rst_r;

   wire         data_count_valid;
   wire [3:0]   dly_after_first;
   wire         curr_dqs_level;
   wire         delay_sel_done;
   wire         reset_int;

   localparam   idelay_rst =  3'b000;
   localparam   idle       =  3'b001;
   localparam   idelay_inc =  3'b010;
   localparam   detect_edge=  3'b011;


   always @( posedge CLK)
     rst_r <= RESET;

   /// New calibration scheme edit begin
   /// New calibration scheme edit end

   assign       DLYINC               = dly_inc;
   assign       DLYCE                = dly_ce;
   assign       DLYRST               = dly_rst;
   assign       SEL_DONE             = sel_complete;
   assign       VALID_DATA_TAP_COUNT = valid_data_count;
   assign       DATA_TAP_COUNT[5:0]  = data_bit_tap_count[5:0];

   assign       data_count_valid     = (second_edge_r3 || (tap_counter[5:0] ==
                                                     6'b111111)) ? 1'b1 : 1'b0;
   assign       reset_int            = (~RDY_STATUS) || rst_r;

   assign       delay_sel_done = ((second_edge == 1'b1) || (tap_counter[5:0]==
                                                            6'b111111)) ? 1'b1 :
                (CTRL_DUMMYREAD_START == 1'b0) ? 1'b0 : sel_complete;

   assign       dly_after_first[3:0] = ((transition[1:0] == 2'b01) &&
                             (first_edge == 1'b0)) ? 4'b1001 :
                ((dly_after_first_cnt[3:0] != 4'b0000) && (dly_inc == 1'b1)) ?
                (dly_after_first_cnt[3:0] - 1'b1) : dly_after_first_cnt[3:0];

   assign       curr_dqs_level  = DQS;

   // Shift registers for controls
   always @ (posedge CLK) begin
      if (reset_int == 1'b1) begin
         second_edge_r1      <= 1'b0;
         second_edge_r2      <= 1'b0;
         second_edge_r3      <= 1'b0;
         idelay_rst_idle_r1  <= 1'b0;
         idelay_rst_idle_r2  <= 1'b0;
         idelay_rst_idle_r3  <= 1'b0;
         idelay_rst_idle_r4  <= 1'b0;
         idelay_rst_idle_r5  <= 1'b0;
         idelay_rst_idle_r6  <= 1'b0;
         idelay_inc_idle_r1  <= 1'b0;
         idelay_inc_idle_r2  <= 1'b0;
         idelay_inc_idle_r3  <= 1'b0;
         idelay_inc_idle_r4  <= 1'b0;
         idelay_inc_idle_r5  <= 1'b0;
         idelay_inc_idle_r6  <= 1'b0;
         detect_edge_idle_r1 <= 1'b0;
         detect_edge_idle_r2 <= 1'b0;
         detect_edge_idle_r3 <= 1'b0;
         detect_edge_idle_r4 <= 1'b0;
         detect_edge_idle_r5 <= 1'b0;
         detect_edge_idle_r6 <= 1'b0;
         valid_data_count    <= 1'b0;
      end
      else begin
         second_edge_r1      <= second_edge;
         second_edge_r2      <= second_edge_r1;
         second_edge_r3      <= second_edge_r2;
         idelay_rst_idle_r1  <= idelay_rst_idle;
         idelay_rst_idle_r2  <= idelay_rst_idle_r1;
         idelay_rst_idle_r3  <= idelay_rst_idle_r2;
         idelay_rst_idle_r4  <= idelay_rst_idle_r3;
         idelay_rst_idle_r5  <= idelay_rst_idle_r4;
         idelay_rst_idle_r6  <= idelay_rst_idle_r5;
         idelay_inc_idle_r1  <= idelay_inc_idle;
         idelay_inc_idle_r2  <= idelay_inc_idle_r1;
         idelay_inc_idle_r3  <= idelay_inc_idle_r2;
         idelay_inc_idle_r4  <= idelay_inc_idle_r3;
         idelay_inc_idle_r5  <= idelay_inc_idle_r4;
         idelay_inc_idle_r6  <= idelay_inc_idle_r5;
         detect_edge_idle_r1 <= detect_edge_idle;
         detect_edge_idle_r2 <= detect_edge_idle_r1;
         detect_edge_idle_r3 <= detect_edge_idle_r2;
         detect_edge_idle_r4 <= detect_edge_idle_r3;
         detect_edge_idle_r5 <= detect_edge_idle_r4;
         detect_edge_idle_r6 <= detect_edge_idle_r5;
         valid_data_count    <= data_count_valid;
      end
   end

   // Tap Delay Selection Complete for Data bus associated with a DQS
   always @ (posedge CLK) begin
      if (reset_int == 1'b1)
        sel_complete <= 1'b0;
      else
        sel_complete <= delay_sel_done;
   end

   // Start detection of second transition only after 10 taps from first transition
   always @ (posedge CLK) begin
      if (reset_int == 1'b1)
        dly_after_first_cnt[3:0] <= 4'b0000;
      else
        dly_after_first_cnt[3:0] <= dly_after_first[3:0];
   end

   // Tap Counter
   always @ (posedge CLK) begin
      if ((reset_int == 1'b1) || (tap_counter[5:0] == 6'b111111))
        tap_counter[5:0] <= 6'b000000;
      else if (dly_inc == 1'b1)
        tap_counter[5:0] <= tap_counter[5:0] + 1'b1;
   end


   // Tap value for Data IDELAY circuit
   always @ (posedge CLK) begin
      if (reset_int == 1'b1) begin
         first_edge_tap_count[5:0]   <= 6'b000000;
         first_edge_cnt           <= 3'b000;
      end
      else if ((transition[1:0] == 2'b01) && (first_edge == 1'b0)) begin
         first_edge_tap_count[5:0]   <= tap_counter[5:0];
         first_edge_cnt           <= 3'b110;
      end
      else if(dly_inc == 1'b1 && first_edge == 1'b1 && first_edge_cnt != 3'b000)
        first_edge_cnt <= first_edge_cnt- 1'b1;
   end

   always @ (posedge CLK) begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美在线观看| 国产亚洲欧美日韩在线一区| 天天色综合成人网| 欧美老女人第四色| 久久电影网电视剧免费观看| 2014亚洲片线观看视频免费| 国产精品123区| 亚洲天堂av一区| 欧美日韩一区二区在线观看视频| 日韩国产精品91| 国产午夜亚洲精品午夜鲁丝片| 成人开心网精品视频| 亚洲乱码一区二区三区在线观看| 91九色最新地址| 日本午夜一区二区| 国产欧美日韩激情| 欧美在线视频日韩| 国产综合一区二区| 亚洲狠狠丁香婷婷综合久久久| 欧美一区二区三区视频在线 | 91色在线porny| 日韩国产一区二| 久久亚洲一级片| 91久久免费观看| 精品无人区卡一卡二卡三乱码免费卡| 日本一二三四高清不卡| 在线观看视频91| 九一久久久久久| 亚洲精品视频免费看| 日韩小视频在线观看专区| 懂色av一区二区夜夜嗨| 亚洲一卡二卡三卡四卡五卡| 久久久久久久综合| 色呦呦国产精品| 经典三级在线一区| 亚洲国产美国国产综合一区二区 | 日韩一区二区高清| 成人爽a毛片一区二区免费| 亚洲h精品动漫在线观看| 欧美国产一区视频在线观看| 欧美日韩国产小视频在线观看| 国产激情91久久精品导航| 日韩在线一区二区| 成人免费一区二区三区在线观看| 日韩三级中文字幕| 欧美日本在线视频| aaa国产一区| 国产精品亚洲а∨天堂免在线| 亚洲成人午夜影院| 亚洲精品一二三| 国产精品乱码一区二三区小蝌蚪| 日韩欧美中文一区二区| 欧美亚洲图片小说| 99re免费视频精品全部| 国产精品一区二区三区网站| 日韩和欧美的一区| 亚洲影院在线观看| 亚洲精品久久久蜜桃| 国产精品沙发午睡系列990531| 欧美大黄免费观看| 91麻豆精品国产自产在线观看一区| 色综合天天性综合| 成人爽a毛片一区二区免费| 日韩av成人高清| 日韩中文字幕91| 亚洲成人免费电影| 亚洲成人av一区二区三区| 一区二区三区四区乱视频| 国产精品福利一区二区三区| 国产午夜三级一区二区三| 精品精品国产高清a毛片牛牛| 91精品免费在线观看| 欧美日韩国产高清一区二区三区 | 国产免费久久精品| 欧美国产乱子伦| 欧美国产一区二区在线观看| 国产视频不卡一区| 国产日韩欧美精品一区| 国产欧美久久久精品影院| 国产日韩精品一区| 亚洲欧美综合网| 亚洲综合视频在线观看| 亚洲国产va精品久久久不卡综合| 亚洲aⅴ怡春院| 日本亚洲三级在线| 国产一区二区三区在线看麻豆| 精品在线一区二区三区| 精东粉嫩av免费一区二区三区| 国产毛片一区二区| 成人app下载| 色婷婷国产精品| 欧美在线视频全部完| 在线播放中文字幕一区| 日韩欧美中文一区| 国产欧美日韩另类一区| 亚洲男人的天堂一区二区| 亚洲尤物在线视频观看| 青青国产91久久久久久| 国产乱码精品一区二区三区av| 风间由美一区二区av101| 色综合激情久久| 欧美肥妇bbw| 国产亚洲欧美一区在线观看| 亚洲美女视频在线观看| 日韩国产精品久久| 国产iv一区二区三区| 色网综合在线观看| 69久久99精品久久久久婷婷| 久久精品亚洲一区二区三区浴池 | 视频在线在亚洲| 国产一二精品视频| 91福利视频久久久久| 精品国产乱码久久久久久闺蜜| 日韩一区中文字幕| 麻豆一区二区99久久久久| 成人av综合一区| 日韩女优av电影在线观看| 亚洲图片激情小说| 蜜臀av一区二区| 色综合天天天天做夜夜夜夜做| 欧美v亚洲v综合ⅴ国产v| 亚洲理论在线观看| 激情欧美一区二区三区在线观看| 色婷婷久久久久swag精品 | 色av一区二区| 久久网站最新地址| 亚洲va天堂va国产va久| 国产高清不卡二三区| 91麻豆精品国产91久久久使用方法| 日本一区二区三区电影| 免费精品视频在线| 欧洲av在线精品| 国产精品人妖ts系列视频| 久久国产精品99久久久久久老狼| 91久久久免费一区二区| 国产欧美日韩视频一区二区| 日韩国产成人精品| 在线免费不卡视频| 18成人在线观看| 国产精品一二三区| 日韩久久久久久| 日日骚欧美日韩| 91福利视频在线| 中文字幕一区二区三区四区| 国产成人综合亚洲91猫咪| 欧美一区二区三区日韩| 亚洲成人动漫一区| 色偷偷成人一区二区三区91| 欧美国产禁国产网站cc| 国产呦精品一区二区三区网站| 3atv一区二区三区| 午夜电影网一区| 欧美日韩视频在线观看一区二区三区| 国产精品色呦呦| 成人综合婷婷国产精品久久免费| 久久综合色综合88| 久久99国产精品久久99果冻传媒| 欧美久久一二三四区| 亚洲成人av电影在线| 欧美性大战久久久久久久| 亚洲午夜三级在线| 色吧成人激情小说| 亚洲香肠在线观看| 欧美性淫爽ww久久久久无| 一个色综合av| 欧美在线观看视频在线| 亚洲电影欧美电影有声小说| 欧美亚洲高清一区| 五月天亚洲婷婷| 日韩欧美区一区二| 国内精品免费在线观看| 久久亚洲一级片| 成人自拍视频在线观看| 中文字幕不卡三区| 91在线丨porny丨国产| 一区二区在线看| 欧美午夜不卡视频| 日本vs亚洲vs韩国一区三区二区| 欧美一级视频精品观看| 麻豆成人在线观看| 久久久久久麻豆| 97久久超碰国产精品| 一区二区三区四区蜜桃 | 麻豆久久久久久久| 精品久久久久av影院| 福利一区福利二区| 亚洲日本va午夜在线影院| 欧美日韩在线精品一区二区三区激情 | 亚洲一级在线观看| 91精品国产免费久久综合| 国产精选一区二区三区| 国产精品视频yy9299一区| 在线视频国产一区| 日韩精品91亚洲二区在线观看 | 精品视频全国免费看| 免费xxxx性欧美18vr| 国产蜜臀av在线一区二区三区| 日本乱码高清不卡字幕| 日韩成人免费看| 中文字幕成人网|