registered datapath
play

Registered(Datapath DFFs are rising edge triggered D D LOGIC F - PDF document

Speeding(up(the(Clock The( register'to'register delay(is(usually(the( delay(path(that(sets(the(maximum(clock(rate From(a(design(point(of(view,(can(only(modify( the( combinational/logic between(the(registers


  1. Speeding(up(the(Clock • The( register'to'register delay(is(usually(the( delay(path(that(sets(the(maximum(clock(rate • From(a(design(point(of(view,(can(only(modify( the( combinational/logic between(the(registers – Need(to(shorten(the(maximum(combinational(delay( path – Setup/Hold(time(of(registers(are(fixed • Can(shorten(the(delay(by(placing(a(register(in( the(combinational(logic(to(break(longest(delay( path – This(technique(is(called( pipelining – Adds( latency to(the(output((the(number(of(clocks( between(an(input(value(and(its(corresponding( output(result) Registered(Datapath DFFs are rising edge triggered D D LOGIC F F tpd F F Clk Freq = 1/ (Tclk2q + Tpd + Tsu) Latency = 1 clk InA InB InC InD OutA OutB OutC

  2. Add(a(pipeline(stage D D LOGIC D LOGIC F F F Tpd/2 Tpd/2 F F F Clk Freq = 1/ (Tclk2q + Tpd/2 + Tsu) Latency = 2 clks InA InB InC InD OutA OutB Definitions • Initiation'Rate I Rate(at(which(new(input( values(are(accepted – Rate(at(which(new(computations(are(initiated – Minimum(initiation(rate(=(1 • Latency – Number(of( clock/cycles between(input(value(and( output(value – Adding(pipeline(stages(always(increases(latency • At(some(point,(adding(more(pipeline(stages( does(not(increase(clock(frequency(because( Tclk2q(and(Tsu(dominate(delay.

  3. Pipeline(Example byte0 32Ibit(ripple(carry(adder.(( 8-bit D add A Longest(delay(path(in(carry( CO F chain(from(byte0(to(byte3 32 F 32 CI byte1 8-bit add D CO F Sum CI 32 32 F 8-bit add byte2 B CO D F Can(I(use(pipelining(to( CI 32 F 32 8-bit speed(this(up? add byte3 CO Insert(pipeline(stage(between(byte1(and(byte2 (low 16 bits) 8-bit byte0 add A D Sum (low 16 bits) D Sum (low 16 bits) CO 16 16 F F B 16 16 F F CI 16 16 8-bit byte1 add CO D F F CI 8-bit byte2 (high 16 bits) D Sum (high 16 bits) add CO F A D 16 16 F 16 16 F CI B 8-bit F byte3 add 16 16 CO WILL/THIS/WORK/PROPERLY?

  4. Insert(pipeline(stage(between(byte1(and(byte2 (low 16 bits) 8-bit byte0 add A D Sum (low 16 bits) D Sum (low 16 bits) CO 16 16 F F B 16 16 F F CI 16 16 8-bit byte1 add CO D F F CI 8-bit byte2 (high 16 bits) D Sum (high 16 bits) add CO F A D 16 16 F 16 16 F CI B 8-bit F byte3 add 16 16 CO CLOCK/CYCLE/1 Insert(pipeline(stage(between(byte1(and(byte2 (low 16 bits) 8-bit byte0 add A D Sum (low 16 bits) D Sum (low 16 bits) CO 16 16 F F B 16 16 F F CI 16 16 8-bit byte1 add High/16'bits/ CO D registered F Using/OLD/CI/data F CI 8-bit byte2 (high 16 bits) D Sum (high 16 bits) add CO F A D 16 16 F 16 16 F CI B 8-bit F byte3 add 16 16 CO CLOCK/CYCLE/2

  5. Insert(pipeline(stage(between(byte1(and(byte2 Equalize/Delay/for (low 16 bits) 8-bit byte0 LS/16'bits/of/Sum add A D D Sum (low 16 bits) D Sum (low 16 bits) CO 16 F 16 F F B 16 16 16 F F F CI 16 16 8-bit byte1 add CO D F F CI 8-bit byte2 (high 16 bits) D Sum (high 16 bits) add CO F A D D 16 16 F 16 F 16 16 F CI B F 8-bit F byte3 16 add 16 CO Delay/all/Inputs/to/High/Order/16'bits/Same/Amount Insert(pipeline(stage(between(byte1(and(byte2 (low 16 bits) 8-bit byte0 add A D D Sum (low 16 bits) D Sum (low 16 bits) CO 16 F 16 F F B 16 16 16 F F F CI 16 16 8-bit byte1 add CO D F F CI 8-bit byte2 (high 16 bits) D Sum (high 16 bits) add CO F A D D 16 16 F 16 F 16 16 F CI B F 8-bit F byte3 16 add 16 CO

  6. Comments(on(Pipeline(Example • Note(that(the(pipeline(stage(broke(the(carry( chain(into(two(equal(paths – Each(pipeline(stage(should(have(approximately(the( same(combinational(delay – Clock(speed(will(be(set(by(the(delay(of(the(slowest( pipeline(stage • If(I(inserted(2(pipeline(stages,(I(would(need(to( break(the(carry(chain(delay(into(equal(thirds • Could(insert(a(pipeline(stage(between(each( BIT(in(order(to(get(maximum(clock(speed – Called( ‘bit/pipelining’ Latency(Tolerance • Latency(tolerance(is(dependent(upon(each( application • Frequent(flushing(of(a(pipeline((discarding( partial(results(within(the(pipeline(and(restarting( the(pipeline(with(a(new(value)((wastes(time( and(makes(an(application(latency(intolerant. • Flushing(of(a(pipeline(introduces(clock(cycles( in(which(the(results(coming(out(of(the(pipeline( are(ignored(II these(are(wasted(clock(cycles. • High(Latency(tolerance(means(that(you(can( have(many(pipeline(stages,(whatever(the( number(you(need(to(meet(the(clock(rate( specification.

  7. Two(Applications • Graphics(hardware(for(processing(pixels(is( extremely(latency(tolerant(I not(unusual(to(find( pipelines(that(have(10’s(of(stages. – Graphics(pipelines(are(never(flushed – High(clock(rate(is(EXTREMELY important(because(of( large(number(of(pixels((>(1(Million)(that(have(to(be( supplied(every(screen,(at(>(30(updates(per(second • Microprocessor(instruction(pipelines(are(not(very( latency(tolerant I most(CPU(pipelines(are(only( about(5I10(stages. – Branch(instructions(can(cause(pipeline(to(be(flushed.(( By(the(time(you(determine(direction(of(branch,(may( have(started(processing(instructions(that(should(not(be( in(the(pipeline.((These(are(flushed(and(the(pipeline( restarted. BLEND(Datapath((without(Pipelining.(( MULT(is(combinational MSB of F A * F R A 2/1 E Mux MULT G R SAT E ADDER R G B E 2/1 G Mux MULT R MSB F E 1 - F of 1-F B* (1-F) G

  8. LPM_Mult(can(be(pipelined(via(LPM_PIPELINE(parameter.( Add(one(pipeline(stage(to(LPM(Mult.((DFFs(inserted( automatically(in(LPM_MULT.(We(now(have(a(LATENCY mismatch(within(our(datapath!!!!( MSB A * F of F R A 2/1 E D Mux MULT G F R SAT F E ADDER R G B E 2/1 G D Mux MULT F 1 clk latency F R MSB F E 1 - F of 1-F B* (1-F) 0 clk latency G Correct(the(latency(mismatch(by(adding(DFFs(in(other(path( as(well.((May(have(to(break(delay(paths(in(other(places(or( add(additional(pipeline(stages(to(LPM_mult(to(meet(clock( frequency(target. MSB D A * F F of F R F A 2/1 E D Mux MULT G F R SAT F E D ADDER R G F B E F 2/1 G D Mux MULT F 1 clk latency F R MSB F E 1 - F of 1-F B* (1-F) 0 clk latency G

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend