Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Visitor
joedelong
Posts: 6
Registered: ‎07-27-2011
0

ILA clocking

What are the requirements for clocking the ILA? For example can I use a low frequency short pulse as a clock? (10kHz 8ns wide pulse)

Xilinx Employee
austin
Posts: 3,683
Registered: ‎02-27-2008
0

Re: ILA clocking

j,

http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/chipscope_pro_sw_cores_11_1_ug029.pd...

One clocks all the logic, and the logic analyzer (Chipscope) from the same clock (generally).

Will everything meet timing and work with your proposed clock?
Austin Lesea
Principal Engineer
Xilinx San Jose
Visitor
joedelong
Posts: 6
Registered: ‎07-27-2011
0

Re: ILA clocking

In this case the clock signal I want to use for the ILA is the data valid strobe which occurs after the data I want to observe is stable. I have a second ILA looking at the same data but using the system clock to drive the ILA clock. When I trigger the second ILA with the data valid strobe the data is always stable and correct. However when I use the Data valid strobe as a clock to the ILA the data reads back incorrect.

Visitor
joedelong
Posts: 6
Registered: ‎07-27-2011
0

Re: ILA clocking

 generate
 if (DEBUG)
   begin : chipscope  
  
  wire [255:0] TRIG0;
  assign TRIG0[31:0]    = MPMC_data_X;
  assign TRIG0[63:32]   = MPMC_data_Y;
  assign TRIG0[64]    = MPMC_strb;
  assign TRIG0[65]    = StartCalcLocal;
  assign TRIG0[75:66]   = MEM_addr;
  assign TRIG0[107:76]  = CalcData;
  assign TRIG0[115:108]  = state2;
  assign TRIG0[116]   = StartCalc_reg;
  assign TRIG0[117]   = calcDone;
  assign TRIG0[149:118]  = remoteData;
  assign TRIG0[150]       = StartCalcRemote;
  assign TRIG0[255:151]   = 0;

  ila myIla (
    .CONTROL(CONTROL0), // INOUT BUS [35:0]
    .CLK(LocalTimeStampClock), // IN
    .TRIG0(TRIG0) // IN BUS [99:0]
  );    

  wire [255:0] TRIG3;
  assign TRIG3[31:0]    = MPMC_data_X;
  assign TRIG3[63:32]   = MPMC_data_Y;
  assign TRIG3[64]    = MPMC_strb;
  assign TRIG3[65]    = StartCalcLocal;
  assign TRIG3[75:66]   = MEM_addr;
  assign TRIG3[107:76]  = CalcData;
  assign TRIG3[115:108]  = state2;
  assign TRIG3[116]   = StartCalc_reg;
  assign TRIG3[117]   = calcDone;
  assign TRIG3[149:118]  = remoteData;
  assign TRIG3[150]       = StartCalcRemote;
  assign TRIG3[255:151]   = 0;

  ila myIla2 (
    .CONTROL(CONTROL3), // INOUT BUS [35:0]
    .CLK(MPMC_strb), // IN
    .TRIG0(TRIG3) // IN BUS [99:0]
  );    
  
 end
 endgenerate

Expert Contributor
rcingham
Posts: 2,010
Registered: ‎09-09-2010
0

Re: ILA clocking

"However when I use the Data valid strobe as a clock to the ILA the data reads back incorrect."

Perhaps this is because it is not a clock.
It might work if you passed it through a BUFG/R.
Remember to add a KEEP attribute so that it survives synthesis.

------------------------------------------
"If it don't work in simulation, it won't work on the board."