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

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

?? mem_interface_top_tap_ctrl_0.txt

?? DDR SRAM控制器的verilog完整設計文檔(包含有完整的verilog源代碼)
?? 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一区二区三区免费野_久草精品视频
大胆亚洲人体视频| 日韩视频123| 欧美丰满嫩嫩电影| 中文av字幕一区| 亚洲va欧美va天堂v国产综合| 久久福利资源站| 91碰在线视频| 久久精品人人做人人综合| 亚洲最大成人综合| 成人性生交大片免费看视频在线| 91麻豆精品国产91久久久久久久久| 国产婷婷色一区二区三区| 日韩电影一区二区三区| 91成人在线精品| 国产精品的网站| 国产一区二区三区电影在线观看 | 国产精品 日产精品 欧美精品| 色猫猫国产区一区二在线视频| 国产欧美精品一区aⅴ影院 | 在线观看91精品国产麻豆| 国产精品久久久久久久久久久免费看| 精品中文字幕一区二区| 欧美日韩国产精品成人| 一区二区高清视频在线观看| 成人黄色网址在线观看| 国产欧美日韩在线观看| 国产一区二区三区在线看麻豆| 日韩一区二区三区在线| 日韩av在线免费观看不卡| 欧美日韩免费在线视频| 一区二区三区日韩在线观看| 91在线你懂得| 亚洲精品中文在线观看| 91久久国产最好的精华液| 亚洲人成网站精品片在线观看| 成人在线视频首页| 中文字幕中文字幕一区二区 | 色婷婷久久久综合中文字幕| 中文字幕日韩精品一区| 99视频一区二区| 亚洲免费高清视频在线| 色88888久久久久久影院按摩| 国产精品国模大尺度视频| 91香蕉视频在线| 一区二区三区在线视频免费 | 久久久国产精华| 粉嫩嫩av羞羞动漫久久久| 国产精品网曝门| 97精品国产97久久久久久久久久久久| 亚洲三级小视频| 欧美日韩一区二区在线视频| 首页国产丝袜综合| 精品国产凹凸成av人导航| 国产精品一品视频| 亚洲欧美国产毛片在线| 欧美日韩精品一区二区三区蜜桃| 三级成人在线视频| 精品美女被调教视频大全网站| 国产美女主播视频一区| 亚洲欧洲av一区二区三区久久| 在线中文字幕一区二区| 午夜精品久久久久久久99水蜜桃| 精品欧美久久久| 91免费看片在线观看| 日韩精品一卡二卡三卡四卡无卡| 日韩亚洲欧美综合| 成a人片国产精品| 偷偷要91色婷婷| 中文字幕久久午夜不卡| 在线观看成人小视频| 精品一区二区免费在线观看| 国产精品欧美一区喷水| 欧美丰满少妇xxxbbb| 成人激情校园春色| 日韩综合在线视频| 自拍偷在线精品自拍偷无码专区| 欧美精品在欧美一区二区少妇| 国产一区二区调教| 五月天久久比比资源色| 中文字幕乱码亚洲精品一区| 欧美剧情电影在线观看完整版免费励志电影 | 精品写真视频在线观看| 国产精品福利一区二区| 日韩精品一区二区三区在线播放| 99久久精品费精品国产一区二区| 久久精品二区亚洲w码| 日韩毛片视频在线看| 精品福利二区三区| 欧美日韩国产高清一区二区三区 | 亚洲综合免费观看高清完整版| 欧美成人三级在线| 欧美在线一区二区三区| 国产999精品久久久久久绿帽| 喷水一区二区三区| 一区二区高清免费观看影视大全| 国产精品污www在线观看| 日韩精品专区在线| 欧美精品久久一区| 91福利国产精品| 91视频一区二区三区| 成人性生交大片免费看在线播放 | 91捆绑美女网站| 国产精品一区二区在线看| 日韩不卡一区二区| 视频在线观看91| 亚洲不卡av一区二区三区| 中文字幕制服丝袜一区二区三区 | 亚洲在线观看免费视频| 自拍偷拍国产精品| 国产精品福利影院| 国产精品国产三级国产aⅴ入口 | 亚洲一区二区三区视频在线| 综合久久一区二区三区| 亚洲图片另类小说| 亚洲免费在线观看| 亚洲欧洲av色图| 一级精品视频在线观看宜春院| 亚洲欧美日韩在线| 亚洲精品免费在线播放| 一区二区三区四区激情| 亚洲自拍偷拍欧美| 午夜成人在线视频| 蜜桃视频免费观看一区| 日本视频免费一区| 久久精品国产一区二区三区免费看| 青椒成人免费视频| 久久黄色级2电影| 国产精品一级在线| 成人激情开心网| 色猫猫国产区一区二在线视频| 在线观看免费视频综合| 欧美一二三区精品| 久久伊99综合婷婷久久伊| 国产女同性恋一区二区| 国产精品乱码一区二区三区软件 | 久久99精品久久久| 国产一区二区女| www.欧美色图| 欧美欧美欧美欧美| 日韩女同互慰一区二区| 国产亚洲精品超碰| 亚洲日本在线视频观看| 天堂成人国产精品一区| 国产乱色国产精品免费视频| 成人高清在线视频| 欧美性淫爽ww久久久久无| 日韩一区二区免费在线电影| 精品国产伦一区二区三区观看体验| 国产视频视频一区| 一区二区三区.www| 精品一二线国产| www.成人网.com| 日韩一区二区在线看片| 国产精品久久久久婷婷| 亚洲高清免费一级二级三级| 激情综合色播五月| 日本电影欧美片| 精品剧情v国产在线观看在线| 国产精品成人免费精品自在线观看 | 免费观看久久久4p| jvid福利写真一区二区三区| 欧美日韩精品欧美日韩精品 | 国产精品88888| 一本色道久久加勒比精品 | 国产成人综合在线观看| 91福利视频久久久久| 欧美精品一区二区三区蜜桃| 亚洲理论在线观看| 国产乱淫av一区二区三区| 欧美特级限制片免费在线观看| 久久久影视传媒| 午夜影视日本亚洲欧洲精品| 粉嫩欧美一区二区三区高清影视| 欧美一区二区三区男人的天堂| 国产精品成人免费| 国产一区91精品张津瑜| 欧美美女一区二区在线观看| 中文字幕亚洲区| 国产成人av电影在线观看| 欧美日韩精品欧美日韩精品一| 亚洲欧洲精品一区二区精品久久久| 精品一区二区三区免费| 91精品婷婷国产综合久久竹菊| 亚洲女同女同女同女同女同69| 国产999精品久久久久久| 精品区一区二区| 免费看精品久久片| 欧美麻豆精品久久久久久| 亚洲一卡二卡三卡四卡无卡久久| 成人sese在线| 国产精品人成在线观看免费 | 国产精品久久久久国产精品日日| 久久97超碰国产精品超碰| 8x8x8国产精品| 午夜不卡在线视频| 欧美精品第一页| 日本aⅴ精品一区二区三区| 欧美日韩国产精品成人| 日韩成人伦理电影在线观看| 欧美日韩夫妻久久|