Datorteknik TopologicalSort bild 1 To verify the structure Easy to hook together combinationals and flip-flops Harder to make it do what you want
Datorteknik TopologicalSort bild 2 To verify the structure We want to check: Does my structure contain combinatorial loops? We want to compute: What values are being computed by the structure right now? (simulation) We will need to estimate: How fast can we clock this structure (timing analysis)
Datorteknik TopologicalSort bild 3 To verify the structure These three problems are all related to each other The underlying concepts are graphtheoretical We use topological sort
Datorteknik TopologicalSort bild 4 Answer: Impossible to be sure by “inspection” We need a procedure
Datorteknik TopologicalSort bild 5 Where do we begin? At the primary inputs But... What is an input to the circuit?
Datorteknik TopologicalSort bild 6 Inputs Here’s one! It’s a “break”. There is nothing “upstream” As far backwards as we can go &
Datorteknik TopologicalSort bild 7 Is there a path through this? D Q
Datorteknik TopologicalSort bild 8 The D- flip flop Combinationally, the D-flip flop is like this: D Q
Datorteknik TopologicalSort bild 9 Branch logic Sgn/Ze extend Zero ext. ALU A B
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit B
Datorteknik TopologicalSort bild 12 The procedure Visit_line (p); Mark line For each component connected Visit_component (p) End; Visit_component (q) Mark input [save q] If all inputs marked then Calculate output For all outputs Visit_line (output) End; Main For all inputs Visit_line (value) If all lines visited then OK Else Combinatorial loop End;
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M M M 2 M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M M M 2 M M 3 M M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M M M 2 M M 3 M M M 4 M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M M M 2 M M 3 M M M 4 M M 5 M M M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A 1 M M M 2 M M 3 M M M 4 M M 5 M M M M M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit B 1 M M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit B 1 M M M 2 M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit B 1 M M M 2 M M 3 M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit B 1 M M M 2 M M 3 M M 4 M M M
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit B 1 M M M 2 M M 3 M M 4 M M M Combinational loop
Datorteknik TopologicalSort bild 26 Static timing analysis Use the topological sort procedure Use max delay as component output
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild 34 Compiled simulation Use the topological sort procedure Use logic function as component output
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A , N= , Propagate NEG INPUT 10 0 NEG POS
Datorteknik TopologicalSort bild Add one Equal? Left shift one bit A