random_duck
Newbie level 4

Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Did you even try analyzing the circuit before posting your homework on the forum?
Use an arbitrary output value on Q0-Q3 and !RCO, feed them back to the inputs and see what the next value would be after a clock occurs. Repeat, until the sequence repeats.
7,6,5,4,3,2,1,0,7,6,5,4...
What do you think?
[FONT=Courier New]up_dn_b == q3
ld_b == rco_b (rco_b == 0, when q[3:0] == 0 && up_dn_b == 0 || q[3:0] == 4'b1111 && up_dn_b == 1)
d3 == !q3
d2 == q2
d1 == q1
d0 == q0[/font]
ld_b has priority over up_dn_b
[FONT=Courier New]Assuming an initially condition:
(q[3:0] == 0000; so rco_b == 0 as up_dn_b == 0)
outputs | inputs
q3:0 rco_b | up_dn_b ld_b d3:0
0000 0 | 0 0 1000
1000 1 | 1 1 0000
...
...[/FONT]
No, it doesn't count that way. You have to carefully read the 74169 counter datasheet (the datasheet is pretty bad).
Here are the connections based on the schematic:
Try looking at these first two lines of the sequence and try again, if you still can't get it I'll post the entire sequence.Code:[FONT=Courier New]up_dn_b == q3 ld_b == rco_b (rco_b == 0, when q[3:0] == 0 && up_dn_b == 0 || q[3:0] == 4'b1111 && up_dn_b == 1) d3 == !q3 d2 == q2 d1 == q1 d0 == q0[/font] ld_b has priority over up_dn_b
Code:[FONT=Courier New]Assuming an initially condition: (q[3:0] == 0000; so rco_b == 0 as up_dn_b == 0) outputs | inputs q3:0 rco_b | up_dn_b ld_b d3:0 0000 0 | 0 0 1000 1000 1 | 1 1 0000 ... ...[/FONT]
That's exactly what I got. You probably got messed up with the load and up/down signals and the tricky use of the ripple-carry-out previously.
Oh yeah, Good luck on your final exam.
Since msb controls count direction 1=up,0=dn
RCO terminates the count at $f for up and $0 for dn
and msb toggles every up/down change.
I would have said.
8,9,a,b,c,d,e,f,7,6,5,4,3,2,1,0... repeating 16 counts.