Skip to content

dmi_bscane_tap synthesis problem in Vivado 2023.2 #178

@andreondra

Description

@andreondra

Hello, I've integrated the riscv-dbg project to my FPGA-based SoC project and I've encountered a weird behavior in synthesis of the dmi_bscane_tap.sv module. I use Vivado 2023.2 and target Nexys Video (Artix 7, part number xc7a200tsbg484-1).

When the BSCANE2 TAP is used, the synthesis optimizes out all of the dmi_jtag_tap module except the TCK signal. All others are either not connected or tied to the ground. Fact that a lot of logic is missing is obvious from the synthesis scheme and from logs, there are messages e.g. about removing sequential logic in the dmi_cdc module:

WARNING: [Synth 8-3332] Sequential element (i_dmi_cdc/i_cdc_req/i_cdc_reset_ctrlr/i_cdc_reset_ctrlr_half_a/i_state_transition_cdc_src/FSM_sequential_state_q_reg[1]) is unused and will be removed from module dmi_jtag.

I use the latest (master) version of the riscv-dbg, common-cells and tech-cells. Normally I would suspect a bug in my part of the design, but when I use JTAG TAP (dmi_jtag_tap.sv), no logic is optimized out, no warning messages about unused signals are in logs and the debugging works as expected both in simulation and on the FPGA.

Documentation of the BSCANE2 primitive is pretty sparse. I tried to search for similar problem but I didn't find anything relevant -- e.g. in Ibex Demo System the BSCANE2 works as expected (but an older version of the riscv-dbg is used). Does anybody encountered a similar problem? Or maybe there is something I miss? Maybe special constraints need to be defined when the BSCANE TAP is used?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions