element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet & Tria Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
PicoZed Hardware Design Porting Python 1300 ref design on SVDK: Artifact on image
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 5 replies
  • Subscribers 338 subscribers
  • Views 647 views
  • Users 0 members are here
Related

Porting Python 1300 ref design on SVDK: Artifact on image

Former Member
Former Member over 10 years ago

Hello,

As described already in another post (treating of another problem),I trying to port Microzed ref design using Python and HDMI on SVDK running on Vivado 2015.2 instead of 2014.4.
I now get an image from the Sensor of HDMI but it contains artifacts. When using test pattern generator I don't get any artifacts. Those artifact are vertical repetition every centimeters (on my 22" screen) of around 6 to 8 pixels width random pixel colors(most being white).
You can see pictures on below link (Xilinx forum):

http://forums.xilinx.com/t5/Zynq-All-Programmable-SoC/Porting-HDMI-python1300-ref-design-on-SVDK-No-valid-object-s/m-p/651450/highlight/false#M10317

There is I think two potential rootcause:
1/Internally generated serdes clock inside Python block is not working properly on my design.
Unfortunately, it was not able to solve this problem.

2/ Registers value set within the IP core for Python are not the recommended value inside Python datasheet. What is strange is that I don't think that initial ref design running on Microzed in Vivado 2014.4 shows any problem with those values.

Thanks for your help.
Br,
Ben

