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

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

?? 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一区二区三区免费野_久草精品视频
国产99久久精品| 国产一区二区看久久| 欧美激情艳妇裸体舞| 精品国产99国产精品| 精品国产乱码久久久久久蜜臀| 日韩一级成人av| 久久中文字幕电影| 国产精品热久久久久夜色精品三区 | 国产精品毛片大码女人| 日本一区二区三区在线不卡| 日本一二三不卡| 亚洲欧美日韩一区二区| 亚洲综合激情另类小说区| 亚洲国产精品一区二区久久| 日本不卡的三区四区五区| 精品一区二区三区久久| 波多野结衣欧美| 欧美日韩国产综合一区二区| 日韩精品一区二区在线| 中文字幕乱码亚洲精品一区| 一区二区三区日韩精品视频| 日韩av电影免费观看高清完整版| 国产毛片精品国产一区二区三区| 成人91在线观看| 91精品中文字幕一区二区三区| 日韩一区二区电影| 亚洲国产高清在线| 午夜欧美大尺度福利影院在线看| 国内精品国产三级国产a久久| www.66久久| 欧美一级黄色录像| 国产精品久久免费看| 亚洲成人综合在线| 成人免费va视频| 欧美高清精品3d| 国产精品久99| 精品亚洲免费视频| 欧美视频在线一区| 国产亚洲一区字幕| 男女激情视频一区| 91国偷自产一区二区使用方法| 精品乱码亚洲一区二区不卡| 一区二区三区四区五区视频在线观看 | 六月丁香婷婷色狠狠久久| 国产·精品毛片| 5858s免费视频成人| 国产精品黄色在线观看| 老司机精品视频一区二区三区| 91在线观看一区二区| 日韩欧美亚洲国产精品字幕久久久| 亚洲日本在线观看| 国产乱子伦视频一区二区三区| 欧美三级资源在线| 亚洲欧美日韩精品久久久久| 成人午夜在线视频| 国产网红主播福利一区二区| 日本不卡一区二区三区| 欧美优质美女网站| 亚洲综合精品自拍| 91麻豆文化传媒在线观看| 久久精品人人做人人爽人人| 另类人妖一区二区av| 欧美日韩不卡在线| 婷婷中文字幕综合| 欧美三级电影网| 亚洲免费在线视频| 色先锋资源久久综合| 国产精品国产馆在线真实露脸| 国产精品一区久久久久| 久久综合色婷婷| 精品午夜久久福利影院| 日韩三级中文字幕| 美女视频一区在线观看| 精品日韩一区二区三区| 麻豆国产精品官网| 精品福利av导航| 国产一区二区三区黄视频| 久久精品视频网| 成人激情小说乱人伦| 成人欧美一区二区三区白人 | 欧美精品一区二区三区高清aⅴ| 日韩av一区二区三区| 日韩欧美黄色影院| 激情偷乱视频一区二区三区| 精品sm捆绑视频| 国产69精品久久久久毛片| 亚洲欧洲成人精品av97| 色婷婷av一区二区三区之一色屋| 亚洲免费观看高清在线观看| 欧美日韩夫妻久久| 久久精品国产999大香线蕉| 337p日本欧洲亚洲大胆色噜噜| 国产另类ts人妖一区二区| 中文字幕一区二区三区在线观看| 色噜噜狠狠成人中文综合 | 久久精品欧美一区二区三区不卡 | 色综合色狠狠综合色| 亚洲一区二区在线免费观看视频 | 91精品国产入口| 精品一区二区三区在线观看国产| 国产欧美日本一区二区三区| 99精品久久免费看蜜臀剧情介绍| 亚洲国产精品久久久男人的天堂| 欧美一级二级在线观看| 高清不卡在线观看| 婷婷成人激情在线网| 欧美xxxxx牲另类人与| 成人精品国产福利| 丝瓜av网站精品一区二区| 久久午夜电影网| 欧美日韩一区二区三区四区| 国产一区二区三区四| 一区二区三区四区五区视频在线观看 | 91丨porny丨户外露出| 日韩精品视频网| 最新欧美精品一区二区三区| 欧美一级高清片| 91首页免费视频| 国产精品99久久久久久久女警| 亚洲一二三级电影| 国产精品女上位| 精品国产制服丝袜高跟| 欧美日韩三级一区| av欧美精品.com| 国产一区日韩二区欧美三区| 亚洲一区二区不卡免费| 国产精品天美传媒| www国产亚洲精品久久麻豆| 欧美日韩色一区| 91蝌蚪国产九色| 丰满亚洲少妇av| 国内不卡的二区三区中文字幕| 亚洲一区二区免费视频| 国产精品国产三级国产专播品爱网 | 7777精品伊人久久久大香线蕉超级流畅| 国产精品99久久久久| 裸体歌舞表演一区二区| 日韩黄色免费电影| 日韩激情一二三区| 亚洲午夜视频在线观看| 一区二区三区国产豹纹内裤在线| 国产精品久久久久久久第一福利 | 日本欧美韩国一区三区| 亚洲午夜免费电影| 亚洲主播在线播放| 亚洲不卡一区二区三区| 亚洲一区二区三区小说| 亚洲精品视频在线看| 一区二区视频在线| 亚洲欧美电影一区二区| 一区二区不卡在线播放| 夜夜揉揉日日人人青青一国产精品| 中文字幕人成不卡一区| 亚洲男女一区二区三区| 亚洲精品国产视频| 亚洲综合免费观看高清完整版| 亚洲国产乱码最新视频| 亚洲影院在线观看| 婷婷丁香激情综合| 国产一区二区三区黄视频 | 偷偷要91色婷婷| 另类小说综合欧美亚洲| 国产成人免费高清| 91亚洲男人天堂| 在线观看欧美日本| 欧美精品一二三区| 久久综合一区二区| 中文字幕一区二区三区在线观看| 亚洲精品免费在线| 蜜臀久久久99精品久久久久久| 国产精选一区二区三区| 岛国av在线一区| 欧美三级资源在线| 精品福利二区三区| 亚洲欧美激情一区二区| 日本sm残虐另类| 成人网在线免费视频| 欧美无乱码久久久免费午夜一区| 91麻豆精品国产91久久久久久| 2021久久国产精品不只是精品| 国产精品国产精品国产专区不片| 亚洲www啪成人一区二区麻豆| 国产久卡久卡久卡久卡视频精品| 色综合久久88色综合天天6| 91精品国产福利在线观看| 国产欧美一区视频| 午夜久久久影院| 不卡av在线免费观看| 欧美一区二区三区四区久久| 国产精品九色蝌蚪自拍| 日韩va欧美va亚洲va久久| 成人av影视在线观看| 91麻豆精品久久久久蜜臀 | 久久人人超碰精品| 亚洲精品一二三| 国产成人精品影视| 日韩一区二区视频| 亚洲一区在线视频观看| 国产成人一级电影| 337p粉嫩大胆噜噜噜噜噜91av|