imageon_zed: Initial commit plus fix ILAs

main
Istvan Csomortani 2015-04-02 18:53:45 +03:00
parent 2937445cce
commit f15ff45afc
5 changed files with 381 additions and 10 deletions

View File

@ -38,7 +38,7 @@ set_property -dict [list CONFIG.C_CLKS_ASYNC_REQ_SRC {1}] $axi_hdmi_rx_dma
set_property -dict [list CONFIG.C_2D_TRANSFER {1}] $axi_hdmi_rx_dma
set_property -dict [list CONFIG.C_SYNC_TRANSFER_START {1}] $axi_hdmi_rx_dma
set_property -dict [list CONFIG.C_DMA_LENGTH_WIDTH {14}] $axi_hdmi_rx_dma
set_property -dict [list CONFIG.C_DMA_DATA_WIDTH_SRC {32}] $axi_hdmi_rx_dma
set_property -dict [list CONFIG.C_DMA_DATA_WIDTH_SRC {64}] $axi_hdmi_rx_dma
set_property -dict [list CONFIG.C_DMA_DATA_WIDTH_DEST {64}] $axi_hdmi_rx_dma
ad_connect hdmi_rx_clk axi_hdmi_rx_core/hdmi_rx_clk
@ -63,23 +63,18 @@ ad_cpu_interrupt ps-12 mb-12 axi_hdmi_rx_dma/irq
set ila_fifo_dma_rx [create_bd_cell -type ip -vlnv xilinx.com:ip:ila:5.0 ila_fifo_dma_rx]
set_property -dict [list CONFIG.C_MONITOR_TYPE {Native}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_DATA_DEPTH {16384}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_DATA_DEPTH {2048}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_NUM_OF_PROBES {4}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_PROBE0_WIDTH {1}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_PROBE0_WIDTH {1}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_PROBE0_WIDTH {32}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_PROBE0_WIDTH {1}] $ila_fifo_dma_rx
set ila_axi_dma_rx [create_bd_cell -type ip -vlnv xilinx.com:ip:ila:5.0 ila_axi_dma_rx]
set_property -dict [list CONFIG.C_DATA_DEPTH {16384}] $ila_axi_dma_rx
set_property -dict [list CONFIG.C_PROBE1_WIDTH {1}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_PROBE2_WIDTH {32}] $ila_fifo_dma_rx
set_property -dict [list CONFIG.C_PROBE3_WIDTH {1}] $ila_fifo_dma_rx
ad_connect hdmi_rx_clk ila_fifo_dma_rx/clk
ad_connect hdmi_rx_clk ila_axi_dma_rx/clk
ad_connect ila_fifo_dma_rx/probe0 axi_hdmi_rx_dma/fifo_wr_sync
ad_connect ila_fifo_dma_rx/probe1 axi_hdmi_rx_dma/fifo_wr_en
ad_connect ila_fifo_dma_rx/probe2 axi_hdmi_rx_dma/fifo_wr_din
ad_connect ila_fifo_dma_rx/probe3 axi_hdmi_rx_dma/fifo_wr_overflow
ad_connect ila_axi_dma_rx/SLOT_0_AXI axi_hdmi_rx_dma/m_dest_axi

View File

@ -0,0 +1,4 @@
source $ad_hdl_dir/projects/common/zed/zed_system_bd.tcl
source ../common/imageon_bd.tcl

View File

