( ESNUG 290 Item 7 ) ----------------------------------------------- [5/19/98]

Subject: ( ESNUG 289 #11 ) Life Is HELL Because Xilinx Has No Damn SCAN FF's!

> A problem we have encountered is that we can't use insert_scan because
> there are no scan flip-flops in the Xilinx library.  ...  People I've
> talked to have given me some suggestions:
>
>   1.  Add a scan flip-flop to the Xilinx library.  How do I do this?
>
>   2.  Force Synopsys to create a mux in front of a normal flip-flop instead
>       of trying to use a muxed flip-flop from the library.  A rumour says
>       that an earlier version of Synopsys did this and that it is possible
>       to force it into this "old mode".  How do I do this?
>
>   3.  Create a script that "manually" inserts the muxes and add appropriate
>       attributes in order for insert-scan to work.  What attributes are
>       that and how should they be set?
>
> If someone has done this before or have any other ideas on how to do it
> I'd appreciate if you could share them on ESNUG.
>
>   - Magnus Jacobsson
>     Ericsson Radio Systems                      Kista, Sweden


From: [ Synopsys Test Compiler R&D ]

John,

I would not recommend suggestion 3.  Why I don't recommend workaround 3
(add the muxes by script, and then add attributes to guide scan hookup) is
because its more complex -- more opportunity for error.

But here's how to use the set_scan_segment command to achieve what Magnus
describes in his suggestion 2:

With the capabilities introduced in v3.4b (Hierarchical Scan), it is possible
to create a scan chain using normal flip-flops with a mux in front even when
your library does not contain scan cells.  However, this only works with a
scan style of multiplexed_flip_flop.  

Consider the following circuit:

  module sub1 ( clka,in, q ,reset);
  input   in,clka,reset;  
  wire a,b,c;
  output q; 
    assign q = a | b; 
    FD2 u3 ( .D(b), .CP(clka), .Q(a),.CD(reset ));
    FD2 u4 ( .D(in), .CP(clka), .Q(b),.CD(reset ));
  endmodule

In order for Test Compiler not to scan replace the flip-flops, define each
flip-flop as a scan segment.  The script to perform this follows:

   set_scan_configuration -style multiplexed_flip_flop
   set_scan_segment seg_u3 -access {test_scan_in u3/D, test_scan_out u3/Q}
     -contains {u3}
   set_scan_segment seg_u4 -access {test_scan_in u4/D, test_scan_out u4/Q}
     -contains {u4}

   check_test
   preview_scan -show all 
   insert_scan

Hope this helps.

  - [ Synopsys Test Compiler R&D ]



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)