⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 virtexiipmgtboardinterface.v

📁 这是用于xilinx virtex-2 pro产品的误码仪方案verilog HDL代码
💻 V
📖 第 1 页 / 共 2 页
字号:
///////////////////////////////////////////////////////////////////////////////////    File Name:  VirtexIIpMGTBoardInterface.v//      Version:  2.2//         Date:  05/14/03//        Model:  VirtexIIp MGT Board Interface Circuits.//                Circuits to implement a user friendly interface on the//                MGT board.////      Company:  Xilinx, Inc.//  Contributor:  Mike Matera////   Disclaimer:  XILINX IS PROVIDING THIS DESIGN, CODE, OR//                INFORMATION "AS IS" SOLELY FOR USE IN DEVELOPING//                PROGRAMS AND SOLUTIONS FOR XILINX DEVICES.  BY//                PROVIDING THIS DESIGN, CODE, OR INFORMATION AS//                ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,//                APPLICATION OR STANDARD, XILINX IS MAKING NO//                REPRESENTATION THAT THIS IMPLEMENTATION IS FREE//                FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE//                RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY//                REQUIRE FOR YOUR IMPLEMENTATION.  XILINX//                EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH//                RESPECT TO THE ADEQUACY OF THE IMPLEMENTATION,//                INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR//                REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE//                FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES//                OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR//                PURPOSE.////                (c) Copyright 2003 Xilinx, Inc.//                All rights reserved./////////////////////////////////////////////////////////////////////////////////`ifdef VIRTEXIIPMGTBOARDINTERFACE `else`define VIRTEXIIPMGTBOARDINTERFACE`timescale               100ps/10psmodule VirtexIIpMGTBoardInterface ( clock_rt_in,                                    clock_direct0_in, clock_direct1_in,                                    clock_select_in,                                    clock_direct0_in_bot, clock_direct1_in_bot,                                    clock_select_in_bot,                                    mgt_clock_out, mgt_reset_out, mgt_reset_out_bot,                                    pwm_locked_out,mgt_clock_out_bot,                                    LEDs_in, LEDs_out,                                    DIPs_in, DIPs_out,                                    push_buttons_in, push_buttons_out,                                    human_update_out,                                    system_reset_in                                    );   //-------------------------------------------------------------   //   // Port Summary:   //   // clock_rt_in (clock: unfuffered)   //    Real Time Clock:  Must come directly from IO.   //   // clock_direct0_in (clock: unfuffered)   //    One reference clock for the GT:  Must come directly from IO.   //   // clock_direct1_in (clock: unfuffered)   //    One reference clock for the GT:  Must come directly from IO.   //   // clock_direct0_in_bot (clock: unfuffered)   //    One reference clock for the bottom GT:  Must come directly from IO.   //    Used in top0bot3 configuration.   //   // clock_direct1_in_bot (clock: unfuffered)   //    One reference clock for the bottom GT:  Must come directly from IO.   //    Used in top0bot3 configuration.   //   // clock_select_in (asynchronous)   //    Selectes which reference clock to use.   //    0: use clock_direct0_in   //    1: use clock_direct1_in.   //   // mgt_clock_out (clock: buffered (output))   //    Digital clock for the TX side of the GT.   //   // mgt_clock_out_bot (clock: buffered (output))   //    Digital clock for the TX side of the bottom GT.   //    Used in top0bot3 configuration.   //   // mgt_reset_out (synchronous: mgt_clock_out)   //    Reset signal for the TX side of the GT.   //   // LEDs_in[15:00] (asynchronous)   //    Digital inputs to the LEDs.   //   // LEDs_out[15:00] (asynchronous)   //    PWM outputs to be connected to LEDs.   //   // DIPs_in (asynchronous)   //    Connected to DIP Switches.   //   // DIPs_out (asynchronous)   //    Debounced DIP switches.   //   // push_buttons_in (asynchronous)   //    Connected to pushbutton Switches.   //   // push_buttons_out (asynchronous)   //    Debounced pushbutton switches.   //   // human_update_out (asynchronous)   //    High temporarily after DIP or pushbuttons have been actuated.   //    by a human (presumably).   //   // system_reset_in (asynchronous)   //    System asynchronous reset.  This gets everything   //   //-------------------------------------------------------------   output [15:00] LEDs_out;   output [35:00] DIPs_out;   output [03:00] push_buttons_out;   output         human_update_out, mgt_clock_out, mgt_reset_out, mgt_reset_out_bot,                  pwm_locked_out,mgt_clock_out_bot;   input [15:00]  LEDs_in;   input [35:00]  DIPs_in;   input [03:00]  push_buttons_in;   input          clock_direct0_in, clock_direct1_in, clock_select_in,                  clock_rt_in, system_reset_in;   input          clock_direct0_in_bot, clock_direct1_in_bot, clock_select_in_bot;   wire           PWMLocked, PWMClock, PWMReset;   assign pwm_locked_out = PWMLocked;   ClockManager clock_and_reset      (       .clock_rt_in(clock_rt_in),       .clock_direct0_in(clock_direct0_in),       .clock_direct1_in(clock_direct1_in),       .clock_select_in(clock_select_in),       .clock_direct0_in_bot(clock_direct0_in_bot),       .clock_direct1_in_bot(clock_direct1_in_bot),       .clock_select_in_bot(clock_select_in_bot),       .pwm_clock_out(PWMClock),       .pwm_locked_out(PWMLocked),       .pwm_reset_out(PWMReset),       .mgt_clock_out(mgt_clock_out),       .mgt_clock_out_bot(mgt_clock_out_bot),       .mgt_reset_out(mgt_reset_out),       .mgt_reset_out_bot(mgt_reset_out_bot),       .system_reset_in(system_reset_in)       );   HumanInterface HID      (       .LEDs_in(LEDs_in), .LEDs_out(LEDs_out),       .DIPs_in(DIPs_in), .DIPs_out(DIPs_out),       .push_buttons_in(push_buttons_in),  .push_buttons_out(push_buttons_out),       .human_update_out(human_update_out),       .clock_in(PWMClock), .reset_in(PWMReset)       );endmodulemodule ClockManager ( clock_rt_in,                      clock_direct0_in,                      clock_direct1_in,                      clock_select_in,                      clock_direct0_in_bot,                      clock_direct1_in_bot,                      clock_select_in_bot,                      pwm_clock_out,                      mgt_clock_out,                      mgt_clock_out_bot,                      pwm_locked_out,                      system_reset_in,                      pwm_reset_out,                      mgt_reset_out,                      mgt_reset_out_bot                      );   output  pwm_clock_out, mgt_clock_out, pwm_locked_out,           pwm_reset_out, mgt_reset_out, mgt_reset_out_bot, mgt_clock_out_bot;   input   clock_direct0_in, clock_direct1_in, clock_select_in,           system_reset_in, clock_rt_in;   input   clock_direct0_in_bot, clock_direct1_in_bot, clock_select_in_bot;   wire mgt_locked_out;   wire pwm_clock_feedback_unbuff, pwm_clock_unbuff;   BUFG pwm_gbuff0 (.I(pwm_clock_feedback_unbuff), .O(pwm_clock_feedback));   BUFG pwm_gbuff1 (.I(pwm_clock_unbuff), .O(pwm_clock_out));   DCM pwm_dcm      (       .CLKIN(clock_rt_in), .CLKFB(pwm_clock_feedback), .RST(system_reset_in),       .CLKDV(pwm_clock_unbuff), .CLK0(pwm_clock_feedback_unbuff),       .DSSEN(1'b0), .PSCLK(1'b0), .PSEN(1'b0), .PSINCDEC(1'b0),       .LOCKED(pwm_locked_out)       ); `ifdef USE_MGT_DCM  // use a dedicated DCM to generate usrclk for the mgt    wire mgt_clock,mgt_clock_bot, mgt_clock_unbuff;    // attribute CLOCK_SIGNAL: mgt_clock;    BUFGMUX mgt_gbuff0 ( .I0(clock_direct0_in), .I1(clock_direct1_in),.S(clock_select_in),                      .O(mgt_clock) );    BUFGMUX mgt_gbuff0_bot ( .I0(clock_direct0_in_bot), .I1(clock_direct1_in_bot),.S(clock_select_in_bot),                      .O(mgt_clock_bot) );   // attribute CLOCK_SIGNAL: mgt_clock_out;   BUFGMUX mgt_gbuff1 (.I0(mgt_clock_unbuff), .I1(1'b0), .S(1'b0), .O(mgt_clock_out));   BUFGMUX mgt_gbuff1_bot (.I0(mgt_clock_unbuff_bot), .I1(1'b0), .S(1'b0), .O(mgt_clock_out_bot));   DCM mgt_dcm      (       .CLKIN(mgt_clock), .CLKFB(mgt_clock_out), .RST(system_reset_in),       .CLKDV(), .CLK0(mgt_clock_unbuff), .CLKFX(),       .DSSEN(1'b0), .PSCLK(1'b0), .PSEN(1'b0), .PSINCDEC(1'b0),       .LOCKED(mgt_locked_out)       )/* synthesis xc_props = "DUTY_CYCLE_CORRECTION =TRUE, CLK_FEEDBACK =1X,DLL_FREQUENCY_MODE=LOW,CLKOUT_PHASE_SHIFT =NONE,STARTUP_WAIT =FALSE,DFS_FREQUENCY_MODE =LOW,CLKOUT_PHASE_SHIFT =NONE,PHASE_SHIFT =0" */;   DCM mgt_dcm_bot      (       .CLKIN(mgt_clock_bot), .CLKFB(mgt_clock_out_bot), .RST(system_reset_in),       .CLKDV(), .CLK0(mgt_clock_unbuff_bot), .CLKFX(),       .DSSEN(1'b0), .PSCLK(1'b0), .PSEN(1'b0), .PSINCDEC(1'b0),       .LOCKED(mgt_locked_out_bot)       )/* synthesis xc_props = "DUTY_CYCLE_CORRECTION =TRUE, CLK_FEEDBACK =1X,DLL_FREQUENCY_MODE=LOW,CLKOUT_PHASE_SHIFT =NONE,STARTUP_WAIT =FALSE,DFS_FREQUENCY_MODE =LOW,CLKOUT_PHASE_SHIFT =NONE,PHASE_SHIFT =0" */; `else // directly pass the bufg clock to the mgt    // attribute CLOCK_SIGNAL: mgt_clock_out;    BUFGMUX mgt_gbuff0 (.I0(clock_direct0_in), .I1(clock_direct1_in),.S(clock_select_in),                      .O(mgt_clock_out));    // attribute CLOCK_SIGNAL: mgt_clock_out;    BUFGMUX mgt_gbuff0_bot (.I0(clock_direct0_in_bot), .I1(clock_direct1_in_bot),.S(clock_select_in_bot),                      .O(mgt_clock_out_bot));   assign mgt_locked_out = pwm_locked_out;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -