Xilinx BSCAN primitives proper use

  • Follow


Has anyone managed to get the xilinx BSCAN primitives (for interfacing
with the USERx jtag registers/comands) working robustly? I've found a
depressing lack of information as to what the actual pins  do -- aside
from a (now unavailable?) techXclusive article, "Reconfiguring Block
RAMs - Part 1" (by Kris Chaplin, available via google cache) I can't
find much more info.

What's the best way to interface with this part? In particular, how do
you deal with the obvious synchronization/metastability issues when
crossing clock domains, esp. if you're hoping for a device that's
still small (i.e. no hardware async fifos or anything).

Thanks for any advice you can provide,
   ...Eric
0
Reply jonas 1/31/2008 2:24:01 PM

On Jan 31, 6:24 am, jo...@mit.edu wrote:
> Has anyone managed to get the xilinx BSCAN primitives (for interfacing
> with the USERx jtag registers/comands) working robustly? I've found a
> depressing lack of information as to what the actual pins  do -- aside
> from a (now unavailable?) techXclusive article, "Reconfiguring Block
> RAMs - Part 1" (by Kris Chaplin, available via google cache) I can't
> find much more info.
>
> What's the best way to interface with this part? In particular, how do
> you deal with the obvious synchronization/metastability issues when
> crossing clock domains, esp. if you're hoping for a device that's
> still small (i.e. no hardware async fifos or anything).
>
> Thanks for any advice you can provide,
>    ...Eric

I used it recently for the 1st time to check out a JTAG interface
block I
was developing.  Here's the very simple code I used:
//
----------------------------------------------------------------------
//                      Xilinx BSCAN
// This is temporary code that allows us to test out JTAG master block
by
// using the Xilinx JTAG block
reg     [31:0]  bscan_data;

