XC3000 | XC4000E | XC4000X | XC5200 | XC9000 | Spartan | SpartanXL | Virtex |
---|---|---|---|---|---|---|---|
Macro | Macro | Macro | Macro | Macro | Macro | Macro | Macro |
CD4CLE is a 4-bit (stage), synchronously loadable, asynchronously clearable, binary-coded-decimal (BCD) counter. The asynchronous clear input (CLR) is the highest priority input. When CLR is High, all other inputs are ignored; the Q outputs, terminal count (TC), and clock enable out (CEO) go to logic level zero, independent of clock transitions. The data on the D inputs is loaded into the counter when the load enable input (L) is High during the Low-to-High clock (C) transition. The Q outputs increment when clock enable input (CE) is High during the Low- to-High clock transition. The counter ignores clock transitions when CE is Low. The TC output is High when Q3 and Q0 are High and Q2 and Q1 are Low.
The counter recovers from any of six possible illegal states and returns to a normal count sequence within two clock cycles for FPGAs, as shown in the following state diagram. For XC9000, the counter resets to zero or recovers within the first clock cycle.
Larger counters are created by connecting the count enable out (CEO) output of the first stage to the CE input of the next stage and connecting the CLR, L, and C inputs in parallel. CEO is active (High) when TC and CE are High. The maximum length of the counter is determined by the accumulated CE-to-TC propagation delays versus the clock period. The clock period must be greater than n(tCE-TC), where n is the number of stages and the time tCE-TC is the CE-to-TC propagation delay of each stage. When cascading counters, use the CEO output if the counter uses the CE input; use the TC output if it does not.
The counter is asynchronously cleared, output Low, when power is applied. For CPLDs, the power-on condition can be simulated by applying a High-level pulse on the PRLD global net. FPGAs simulate power-on when global reset (GR) or global set/reset (GSR) is active. GR for XC3000 is active-Low. GR for XC5200 and GSR (XC4000, Spartans, Virtex) default to active-High but can be inverted by adding an inverter in front of the GR/GSR input of the STARTUP or STARTUP_VIRTEX symbol.
Inputs | Outputs | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
CLR | L | CE | D3 - D0 | C | Q3 | Q2 | Q1 | Q0 | TC | CEO |
1 | X | X | X | X | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | X | D3 - D0 | d3 | d2 | d1 | d0 | TC | CEO | |
0 | 0 | 1 | X | Inc | Inc | Inc | Inc | TC | CEO | |
0 | 0 | 0 | X | X | No Chg | No Chg | No Chg | No Chg | TC | 0 |
0 | 0 | 1 | X | X | 1 | 0 | 0 | 1 | 1 | 1 |
d = state of referenced input one setup time prior to active clock transition TC = Q3!Q2!Q1Q0 CEO = TCCE |
Figure 4.32 CD4CLE Implementation XC3000 |
Figure 4.33 CD4CLE Implementation XC4000, XC5200, Spartans, Virtex |
Figure 4.34 CD4CLE Implementation XC9000 |