Git Product home page Git Product logo

damc-tck7-fpga-bsp's Introduction

DAMC-TCK7 Board Support Package

This is a Board Support Package in form of a Vivado project for DAMC-TCK7. It serves as a demonstration of board features and as a starting point for custom developments.

This project is maintained by MicroTCA Technology Lab at DESY.

DAMC-TCK7

Features

PCIe Gen2 x4

PCIe

PCIe lspci

Xilinx driver: AR# 65444

DDR3 memory

DDR3

DDR3 ILA

Gigabit Ethernet on AMC port 0

Gigabit Ethernet

UDP beacon

IBERT on front-panel SFPs

IBERT

IBERT scan

The on-board oscillator are configured by a MicroBlaze processor upon start-up. Because the Xilinx IBERT core does not have a reset connection, it starts before the oscillators are configured, which results in QPLLs in MGTs (COMMON_X0Y2/QPLL_0 and COMMON_X0Y3/QPLL_0) not being locked.

Is is necessary to reset the QPLLs by writing 1 and then 0 to PORT.QPLLRESET in both QPLLs. Another alternative solution is to configure the FPGA for the second time; the oscillators are already stable at this point and the QPLLs will lock.

On-board clock configuration

Clock-config

Recreating project

This project requires Vivado version 2019.1

Vivado project

In Vivado:

  1. cd into project dir
  2. source ../scripts/recreate.tcl
  3. source ../scripts/bd.tcl
  4. source ../scripts/wrapper.tcl

To compile the project:

  1. launch_runs impl_1 -to_step write_bitstream -jobs 4
  2. Grab a coffee, this is going to take some time

Setting up software development environment

  1. Create block diagram and it's wrapper (see "Recreating project")
  2. From Vivado open SDK (File -> Launch SDK)
  3. For Exported location select <TOP>/exported_hw, for Workspace select <TOP>/sdk
  4. Xilinx SDK will open
  5. Import project: File -> Import -> Existing Projects into Workspace
  6. Select root directory: to <TOP>/sdk
  7. Make sure that both tck7_board_controller and tck7_board_controller_bsp are selected
  8. Press Finish

Commiting changes

Block diagram

From project dir:

write_bd_tcl -include_layout -force ../scripts/bd.tcl

Update MicroBlaze init script

  1. Copy generated .elf into <TOP>/sdk/elf
  2. Add .elf to Vivado project
  3. Set parameters SCOPED_TO_CELLS to microblaze_0 and SCOPED_TO_REF to system

Project settings

If you need to update recrete.tcl, run:

write_project_tcl -use_bd_files -force ../scripts/recreate.tcl

Please be careful as there are some hand-crafted modification in recreate.tcl

damc-tck7-fpga-bsp's People

Contributors

j-marjanovic avatar stubbes avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

damc-tck7-fpga-bsp's Issues

XDMA kernel driver maturity

In your opinion Jan, what is the XDMA kernel driver maturity level?
Have you been running any stress tests?
Would you recommend any of the existing tools to do that?

I'm thinking about moving large amounts of data between CPU and AMC and hoping for stable operation wo/ errors ; I guess how to detect those error, and what they might be manifested as is the question.

FYI, there is a github repo of the XDMA at https://github.com/Xilinx/dma_ip_drivers/tree/master/XDMA/linux-kernel, but it does not work for me (see the issue posted on that Github project). It makes my CPU reboot due to kernel panic (not investigated yet why).

The driver at https://github.com/ramonaoptics/xilinx-dma-driver does work for me and I can see 3.5 GB/s rates when using x4 Gen3 PCIe link on Struck SIS8300-KU.

We are seriously looking into having XDMA as basis design for upcoming AXI based ESS framework on Struck SIS8300-KU and possibly IOxOS IFC1401, and are interested in other users experience with the IP core as well as with AR65444 kernel driver that comes along. Any comments are welcomed!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.