L22 – Register Set Debugging
Dual Ported Register Set Narrowed the problem to the input data from the multiplexers Ref: text Unit 10, 17, 20 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU The objective Dual ported register set 2 data busses Can load or drive either bus No timing – only control To insure this unit will synthesize need to do it subcomponent by subcomponent and structurally. 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU The structural arch The architecture rough diagram 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU From last time Narrowed the problem that it was input into the register, i.e., the output of the muxes. The problem was in the control equation. Comment out all but the input decoders and the input muxes. Add to the waveform the control and output from unit m0, the mux that supplies data to register 0. 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
After modifying the control The control equation is now msel(i) <= NOT aload AND asel(i); 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
For the BBUS input selection Also working when a BBUS input 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU One thought Could it be that the equation used in the mux was part of the problem? Orig equation dataout <= linput when sel=‘1’ ELSE rinput; Tried generating an 8 bit version of sel Isel <= sel&sel& sel&sel& sel&sel& sel&sel; dataout <= (linput AND isel) OR (rinput AND NOT isel); First version was muxing the ‘Z’, 2nd version resulted in ‘X’. Problem was the control equation so orig used. 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Now the register load signal Also found a polarity error. Had a falling edge when you desired the rising edge. Fixed Now can add back the registers and run 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Results for the register output Waveform showing the register load control signal and the register contents. 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Now can add the bus drivers Uncomment the bus drivers 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU Both busses working BBUS is also working 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Does dual loading driving work? Load from ABUS Drive on BBUS 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Does not verify BBUS ability So just add another cycle to write out the BBUS reg val. ------------------------------------------------------------------- -- TEST LOADING ON ONE BUS AND DRIVING ON THE OTHER -- load a predetermined value in each register - testing of ABUS For I in 0 to 3 Loop applyNtest(load,regno(I),Vals(I),Vals(I), drive,regno(3-I),HighZ,Vals(3-I)); applyNtest(drive,regno(I),HighZ,Vals(I), load,regno(3-I),Vals(3-I),Vals(3-I)); applyNtest(idle,regno(I),HighZ,HighZ, END Loop; WAIT; 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU Results Now have an idle ABUS 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU YEAH YEAH DEMO TIME. 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
And it still synthesizes!! Synthesis results 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU Synthesis statistics Registers – 32 Pins – 24 LUTs – 60 (even though control equations are a bit more complex – why the same?) Average Fan Out – 3.6 (higher) Timing results from Quartis Set up time –from ABUS to register dataout 2.2ns Time from adrive to ABUS – 10.67 ns 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU
Copyright 2012 - Joanne DeGroat, ECE, OSU Lecture summary Have seen how to debug a 4 register location dual ported register-set. Also some information on resolved signals and units for resolved signals. 9/2/2012 – ECE 3561 Lect 9 Copyright 2012 - Joanne DeGroat, ECE, OSU