Br,
Ben

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 10 years ago

    Hello Ben,

     

    Based on this Xilinx Community Forum post it looks like you found the issue to be the xdc file:

    http://forums.xilinx.com/t5/Zynq-All-Programmable-SoC/Porting-HDMI-python1300-ref-design-on-SVDK-No-valid-object-s/td-p/651248

     

    -Gary

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • albertabeef
    0 albertabeef over 10 years ago

    Ben,

    Could you share the working XDC file for the SVDK, for the benefit of the community ?

    Thanks in advance,

    Regards,

    Mario.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 9 years ago in reply to albertabeef

    Hello,

    Sorry I just realize that forgot to answer.
    Here is the xdc:

    ########################
    # Physical Constraints #
    ########################

    # HDMI Output (ADV7511) on Embedded Vision Carrier Card
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[15]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[14]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[13]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[12]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[11]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[10]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[9]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[8]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[7]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[6]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[5]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[4]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[3]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[2]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[1]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_HDMIO_data[0]}]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_HDMIO_clk]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_HDMIO_spdif]
    set_property PACKAGE_PIN W13 [get_ports IO_HDMIO_clk]
    set_property PACKAGE_PIN V18 [get_ports IO_HDMIO_spdif]
    set_property PACKAGE_PIN Y18 [get_ports {IO_HDMIO_data[15]}]
    set_property PACKAGE_PIN Y19 [get_ports {IO_HDMIO_data[14]}]
    set_property PACKAGE_PIN AA11 [get_ports {IO_HDMIO_data[13]}]
    set_property PACKAGE_PIN AB11 [get_ports {IO_HDMIO_data[12]}]
    set_property PACKAGE_PIN V11 [get_ports {IO_HDMIO_data[11]}]
    set_property PACKAGE_PIN W11 [get_ports {IO_HDMIO_data[10]}]
    set_property PACKAGE_PIN W12 [get_ports {IO_HDMIO_data[9]}]
    set_property PACKAGE_PIN V15 [get_ports {IO_HDMIO_data[8]}]
    set_property PACKAGE_PIN W15 [get_ports {IO_HDMIO_data[7]}]
    set_property PACKAGE_PIN AA16 [get_ports {IO_HDMIO_data[6]}]
    set_property PACKAGE_PIN AA17 [get_ports {IO_HDMIO_data[5]}]
    set_property PACKAGE_PIN Y12 [get_ports {IO_HDMIO_data[4]}]
    set_property PACKAGE_PIN Y13 [get_ports {IO_HDMIO_data[3]}]
    set_property PACKAGE_PIN V13 [get_ports {IO_HDMIO_data[2]}]
    set_property PACKAGE_PIN V14 [get_ports {IO_HDMIO_data[1]}]
    set_property PACKAGE_PIN R17 [get_ports {IO_HDMIO_data[0]}]

    # PYTHON-1300 Camera Module
    set_property PACKAGE_PIN J5 [get_ports {IO_PYTHON_CAM_trigger[0]}]
    set_property PACKAGE_PIN R3 [get_ports {IO_PYTHON_CAM_trigger[1]}]
    set_property PACKAGE_PIN T1 [get_ports {IO_PYTHON_CAM_trigger[2]}]
    set_property PACKAGE_PIN J7 [get_ports IO_PYTHON_CAM_reset_n]
    set_property PACKAGE_PIN J6 [get_ports IO_PYTHON_SPI_spi_mosi]
    set_property PACKAGE_PIN M7 [get_ports IO_PYTHON_SPI_spi_sclk]
    set_property PACKAGE_PIN K8 [get_ports IO_PYTHON_SPI_spi_ssel_n]
    set_property PACKAGE_PIN P6 [get_ports {IO_PYTHON_CAM_data_p[0]}]
    set_property PACKAGE_PIN R5 [get_ports {IO_PYTHON_CAM_data_p[1]}]
    set_property PACKAGE_PIN L6 [get_ports {IO_PYTHON_CAM_data_p[2]}]
    set_property PACKAGE_PIN L5 [get_ports {IO_PYTHON_CAM_data_p[3]}]
    set_property PACKAGE_PIN R2 [get_ports {IO_PYTHON_CAM_monitor[0]}]
    set_property PACKAGE_PIN T2 [get_ports {IO_PYTHON_CAM_monitor[1]}]
    set_property PACKAGE_PIN U2 [get_ports IO_PYTHON_CAM_clk_out_p]
    set_property PACKAGE_PIN M8 [get_ports IO_PYTHON_CAM_clk_pll]
    set_property PACKAGE_PIN J8 [get_ports IO_PYTHON_SPI_spi_miso]
    set_property PACKAGE_PIN L2 [get_ports IO_PYTHON_CAM_sync_p]

    set_property IOSTANDARD LVCMOS25 [get_ports {IO_PYTHON_CAM_trigger[2]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_PYTHON_CAM_trigger[1]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_PYTHON_CAM_trigger[0]}]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_PYTHON_CAM_reset_n]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_PYTHON_SPI_spi_mosi]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_PYTHON_SPI_spi_sclk]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_PYTHON_SPI_spi_ssel_n]
    set_property IOSTANDARD LVDS_25 [get_ports {IO_PYTHON_CAM_data_p[3]}]
    set_property IOSTANDARD LVDS_25 [get_ports {IO_PYTHON_CAM_data_p[2]}]
    set_property IOSTANDARD LVDS_25 [get_ports {IO_PYTHON_CAM_data_p[1]}]
    set_property IOSTANDARD LVDS_25 [get_ports {IO_PYTHON_CAM_data_p[0]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_PYTHON_CAM_monitor[1]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {IO_PYTHON_CAM_monitor[0]}]
    set_property IOSTANDARD LVDS_25 [get_ports IO_PYTHON_CAM_clk_out_p]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_PYTHON_CAM_clk_pll]
    set_property IOSTANDARD LVCMOS25 [get_ports IO_PYTHON_SPI_spi_miso]
    set_property IOSTANDARD LVDS_25 [get_ports IO_PYTHON_CAM_sync_p]

    set_property DIFF_TERM TRUE [get_ports {IO_PYTHON_CAM_data_p[0]}]
    set_property DIFF_TERM TRUE [get_ports {IO_PYTHON_CAM_data_p[1]}]
    set_property DIFF_TERM TRUE [get_ports {IO_PYTHON_CAM_data_p[2]}]
    set_property DIFF_TERM TRUE [get_ports {IO_PYTHON_CAM_data_p[3]}]
    set_property DIFF_TERM TRUE [get_ports IO_PYTHON_CAM_sync_p]
    set_property DIFF_TERM TRUE [get_ports IO_PYTHON_CAM_clk_out_p]

    #GPIO to set DE/Hsyhnc/Vsync to ground on SVDK
    set_property PACKAGE_PIN V16 [get_ports {gpio_0_tri_io[2]}]
    set_property PACKAGE_PIN W16 [get_ports {gpio_0_tri_io[1]}]
    set_property PACKAGE_PIN T17 [get_ports {gpio_0_tri_io[0]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {gpio_0_tri_io[2]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {gpio_0_tri_io[1]}]
    set_property IOSTANDARD LVCMOS25 [get_ports {gpio_0_tri_io[0]}]

    ######################
    #  Clock Constraints #
    ######################

    # The following constraints are already created by the "ZYNQ7 Processing System" core
    #create_clock -period 13.333 -name clk_fpga_0 [get_nets -hierarchical FCLK_CLK0]
    #create_clock -period  6.667 -name clk_fpga_1 [get_nets -hierarchical FCLK_CLK1]
    #create_clock -period  5.000 -name clk_fpga_2 [get_nets -hierarchical FCLK_CLK2]
    #Ref_design_clk_wiz_0_0
    create_clock -period 3.703 -name vita_ser_clk [get_ports IO_PYTHON_CAM_clk_out_p]

    # Define asynchronous clock domains
    set_clock_groups -asynchronous  -group [get_clocks clk_fpga_0]
                                    -group [get_clocks clk_fpga_1]
                                    -group [get_clocks clk_out1_Ref_design_clk_wiz_0_0]
                                    -group [get_clocks -of [get_pins Ref_design_i/onsemi_python_cam_0/U0/onsemi_vita_cam_v3_1_S00_AXI_inst/onsemi_vita_cam_core_inst/vita_iserdes_v5.vita_iserdes/serdesclockgen[0].ic/gen_no_ls_clk_in.gen_regional_hs_clk_in.gen_multiplier_5.BUFR_regional_hs_clk_in/O]]
                                    -group [get_clocks vita_clk]

    Br,
    Ben

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 9 years ago in reply to albertabeef

    I tried several times to publish my xdc but I get:
    "Your comment has been queued for review by site administrators and will be published after approval."
    It must be too long and it is impossible to put it as an attachement.
    thank for your advice/help
    /Ben

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 9 years ago in reply to Former Member

    Hello Ben,

     

    You original xdc post has been approved and should be visible now. Sorry about the delay, there was no notification that one was pending.

     

    Thanks for sharing!

     

    -Gary

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube