Issue with Implementing System Clock Constraint in FPGA in the Loop (FIL) Toolbox
Show older comments
Hi all,
I'm working with the FPGA-in-the-Loop (FIL) toolbox and trying to perform FIL on the Alinx AXU2CGB board. During the validation process in custom board creation, I encountered a DRC error at the implementation stage due to an invalid pin for the system clock.
To resolve this, I opened the project in Vivado and added the following constraint to the XDC file:
set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets sys_Clk]
This allowed the bitstream to generate successfully in Vivado 2019.1. However, I would like to know how to implement the same constraint directly in the FIL wizard steps.
Can anyone guide me on how to add this clock constraint in the FIL toolbox?
Thanks in advance for your help!
Accepted Answer
More Answers (1)
YP
on 21 Apr 2025
0 votes
Make the following changes, and try again.
- Sum of IR lengths AFTER: 4
- User1 Instruction: 100100000010
- User2 Instruction: 100100000011
- User3 Instruction: 100100100010
- User4 Instruction: 100100100011
- JTAG Clock Frequency (MHz): 30
6 Comments
Danish Anwar
on 22 Apr 2025
YP
on 22 Apr 2025
it is device specific.
about IR length for Zynq, and how to get user instruction, jtag clock from bsd files.
The bsd file can be downloaded from
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/device-models.html
Danish Anwar
on 22 Apr 2025
YP
on 22 Apr 2025
Since your JTAG position is 1, the sum of IR lengths before/after should be 0/4. For Zynq-7000 devices, since JTAG position is 2, the sum of IR lengths before/after is 4/0. We will update the document to be more accurate.
There are some issues to consider:
- Make sure you downloaded the bitstream before running the simulation. We've seen customers forget to do so.
- Your specified part is xczu2cg-sfvc784-1-e. However, it is listed as xczu2cg-1sfvc784e in the manual. What is the actual part you see in the Vivado hardware manager?
- To solve the placement error, try adding a BUFG between sysclk and clock_wiz as follows, and do not set the CLOCK_DEDICATED_ROUTE constraint. Generate the new bitfile, and re-retry. Notice the new bitfile will be located under project folder -> *.runs -> impl_1
-- Add this signal after the BitZero signal declaration:
SIGNAL sysclk_bufg : std_logic;
-- Add this component declaration after the other component declarations:
COMPONENT BUFG
PORT (
I : in STD_LOGIC;
O : out STD_LOGIC
);
END COMPONENT;
-- Add this instance in the architecture body before the clock wizard:
sysclk_buf : BUFG
PORT MAP (
I => sysclk,
O => sysclk_bufg
);
-- Modify the clock wizard port map to use sysclk_bufg:
u_clk_wiz_0: clk_wiz_0
PORT MAP(
locked => locked,
clk_in1 => sysclk_bufg, -- Changed from sysclk to sysclk_bufg
clk_out1 => dutClk,
reset => dcm_reset
);
Danish Anwar
on 25 Apr 2025
YP
on 25 Apr 2025
Yes, you need to do it manually.
- Run FilWizard, don't include your own xdc file.
- Vivado should fail due to placement error.
- Open Vivado project and modify the top file as above.
- Generate bit and download
Categories
Find more on FPGA-in-the-Loop in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