@ -0,0 +1,53 @@
# fmc hdmi rx (adv7611)
set_property -dict {PACKAGE_PIN D18 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_clk] ; ## G2 FMC_LPC_CLK1_M2C_P
set_property -dict {PACKAGE_PIN A17 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[0]] ; ## H32 FMC_LPC_LA28_N
set_property -dict {PACKAGE_PIN A16 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[1]] ; ## H31 FMC_LPC_LA28_P
set_property -dict {PACKAGE_PIN C18 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[2]] ; ## G31 FMC_LPC_LA29_N
set_property -dict {PACKAGE_PIN D21 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[3]] ; ## C27 FMC_LPC_LA27_N
set_property -dict {PACKAGE_PIN E18 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[4]] ; ## D27 FMC_LPC_LA26_N
set_property -dict {PACKAGE_PIN C17 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[5]] ; ## G30 FMC_LPC_LA29_P
set_property -dict {PACKAGE_PIN E21 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[6]] ; ## C26 FMC_LPC_LA27_P
set_property -dict {PACKAGE_PIN F18 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[7]] ; ## D26 FMC_LPC_LA26_P
set_property -dict {PACKAGE_PIN A22 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[8]] ; ## H38 FMC_LPC_LA32_N
set_property -dict {PACKAGE_PIN A21 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[9]] ; ## H37 FMC_LPC_LA32_P
set_property -dict {PACKAGE_PIN B22 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[10]] ; ## G37 FMC_LPC_LA33_N
set_property -dict {PACKAGE_PIN B21 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[11]] ; ## G36 FMC_LPC_LA33_P
set_property -dict {PACKAGE_PIN B15 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[12]] ; ## H35 FMC_LPC_LA30_N
set_property -dict {PACKAGE_PIN C15 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[13]] ; ## H34 FMC_LPC_LA30_P
set_property -dict {PACKAGE_PIN B17 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[14]] ; ## G34 FMC_LPC_LA31_N
set_property -dict {PACKAGE_PIN B16 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_data[15]] ; ## G33 FMC_LPC_LA31_P
set_property -dict {PACKAGE_PIN N19 IOSTANDARD LVCMOS25} [get_ports hdmi_rx_int] ; ## D08 FMC_LPC_LA01_CC_P
# fmc hdmi tx (adv7511)
set_property -dict {PACKAGE_PIN C19 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_clk] ; ## G3 FMC_LPC_CLK1_M2C_N
set_property -dict {PACKAGE_PIN A18 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_spdif] ; ## H28 FMC_LPC_LA24_P
set_property -dict {PACKAGE_PIN C22 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[0]] ; ## G28 FMC_LPC_LA25_N
set_property -dict {PACKAGE_PIN D22 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[1]] ; ## G27 FMC_LPC_LA25_P
set_property -dict {PACKAGE_PIN E20 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[2]] ; ## H26 FMC_LPC_LA21_N
set_property -dict {PACKAGE_PIN D15 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[3]] ; ## D24 FMC_LPC_LA23_N
set_property -dict {PACKAGE_PIN E19 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[4]] ; ## H25 FMC_LPC_LA21_P
set_property -dict {PACKAGE_PIN F19 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[5]] ; ## G25 FMC_LPC_LA22_N
set_property -dict {PACKAGE_PIN C20 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[6]] ; ## C23 FMC_LPC_LA18_CC_N
set_property -dict {PACKAGE_PIN E15 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[7]] ; ## D23 FMC_LPC_LA23_P
set_property -dict {PACKAGE_PIN G19 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[8]] ; ## G24 FMC_LPC_LA22_P
set_property -dict {PACKAGE_PIN G16 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[9]] ; ## H23 FMC_LPC_LA19_N
set_property -dict {PACKAGE_PIN D20 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[10]] ; ## C22 FMC_LPC_LA18_CC_P
set_property -dict {PACKAGE_PIN B20 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[11]] ; ## D21 FMC_LPC_LA17_CC_N
set_property -dict {PACKAGE_PIN G15 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[12]] ; ## H22 FMC_LPC_LA19_P
set_property -dict {PACKAGE_PIN G21 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[13]] ; ## G22 FMC_LPC_LA20_N
set_property -dict {PACKAGE_PIN B19 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[14]] ; ## D20 FMC_LPC_LA17_CC_P
set_property -dict {PACKAGE_PIN G20 IOSTANDARD LVCMOS25} [get_ports hdmi_tx_data[15]] ; ## G21 FMC_LPC_LA20_P
# iic pins
set_property -dict {PACKAGE_PIN J20 IOSTANDARD LVCMOS25} [get_ports hdmi_iic_scl] ; ## G18 FMC_LPC_LA16_P
set_property -dict {PACKAGE_PIN K21 IOSTANDARD LVCMOS25} [get_ports hdmi_iic_sda] ; ## G19 FMC_LPC_LA16_N
set_property -dict {PACKAGE_PIN N20 IOSTANDARD LVCMOS25} [get_ports hdmi_iic_rstn] ; ## D9 FMC_LPC_LA01_CC_N
# clock definition
create_clock -period 6.66667 -name hdmi_rx_clk [get_ports hdmi_rx_clk]

View File

@ -0,0 +1,20 @@
# load script
source ../../scripts/adi_env.tcl
source $ad_hdl_dir/projects/scripts/adi_project.tcl
source $ad_hdl_dir/projects/scripts/adi_board.tcl
set project_name imageon_zed
adi_project_create $project_name
adi_project_files $project_name [list "system_top.v" \
"$ad_hdl_dir/library/common/ad_iobuf.v" \
"system_constr.xdc" \
"$ad_hdl_dir/projects/common/zed/zed_system_constr.xdc"]
set_property PROCESSING_ORDER EARLY [get_files $ad_hdl_dir/projects/common/zed/zed_system_constr.xdc]
set_property PROCESSING_ORDER EARLY [get_files system_constr.xdc]
adi_project_run $project_name

