Commit 49800b98 authored by Dimitris Lampridis's avatar Dimitris Lampridis

Replace coregen-generated ADC serdes with own implementation.

This is done in order to:

a) Stop using an extra PLL for the ADC serdes and follow the clocking scheme proposed in UG382, v1.10, page 32, Figure 1-15.

b) Decouple the LTC2174-specific code, as a first step to a more generalized acquisition core.

c) Not distribute coregen-generated sources.
parent e433068e
modules = {
"local" : [
"hdl/rtl",
"hdl/platform",
],
}
Version 4
SymbolType BLOCK
TEXT 32 32 LEFT 4 adc_serdes
RECTANGLE Normal 32 32 672 960
LINE Wide 0 112 32 112
PIN 0 112 LEFT 36
PINATTR PinName data_in_from_pins_p[8:0]
PINATTR Polarity IN
LINE Wide 0 144 32 144
PIN 0 144 LEFT 36
PINATTR PinName data_in_from_pins_n[8:0]
PINATTR Polarity IN
LINE Normal 0 464 32 464
PIN 0 464 LEFT 36
PINATTR PinName clk_in
PINATTR Polarity IN
LINE Normal 0 560 32 560
PIN 0 560 LEFT 36
PINATTR PinName clk_div_in
PINATTR Polarity IN
LINE Normal 0 656 32 656
PIN 0 656 LEFT 36
PINATTR PinName clk_reset
PINATTR Polarity IN
LINE Normal 0 688 32 688
PIN 0 688 LEFT 36
PINATTR PinName io_reset
PINATTR Polarity IN
LINE Normal 0 720 32 720
PIN 0 720 LEFT 36
PINATTR PinName bitslip
PINATTR Polarity IN
LINE Normal 0 816 32 816
PIN 0 816 LEFT 36
PINATTR PinName locked_in
PINATTR Polarity IN
LINE Wide 704 80 672 80
PIN 704 80 RIGHT 36
PINATTR PinName data_in_to_device[71:0]
PINATTR Polarity OUT
LINE Normal 704 912 672 912
PIN 704 912 RIGHT 36
PINATTR PinName locked_out
PINATTR Polarity OUT
Encore.Project.FlowVendor = Foundation_ISE
Encore.Project.VhdlSim = true
Encore.Project.VerilogSim = false
Encore.Project.XDevice = xc6slx45t
Encore.Project.XDeviceFamily = spartan6
Encore.Project.XSpeedGrade = -3
Encore.Project.XPackage = fgg484
component_name = adc_serdes
c_device_family = spartan6
c_notes = None
c_bus_dir = INPUTS
c_bus_sig_type = DIFF
c_bus_io_std = LVDS_25
c_use_serialization = 1
c_serialization_factor = 8
c_use_phase_detector = 0
c_enable_bitslip = 1
c_enable_train = 0
c_train_constant = 0
c_system_data_width = 9
c_bus_in_delay = NONE
c_v6_bus_in_delay = NONE
c_bus_in_tap = 0
c_v6_bus_in_tap = 0
c_bus_tap_reset = FROM_ZERO
c_bus_tap_wrap = STAY_AT_LIMIT
c_bus_out_delay = NONE
c_v6_bus_out_delay = NONE
c_bus_out_tap = 0
c_v6_bus_out_tap = 0
c_clk_sig_type = SINGLE
c_clk_io_std = LVCMOS25
c_v6_clk_sig_type = DIFF
c_v6_clk_io_std = LVCMOS18
c_clk_buf = BUFPLL
c_v6_clk_buf = BUFIO
c_active_edge = RISING
c_v6_active_edge = NOT_APP
c_interface_type = RETIMED
c_v6_interface_type = NETWORKING
c_ddr_alignment = C0
c_v6_ddr_alignment = SAME_EDGE_PIPELINED
c_v6_oddr_alignment = SAME_EDGE
c_clk_delay = NONE
c_clk_tap = 0
c_clk_tap_reset = FROM_ZERO
c_clk_tap_wrap = STAY_AT_LIMIT
ComponentName = adc_serdes
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<generated_project xmlns="http://www.xilinx.com/XMLSchema" xmlns:xil_pn="http://www.xilinx.com/XMLSchema">
<!-- -->
<!-- For tool use only. Do not edit. -->
<!-- -->
<!-- ProjectNavigator created generated project file. -->
<!-- For use in tracking generated file and other information -->
<!-- allowing preservation of process status. -->
<!-- -->
<!-- Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. -->
<version xmlns="http://www.xilinx.com/XMLSchema">11.1</version>
<sourceproject xmlns="http://www.xilinx.com/XMLSchema" xil_pn:fileType="FILE_XISE" xil_pn:name="adc_serdes.xise"/>
<files xmlns="http://www.xilinx.com/XMLSchema">
<file xil_pn:fileType="FILE_ASY" xil_pn:name="adc_serdes.asy" xil_pn:origination="imported"/>
<file xil_pn:fileType="FILE_VHO" xil_pn:name="adc_serdes.vho" xil_pn:origination="imported"/>
</files>
<transforms xmlns="http://www.xilinx.com/XMLSchema"/>
</generated_project>
# file: adc_serdes.ucf
# (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
#
# This file contains confidential and proprietary information
# of Xilinx, Inc. and is protected under U.S. and
# international copyright and other intellectual property
# laws.
#
# DISCLAIMER
# This disclaimer is not a license and does not grant any
# rights to the materials distributed herewith. Except as
# otherwise provided in a valid license issued to you by
# Xilinx, and to the maximum extent permitted by applicable
# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
# (2) Xilinx shall not be liable (whether in contract or tort,
# including negligence, or under any other theory of
# liability) for any loss or damage of any kind or nature
# related to, arising under or in connection with these
# materials, including for any direct, or any indirect,
# special, incidental, or consequential loss or damage
# (including loss of data, profits, goodwill, or any type of
# loss or damage suffered as a result of any action brought
# by a third party) even if such damage or loss was
# reasonably foreseeable or Xilinx had been advised of the
# possibility of the same.
#
# CRITICAL APPLICATIONS
# Xilinx products are not designed or intended to be fail-
# safe, or for use in any application requiring fail-safe
# performance, such as life-support or safety devices or
# systems, Class III medical devices, nuclear facilities,
# applications related to the deployment of airbags, or any
# other applications that could lead to death, personal
# injury, or severe property or environmental damage
# (individually and collectively, "Critical
# Applications"). Customer assumes the sole risk and
# liability of any use of Xilinx products in Critical
# Applications, subject only to applicable laws and
# regulations governing limitations on product liability.
#
# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
# PART OF THIS FILE AT ALL TIMES.
# Add the IOB Constraints here
This diff is collapsed.
-- (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
--
-- This file contains confidential and proprietary information
-- of Xilinx, Inc. and is protected under U.S. and
-- international copyright and other intellectual property
-- laws.
--
-- DISCLAIMER
-- This disclaimer is not a license and does not grant any
-- rights to the materials distributed herewith. Except as
-- otherwise provided in a valid license issued to you by
-- Xilinx, and to the maximum extent permitted by applicable
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-- (2) Xilinx shall not be liable (whether in contract or tort,
-- including negligence, or under any other theory of
-- liability) for any loss or damage of any kind or nature
-- related to, arising under or in connection with these
-- materials, including for any direct, or any indirect,
-- special, incidental, or consequential loss or damage
-- (including loss of data, profits, goodwill, or any type of
-- loss or damage suffered as a result of any action brought
-- by a third party) even if such damage or loss was
-- reasonably foreseeable or Xilinx had been advised of the
-- possibility of the same.
--
-- CRITICAL APPLICATIONS
-- Xilinx products are not designed or intended to be fail-
-- safe, or for use in any application requiring fail-safe
-- performance, such as life-support or safety devices or
-- systems, Class III medical devices, nuclear facilities,
-- applications related to the deployment of airbags, or any
-- other applications that could lead to death, personal
-- injury, or severe property or environmental damage
-- (individually and collectively, "Critical
-- Applications"). Customer assumes the sole risk and
-- liability of any use of Xilinx products in Critical
-- Applications, subject only to applicable laws and
-- regulations governing limitations on product liability.
--
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
-- PART OF THIS FILE AT ALL TIMES.
-- The following code must appear in the VHDL architecture header:
------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG
component adc_serdes
generic
(-- width of the data for the system
sys_w : integer := 9;
-- width of the data for the device
dev_w : integer := 72);
port
(
-- From the system into the device
DATA_IN_FROM_PINS_P : in std_logic_vector(sys_w-1 downto 0);
DATA_IN_FROM_PINS_N : in std_logic_vector(sys_w-1 downto 0);
DATA_IN_TO_DEVICE : out std_logic_vector(dev_w-1 downto 0);
BITSLIP : in std_logic;
-- Clock and reset signals
CLK_IN : in std_logic; -- Fast clock from PLL/MMCM
CLK_DIV_IN : in std_logic; -- Slow clock from PLL/MMCM
LOCKED_IN : in std_logic;
LOCKED_OUT : out std_logic;
CLK_RESET : in std_logic; -- Reset signal for Clock circuit
IO_RESET : in std_logic); -- Reset signal for IO circuit
end component;
-- COMP_TAG_END ------ End COMPONENT Declaration ------------
-- The following code must appear in the VHDL architecture
-- body. Substitute your own instance name and net names.
------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG
None
your_instance_name : adc_serdes
port map
(
-- From the system into the device
DATA_IN_FROM_PINS_P => DATA_IN_FROM_PINS_P,
DATA_IN_FROM_PINS_N => DATA_IN_FROM_PINS_N,
DATA_IN_TO_DEVICE => DATA_IN_TO_DEVICE,
BITSLIP => BITSLIP,
-- Clock and reset signals
CLK_IN => CLK_IN,
CLK_DIV_IN => CLK_DIV_IN,
LOCKED_IN => LOCKED_IN,
LOCKED_OUT => LOCKED_OUT,
CLK_RESET => CLK_RESET,
IO_RESET => IO_RESET);
-- INST_TAG_END ------ End INSTANTIATION Template ------------
##############################################################
#
# Xilinx Core Generator version 12.2
# Date: Tue Mar 1 09:29:12 2011
#
##############################################################
#
# This file contains the customisation parameters for a
# Xilinx CORE Generator IP GUI. It is strongly recommended
# that you do not manually alter this file as it may cause
# unexpected and unsupported behavior.
#
##############################################################
#
# BEGIN Project Options
SET addpads = false
SET asysymbol = true
SET busformat = BusFormatAngleBracketNotRipped
SET createndf = false
SET designentry = VHDL
SET device = xc6slx45t
SET devicefamily = spartan6
SET flowvendor = Foundation_ISE
SET formalverification = false
SET foundationsym = false
SET implementationfiletype = Ngc
SET package = fgg484
SET removerpms = false
SET simulationfiles = Behavioral
SET speedgrade = -3
SET verilogsim = false
SET vhdlsim = true
# END Project Options
# BEGIN Select
SELECT SelectIO_Interface_Wizard family Xilinx,_Inc. 1.4
# END Select
# BEGIN Parameters
CSET active_edge=RISING
CSET bus_dir=INPUTS
CSET bus_in_delay=NONE
CSET bus_in_tap=0
CSET bus_io_std=LVDS_25
CSET bus_out_delay=NONE
CSET bus_out_tap=0
CSET bus_sig_type=DIFF
CSET bus_tap_reset=NOT_APP
CSET bus_tap_wrap=NOT_APP
CSET clk_buf=BUFPLL
CSET clk_delay=NONE
CSET clk_io_std=LVCMOS25
CSET clk_sig_type=SINGLE
CSET clk_tap=0
CSET component_name=adc_serdes
CSET ddr_alignment=C0
CSET enable_bitslip=true
CSET enable_train=false
CSET interface_type=RETIMED
CSET notes=None
CSET serialization_factor=8
CSET system_data_width=9
CSET train_constant=0
CSET use_phase_detector=false
CSET use_serialization=true
CSET v6_active_edge=SDR
CSET v6_bus_in_delay=NONE
CSET v6_bus_in_tap=0
CSET v6_bus_out_delay=NONE
CSET v6_bus_out_tap=0
CSET v6_clk_buf=BUFIO
CSET v6_clk_io_std=LVCMOS18
CSET v6_clk_sig_type=DIFF
CSET v6_ddr_alignment=SAME_EDGE_PIPELINED
CSET v6_interface_type=NETWORKING
CSET v6_oddr_alignment=SAME_EDGE
# END Parameters
GENERATE
# CRC: 1002624d
This diff is collapsed.
-- file: adc_serdes_exdes.vhd
-- (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
--
-- This file contains confidential and proprietary information
-- of Xilinx, Inc. and is protected under U.S. and
-- international copyright and other intellectual property
-- laws.
--
-- DISCLAIMER
-- This disclaimer is not a license and does not grant any
-- rights to the materials distributed herewith. Except as
-- otherwise provided in a valid license issued to you by
-- Xilinx, and to the maximum extent permitted by applicable
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-- (2) Xilinx shall not be liable (whether in contract or tort,
-- including negligence, or under any other theory of
-- liability) for any loss or damage of any kind or nature
-- related to, arising under or in connection with these
-- materials, including for any direct, or any indirect,
-- special, incidental, or consequential loss or damage
-- (including loss of data, profits, goodwill, or any type of
-- loss or damage suffered as a result of any action brought
-- by a third party) even if such damage or loss was
-- reasonably foreseeable or Xilinx had been advised of the
-- possibility of the same.
--
-- CRITICAL APPLICATIONS
-- Xilinx products are not designed or intended to be fail-
-- safe, or for use in any application requiring fail-safe
-- performance, such as life-support or safety devices or
-- systems, Class III medical devices, nuclear facilities,
-- applications related to the deployment of airbags, or any
-- other applications that could lead to death, personal
-- injury, or severe property or environmental damage
-- (individually and collectively, "Critical
-- Applications"). Customer assumes the sole risk and
-- liability of any use of Xilinx products in Critical
-- Applications, subject only to applicable laws and
-- regulations governing limitations on product liability.
--
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
-- PART OF THIS FILE AT ALL TIMES.
------------------------------------------------------------------------------
-- SelectIO wizard example design
------------------------------------------------------------------------------
-- This example design instantiates the IO circuitry
------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
library unisim;
use unisim.vcomponents.all;
entity adc_serdes_exdes is
generic (
-- Clock -> q modeling delay
TCQ : time := 100 ps;
-- width of the data for the system
sys_w : integer := 9;
-- width of the data for the device
dev_w : integer := 72;
-- width of the address for the memory
add_w : integer := 10;
-- depth of the memory
add_l : integer := 1024);
port (
-- Memory interface
ADDRESS_USER : in std_logic_vector(add_w-1 downto 0);
DATA_IN_USER : in std_logic_vector(dev_w-1 downto 0);
DATA_OUT_USER : out std_logic_vector(dev_w-1 downto 0);
ENABLE_USER : in std_logic;
WRITE_USER : in std_logic;
ENABLE_DEVICE : in std_logic;
-- From the system into the device
DATA_IN_FROM_PINS_P : in std_logic_vector(sys_w-1 downto 0);
DATA_IN_FROM_PINS_N : in std_logic_vector(sys_w-1 downto 0);
CLK_IN : in std_logic;
BITSLIP : in std_logic;
CLK_RESET : in std_logic;
IO_RESET : in std_logic);
end adc_serdes_exdes;
architecture xilinx of adc_serdes_exdes is
component adc_serdes is
generic
(-- width of the data for the system
sys_w : integer := 9;
-- width of the data for the device
dev_w : integer := 72);
port
(
-- From the system into the device
DATA_IN_FROM_PINS_P : in std_logic_vector(sys_w-1 downto 0);
DATA_IN_FROM_PINS_N : in std_logic_vector(sys_w-1 downto 0);
DATA_IN_TO_DEVICE : out std_logic_vector(dev_w-1 downto 0);
BITSLIP : in std_logic;
-- Clock and reset signals
CLK_IN : in std_logic; -- Fast clock from PLL/MMCM
CLK_DIV_IN : in std_logic; -- Slow clock from PLL/MMCM
LOCKED_IN : in std_logic;
LOCKED_OUT : out std_logic;
CLK_RESET : in std_logic; -- Reset signal for Clock circuit
IO_RESET : in std_logic); -- Reset signal for IO circuit
end component;
constant num_serial_bits : integer := dev_w/sys_w;
-- connection between ram and io circuit
signal DATA_IN_TO_DEVICE : std_logic_vector(dev_w-1 downto 0);
signal write_device : std_logic := '1';
signal address_device : std_logic_vector(add_w-1 downto 0) := (others=>'0');
type ram_type is array (0 to add_l-1) of std_logic_vector(dev_w-1 downto 0);
shared variable ram_array : ram_type;
signal clkfbout : std_logic;
signal clk_in_pll : std_logic;
signal LOCKED_IN : std_logic;
signal LOCKED_OUT : std_logic;
signal clk_div_in_int : std_logic;
signal CLK_DIV_IN : std_logic;
begin
-- set up the fabric PLL_BASE to drive the BUFPLL
pll_base_inst : PLL_BASE
generic map (
BANDWIDTH => "OPTIMIZED",
CLK_FEEDBACK => "CLKFBOUT",
COMPENSATION => "SYSTEM_SYNCHRONOUS",
DIVCLK_DIVIDE => 1,
CLKFBOUT_MULT => 4,
CLKFBOUT_PHASE => 0.000,
CLKOUT0_DIVIDE => 4,
CLKOUT0_PHASE => 0.000,
CLKOUT0_DUTY_CYCLE => 0.500,
CLKOUT1_DIVIDE => 4*num_serial_bits,
CLKOUT1_PHASE => 0.000,
CLKOUT1_DUTY_CYCLE => 0.500,
CLKIN_PERIOD => 10.0,
REF_JITTER => 0.010)
port map (
-- Output clocks
CLKFBOUT => clkfbout,
CLKOUT0 => clk_in_pll,
CLKOUT1 => clk_div_in_int,
CLKOUT2 => open,
CLKOUT3 => open,
CLKOUT4 => open,
CLKOUT5 => open,
-- Status and control signals
LOCKED => LOCKED_IN,
RST => CLK_RESET,
-- Input clock control
CLKFBIN => clkfbout,
CLKIN => CLK_IN);
clkd_buf : BUFG
port map (
O => CLK_DIV_IN,
I => clk_div_in_int);
-- Infer a dual port memory
process (CLK_DIV_IN) begin
if (CLK_DIV_IN = '1' and CLK_DIV_IN'event) then
if (ENABLE_USER = '1') then
if (WRITE_USER = '1') then
ram_array(conv_integer(ADDRESS_USER)) := DATA_IN_USER;
end if;
DATA_OUT_USER <= ram_array(conv_integer(ADDRESS_USER)) after TCQ;
end if;
end if;
end process;
process (CLK_DIV_IN) begin
if (CLK_DIV_IN = '1' and CLK_DIV_IN'event) then
if (ENABLE_DEVICE = '1') then
if (write_device = '1') then
ram_array(conv_integer(address_device)) := DATA_IN_TO_DEVICE;
end if;
end if;
end if;
end process;
-- auto-increment access into the RAM on the IO side
process (CLK_DIV_IN) begin
if (CLK_DIV_IN = '1' and CLK_DIV_IN'event) then
if (IO_RESET = '1') then
address_device <= (others=>'0') after TCQ;
elsif (ENABLE_DEVICE = '1') then
address_device <= address_device + 1 after TCQ;
end if;
end if;
end process;
-- Instantiate the IO design
io_inst : adc_serdes
port map
(
-- From the system into the device
DATA_IN_FROM_PINS_P => DATA_IN_FROM_PINS_P,
DATA_IN_FROM_PINS_N => DATA_IN_FROM_PINS_N,
DATA_IN_TO_DEVICE => DATA_IN_TO_DEVICE,
BITSLIP => BITSLIP,
CLK_IN => clk_in_pll,
CLK_DIV_IN => CLK_DIV_IN,
LOCKED_IN => LOCKED_IN,
LOCKED_OUT => LOCKED_OUT,
CLK_RESET => CLK_RESET,
IO_RESET => IO_RESET);
end xilinx;
REM file: implement.bat
REM -----------------------------------------------------------------------------
REM Script to synthesize and implement the RTL provided for the clocking wizard
REM -----------------------------------------------------------------------------
REM Clean up the results directory
rmdir /S /Q results
mkdir results
REM Copy unisim_comp.v file to results directory
copy %XILINX%\verilog\src\iSE\unisim_comp.v .\results\
REM Synthesize the Verilog Wrapper Files
echo 'Synthesizing SelectIO Wizard design with XST'
xst -ifn xst.scr
copy adc_serdes_exdes.ngc results\
REM Copy the constraints files generated by Coregen
echo 'Copying files from constraints directory to results directory'
copy ..\..\adc_serdes.ucf results\
cd results
echo 'Running ngdbuild'
ngdbuild -uc adc_serdes.ucf adc_serdes_exdes
echo 'Running map'
map -timing adc_serdes_exdes -o mapped.ncd
echo 'Running par'
par -w mapped.ncd routed mapped.pcf
echo 'Running trce'
trce -e 10 routed -o routed mapped.pcf
echo 'Running design through bitgen'
bitgen -w routed.ncd routed.bit mapped.pcf
echo 'Running netgen to create gate level model for the clocking wizard example design'
netgen -ofmt vhdl -sim -tm adc_serdes_exdes -w routed.ncd routed.vhd
cd ..
#!/bin/sh
# file: implement.sh
#-----------------------------------------------------------------------------
# Script to synthesize and implement the RTL provided for the clocking wizard
#-----------------------------------------------------------------------------
# Clean up the results directory
rm -rf results
mkdir results
# Copy unisim_comp.v file to results directory
cp $XILINX/verilog/src/iSE/unisim_comp.v ./results/
# Synthesize the Verilog Wrapper Files
echo 'Synthesizing SelectIO Wizard design with XST'
xst -ifn xst.scr
cp adc_serdes_exdes.ngc results/
# Copy the constraints files generated by Coregen
echo 'Copying files from constraints directory to results directory'
cp ../../adc_serdes.ucf results/
cd results
echo 'Running ngdbuild'
ngdbuild -uc adc_serdes.ucf adc_serdes_exdes
echo 'Running map'
map -timing adc_serdes_exdes -o mapped.ncd
echo 'Running par'
par -w mapped.ncd routed mapped.pcf
echo 'Running trce'
trce -e 10 routed -o routed mapped.pcf
echo 'Running design through bitgen'
bitgen -w routed.ncd routed.bit mapped.pcf
echo 'Running netgen to create gate level model for the clocking wizard example design'
netgen -ofmt vhdl -sim -tm adc_serdes_exdes -w routed.ncd routed.vhd
cd ..
vhdl work ../../adc_serdes.vhd
vhdl work ../example_design/adc_serdes_exdes.vhd
run
-ifmt MIXED
-top adc_serdes_exdes
-p xc6slx45t-fgg484-3
-ifn xst.prj
-ofn adc_serdes_exdes
-keep_hierarchy soft
-equivalent_register_removal no
-max_fanout 65535
Core name: Xilinx LogiCORE SelectIO Wizard
Version: SelectIO Wizard v1.4
Release Date: July 23, 2010
================================================================================
This document contains the following sections:
1. Introduction
2. New Features
3. Supported Devices
4. Resolved Issues
5. Known Issues
6. Technical Support
7. Core Release History
8. Legal Disclaimer
================================================================================
1. INTRODUCTION
For the most recent updates to the IP installation instructions for this
core, please go to:
http://www.xilinx.com/ipcenter/coregen/ip_update_install_instructions.htm
For system requirements:
http://www.xilinx.com/ipcenter/coregen/ip_update_system_requirements.htm
This file contains release notes for the Xilinx LogiCORE IP SelectIO Wizard v1.4
solution. For the latest core updates, see the product page at:
http://www.xilinx.com/products/design_resources/conn_central/solution_kits/wizards/
2. NEW FEATURES
- ISE 12.2 software support
- Virtex-6 device family support
3. SUPPORTED DEVICES
The following device families are supported by the core for this release.
Virtex-6 XC CXT/LXT/SXT/HXT
Virtex-6 XQ LXT/SXT
Virtex-6 -1L XC LXT/SXT
Spartan-6 XC LX/LXT
Spartan-6 XA
Spartan-6 XQ LX/LXT
Spartan-6 -1L XC LX
4. RESOLVED ISSUES
- Incorrect Interface Type attribute setting:
Selecting "Networking Pipelined" option did not set the
attribute correctly (AR 35073).
5. KNOWN ISSUES
The most recent information, including known issues, workarounds, and
resolutions for this version is provided in the IP Release Notes Guide
located at
www.xilinx.com/support/documentation/user_guides/xtp025.pdf
6. TECHNICAL SUPPORT
To obtain technical support, create a WebCase at www.xilinx.com/support.
Questions are routed to a team with expertise using this product.
Xilinx provides technical support for use of this product when used
according to the guidelines described in the core documentation, and
cannot guarantee timing, functionality, or support of this product for
designs that do not follow specified guidelines.
7. CORE RELEASE HISTORY
Date By Version Description
================================================================================
07/23/2010 Xilinx, Inc. 1.4 ISE 12.2 support
04/19/2010 Xilinx, Inc. 1.3 ISE 12.1 support
12/02/2009 Xilinx, Inc. 1.2 ISE 11.4 support
09/16/2009 Xilinx, Inc. 1.1 ISE 11.3 support
================================================================================
8. Legal Disclaimer
(c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
This file contains confidential and proprietary information
of Xilinx, Inc. and is protected under U.S. and
international copyright and other intellectual property
laws.
DISCLAIMER
This disclaimer is not a license and does not grant any
rights to the materials distributed herewith. Except as
otherwise provided in a valid license issued to you by
Xilinx, and to the maximum extent permitted by applicable
law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
(2) Xilinx shall not be liable (whether in contract or tort,
including negligence, or under any other theory of
liability) for any loss or damage of any kind or nature
related to, arising under or in connection with these
materials, including for any direct, or any indirect,
special, incidental, or consequential loss or damage
(including loss of data, profits, goodwill, or any type of
loss or damage suffered as a result of any action brought
by a third party) even if such damage or loss was
reasonably foreseeable or Xilinx had been advised of the
possibility of the same.
CRITICAL APPLICATIONS
Xilinx products are not designed or intended to be fail-
safe, or for use in any application requiring fail-safe
performance, such as life-support or safety devices or
systems, Class III medical devices, nuclear facilities,
applications related to the deployment of airbags, or any
other applications that could lead to death, personal
injury, or severe property or environmental damage
(individually and collectively, "Critical
Applications"). Customer assumes the sole risk and
liability of any use of Xilinx products in Critical
Applications, subject only to applicable laws and
regulations governing limitations on product liability.
THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
PART OF THIS FILE AT ALL TIMES.
-- file: adc_serdes_tb.vhd
-- (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
--
-- This file contains confidential and proprietary information
-- of Xilinx, Inc. and is protected under U.S. and
-- international copyright and other intellectual property
-- laws.
--
-- DISCLAIMER
-- This disclaimer is not a license and does not grant any
-- rights to the materials distributed herewith. Except as
-- otherwise provided in a valid license issued to you by
-- Xilinx, and to the maximum extent permitted by applicable
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-- (2) Xilinx shall not be liable (whether in contract or tort,
-- including negligence, or under any other theory of
-- liability) for any loss or damage of any kind or nature
-- related to, arising under or in connection with these
-- materials, including for any direct, or any indirect,
-- special, incidental, or consequential loss or damage
-- (including loss of data, profits, goodwill, or any type of
-- loss or damage suffered as a result of any action brought
-- by a third party) even if such damage or loss was
-- reasonably foreseeable or Xilinx had been advised of the
-- possibility of the same.
--
-- CRITICAL APPLICATIONS
-- Xilinx products are not designed or intended to be fail-
-- safe, or for use in any application requiring fail-safe
-- performance, such as life-support or safety devices or
-- systems, Class III medical devices, nuclear facilities,
-- applications related to the deployment of airbags, or any
-- other applications that could lead to death, personal
-- injury, or severe property or environmental damage
-- (individually and collectively, "Critical
-- Applications"). Customer assumes the sole risk and
-- liability of any use of Xilinx products in Critical
-- Applications, subject only to applicable laws and
-- regulations governing limitations on product liability.
--
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
-- PART OF THIS FILE AT ALL TIMES.
------------------------------------------------------------------------------
-- SelectIO wizard demonstration testbench
------------------------------------------------------------------------------
-- This demonstration testbench instantiates the example design for the
-- SelectIO wizard.
------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
use ieee.numeric_std.all;
use ieee.std_logic_textio.all;
library std;
use std.textio.all;
library work;
use work.all;
entity adc_serdes_tb is
end adc_serdes_tb;
architecture test of adc_serdes_tb is
component adc_serdes_exdes
generic (
-- Clock -> q modeling delay
TCQ : time := 100 ps;
-- width of the data for the system
sys_w : integer := 9;
-- width of the data for the device
dev_w : integer := 72;
-- width of the address for the memory
add_w : integer := 10;
-- depth of the memory
add_l : integer := 1024);
port (
-- Memory interface
ADDRESS_USER : in std_logic_vector(add_w-1 downto 0);
DATA_IN_USER : in std_logic_vector(dev_w-1 downto 0);
DATA_OUT_USER : out std_logic_vector(dev_w-1 downto 0);
ENABLE_USER : in std_logic;
WRITE_USER : in std_logic;
ENABLE_DEVICE : in std_logic;
-- From the system into the device
DATA_IN_FROM_PINS_P : in std_logic_vector(sys_w-1 downto 0);
DATA_IN_FROM_PINS_N : in std_logic_vector(sys_w-1 downto 0);
CLK_IN : in std_logic;
BITSLIP : in std_logic;
CLK_RESET : in std_logic;
IO_RESET : in std_logic);
end component;
constant TCQ : time := 100 ps;
constant clk_per : time := 10 ns; -- 100 MHz clk
constant sys_w : integer := 9;
constant dev_w : integer := 72;
constant add_w : integer := 10;
constant num_serial_bits : integer := dev_w/sys_w;
constant data_rate : integer := 1;
signal ADDRESS_USER : std_logic_vector(add_w-1 downto 0) := (others => '0');
signal DATA_IN_USER : std_logic_vector(dev_w-1 downto 0) := (others => '0');
signal DATA_OUT_USER : std_logic_vector(dev_w-1 downto 0);
signal ENABLE_USER : std_logic;
signal WRITE_USER : std_logic;
signal ENABLE_DEVICE : std_logic;
-- From the system into the device
signal DATA_IN_FROM_PINS : std_logic_vector(sys_w-1 downto 0);
signal DATA_IN_FROM_PINS_P : std_logic_vector(sys_w-1 downto 0);
signal DATA_IN_FROM_PINS_N : std_logic_vector(sys_w-1 downto 0);
signal CLK_IN : std_logic := '0';
signal BITSLIP : std_logic := '0';
signal CLK_RESET : std_logic;
signal IO_RESET : std_logic;
begin
-- Any aliases
DATA_IN_FROM_PINS_P <= DATA_IN_FROM_PINS;
DATA_IN_FROM_PINS_N <= not (DATA_IN_FROM_PINS);
-- clock generator- 100 MHz simulation clock
--------------------------------------------
process begin
wait for (clk_per/2);
CLK_IN <= not CLK_IN;
end process;
-- Test sequence
process begin
DATA_IN_FROM_PINS <= (others => '0');
-- reset the logic
CLK_RESET <= '1';
IO_RESET <= '1';
CLK_RESET <= '0';
wait for (18*clk_per);
WRITE_USER <= '0';
ENABLE_USER <= '0';
-- start up the io
IO_RESET <= '0';
wait for (8*clk_per);
ENABLE_DEVICE <= '1';
-- Drive data onto the pins
DATA_IN_FROM_PINS <= (others => '0');
for ii in 0 to 255 loop
ADDRESS_USER <= conv_std_logic_vector(ii, add_w);
wait for 0 ns;
DATA_IN_FROM_PINS <= conv_std_logic_vector(ii, sys_w) ;
wait for (clk_per/data_rate);
end loop;
report "Simulation Stopped." severity failure;
wait;
end process;
-- Instantiation of the example design
dut : adc_serdes_exdes
generic map
(TCQ => 100 ps,
sys_w => 9,
dev_w => 72,
add_w => 10)
port map
(--Memory interface
ADDRESS_USER => ADDRESS_USER,
DATA_IN_USER => DATA_IN_USER,
DATA_OUT_USER => DATA_OUT_USER,
ENABLE_USER => ENABLE_USER,
WRITE_USER => WRITE_USER,
ENABLE_DEVICE => ENABLE_DEVICE,
-- From the system into the device
DATA_IN_FROM_PINS_P => DATA_IN_FROM_PINS_P,
DATA_IN_FROM_PINS_N => DATA_IN_FROM_PINS_N,
CLK_IN => CLK_IN,
BITSLIP => BITSLIP,
CLK_RESET => CLK_RESET,
IO_RESET => IO_RESET);
end test;
# file: simcmds.tcl
# create the simulation script
vcd dumpfile isim.vcd
vcd dumpvars -m /adc_serdes_tb -l 0
run 50000ns
quit
REM file: simulate_isim.bat
REM (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
REM
REM This file contains confidential and proprietary information
REM of Xilinx, Inc. and is protected under U.S. and
REM international copyright and other intellectual property
REM laws.
REM
REM DISCLAIMER
REM This disclaimer is not a license and does not grant any
REM rights to the materials distributed herewith. Except as
REM otherwise provided in a valid license issued to you by
REM Xilinx, and to the maximum extent permitted by applicable
REM law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
REM WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
REM AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
REM BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
REM INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
REM (2) Xilinx shall not be liable (whether in contract or tort,
REM including negligence, or under any other theory of
REM liability) for any loss or damage of any kind or nature
REM related to, arising under or in connection with these
REM materials, including for any direct, or any indirect,
REM special, incidental, or consequential loss or damage
REM (including loss of data, profits, goodwill, or any type of
REM loss or damage suffered as a result of any action brought
REM by a third party) even if such damage or loss was
REM reasonably foreseeable or Xilinx had been advised of the
REM possibility of the same.
REM
REM CRITICAL APPLICATIONS
REM Xilinx products are not designed or intended to be fail-
REM safe, or for use in any application requiring fail-safe
REM performance, such as life-support or safety devices or
REM systems, Class III medical devices, nuclear facilities,
REM applications related to the deployment of airbags, or any
REM other applications that could lead to death, personal
REM injury, or severe property or environmental damage
REM (individually and collectively, "Critical
REM Applications"). Customer assumes the sole risk and
REM liability of any use of Xilinx products in Critical
REM Applications, subject only to applicable laws and
REM regulations governing limitations on product liability.
REM
REM THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
REM PART OF THIS FILE AT ALL TIMES.
vhpcomp -work work ..\..\..\adc_serdes.vhd
vhpcomp -work work ..\..\example_design/adc_serdes_exdes.vhd
vhpcomp -work work ..\adc_serdes_tb.vhd
REM compile the project
fuse work.adc_serdes_tb -L unisim -o adc_serdes_isim.exe
REM run the simulation script
.\adc_serdes_isim.exe -gui -tclbatch simcmds.tcl
# file: simulate_isim.sh
# (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
#
# This file contains confidential and proprietary information
# of Xilinx, Inc. and is protected under U.S. and
# international copyright and other intellectual property
# laws.
#
# DISCLAIMER
# This disclaimer is not a license and does not grant any
# rights to the materials distributed herewith. Except as
# otherwise provided in a valid license issued to you by
# Xilinx, and to the maximum extent permitted by applicable
# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
# (2) Xilinx shall not be liable (whether in contract or tort,
# including negligence, or under any other theory of
# liability) for any loss or damage of any kind or nature
# related to, arising under or in connection with these
# materials, including for any direct, or any indirect,
# special, incidental, or consequential loss or damage
# (including loss of data, profits, goodwill, or any type of
# loss or damage suffered as a result of any action brought
# by a third party) even if such damage or loss was
# reasonably foreseeable or Xilinx had been advised of the
# possibility of the same.
#
# CRITICAL APPLICATIONS
# Xilinx products are not designed or intended to be fail-
# safe, or for use in any application requiring fail-safe
# performance, such as life-support or safety devices or
# systems, Class III medical devices, nuclear facilities,
# applications related to the deployment of airbags, or any
# other applications that could lead to death, personal
# injury, or severe property or environmental damage
# (individually and collectively, "Critical
# Applications"). Customer assumes the sole risk and
# liability of any use of Xilinx products in Critical
# Applications, subject only to applicable laws and
# regulations governing limitations on product liability.
#
# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
# PART OF THIS FILE AT ALL TIMES.
# create the project
vhpcomp -work work ../../../adc_serdes.vhd
vhpcomp -work work ../../example_design/adc_serdes_exdes.vhd
vhpcomp -work work ../adc_serdes_tb.vhd
# compile the project
fuse work.adc_serdes_tb -L unisim -o adc_serdes_isim.exe
# run the simulation script
./adc_serdes_isim.exe -gui -tclbatch simcmds.tcl
# file: simulate_mti.do
# (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
#
# This file contains confidential and proprietary information
# of Xilinx, Inc. and is protected under U.S. and
# international copyright and other intellectual property
# laws.
#
# DISCLAIMER
# This disclaimer is not a license and does not grant any
# rights to the materials distributed herewith. Except as
# otherwise provided in a valid license issued to you by
# Xilinx, and to the maximum extent permitted by applicable
# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
# (2) Xilinx shall not be liable (whether in contract or tort,
# including negligence, or under any other theory of
# liability) for any loss or damage of any kind or nature
# related to, arising under or in connection with these
# materials, including for any direct, or any indirect,
# special, incidental, or consequential loss or damage
# (including loss of data, profits, goodwill, or any type of
# loss or damage suffered as a result of any action brought
# by a third party) even if such damage or loss was
# reasonably foreseeable or Xilinx had been advised of the
# possibility of the same.
#
# CRITICAL APPLICATIONS
# Xilinx products are not designed or intended to be fail-
# safe, or for use in any application requiring fail-safe
# performance, such as life-support or safety devices or
# systems, Class III medical devices, nuclear facilities,
# applications related to the deployment of airbags, or any
# other applications that could lead to death, personal
# injury, or severe property or environmental damage
# (individually and collectively, "Critical
# Applications"). Customer assumes the sole risk and
# liability of any use of Xilinx products in Critical
# Applications, subject only to applicable laws and
# regulations governing limitations on product liability.
#
# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
# PART OF THIS FILE AT ALL TIMES.
# set up the working directory
set work work
vlib work
# compile all of the files
vcom -work work ../../../adc_serdes.vhd
vcom -work work ../../example_design/adc_serdes_exdes.vhd
vcom -work work ../adc_serdes_tb.vhd
# run the simulation
vsim -voptargs="+acc" -L secureip -L unisim work.adc_serdes_tb
do wave.do
log -r /*
run 50000ns
#/bin/sh
# file: simulate_ncsim.sh
# (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
#
# This file contains confidential and proprietary information
# of Xilinx, Inc. and is protected under U.S. and
# international copyright and other intellectual property
# laws.
#
# DISCLAIMER
# This disclaimer is not a license and does not grant any
# rights to the materials distributed herewith. Except as
# otherwise provided in a valid license issued to you by
# Xilinx, and to the maximum extent permitted by applicable
# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
# (2) Xilinx shall not be liable (whether in contract or tort,
# including negligence, or under any other theory of
# liability) for any loss or damage of any kind or nature
# related to, arising under or in connection with these
# materials, including for any direct, or any indirect,
# special, incidental, or consequential loss or damage
# (including loss of data, profits, goodwill, or any type of
# loss or damage suffered as a result of any action brought
# by a third party) even if such damage or loss was
# reasonably foreseeable or Xilinx had been advised of the
# possibility of the same.
#
# CRITICAL APPLICATIONS
# Xilinx products are not designed or intended to be fail-
# safe, or for use in any application requiring fail-safe
# performance, such as life-support or safety devices or
# systems, Class III medical devices, nuclear facilities,
# applications related to the deployment of airbags, or any
# other applications that could lead to death, personal
# injury, or severe property or environmental damage
# (individually and collectively, "Critical
# Applications"). Customer assumes the sole risk and
# liability of any use of Xilinx products in Critical
# Applications, subject only to applicable laws and
# regulations governing limitations on product liability.
#
# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
# PART OF THIS FILE AT ALL TIMES.
# set up the working directory
mkdir work
# compile all of the files
ncvhdl -v93 -work work ../../../adc_serdes.vhd
ncvhdl -v93 -work work ../../example_design/adc_serdes_exdes.vhd
ncvhdl -v93 -work work ../adc_serdes_tb.vhd
# elaborate and run the simulation
ncelab -work work -access +wc work.adc_serdes_tb
ncsim -input "@database -open -shm nc; probe -create -database nc -all -depth all; run 50000ns; exit" work.adc_serdes_tb
# file: wave.do
# (c) Copyright 2009 - 2010 Xilinx, Inc. All rights reserved.
#
# This file contains confidential and proprietary information
# of Xilinx, Inc. and is protected under U.S. and
# international copyright and other intellectual property
# laws.
#
# DISCLAIMER
# This disclaimer is not a license and does not grant any
# rights to the materials distributed herewith. Except as
# otherwise provided in a valid license issued to you by
# Xilinx, and to the maximum extent permitted by applicable
# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
# (2) Xilinx shall not be liable (whether in contract or tort,
# including negligence, or under any other theory of
# liability) for any loss or damage of any kind or nature
# related to, arising under or in connection with these
# materials, including for any direct, or any indirect,
# special, incidental, or consequential loss or damage
# (including loss of data, profits, goodwill, or any type of
# loss or damage suffered as a result of any action brought
# by a third party) even if such damage or loss was
# reasonably foreseeable or Xilinx had been advised of the
# possibility of the same.
#
# CRITICAL APPLICATIONS
# Xilinx products are not designed or intended to be fail-
# safe, or for use in any application requiring fail-safe
# performance, such as life-support or safety devices or
# systems, Class III medical devices, nuclear facilities,
# applications related to the deployment of airbags, or any
# other applications that could lead to death, personal
# injury, or severe property or environmental damage
# (individually and collectively, "Critical
# Applications"). Customer assumes the sole risk and
# liability of any use of Xilinx products in Critical
# Applications, subject only to applicable laws and
# regulations governing limitations on product liability.
#
# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
# PART OF THIS FILE AT ALL TIMES.
onerror {resume}
quietly WaveActivateNextPane {} 0
add wave -noupdate -format Literal -radix unsigned /adc_serdes_tb/dut/sys_w
add wave -noupdate -format Literal -radix unsigned /adc_serdes_tb/dut/dev_w
add wave -noupdate -format Logic /adc_serdes_tb/IO_RESET
add wave -noupdate -format Logic /adc_serdes_tb/CLK_RESET
add wave -noupdate -format Logic /adc_serdes_tb/CLK_IN
add wave -noupdate -format Logic /adc_serdes_tb/dut/CLK_DIV_IN
add wave -noupdate -format Logic /adc_serdes_tb/ENABLE_USER
add wave -noupdate -format Logic /adc_serdes_tb/WRITE_USER
add wave -noupdate -format Logic /adc_serdes_tb/ENABLE_DEVICE
add wave -noupdate -format Literal /adc_serdes_tb/DATA_OUT_USER
add wave -noupdate -format Literal /adc_serdes_tb/DATA_IN_USER
add wave -noupdate -format Literal /adc_serdes_tb/DATA_IN_FROM_PINS_P
add wave -noupdate -format Literal /adc_serdes_tb/DATA_IN_FROM_PINS_N
add wave -noupdate -format Literal /adc_serdes_tb/dut/io_inst/iserdes_q
add wave -noupdate -format Literal /adc_serdes_tb/dut/DATA_IN_TO_DEVICE
add wave -noupdate -format Literal /adc_serdes_tb/ADDRESS_USER
add wave -noupdate -format Logic /adc_serdes_tb/dut/WRITE_USER
add wave -noupdate -format Logic /adc_serdes_tb/dut/write_device
add wave -noupdate -format Logic /adc_serdes_tb/dut/BITSLIP
add wave -noupdate -format Logic /adc_serdes_tb/dut/IO_RESET
add wave -noupdate -format Logic /adc_serdes_tb/dut/ENABLE_USER
add wave -noupdate -format Logic /adc_serdes_tb/dut/ENABLE_DEVICE
add wave -noupdate -format Literal /adc_serdes_tb/dut/ADDRESS_USER
add wave -noupdate -format Literal /adc_serdes_tb/dut/address_device
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {370825 ps} 0}
configure wave -namecolwidth 230
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
configure wave -timelineunits ns
update
WaveRestoreZoom {0 ps} {3169444 ps}
# Output products list for <adc_serdes>
_xmsgs/pn_parser.xmsgs
adc_serdes/doc/selectio_wiz_ds746.pdf
adc_serdes/doc/selectio_wiz_gsg700.pdf
adc_serdes/example_design/adc_serdes_exdes.vhd
adc_serdes/implement/implement.bat
adc_serdes/implement/implement.sh
adc_serdes/implement/synplify.prj
adc_serdes/implement/xst.prj
adc_serdes/implement/xst.scr
adc_serdes/selectio_wiz_readme.txt
adc_serdes/simulation/adc_serdes_tb.vhd
adc_serdes/simulation/functional/simcmds.tcl
adc_serdes/simulation/functional/simulate_isim.bat
adc_serdes/simulation/functional/simulate_isim.sh
adc_serdes/simulation/functional/simulate_mti.do
adc_serdes/simulation/functional/simulate_ncsim.sh
adc_serdes/simulation/functional/simulate_vcs.sh
adc_serdes/simulation/functional/ucli_commands.key
adc_serdes/simulation/functional/vcs_session.tcl
adc_serdes/simulation/functional/wave.do
adc_serdes.asy
adc_serdes.ejp
adc_serdes.gise
adc_serdes.ucf
adc_serdes.vhd
adc_serdes.vho
adc_serdes.xco
adc_serdes.xise
adc_serdes_flist.txt
adc_serdes_xmdf.tcl
# The package naming convention is <core_name>_xmdf
package provide adc_serdes_xmdf 1.0
# This includes some utilities that support common XMDF operations
package require utilities_xmdf
# Define a namespace for this package. The name of the name space
# is <core_name>_xmdf
namespace eval ::adc_serdes_xmdf {
# Use this to define any statics
}
# Function called by client to rebuild the params and port arrays
# Optional when the use context does not require the param or ports
# arrays to be available.
proc ::adc_serdes_xmdf::xmdfInit { instance } {
# Variable containg name of library into which module is compiled
# Recommendation: <module_name>
# Required
utilities_xmdf::xmdfSetData $instance Module Attributes Name adc_serdes
}
# ::adc_serdes_xmdf::xmdfInit
# Function called by client to fill in all the xmdf* data variables
# based on the current settings of the parameters
proc ::adc_serdes_xmdf::xmdfApplyParams { instance } {
set fcount 0
# Array containing libraries that are assumed to exist
# Examples include unisim and xilinxcorelib
# Optional
# In this example, we assume that the unisim library will
# be magically
# available to the simulation and synthesis tool
utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library
utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/doc/selectio_wiz_ds746.pdf
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/doc/selectio_wiz_gsg700.pdf
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/example_design/adc_serdes_exdes.vhd
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/implement/implement.bat
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/implement/implement.sh
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/implement/synplify.prj
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/implement/xst.prj
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/implement/xst.scr
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/selectio_wiz_readme.txt
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/adc_serdes_tb.vhd
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/simcmds.tcl
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/simulate_isim.bat
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/simulate_isim.sh
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/simulate_mti.do
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/simulate_ncsim.sh
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/simulate_vcs.sh
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/ucli_commands.key
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/vcs_session.tcl
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes/simulation/functional/wave.do
utilities_xmdf::xmdfSetData $instance FileSet $fcount type Ignore
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes.asy
utilities_xmdf::xmdfSetData $instance FileSet $fcount type asy
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes.ejp
utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes.ucf
utilities_xmdf::xmdfSetData $instance FileSet $fcount type ucf
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes.vhd
utilities_xmdf::xmdfSetData $instance FileSet $fcount type vhdl
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes.vho
utilities_xmdf::xmdfSetData $instance FileSet $fcount type vhdl_template
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes.xco
utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path adc_serdes_xmdf.tcl
utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView
incr fcount
utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module adc_serdes
incr fcount
}
# ::gen_comp_name_xmdf::xmdfApplyParams
Subproject commit b57528861e0ee8351b87dc3d4ec4da6a118b4a48
Subproject commit 6a6e358975be9e1d85646f0cbb4256ee59c5abe0
if target == "xilinx":
modules = {"local" : "xilinx"}
modules = {
"local" : [
"spartan6",
],
}
files = [
"ltc2174_2l16b_receiver.vhd",
]
This diff is collapsed.
......@@ -14,6 +14,5 @@ files = [
modules = {
"local" : [
"timetag_core",
"../ip_cores/adc-serdes-core",
],
}
This diff is collapsed.
......@@ -21,7 +21,7 @@ files = [
modules = {
"local" : [
"../../rtl/",
"../../../",
],
"git" : [
"git://ohwr.org/hdl-core-lib/general-cores.git",
......
......@@ -7,6 +7,6 @@ files = [
modules = {
"local" : [
"../../rtl",
"../../../",
],
}
......@@ -6,6 +6,6 @@ files = [
modules = {
"local" : [
"../../rtl",
"../../../",
],
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment