项目作者: cms-l1-globaltrigger

项目描述 :
AMC502 firmware for external conditions
高级语言: VHDL
项目地址: git://github.com/cms-l1-globaltrigger/amc502_extcond.git
创建时间: 2019-10-10T09:57:50Z
项目社区:https://github.com/cms-l1-globaltrigger/amc502_extcond

开源协议:

下载


Build amc502_extcond firmware with IPBB

  • This is a draft description with branches of MP7 and ugt repos.
  • A fork of MP7 firmware is available with following branches:
    • branch “mp7fw_v2_4_1_amc502_extcond” created from tag mp7fw_v2_4_1.
    • branch “mp7fw_v2_4_3_amc502_extcond” created from tag mp7fw_v2_4_3.
  • These branches contain modified MP7 files for amc502_extcond (files are taken from directory “replacement_files”):

    • boards/mp7/base_fw/mp7_690es/firmware/cfg/mp7_690es.dep
    • boards/mp7/base_fw/mp7_690es/firmware/cfg/mp7_690es.tcl
    • components/mp7_readout/firmware/cfg/mp7_readout.dep
    • boards/mp7/base_fw/common/firmware/cfg/constraints_r1.dep
    • components/ipbus_eth/firmware/cfg/k7_420.dep
    • boards/mp7/base_fw/mp7_690es/firmware/hdl/mp7_690es.vhd
    • boards/mp7/base_fw/mp7_690es/firmware/hdl/mp7_brd_decl.vhd
    • components/mp7_infra/firmware/hdl/mp7_infra.vhd
    • components/mp7_links/firmware/hdl/protocol/ext_align_gth_32b_10g_spartan.vhd
    • boards/mp7/base_fw/common/firmware/ucf/area_constraints.tcl
    • boards/mp7/base_fw/common/firmware/ucf/clock_constraints.tcl
    • boards/mp7/base_fw/common/firmware/ucf/mp7_mgt.tcl
    • boards/mp7/base_fw/common/firmware/ucf/pins.tcl
    • components/ipbus_eth/firmware/ngc/gig_eth_pcs_pma_v11_4.ngc
    • components/ipbus_eth/firmware/cgn/gtwizard_v2_3_gbe.xco
    • components/ipbus_eth/firmware/hdl/eth_7s_1000basex_gtx.vhd
    • components/ipbus_eth/firmware/gen_hdl/gig_eth_pcs_pma_v11_4/gig_eth_pcs_pma_v11_4_reset_sync.vhd
    • components/ipbus_eth/firmware/gen_hdl/gig_eth_pcs_pma_v11_4/gig_eth_pcs_pma_v11_4_sync_block.vhd
    • components/ipbus_eth/firmware/gen_hdl/gig_eth_pcs_pma_v11_4/gig_eth_pcs_pma_v11_4_block.vhd
    • components/mp7_ttc/firmware/hdl/ttc_clocks.vhd
    • components/mp7_links/firmware/cfg/gth_10g.dep
  • One of these branches is used for build (see below).

  • The ugt repo is a fork of svn2git ugt repo.

Setup using script

  1. # Run kerberos for outside of CERN network
  2. kinit username@CERN.CH
  3. # Make local clone of ugt repositiory
  4. git clone https://gitlab.cern.ch/hbergaue/ugt.git <local path>
  5. cd <local path>
  6. # Run synthesis script
  7. python amc502_extcond/scripts/runIpbbSynth.py <vivado version [2018.2]> -t <MP7 tag [mp7fw_v2_4_1]> -p <work dir> --ugt <ugt master, branch or tag name> -b <build version>

Setup

  1. # Run kerberos for outside of CERN network
  2. kinit username@CERN.CH
  3. # Download and install ipbb
  4. curl -L https://github.com/ipbus/ipbb/archive/v0.2.8.tar.gz | tar xvz
  5. source ipbb-0.2.8/env.sh
  6. # Create a local working area
  7. ipbb init <work dir>/amc502_extcond/<mp7fw version>/<build version>
  8. cd <work dir>/amc502_extcond/<mp7fw version>/<build version>
  9. ipbb add git https://github.com/ipbus/ipbus-firmware.git -b master
  10. ipbb add git https://:@gitlab.cern.ch:8443/hbergaue/mp7.git -b mp7fw_v2_4_1_amc502_extcond
  11. ipbb add git https://:@gitlab.cern.ch:8443/hbergaue/ugt.git -b <master or branch name or tag name>
  12. # Patch file top_decl.vhd and copy to ../src/ugt/amc502_extcond/firmware/hdl
  13. # Source Vivado
  14. # Create project
  15. ipbb proj create vivado amc502_extcond_<build version> mp7:../ugt/amc502_extcond
  16. cd proj/amc502_extcond_<build version>
  17. ipbb vivado project
  18. # Run implementation, synthesis
  19. ipbb vivado synth
  20. ipbb vivado impl
  21. # Generate a bitfile
  22. ipbb vivado package
  23. deactivate