( 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 ]
|
|