View File

@ -0,0 +1,299 @@
// ***************************************************************************
// ***************************************************************************
// Copyright 2011(c) Analog Devices, Inc.
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
// - Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// - Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in
// the documentation and/or other materials provided with the
// distribution.
// - Neither the name of Analog Devices, Inc. nor the names of its
// contributors may be used to endorse or promote products derived
// from this software without specific prior written permission.
// - The use of this software may or may not infringe the patent rights
// of one or more patent holders. This license does not release you
// from the requirement that you obtain separate licenses from these
// patent holders to use this software.
// - Use of the software either in source or binary form, must be run
// on or directly connected to an Analog Devices Inc. component.
//
// THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
// INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A
// PARTICULAR PURPOSE ARE DISCLAIMED.
//
// IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY
// RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// ***************************************************************************
// ***************************************************************************
// ***************************************************************************
// ***************************************************************************
`timescale 1ns/100ps
module system_top (
ddr_addr,
ddr_ba,
ddr_cas_n,
ddr_ck_n,
ddr_ck_p,
ddr_cke,
ddr_cs_n,
ddr_dm,
ddr_dq,
ddr_dqs_n,
ddr_dqs_p,
ddr_odt,
ddr_ras_n,
ddr_reset_n,
ddr_we_n,
fixed_io_ddr_vrn,
fixed_io_ddr_vrp,
fixed_io_mio,
fixed_io_ps_clk,
fixed_io_ps_porb,
fixed_io_ps_srstb,
gpio_bd,
hdmi_out_clk,
hdmi_vsync,
hdmi_hsync,
hdmi_data_e,
hdmi_data,
i2s_mclk,
i2s_bclk,
i2s_lrclk,
i2s_sdata_out,
i2s_sdata_in,
spdif,
iic_scl,
iic_sda,
iic_mux_scl,
iic_mux_sda,
hdmi_rx_clk,
hdmi_rx_data,
hdmi_rx_int,
hdmi_tx_clk,
hdmi_tx_data,
hdmi_tx_spdif,
hdmi_iic_scl,
hdmi_iic_sda,
hdmi_iic_rstn,
otg_vbusoc);
inout [14:0] ddr_addr;
inout [ 2:0] ddr_ba;
inout ddr_cas_n;
inout ddr_ck_n;
inout ddr_ck_p;
inout ddr_cke;
inout ddr_cs_n;
inout [ 3:0] ddr_dm;
inout [31:0] ddr_dq;
inout [ 3:0] ddr_dqs_n;
inout [ 3:0] ddr_dqs_p;
inout ddr_odt;
inout ddr_ras_n;
inout ddr_reset_n;
inout ddr_we_n;
inout fixed_io_ddr_vrn;
inout fixed_io_ddr_vrp;
inout [53:0] fixed_io_mio;
inout fixed_io_ps_clk;
inout fixed_io_ps_porb;
inout fixed_io_ps_srstb;
inout [31:0] gpio_bd;
output hdmi_out_clk;
output hdmi_vsync;
output hdmi_hsync;
output hdmi_data_e;
output [15:0] hdmi_data;
output spdif;
output i2s_mclk;
output i2s_bclk;
output i2s_lrclk;
output i2s_sdata_out;
input i2s_sdata_in;
inout iic_scl;
inout iic_sda;
inout [ 1:0] iic_mux_scl;
inout [ 1:0] iic_mux_sda;
input hdmi_rx_clk;
input [15:0] hdmi_rx_data;
inout hdmi_rx_int;
output hdmi_tx_clk;
output [15:0] hdmi_tx_data;
output hdmi_tx_spdif;
output hdmi_iic_rstn;
inout hdmi_iic_scl;
inout hdmi_iic_sda;
input otg_vbusoc;
// internal signals
wire [63:0] gpio_i;
wire [63:0] gpio_o;
wire [63:0] gpio_t;
wire [ 1:0] iic_mux_scl_i_s;
wire [ 1:0] iic_mux_scl_o_s;
wire iic_mux_scl_t_s;
wire [ 1:0] iic_mux_sda_i_s;
wire [ 1:0] iic_mux_sda_o_s;
wire iic_mux_sda_t_s;
// base hdmi
assign hdmi_iic_rstn = 1'b1;
assign hdmi_out_clk = 1'd0;
assign hdmi_vsync = 1'd0;
assign hdmi_hsync = 1'd0;
assign hdmi_data_e = 1'd0;
assign hdmi_data = 24'd0;
assign spdif = 1'd0;
// instantiations
ad_iobuf #(.DATA_WIDTH(1)) i_gpio_hdmi (
.dt (gpio_t[32]),
.di (gpio_o[32]),
.do (gpio_i[32]),
.dio (hdmi_rx_int));
ad_iobuf #(
.DATA_WIDTH(32)
) i_iobuf (
.dt(gpio_t[31:0]),
.di(gpio_o[31:0]),
.do(gpio_i[31:0]),
.dio(gpio_bd));
ad_iobuf #(
.DATA_WIDTH(2)
) i_iic_mux_scl (
.dt({iic_mux_scl_t_s, iic_mux_scl_t_s}),
.di(iic_mux_scl_o_s),
.do(iic_mux_scl_i_s),
.dio(iic_mux_scl));
ad_iobuf #(
.DATA_WIDTH(2)
) i_iic_mux_sda (
.dt({iic_mux_sda_t_s, iic_mux_sda_t_s}),
.di(iic_mux_sda_o_s),
.do(iic_mux_sda_i_s),
.dio(iic_mux_sda));
system_wrapper i_system_wrapper (
.ddr_addr (ddr_addr),
.ddr_ba (ddr_ba),
.ddr_cas_n (ddr_cas_n),
.ddr_ck_n (ddr_ck_n),
.ddr_ck_p (ddr_ck_p),
.ddr_cke (ddr_cke),
.ddr_cs_n (ddr_cs_n),
.ddr_dm (ddr_dm),
.ddr_dq (ddr_dq),
.ddr_dqs_n (ddr_dqs_n),
.ddr_dqs_p (ddr_dqs_p),
.ddr_odt (ddr_odt),
.ddr_ras_n (ddr_ras_n),
.ddr_reset_n (ddr_reset_n),
.ddr_we_n (ddr_we_n),
.fixed_io_ddr_vrn (fixed_io_ddr_vrn),
.fixed_io_ddr_vrp (fixed_io_ddr_vrp),
.fixed_io_mio (fixed_io_mio),
.fixed_io_ps_clk (fixed_io_ps_clk),
.fixed_io_ps_porb (fixed_io_ps_porb),
.fixed_io_ps_srstb (fixed_io_ps_srstb),
.gpio_i (gpio_i),
.gpio_o (gpio_o),
.gpio_t (gpio_t),
.hdmi_data (),
.hdmi_data_e (),
.hdmi_es_data (hdmi_tx_data),
.hdmi_hsync (),
.hdmi_out_clk (hdmi_tx_clk),
.hdmi_rx_clk (hdmi_rx_clk),
.hdmi_rx_data (hdmi_rx_data),
.hdmi_vsync (),
.iic_imageon_scl_io (hdmi_iic_scl),
.iic_imageon_sda_io (hdmi_iic_sda),
.i2s_bclk (i2s_bclk),
.i2s_lrclk (i2s_lrclk),
.i2s_mclk (i2s_mclk),
.i2s_sdata_in (i2s_sdata_in),
.i2s_sdata_out (i2s_sdata_out),
.iic_fmc_scl_io (iic_scl),
.iic_fmc_sda_io (iic_sda),
.iic_mux_scl_i (iic_mux_scl_i_s),
.iic_mux_scl_o (iic_mux_scl_o_s),
.iic_mux_scl_t (iic_mux_scl_t_s),
.iic_mux_sda_i (iic_mux_sda_i_s),
.iic_mux_sda_o (iic_mux_sda_o_s),
.iic_mux_sda_t (iic_mux_sda_t_s),
.ps_intr_00 (1'b0),
.ps_intr_01 (1'b0),
.ps_intr_02 (1'b0),
.ps_intr_03 (1'b0),
.ps_intr_04 (1'b0),
.ps_intr_05 (1'b0),
.ps_intr_06 (1'b0),
.ps_intr_07 (1'b0),
.ps_intr_08 (1'b0),
.ps_intr_09 (1'b0),
.ps_intr_10 (1'b0),
.ps_intr_13 (1'b0),
.otg_vbusoc (otg_vbusoc),
.spdif (hdmi_tx_spdif),
.spi0_clk_i (1'b0),
.spi0_clk_o (),
.spi0_csn_0_o (),
.spi0_csn_1_o (),
.spi0_csn_2_o (),
.spi0_csn_i (1'b0),
.spi0_sdi_i (1'b0),
.spi0_sdo_i (1'b0),
.spi0_sdo_o (),
.spi1_clk_i (1'b0),
.spi1_clk_o (),
.spi1_csn_0_o (),
.spi1_csn_1_o (),
.spi1_csn_2_o (),
.spi1_csn_i (1'b0),
.spi1_sdi_i (1'b0),
.spi1_sdo_i (1'b0),
.spi1_sdo_o ());
endmodule
// ***************************************************************************
// ***************************************************************************