BSCAN_SPARTAN3 u_bscan (
    .CAPTURE                    (BSCAN_CAPTURE),
    .DRCK1                      (BSCAN_DRCK1),
    .DRCK2                      (),
    .RESET                      (BSCAN_RESET),
    .SEL1                       (BSCAN_SEL1),
    .SEL2                       (),
    .SHIFT                      (BSCAN_SHIFT),
    .TDI                        (BSCAN_TDI),
    .UPDATE                     (BSCAN_UPDATE),
    .TDO1                       (bscan_data[0]),
    .TDO2                       (1'b0)
);


always @(posedge BSCAN_DRCK1 or posedge BSCAN_RESET)
    if (BSCAN_RESET)
        bscan_data      <= 32'h87654321;
    else if (BSCAN_SHIFT)
        bscan_data      <= {BSCAN_TDI, bscan_data[31:1]};


The code provides access to a simple shift register.  This would be
simple
to extend to a much more functional block, but as you point out,
you'll
need to take care of clock domain crossing, etc.

John Providenza
0
Reply johnp 1/31/2008 4:24:29 PM


On Jan 31, 9:24 pm, johnp <johnp3+nos...@probo.com> wrote:
> On Jan 31, 6:24 am, jo...@mit.edu wrote:
>
> > Has anyone managed to get the xilinx BSCAN primitives (for interfacing
> > with the USERx jtag registers/comands) working robustly? I've found a
> > depressing lack of information as to what the actual pins  do -- aside
> > from a (now unavailable?) techXclusive article, "Reconfiguring Block
> > RAMs - Part 1" (by Kris Chaplin, available via google cache) I can't
> > find much more info.
>
> > What's the best way to interface with this part? In particular, how do
> > you deal with the obvious synchronization/metastability issues when
> > crossing clock domains, esp. if you're hoping for a device that's
> > still small (i.e. no hardware async fifos or anything).
>
> > Thanks for any advice you can provide,
> >    ...Eric
>
> I used it recently for the 1st time to check out a JTAG interface
> block I
> was developing.  Here's the very simple code I used:
> //
> ----------------------------------------------------------------------
> //                      Xilinx BSCAN
> // This is temporary code that allows us to test out JTAG master block
> by
> // using the Xilinx JTAG block
> reg     [31:0]  bscan_data;
>
> BSCAN_SPARTAN3 u_bscan (
>     .CAPTURE                    (BSCAN_CAPTURE),
>     .DRCK1                      (BSCAN_DRCK1),
>     .DRCK2                      (),
>     .RESET                      (BSCAN_RESET),
>     .SEL1                       (BSCAN_SEL1),
>     .SEL2                       (),
>     .SHIFT                      (BSCAN_SHIFT),
>     .TDI                        (BSCAN_TDI),
>     .UPDATE                     (BSCAN_UPDATE),
>     .TDO1                       (bscan_data[0]),
>     .TDO2                       (1'b0)
> );
>
> always @(posedge BSCAN_DRCK1 or posedge BSCAN_RESET)
>     if (BSCAN_RESET)
>         bscan_data      <= 32'h87654321;
>     else if (BSCAN_SHIFT)
>         bscan_data      <= {BSCAN_TDI, bscan_data[31:1]};
>
> The code provides access to a simple shift register.  This would be
> simple
> to extend to a much more functional block, but as you point out,
> you'll
> need to take care of clock domain crossing, etc.
>
> John Providenza

Eric,
Have you seen Gnat tool ?
It is a powerful tool for communicating with FPGA through JTAG,
consisting of a VHDL core and TCL scripts to establish the
communication.

Hope this helps,
/MH

0
Reply mh 2/1/2008 10:13:37 AM

On Feb 1, 3:13 am, mh <moazzamhuss...@gmail.com> wrote:
>
> Eric,
> Have you seen Gnat tool ?
> It is a powerful tool for communicating with FPGA through JTAG,
> consisting of a VHDL core and TCL scripts to establish the
> communication.
>
> Hope this helps,
> /MH

Gnat looks like a very useful suite of tools. Unfortunately, the
article (http://www.xilinx.com/publications/xcellonline/xcell_53/
xc_jtag53.htm) was written in 2005, and the URLs to the actual
applications & libraries are all dead (the company that was hosting
them has deleted them - searching the website turns up nothing).

Nice idea though. Anyone know if the project has been moved somewhere
else?

EB
0
Reply emeb 2/1/2008 5:13:38 PM

On Fri, 1 Feb 2008 09:13:38 -0800 (PST), emeb <ebrombaugh@gmail.com>
wrote:

>On Feb 1, 3:13 am, mh <moazzamhuss...@gmail.com> wrote:
>>
>> Eric,
>> Have you seen Gnat tool ?
>> It is a powerful tool for communicating with FPGA through JTAG,
>> consisting of a VHDL core and TCL scripts to establish the
>> communication.
>>
>> Hope this helps,
>> /MH
>
>Gnat looks like a very useful suite of tools. Unfortunately, the
>article (http://www.xilinx.com/publications/xcellonline/xcell_53/
>xc_jtag53.htm) was written in 2005, and the URLs to the actual
>applications & libraries are all dead (the company that was hosting
>them has deleted them - searching the website turns up nothing).
>
>Nice idea though. Anyone know if the project has been moved somewhere
>else?
>
>EB

There seems to be  a copy here:
http://www.xess.com/appnotes/gnat_xsa_3s1000.html

0
Reply mk 2/1/2008 6:12:37 PM

On Feb 1, 11:12 pm, mk <kal*@dspia.*comdelete> wrote:
> On Fri, 1 Feb 2008 09:13:38 -0800 (PST), emeb <ebromba...@gmail.com>
> wrote:
>
>
>
> >On Feb 1, 3:13 am, mh <moazzamhuss...@gmail.com> wrote:
>
> >> Eric,
> >> Have you seen Gnat tool ?
> >> It is a powerful tool for communicating with FPGA through JTAG,
> >> consisting of a VHDL core and TCL scripts to establish the
> >> communication.
>
> >> Hope this helps,
> >> /MH
>
> >Gnat looks like a very useful suite of tools. Unfortunately, the
> >article (http://www.xilinx.com/publications/xcellonline/xcell_53/
> >xc_jtag53.htm) was written in 2005, and the URLs to the actual
> >applications & libraries are all dead (the company that was hosting
> >them has deleted them - searching the website turns up nothing).
>
> >Nice idea though. Anyone know if the project has been moved somewhere
> >else?
>
> >EB
>
> There seems to be  a copy here:http://www.xess.com/appnotes/gnat_xsa_3s1000.html

All,
I myself was confronted with such a situation and I asked this
question on this forum, and was contacted by S3 group who later sent
me the tool. I used it and found it an excellent tool.
HTH

/MH
0
Reply mh 2/4/2008 8:03:43 AM

 > I myself was confronted with such a situation and I asked this
> question on this forum, and was contacted by S3 group who later sent
> me the tool. I used it and found it an excellent tool.
> HTH

Seems the unmodified tool is still missing on the S3 site:
http://www.s3group.com/system_ic/gnat/download_gnat/

Could you upload it somewhere?
0
Reply posedge52 2/4/2008 2:22:21 PM

On Feb 4, 7:22 pm, posedg...@yahoo.com wrote:
>  > I myself was confronted with such a situation and I asked this
>
> > question on this forum, and was contacted by S3 group who later sent
> > me the tool. I used it and found it an excellent tool.
> > HTH
>
> Seems the unmodified tool is still missing on the S3 site:http://www.s3group.com/system_ic/gnat/download_gnat/
>
> Could you upload it somewhere?



Hi,
I had a correspondence with S-3 group and they allowed me to freely
distribute Gnat tool with a comment that they don't support this tool
any more.

So, Any one who need this tool may contact me directly.

/MH
0
Reply mh 2/7/2008 7:31:22 AM

On Jan 31, 2:24=A0pm, jo...@mit.edu wrote:
> Has anyone managed to get the xilinx BSCAN primitives (for interfacing
> with the USERx jtag registers/comands) working robustly? I've found a
> depressing lack of information as to what the actual pins =A0do -- aside
> from a (now unavailable?) techXclusive article, "Reconfiguring Block
> RAMs - Part 1" (by Kris Chaplin, available via google cache) I can't
> find much more info.
>
> What's the best way to interface with this part? In particular, how do
> you deal with the obvious synchronization/metastability issues when
> crossing clock domains, esp. if you're hoping for a device that's
> still small (i.e. no hardware async fifos or anything).
>
> Thanks for any advice you can provide,
> =A0 =A0...Eric

If you need a copy of this article - please let me know at chaplin
<at> xilinx <dot> com

Regards
Kris
0
Reply kjc 2/17/2008 9:28:40 PM

8 Replies
217 Views

(page loaded in 0.07 seconds)

Similiar Articles:







7/23/2012 7:29:19 AM


Reply: