Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Hsdio pxie-6556 - Write jtag command -> wait ack --> write new command

Hi all,

 

I am trying to write into a dut memory using jtag commands. Each command write one byte in the dut memory. At the moment I will need to write 5k bytes

I am able to create the waveforms (using the Labview jtag library).

 

The problem is that the dut works at 5MHz clock and after each command there are a ack pulse.

I must wait for this pulse before send another command.

How I could implement this waiting time? 

 

 

 

Hardware: Pxie-6556

Software Labview 2013

 

Tks,

0 Kudos
Message 1 of 4
(4,711 Views)

Hi engfpe,

 

can you provide me the documentation of the chip you are trying to write to?

 

Also, have you implemented any LabVIEW code? I'd like to see it.

 

Thanks

Felipe Flores
Technical Support Engineer
National Instruments
0 Kudos
Message 2 of 4
(4,521 Views)

Hi Felipe

 

Unfortunately I can not provide you with the chip documentation.
The test is just send a command and wait the answer.
The pseudo code can be like this:

 

write 0x123 (using jtag library - lines clk, tms, tdi)
wait ack (the ack signal is just a pulse in the tdo line)


pxie-6556 ------>clk Dut
                   ------>tms
                   ------->tdi
                  <------tdo


The ack time can vary from 20us to 20s depending of the command type.
Also I need to test as many as possible duts in parallel.

 

 

0 Kudos
Message 3 of 4
(4,496 Views)

Hey engfpe,

This one looks tricky. Here's a couple options I thought of:

  1. If you need a truly protocol-aware custom solution I would suggest looking at a 6581 FlexRIO module. You could implement all the logic to wait for an ack in LabVIEW FPGA, and it would be able to send the next command as soon as it received the ack since that logic would be in the FPGA.
  2. If you need to use the 6556, (say if you need the PPMU for another test) you could stream the data to the host and add some labview code for detecting pulses. Refer to the NI-HSDIO dynamic acquisition streaming example.
  3. You could also try using NI-HSDIO to trigger on an edge of the pulse. Combine that with scriping and you should be able to send a list of commands in between triggers Look at the dynamic generation hardware script trigger example for an example of a script that waits for a trigger event before generating a waveform.

Hope that helps point you in the right direction.

Brian Morgan | NI Software Engineer, R&D
0 Kudos
Message 4 of 4
(4,491 Views)