( Post 83  Item 1 ) -----------------------------------------------------

   From: [ An East Coast Synopsys User ]
   Subject: Scan & Motorola's CMOS H4C Synopsys Library & a Bug!

 jcooley@sequoia.com writes:

 > job better.  It may not be as exciting as reporting a real nastey
 > bug you've found, but I think these methodologies are just as helpful
 > to the Synopsys user.   Keep sending them in!
 >                                                         -John

 Along those lines, I'm adding the following.  Please no name, company, etc.

 We're using Synopsys' register inferencing capability in our design's
 behavioral Verilog code to keep things technology independent.  

 In order to incorporate scan functionality into our designs, we've
 found that the best methodology that we've come up with so far goes
 along the lines of:

	1) Write the design in Verilog behavioral form with
	   no direct instantiating of any technology dependent macros.

	2) Run the Verilog code through Synopsys to get a gate level
	   version of the design that meets timing and area constraints.

	   (Important: infer only the simplest, most basic flip-flop
	    from the library you're using.  Preferably, a flip-flop
	    that only has a "D", "Q" and a clock.  Use the Synopsys
	    command "set_default_flip_flop_type -exact" to insure that
	    you're getting only that one simple flip-flop in your design.)

	3) Run the gate level design through a post-processor to replace
	   the simple flip-flops with scan flip-flops while hooking up
	   a scan chain throught the design.

 (A lot of people doing scan use post processors.   :^)  )

 Our problem with the Motorala CMOS H4C Synopsys library is that there's
 no simple flip-flop that we can use as a basic building block in step 2!
 Every flip-flop either has a "Q" with a "QB" ( inverted "Q" ) or, in
 the case of the scan flops, a "Q" with a "QS" ( scan "Q" ).

 What happens is that the design compiler in Synopsys uses both the "Q"
 and the "QB" (or the "QS") outputs in driving the logic within the
 design - which royally messes up our trying to do step 3!

 The workaround that we've finally settled on is that we've added
 a "simple" flip-flop to our copy of the Motorola H4C library.  (Of
 course, not everyone has access to a Synopsys Library Compiler; what
 they're to do, I don't know.)

 If I could think of a functionality that would be nice for Synopsys
 to add to there tool set, it would be a command the user could put
 on specific macros in their technology library that's something like:

		dont_use_library_macro_pin "DFFLPB/QS"

 That way, I could have used any of the H4C scan macros but disabled 
 Synopsys from using the "QS" pin to drive logic and my design post
 processor would only have to hook up the scan chain!


 P.S.  If you're going through the trouble of recompiling the Motorola
 H4C CMOS library, you may want to add functionality to the TREEBUF2,
 TREEBUF3, TREEBUF4 and TREEBUF5 macros.  Because it's accidently
 missing, Synopsys picks the worst timing arc it can find in the
 library (Good!) but chooses seemingly random functionality - sometimes
 in the Synopsys timing reports signals going through these non-functional 
 macros become inverted, sometimes not.  (Bad!)



 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)