Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!cs.utexas.edu!samsung!uunet!xavax!alvitar From: alvitar@xavax.com (Phillip Harbison) Newsgroups: comp.arch Subject: Re: Back to Basics, Which Flip Flop Do you use ? Message-ID: <1990May3.074336.2692@xavax.com> Date: 3 May 90 07:43:36 GMT Sender: alvitar@xavax.com Distribution: na Organization: Xavax Lines: 35 There are still some good reasons to use JK flip flops. Here are a few. [1] Most JK flops are internally symetrical. The pins J,S, and Q could just as easily have been K, R, and /Q. As a result, there is little or no skew between Q and /Q. This is useful if you are trying to divide a clock by 2 and create alternate phase clocks with minimal overlap. [2] Alot of JK flops are negative edge triggered. This can be useful if your design can't spare the extra nanoseconds for an inverter. [3] JK flops can simplify state machine logic, since the designer only must generate only the transition terms. With a D flop, one also has to generate hold terms. Take the following state machine example: Inputs: A, B, and C Notation: * = and Output: Q + = or Rules: Q -> 1 if A * B * /C, / = not Q -> 0 if /A * B * C, otherwise Q(n) = Q(n-1). Solution using a JK flip flop: J = A * B * /C K = /A * B * C Solution using a D flip flop: D = (A * B * /C) + (/(/A * B * C) * Q) or D = (A * B * /C) + ((A + /B + /C) * Q) This may not seem like much additional logic, but it gets worse with more complex state machines (this example is truly trivial). -- Live: Phil Harbison, Xavax, P.O. Box 7413, Huntsville, AL 35807 Uucp: alvitar@xavax.com Bell: 205-539-1672, 205-880-8951