0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
42 tayangan40 halaman
Design rules are nothing but creating trace'idth spacing between pins. Design rules are created by importing netlist into pcb design software. A Design Rule is nothing but creating %iducials and types and di%erences bet'een them1.
Design rules are nothing but creating trace'idth spacing between pins. Design rules are created by importing netlist into pcb design software. A Design Rule is nothing but creating %iducials and types and di%erences bet'een them1.
Design rules are nothing but creating trace'idth spacing between pins. Design rules are created by importing netlist into pcb design software. A Design Rule is nothing but creating %iducials and types and di%erences bet'een them1.
Library creation Board outline and mechanicals Importing netlist Design Rule settings Component Placement Routing Split plans Silkscreen and Assembly settings Gerber Settings 2. What are the inputs you need to design a PCB? We need schematic B!" and netlist #some pcb engineer generates netlist$ %rom &ard'are side and Board mechanicals %rom client i(e( board outline mounting holes etc( Another important thing that 'e need is PCB stack up it is based on comple)ity o% the board %or e)ample i% 'e are using %pga %irst 'e should kno' number o% signal layers need %or %pga signal breakout( 3. How to create footprint? *ootprint %lo' Pad stack creation Pin placement Assembly outline Silkscreen outline Place bound top #'e can mention height o% the here$ d%a bound top +o probe top Silk and assembly re%erence designator ,hese are the basic things 'e need to create a %ootprint %ollo' IPC standards %or proper guidelines( 4. Board mechanicals Dra' board outline by considering client re-uirementsplace mechanical holes and global %iducials(create route keepin and place keepin areas .uestions that can be raised %rom this Si/e o% the mechanical holes that you ha0e used in your design and clearances that you ha0e gi0en to these( What are %iducials and use o% these %iducials and types and di%%erences bet'een them1 *iducial placement and clearances( What are the clearances you ha0e gi0en %rom board outline to route and place keep in1 . What are the errors you got while importing netlist ? Pcb %ootprint not %ound pins mismatch bet'een symbol and %ootprint etc( !. How do you define design rules ? Design rules are nothing but creating trace'idth spacing0ias limitations( Generally 'e get trace 'idth and spacing details %rom stack up( &ere are some standard 0ia si/es ". How do place components ? Place ma2or components %irst i(e( connectors BGA3sma2or ICs then place other sections( a(&o' do you place connectors 1 *irst check 'eather i(e right angle or straight(I% it is right angle place at edge o% the board and consider i% there any recommendations %rom client( #.How do you plan routing and what are the parameters you consider while routing ? Placement routing plays ma2or rules in pcb design -uality o% the board depends on placement and routing good placement and routing can reduce your board %abrication cost also( Place components by considering routing strategy and %ollo' schematic %lo' once your placement is done do %an out %or all the components route high speed inter%aces and comple) areas %irst and maintain ground re%erence plane %or all high speed signals and make sure that e0ery trace has re%erence plane and try to reduce 0ias on signals 0ias can change trace characteristic impedance(
,ypes o% 4DA tools you used( Stackup details( What is characteristic impedance( What are crosstalk 2itter ske' skin e%%ect( Signal integrity concepts( What is the use o% re%erence plane1 Guidelines %or di%%erent high speed inter%aces( DDR5 routing guidelines and routing topologies( ,ypes o% 0ias and their standard si/es( About decoupling capacitors( Decoupling capacitor placement( I% you used BGA in your designs type o% BGA and number o% pins and pitch( Design for manufacturability $. %esign for Fa&rication' $.$ Board thic(ness Standard board thickness are 6(657 6(689 6(6:5 ; 6(79< inches $.2 Board si)e As per the customer re-uirement( $.3 Pad stac( $.3.$ "inimum annular ring on a non=component hole is < mils $.3.2 "inimum annular ring on a component hole is 76 mils( $.3.3 Gang mask %or 0ery %ine pitch #less than 96 mils pitch$ Components i% re-uired( $.4 *race width "inimum trace 'idth > pre%erred 6(668 inches( 6(66? inches is also possible in select areas
$. +pacing $..$ ,race > ,race "inimum > pre%erred 6(668 6(66? inches Possible in select areas( $..2 Pad > Pad "inimum > pre%erred 6(668 inches $..3 Pad > ,race "inimum > pre%erred 6(668 inches $..4 +o copper 'ithin 6(6<6 inches %rom edges o% PCB( $.! ,ia si)e
6(676 drill @ 6(67: pad Possible in select areas( $.!.2 Po'er 0ia si/e #inches$ > 6(69? Drill @ 6(6?6 pad( $." All %ine pitch components ha0e the pin numbers marked %or e0ery %i0e to tenth pins depends on the density( 2. %esign for -ssem&ly 2.$ -ssem&ly tooling holes 6(79< inches dia( &oles added in minimum three corners o% the board( ,ooling hole locate 6(7:A inches %rom the edge o% the board( 2.2 Fiducials 2.2.$ Locate minimum o% three Global %iducials #6(6?6 inches Dia$ in a ,riangular position o% the board corner( 2.2.2 Locate minimum o% t'o local %iducials #6(6?6 inches Dia$ diagonally across the perimeter o% the lo' pitch S"D components( 2.3 Component Placement 2.3.$ All components on one side pre%erable 2.3.2 All like components oriented in the same direction pre%erable 2.3.3 S"D and through hole components 6(766 inches %rom edge o% PCB 2.3.4 "a2or components 'ill be placed 'ith 9< mils grid( 2.3. Discrete3s 'ill be placed 'ith 76 mils grid( 2.3.! Bnless other'ise there is a routing re-uirement all polari/ed Components #diodes capacitors etc($ are placed 'ith a polarity "ark to'ards top or right side( 7( When &oard trace starts radiating? I ha0e no idea 'hat you are trying to ask here( 2. Propagation delay is more in which topology .stipline or microstrip/ Stripline has longer propogation delay since there is high dielectric #i(e( no air as in microstrip$ 5( &o' to decide layer stack upC &ighly dependant on number o% routes on the board controlled impedance etc( Controlled impedance 'ill typically al'ays need some type o% plane near it ?( What is signi%icance o% dielectric constant1C ,his is basically a measure o% capacitance o% the insulator material( &igher numbers imply more signal loss( . When you call signal as high speed signals? Good rule o% thumbD 'hen propagation time is much longer than the rise time then you ha0e a high speed signal !. What is the difference &etween FP0- and -+1C? *PGA is %ield programmable and ASIC is not ". What is C2B and its significance in FP0-? Con%igurable Logic Block this is the programmable parts in an *PGA like multiple)er %lip %lops adders etc( #. What is ++*2 and its ad3antages? Stub=series terminated logic( its main ad0antage is that the 0oltage s'ing is %airly lo' so it operates -uickly and the dri0er 'ill sink@source current %rom@to E,, island( 4 When to use terminations5 +eries termination when? -nd parallel termination when? ,erminations are used 'hen there is a risk o% un'anted re%lections or ringing clobbering senderFs data stream( Series termination is used 'hen increased rise@%all time is acceptable and 'hen dri0ing one load( Series is most po'er e%%icient too( Parallel termination typically has less propagation delay but more po'er( $6. %isad3antage of each termination See abo0e $$. Propagation delay of $ inch PCB trace on micro strip ,ypical 0alues are (7? ns@inch $2. What is &uried 3ia Eia is not e)posed to outer layers o% board( $3. %raw the near end cross tal( shape? $4. What is far end cross tal( and near end cross tal( +ear=endD Inter%erence bet'een t'o pairs in a cable measured at the same end o% the cable as the inter%ering transmitter( *ar=endD Inter%erence bet'een t'o pairs o% a cable measured at the other end o% the cable 'ith respect to the inter%ering transmitter( 7<( What is the band'idth o% a signalC Range o% signal %re-uencies that are passed in the signal 78( I% you increase 'idth and height o% transmission line 'hat is e%%ect on characteristic impedance #Go$C Wider trace means lo'er Go( Increasing height o% trace #i assume you mean distance %rom plane$ increases Go( 7A( I% 'e measure a cable impedance #G6H<6 ohm$ using millimeter 'hat is impedance D!nFt understand the -uestion be more speci%ic 7I( 'hat is the min band'idth o% oscilloscope re-uired to measure 766"&/ signal(C 966 "&G 7:( What is skin e%%ect C As %re-uency gets 0ery high i(e( se0eral hundreds o% "&G or into the G&G the current 'ill %lo' mostly along outsides o% the conductor1 &ere is a compilation o% the -uestions that may be asked to a PCB Design 4ngineer( Be sure to read a lot about high speed design rules layer stackup and characteristic impedance( 7$. How do you calculate the trace impedance of a PCB trace? Ans'er > ,here are many methods( A %ormula method gi0es a -uick result though it is not highly accurate( A 9D *ield sol0er gi0es more accurate result( ,he ,race impedance depends upon the 'idth o% the trace separation %rom the ground @ po'er plane and the relati0e permitti0ity o% the material 72. What is the difference &etween a &lind and &uried 3ia Ans'er =blind 0ias are used to connect an inner layer to either the top or bottom layer( A buried 0ia is used %or connecting t'o inner layers( It does not go either to the top or the bottom layer( A regular 0ia #di%%erent %rom the blind and the buried 0ia connects the top and the bottom layer and also passes through the inner layers( Do not stop here( Go ahead and dra' the diagram o% the blind and the buried 0ia( 73. What is the use of a decoupling capacitor? Ans'er > A decoupling capacitor is used to smoothen the po'er supply noise( It should be placed as close to the ICs %or 'hich it is intended as possible( 74. What is %8C? What 9ind of %8C errors you find in PCB %esign? Ans'er > DRC stands %or Design Rule checking( A PCB should not ha0e any electrical %ailure be%ore 'e tape out %or the manu%acturing( Common DRC errors include trace to pad 0iolation pad to pad 0iolation component keep out 0iolation( Additionally a PCB Design may ha0e high speed design rule related constraints( ,his may include length matching constraints di%%erential signal length matching constraint( 7. What are the things you should do you ensure design for compliance for :;1? Ans'er > We should use common mode chokes %or all cables connectors( ,he common mode chokes should be placed as close to the connector as possible( ,he Po'er and ground planes should be as close to each other as possible( ,he &igh speed signal should re%er to a ground or po'er plane and should not cross a split plane( Stitching capacitor should be used in case split plane is used( 7!.- large thermal pad is di3ided into four sections? What is the use of it? Ans'er > ,he open area bet'een the ? sections lead to escape o% the gases during the re%lo' and soldering process( It leads to better manu%acturability( 7". *he width of a trace is increased? Will its characteristic impedance increase of decrease? Ans'er > ,he Capacitance per unit length o% the trace increases and there%ore the characteristic impedance o% the trace decreases( ,erilog inter3iew <uestions and answers C"!S inter0ie' -uestions( $/ What is latch up? Latch=up pertains to a %ailure mechanism 'herein a parasitic thyristor #such as a parasitic silicon controlled recti%ier or SCR$ is inad0ertently created 'ithin a circuit causing a high amount o% current to continuously %lo' through it once it is accidentally triggered or turned on( Depending on the circuits in0ol0ed the amount o% current %lo' produced by this mechanism can be large enough to result in permanent destruction o% the de0ice due to electrical o0erstress #4!S$ 2/ why is =-=% gate preferred o3er =>8 gate for fa&rication? +A+D is a better gate %or design than +!R because at the transistor le0el the mobility o% electrons is normally three times that o% holes compared to +!R and thus the +A+D is a %aster gate( Additionally the gate=leakage in +A+D structures is much lo'er( I% you consider tJphl and tJplh delays you 'ill %ind that it is more symmetric in case o% +A+D # the delay pro%ile$ but %or +!R one delay is much higher than the other#ob0iously tJplh is higher since the higher resistance p mosFs are in series connection 'hich again increases the resistance$( 3/ What is =oise ;argin? :?plain the procedure to determine =oise ;argin ,he minimum amount o% noise that can be allo'ed on the input stage %or 'hich the output 'ill not be e%%ected( 4/ :?plain si)ing of the in3erter? In order to dri0e the desired load capacitance 'e ha0e to increase the si/e #'idth$ o% the in0erters to get an optimi/ed per%ormance( / How do you si)e =;>+ and P;>+ transistors to increase the threshold 3oltage? !/ What is =oise ;argin? :?plain the procedure to determine =oise ;argin? ,he minimum amount o% noise that can be allo'ed on the input stage %or 'hich the output 'ill not be e%%ected( "/ What happens to delay if you increase load capacitance? Delay increases( #/ What happens to delay if we include a resistance at the output of a C;>+ circuit? Increases( #RC delay$ 4/What are the limitations in increasing the power supply to reduce delay? ,he delay can be reduced by increasing the po'er supply but i% 'e do so the heating e%%ect comes because o% e)cessi0e po'er to compensate this 'e ha0e to increase the die si/e 'hich is not practical( $6/ How does 8esistance of the metal lines 3ary with increasing thic(ness and increasing length? R H # Kl$ @ A( $$/ For C;>+ logic5 gi3e the 3arious techni<ues you (now to minimi)e power consumption? Po'er dissipationHCE9% %rom this minimi/e the load capacitance dc 0oltage and the operating %re-uency( $2/ What is Charge +haring? :?plain the Charge +haring pro&lem while sampling data from a Bus? In the serially connected +"!S logic the input capacitance o% each gate shares the charge 'ith the load capacitance by 'hich the logical le0els drastically mismatched than that o% the desired once( ,o eliminate this load capacitance must be 0ery high compared to the input capacitance o% the gates #appro)imately 76 times$( $3/Why do we gradually increase the si)e of in3erters in &uffer design? Why not gi3e the output of a circuit to one large in3erter? Because it can not dri0e the output load straight a'ay so 'e gradually increase the si/e to get an optimi/ed per%ormance( $4/ What is 2atch @p? :?plain 2atch @p with cross section of a C;>+ 1n3erter. How do you a3oid 2atch @p? Latch=up is a condition in 'hich the parasitic components gi0e rise to the 4stablishment o% lo' resistance conducting path bet'een EDD and ESS 'ith Disastrous results( $/ 0i3e the e?pression for C;>+ switching power dissipation? CE9 $!/ what is Body :ffect? In general multiple "!S de0ices are made on a common substrate( As a result the substrate 0oltage o% all de0ices is normally e-ual( &o'e0er 'hile connecting the de0ices serially this may result in an increase in source=to=substrate 0oltage as 'e proceed 0ertically along the series chain #Esb7H6 Esb9 6$(Which results Eth9LEth7( $"/ Why is the su&strate in =;>+ connected to 0round and in P;>+ to ,%%? 'e try to re0erse bias not the channel and the substrate but 'e try to maintain the drainsource 2unctions re0erse biased 'ith respect to the substrate so that 'e dont loose our current into the substrate( $#/ What is the fundamental difference &etween a ;>+F:* and BA*? In "!S*4, current %lo' is either due to electrons #n=channel "!S$ or due to holes#p=channel "!S$ = In BM, 'e see current due to both the carriers(( 4lectrons and holes( BM, is a current controlled de0ice and "!S*4, is a 0oltage controlled de0ice( $4/ Which transistor has higher gain. BA* or ;>+ and why? BM, has higher gain because it has higher transconductance(,his is because the current in BM, is e)ponentially dependent on input 'here as in "!S*4, it is s-uare la'( 26/ Why do we gradually increase the si)e of in3erters in &uffer design when trying to dri3e a high capaciti3e load? Why not gi3e the output of a circuit to one large in3erter? We cannot use a big in0erter to dri0e a large output capacitance because 'ho 'ill dri0e the big in0erter1 ,he signal that has to dri0e the output cap 'ill no' see a larger gate capacitance o% the BIG in0erter( So this results in slo' raise or %all times (A unit in0erter can dri0e appro)imately an in0erter that3s ? times bigger in si/e( So say 'e need to dri0e a cap o% 8? unit in0erter then 'e try to keep the si/ing like say 7?788? so that each in0erter sees a same ratio o% output to input cap( ,his is the prime reason behind going %or progressi0e si/ing( 2$/1n C;>+ technology5 in digital design5 why do we design the si)e of pmos to &e higher than the nmos.What determines the si)e of pmos wrt nmos. *hough this is a simple <uestion try to list all the reasons possi&le? In P"!S the carriers are holes 'hose mobility is lessN aprro) hal% O than the electrons the carriers in +"!S( ,hat means P"!S is slo'er than an +"!S( In C"!S technology nmos helps in pulling do'n the output to ground ann P"!S helps in pulling up the output to Edd( I% the si/es o% P"!S and +"!S are the same then P"!S takes long time to charge up the output node( I% 'e ha0e a larger P"!S than there 'ill be more carriers to charge the node -uickly and o0ercome the slo' nature o% P"!S ( Basically 'e do all this to get e-ual rise and %all times %or the output node( 22/ Why P;>+ and =;>+ are si)ed e<ually in a *ransmission 0ates? In ,ransmission Gate P"!S and +"!S aid each other rather competing 'ith each other( ,hatFs the reason 'hy 'e need not si/e them like in C"!S( In C"!S design 'e ha0e +"!S and P"!S competing 'hich is the reason 'e try to si/e them proportional to their mobility( 23/ -ll of us (now how an in3erter wor(s. What happens when the P;>+ and =;>+ are interchanged with one another in an in3erter? I ha0e seen similar .s in some o% the discussions( I% the source ; drain also connected properly(((it acts as a bu%%er( But suppose input is logic 7 !@P 'ill be degraded 7 Similarly degraded 6P 24/- good <uestion on 2ayouts. 0i3e important %esign techni<ues you would follow when doing a 2ayout for %igital Circuits? a$In digital design decide the height o% standard cells you 'ant to layout(It depends upon ho' big your transistors 'ill be(&a0e reasonable 'idth %or EDD and G+D metal paths("aintaining uni%orm &eight %or all the cell is 0ery important since this 'ill help you use place route tool easily and also incase you 'ant to do manual connection o% all the blocks it sa0es on lot o% area( b$Bse one metal in one direction only ,his does not apply %or metal 7( Say you are using metal 9 to do hori/ontal connections then use metal 5 %or 0ertical connections metal? %or hori/ontal metal < 0ertical etc((( c$Place as many substrate contact as possible in the empty spaces o% the layout( d$Do not use poly o0er long distances as it has huge resistances unless you ha0e no other choice( e$Bse %ingered transistors as and 'hen you %eel necessary( %$,ry maintaining symmetry in your design( ,ry to get the design in BI, Sliced manner( 2/What is metasta&ility? WhenBwhy it will occur?%ifferent ways to a3oid this? "etastable stateD A un=kno'n state in bet'een the t'o logical kno'n states(,his 'ill happen i% the !@P cap is not allo'ed to charge@discharge %ully to the re-uired logical le0els( !ne o% the cases isD I% there is a setup time 0iolation metastability 'ill occur,o a0oid this a series o% **s is used #normally 9 or 5$ 'hich 'ill remo0e the intermediate states( 2!/2et - and B &e two inputs of the =-=% gate. +ay signal - arri3es at the =-=% gate later than signal B. *o optimi)e delay of the two series =;>+ inputs - and B which one would you place near to the output? ,he late coming signals are to be placed closer to the output node ie A should go to the nmos that is closer to the output( %igital design inter3iew <uestions C answers. $/ :?plain a&out setup time and hold time5 what will happen if there is setup time and hold tine 3iolation5 how to o3ercome this? Set up time is the amount o% time be%ore the clock edge that the input signal needs to be stable to guarantee it is accepted properly on the clock edge( &old time is the amount o% time a%ter the clock edge that same input signal has to be held be%ore changing it to make sure it is sensed properly at the clock edge( Whene0er there are setup and hold time 0iolations in any %lip=%lop it enters a state 'here its output is unpredictableD this state is kno'n as metastable state #-uasi stable state$P at the end o% metastable state the %lip=%lop settles do'n to either F7F or F6F( ,his 'hole process is kno'n as metastability 2/ What is s(ew5 what are pro&lems associated with it and how to minimi)e it? In circuit design clock ske' is a phenomenon in synchronous circuits in 'hich the clock signal #sent %rom the clock circuit$ arri0es at di%%erent components at di%%erent times( ,his is typically due to t'o causes( ,he %irst is a material %la' 'hich causes a signal to tra0el %aster or slo'er than e)pected( ,he second is distanceD i% the signal has to tra0el the entire length o% a circuit it 'ill likely #depending on the circuitFs si/e$ arri0e at di%%erent parts o% the circuit at di%%erent times( Clock ske' can cause harm in t'o 'ays( Suppose that a logic path tra0els through combinational logic %rom a source %lip=%lop to a destination %lip=%lop( I% the destination %lip=%lop recei0es the clock tick later than the source %lip=%lop and i% the logic path delay is short enough then the data signal might arri0e at the destination %lip=%lop be%ore the clock tick destroying there the pre0ious data that should ha0e been clocked through( ,his is called a hold 0iolation because the pre0ious data is not held long enough at the destination %lip=%lop to be properly clocked through( I% the destination %lip=%lop recei0es the clock tick earlier than the source %lip=%lop then the data signal has that much less time to reach the destination %lip=%lop be%ore the ne)t clock tick( I% it %ails to do so a setup 0iolation occurs so=called because the ne' data 'as not set up and stable be%ore the ne)t clock tick arri0ed( A hold 0iolation is more serious than a setup 0iolation because it cannot be %i)ed by increasing the clock period( Clock ske' i% done right can also bene%it a circuit( It can be intentionally introduced to decrease the clock period at 'hich the circuit 'ill operate correctly and@or to increase the setup or hold sa%ety margins( ,he optimal set o% clock delays is determined by a linear program in 'hich a setup and a hold constraint appears %or each logic path( In this linear program /ero clock ske' is merely a %easible point( Clock ske' can be minimi/ed by proper routing o% clock signal #clock distribution tree$ or putting 0ariable delay bu%%er so that all clock inputs arri0e at the same time 3/ What is slac(? FSlackF is the amount o% time you ha0e that is measured %rom 'hen an e0ent Factually happensF and 'hen it Fmust happenF(( ,he term Factually happensF can also be taken as being a predicted time %or 'hen the e0ent 'ill Factually happenF( When something Fmust happenF can also be called a FdeadlineF so another de%inition o% slack 'ould be the time %rom 'hen something Factually happensF #call this ,act$ until the deadline #call this ,dead$( Slack H ,dead = ,act( +egati0e slack implies that the Factually happenF time is later than the FdeadlineF time(((in other 'ords itFs too late and a timing 0iolation((((you ha0e a timing problem that needs some attention( 4/ What is glitch? What causes it .e?plain with wa3eform/? How to o3ercome it? ,he %ollo'ing %igure sho's a synchronous alternati0e to the gated clock using a data path( ,he %lip=%lop is clocked at e0ery clock cycle and the data path is controlled by an enable( When the enable is Lo' the multiple)er %eeds the output o% the register back on itsel%( When the enable is &igh ne' data is %ed to the %lip=%lop and the register changes its state / 0i3en only two ?or gates one must function as &uffer and another as in3erter? ,ie one o% )or gates input to 7 it 'ill act as in0erter( ,ie one o% )or gates input to 6 it 'ill act as bu%%er( !/ What is difference &etween latch and flipflop? ,he main di%%erence bet'een latch and ** is that latches are le0el sensiti0e 'hile ** are edge sensiti0e( ,hey both re-uire the use o% clock signal and are used in se-uential logic( *or a latch the output tracks the input 'hen the clock signal is high so as long as the clock is logic 7 the output can change i% the input also changes( ** on the other hand 'ill store the input only 'hen there is a rising@%alling edge o% the clock( "/ Build a 4'$ mu? using only 2'$ mu?? Di%%erence bet'een heap and stack1 ,he Stack is more or less responsible %or keeping track o% 'hatFs e)ecuting in our code #or 'hatFs been CcalledC$( ,he &eap is more or less responsible %or keeping track o% our ob2ects #our data 'ell((( most o% it = 'eFll get to that later($( ,hink o% the Stack as a series o% bo)es stacked one on top o% the ne)t( We keep track o% 'hatFs going on in our application by stacking another bo) on top e0ery time 'e call a method #called a *rame$( We can only use 'hatFs in the top bo) on the stack( When 'eFre done 'ith the top bo) #the method is done e)ecuting$ 'e thro' it a'ay and proceed to use the stu%% in the pre0ious bo) on the top o% the stack( ,he &eap is similar e)cept that its purpose is to hold in%ormation #not keep track o% e)ecution most o% the time$ so anything in our &eap can be accessed at any time( With the &eap there are no constraints as to 'hat can be accessed like in the stack( ,he &eap is like the heap o% clean laundry on our bed that 'e ha0e not taken the time to put a'ay yet = 'e can grab 'hat 'e need -uickly( ,he Stack is like the stack o% shoe bo)es in the closet 'here 'e ha0e to take o%% the top one to get to the one underneath it( 4/ %ifference &etween mealy and moore state machine? A$ "ealy and "oore models are the basic models o% state machines( A state machine 'hich uses only 4ntry Actions so that its output depends on the state is called a "oore model( A state machine 'hich uses only Input Actions so that the output depends on the state and also on inputs is called a "ealy model( ,he models selected 'ill in%luence a design but there are no general indications as to 'hich model is better( Choice o% a model depends on the application e)ecution means #%or instance hard'are systems are usually best reali/ed as "oore models$ and personal pre%erences o% a designer or programmer B$ "ealy machine has outputs that depend on the state and input #thus the *S" has the output 'ritten on edges$ "oore machine has outputs that depend on state only #thus the *S" has the output 'ritten in the state itsel%( Ad0 and Disad0 In "ealy as the output 0ariable is a %unction both input and state changes o% state o% the state 0ariables 'ill be delayed 'ith respect to changes o% signal le0el in the input 0ariables there are possibilities o% glitches appearing in the output 0ariables( "oore o0ercomes glitches as output dependent on only states and not the input signal le0el( All o% the concepts can be applied to "oore=model state machines because any "oore state machine can be implemented as a "ealy state machine although the con0erse is not true( "oore machineD the outputs are properties o% states themsel0es((( 'hich means that you get the output a%ter the machine reaches a particular state or to get some output your machine has to be taken to a state 'hich pro0ides you the output(,he outputs are held until you go to some other state "ealy machineD "ealy machines gi0e you outputs instantly that is immediately upon recei0ing input but the output is not held a%ter that clock cycle( $6/ %ifference &etween onehot and &inary encoding? Common classi%ications used to describe the state encoding o% an *S" are Binary #or highly encoded$ and !ne hot( A binary=encoded *S" design only re-uires as many %lip=%lops as are needed to uni-uely encode the number o% states in the state machine( ,he actual number o% %lip=%lops re-uired is e-ual to the ceiling o% the log=base=9 o% the number o% states in the *S"( A onehot *S" design re-uires a %lip=%lop %or each state in the design and only one %lip=%lop #the %lip=%lop representing the current or ChotC state$ is set at a time in a one hot *S" design( *or a state machine 'ith := 78 states a binary *S" only re-uires ? %lip=%lops 'hile a onehot *S" re-uires a %lip=%lop %or each state in the design *PGA 0endors %re-uently recommend using a onehot state encoding style because %lip=%lops are plenti%ul in an *PGA and the combinational logic re-uired to implement a onehot *S" design is typically smaller than most binary encoding styles( Since *PGA per%ormance is typically related to the combinational logic si/e o% the *PGA design onehot *S"s typically run %aster than a binary encoded *S" 'ith larger combinational logic blocks $$/ What are different ways to synchroni)e &etween two cloc( domains? $2/ How to calculate ma?imum operating fre<uency? $3/ How to find out longest path? Qou can %ind ans'er to this in timing(ppt o% presentations section on this site $4/ %raw the state diagram to output a D$D for one cycle if the se<uence D6$$6D sho's up #the leading 6s cannot be used in more than one se-uence$1 $/ How to achie3e $#6 deree e?act phase shift? +e0er tell using in0erter a$ dcmFs an inbuilt resource in most o% %pga can be con%igured to get 7I6 degree phase shi%t( b$ Bu%gds that is di%%erential signaling bu%%ers 'hich are also inbuilt resource o% most o% *PGA can be used( $!/ What is significance of ras and cas in +%8-;? SDRA" recei0es its address command in t'o address 'ords( It uses a multiple) scheme to sa0e input pins( ,he %irst address 'ord is latched into the DRA" chip 'ith the ro' address strobe #RAS$( *ollo'ing the RAS command is the column address strobe #CAS$ %or latching the second address 'ord( Shortly a%ter the RAS and CAS strobes the stored data is 0alid %or reading( $"/ *ell some of applications of &uffer? a$,hey are used to introduce small delays b$,hey are used to eliminate cross talk caused due to inter electrode capacitance due to close routing( c$,hey are used to support high %anoutegDbu%g $#/ 1mplement an -=% gate using mu?? ,his is the basic -uestion that many inter0ie'ers ask( %or and gate gi0e one input as select line incase i% u r gi0ing b as select line connect one input to logic F6F and other input to a( 7:$ What 'ill happen i% contents o% register are shi%ter le%t right1 It is 'ell kno'n that in le%t shi%t all bits 'ill be shi%ted le%t and LSB 'ill be appended 'ith 6 and in right shi%t all bits 'ill be shi%ted right and "SB 'ill be appended 'ith 6 this is a straight%or'ard ans'er What is e)pected is in a le%t shi%t 0alue gets "ultiplied by 9 egDconsider 6666J7776H7? a le%t shi%t 'ill make it 6667J776H9I it the same %ashion right shi%t 'ill Di0ide the 0alue by 9( 26/ 0i3en the following F1F> and rules5 how deep does the F1F> need to &e to pre3ent underflow or o3erflow? RBL4SD 7$ %re-uency#clkJA$ H %re-uency#clkJB$ @ ? 9$ period#enJB$ H period#clkJA$ K 766 5$ dutyJcycle#enJB$ H 9<R Assume clkJB H 766"&/ #76ns$ *rom #7$ clkJA H 9<"&/ #?6ns$ *rom #9$ period#enJB$ H ?6ns K ?66 H ?666ns but 'e only output %or 7666nsdue to #5$ so 5666ns o% the enable 'e are doing no output 'ork( ,here%ore *I*! si/e H 5666ns@?6ns H A< entries 2$/ %esign a fourEinput =-=% gate using only twoEinput =-=% gates. AD Basically you can tie the inputs o% a +A+D gate together to get an in0erter so((( 22/ %ifference &etween +ynchronous and -synchronous reset? Synchronous reset logic 'ill synthesi/e to smaller %lip=%lops particularly i% the reset is gated 'ith the logic generating the d=input( But in such a case the combinational logic gate count gro's so the o0erall gate count sa0ings may not be that signi%icant( ,he clock 'orks as a %ilter %or small reset glitchesP ho'e0er i% these glitches occur near the acti0e clock edge the *lip=%lop could go metastable( In some designs the reset must be generated by a set o% internal conditions( A synchronous reset is recommended %or these types o% designs because it 'ill %ilter the logic e-uation glitches bet'een clocks( Disad0antages o% synchronous resetD Problem 'ith synchronous resets is that the synthesis tool cannot easily distinguish the reset signal %rom any other data signal( Synchronous resets may need a pulse stretcher to guarantee a reset pulse 'idth 'ide enough to ensure reset is present during an acti0e edge o% the clock Ni% you ha0e a gated clock to sa0e po'er the clock may be disabled coincident 'ith the assertion o% reset( !nly an asynchronous reset 'ill 'ork in this situation as the reset might be remo0ed prior to the resumption o% the clock( Designs that are pushing the limit %or data path timing cannot a%%ord to ha0e added gates and additional net delays in the data path due to logic inserted to handle synchronous resets( Asynchronous resetD ,he biggest problem 'ith asynchronous resets is the reset release also called reset remo0al( Bsing an asynchronous reset the designer is guaranteed not to ha0e the reset added to the data path( Another ad0antage %a0oring asynchronous resets is that the circuit can be reset 'ith or 'ithout a clock present( Disad0antages o% asynchronous resetD ensure that the release o% the reset can occur 'ithin one clock period( i% the release o% the reset occurred on or near a clock edge such that the %lip=%lops 'ent metastable( 23/ Why are most interrupts acti3e low? ,his ans'ers 'hy most signals are acti0e lo' I% you consider the transistor le0el o% a module acti0e lo' means the capacitor in the output terminal gets charged or discharged based on lo' to high and high to lo' transition respecti0ely( 'hen it goes %rom high to lo' it depends on the pull do'n resistor that pulls it do'n and it is relati0ely easy %or the output capacitance to discharge rather than charging( hence people pre%er using acti0e lo' signals( 24/ 0i3e two ways of con3erting a two input =-=% gate to an in3erter? #a$ short the 9 inputs o% the nand gate and apply the single input to it( #b$ Connect the output to one o% the input and the other to the input signal( 2/ What are set up time C hold time constraints? What do they signify? Which one is critical for estimating ma?imum cloc( fre<uency of a circuit? set up timeD = the amount o% time the data should be stable be%ore the application o% the clock signal 'here as the hold time is the amount o% time the data should be stable a%ter the application o% the clock( Setup time signi%ies ma)imum delay constraintsP hold time is %or minimum delay constraints( Setup time is critical %or establishing the ma)imum clock %re-uency( 2!/ %ifferences &etween %E2atch and % flipEflop? D=latch is le0el sensiti0e 'hereas %lip=%lop is edge sensiti0e( *lip=%lops are made up o% latches( 2"/ What is a multiple?er? Is combinational circuit that selects binary in%ormation %rom one o% many input lines and directs it to a single output line( #9n HLn$( 2#/ How can you con3ert an +8 FlipEflop to a A9 FlipEflop? By gi0ing the %eedback 'e can con0ert i(e S.HLS and .HLR( &ence the S and R inputs 'ill act as M and T respecti0ely( 24/ How can you con3ert the A9 FlipEflop to a % FlipEflop? By connecting the M input to the T through the in0erter( 36/ What is 8aceEaround pro&lem? How can you rectify it? ,he clock pulse that remains in the 7 state 'hile both M and T are e-ual to 7 'ill cause the output to complement again and repeat complementing until the pulse goes back to 6 this is called the race around problem( ,o a0oid this undesirable operation the clock pulse must ha0e a time duration that is shorter than the propagation delay time o% the *=* this is restricti0e so the alternati0e is master= sla0e or edge=triggered construction( 3$/How do you detect if two #E&it signals are same? U!R each bits o% A 'ith B #%or e(g( AN6O )or BN6O $ and so on(the o@p o% I )or gates are then gi0en as i@p to an I=i@p nor gate( i% o@p is 7 then AHB( 32/" &it ring counterFs initial state is 6$666$6. -fter how many cloc( cycles will it return to the initial state? 8 cycles 33/ Con3ert %EFF into di3ide &y 2. .not latch/ What is the ma? cloc( fre<uency the circuit can handle5 gi3en the following information? ,JsetupH 8nS ,Jhold H 9nS ,Jpropagation H 76nS CircuitD Connect .bar to D and apply the clk at clk o% D** and take the !@P at .( It gi0es %re-@9( "a)( *re- o% operationD 7@ #propagation delayVsetup time$ H 7@78ns H 89(< "&/ 34/0uys this is the &asic <uestion as(ed most fre<uently. %esign all the &asic gates.=>*5-=%5>85=-=%5=>85G>85G=>8/ using 2'$ ;ultiple?er? Bsing 9D7 "u) #9 inputs 7 output and a select line$ #a$ +!, Gi0e the input at the select line and connect I6 to 7 ; I7 to 6( So i% A is 7 'e 'ill get I7 that is 6 at the !@P( #b$ A+D Gi0e input A at the select line and 6 to I6 and B to I7( !@p is A ; B #c$ !R Gi0e input A at the select line and 7 to I7 and B to I6( !@p 'ill be A W B #d$ +A+D A+D V +!, implementations together #e$ +!R !R V +!, implementations together #%$ U!R A at the select line B at I6 and XB at I7( XB can be obtained %rom #a$ #g$ U+!R A at the select line B at I7 and XB at I6 3/= num&er of G=>8 gates are connected in series such that the = inputs .-65-$5-2....../ are gi3en in the following way' -6 C -$ to first G=>8 gate and -2 C >BP of First G=>8 to second G=>8 gate and so on..... =th G=>8 gates output is final output. How does this circuit wor(? :?plain in detail? I% +H!dd the circuit acts as e0en parity detector ie the output 'ill 7 i% there are e0en number o% 7Fs in the + input(((,his could also be called as odd parity generator since 'ith this additional 7 as output the total number o% 7Fs 'ill be !DD( I% +H40en 2ust the opposite it 'ill be !dd parity detector or 40en Parity Generator( 58$ An assembly line has 5 %ail sa%e sensors and one emergency shutdo'n s'itch( ,he line should keep mo0ing unless any o% the %ollo'ing conditions ariseD #i$ I% the emergency s'itch is pressed #ii$ I% the senor7 and sensor9 are acti0ated at the same time( #iii$ I% sensor 9 and sensor5 are acti0ated at the same time( #i0$ I% all the sensors are acti0ated at the same time Suppose a combinational circuit %or abo0e case is to be implemented only 'ith +A+D Gates( &o' many minimum number o% 9 input +A+D gates are re-uired1 +o o% 9=input +A+D Gates re-uired H 8 Qou can try the 'hole implementation( 5A$ Design a circuit that calculates the s-uare o% a number1 It should not use any multiplier circuits( It should use "ultiple)ers and other logic1 ,his is interesting(((( 7Y9H6V7H7 9Y9H7V5H? 5Y9H?V<H: ?Y9H:VAH78 <Y9H78V:H9< and so on( See a pattern yet1,o get the ne)t s-uare all you ha0e to do is add the ne)t odd number to the pre0ious s-uare that you %ound(See ho' 75<A and %inally : are added( WouldnFt this be a possible solution to your -uestion since it only 'ill use a counter multiple)er and a couple o% adders1 It seems it 'ould take n clock cycles to calculate s-uare o% n( 5I$ &o' 'ill you implement a *ull subtractor %rom a *ull adder1 All the bits o% subtrahend should be connected to the )or gate( !ther input to the )or being one(,he input carry bit to the %ull adder should be made 7( ,hen the %ull adder 'orks like a %ull subtractor 34/- 3ery good inter3iew <uestion... What is difference &etween setup and hold time. ,he inter0ie'er 'as looking %or one speci%ic reason and its really a good ans'er too((,he hint is hold time doesnFt depend on clock 'hy is it so(((1 Setup 0iolations are related to t'o edges o% clock i mean you can 0ary the clock %re-uency to correct setup 0iolation( But %or hold time you are only concerned 'ith one edge and does not basically depend on clock %re-uency( 46/ 1n a 3E&it AohnsonFs counter what are the unused states? 9#po'er n$=9n is the one used to %ind the unused states in 2ohnson counter( So %or a 5=bit counter it is I=8H9(Bnused statesH9( the t'o unused states are 676 and 767 ?7$ ,he -uestion is to design minimal hard'are system 'hich encrypts I=bit parallel data( A synchroni/ed clock is pro0ided to this system as 'ell( ,he output encrypted data should be at the same rate as the input data but no necessarily 'ith the same phase( ,he encryption system is centered around a memory de0ice that per%orm a LB, #Look=Bp ,able$ con0ersion( ,his memory %unctionality can be achie0ed by using a PR!" 4PR!" *LAS& and etc( ,he de0ice contains an encryption code 'hich may be burned into the de0ice 'ith an e)ternal programmer( In encryption operation the dataJin is an address pointer into a memory cell and the combinatorial logic generates the control signals( ,his creates a read access %rom the memory( ,hen the memory de0ice goes to the appropriate address and outputs the associate data( ,his data represent the dataJin a%ter encryption( ?7$ What is an L*SR (List a %e' o% its industry applications(1 L*SR is a linear %eedback shi%t register 'here the input bit is dri0en by a linear %unction o% the o0erall shi%t register 0alue( Coming to industrial applications as %ar as I kno' it is used %or encryption and decryption and in BIS,#built=in=sel%=test$ based applications(( 42/ What is false path?how it determine in c(t? What the effect of false path in c(t? By timing all the paths in the circuit the timing analy/er can determine all the critical paths in the circuit( &o'e0er the circuit may ha0e %alse paths 'hich are the paths in the circuit 'hich are ne0er e)ercised during normal circuit operation %or any set o% inputs( An e)ample o% a %alse path is sho'n in %igure belo'( ,he path going %rom the input A o% the %irst "BU through the combinational logic out through the B input o% the second "BS is a %alse path( ,his path can ne0er be acti0ated since i% the A input o% the %irst "BU is acti0ated then Sel line 'ill also select the A input o% the second "BU( S,A #Static ,iming Analysis$ tools are able to identi%y simple %alse pathsP ho'e0er they are not able to identi%y all the %alse paths and sometimes report %alse paths as critical paths( Remo0al o% %alse paths makes circuit testable and its timing per%ormance predictable #sometimes %aster$ 43/Consider two similar processors5 one with a cloc( s(ew of $66ps and other with a cloc( s(ew of 6ps. Which one is li(ely to ha3e more power? Why? Clock ske' o% <6ps is more likely to ha0e clock po'er( ,his is because it is likely that lo'=ske' processor has better designed clock tree 'ith more po'er%ul and number o% bu%%ers and o0erheads to make ske' better( 44/ What are multiEcycle paths? "ulti=cycle paths are paths bet'een registers that take more than one clock cycle to become stable( *or e)( Analy/ing the design sho'n in %ig belo' sho's that the output SI+@C!S re-uires ? clock=cycles a%ter the input A+GL4 is latched in( ,his means that the combinatorial block #the Bnrolled Cordic$ can take up to ? clock periods #9<"&/$ to propagate its result( Place and Route tools are capable o% %i)ing multi=cycle paths problem( 4/Hou ha3e two counters counting upto $!5 &uilt from negedge %FF 5 First circuit is synchronous and second is DrippleD .cascading/5 Which circuit has a less propagation delay? Why? ,he synchronous counter 'ill ha0e lesser delay as the input to each %lop is readily a0ailable be%ore the clock edge( Whereas the cascade counter 'ill take long time as the output o% one %lop is used as clock to the other( So the delay 'ill be propagating( *or 4gD 78 state counter H ? bit counter H ? *lip %lops Let 76ns be the delay o% each %lop ,he 'orst case delay o% ripple counter H 76 K ? H ?6ns ,he delay o% synchronous counter H 76ns only(#Delay o% 7 %lop$ 4!/ what is difference &etween 8-; and F1F>? *I*! does not ha0e address lines Ram is used %or storage purpose 'here as %i%o is used %or synchroni/ation purpose i(e( 'hen t'o peripherals are 'orking in di%%erent clock domains then 'e 'ill go %or %i%o( 4"/*he circle can rotate cloc(wise and &ac(. @se minimum hardware to &uild a circuit to indicate the direction of rotating.? 9 sensors are re-uired to %ind out the direction o% rotating( ,hey are placed like at the dra'ing( !ne o% them is connected to the data input o% D %lip=%lopand a second one = to the clock input( I% the circle rotates the 'ay clock sensor sees the light %irst 'hile D input #second sensor$ is /ero = the output o% the %lip=%lop e-uals /ero and i% D input sensor C%iresC %irst = the output o% the %lip=%lop becomes high( 4#/ %raw timing diagrams for following circuit.? 44/1mplement the following circuitsD #a$ 5 input +A+D gate using min no o% 9 input +A+D Gates #b$ 5 input +!R gate using min no o% 9 inpur +!R Gates #c$ 5 input U+!R gate using min no o% 9 inpur U+!R Gates Assuming 5 inputs ABC1 5 input +A+DD Connect D a$ A and B to the %irst +A+D gate b$ !utput o% %irst +and gate is gi0en to the t'o inputs o% the second +A+D gate #this basically reali/es the in0erter %unctionality$ c$ !utput o% second +A+D gate is gi0en to the input o% the third +A+D gate 'hose other input is C ##A +A+D B$ +A+D #A +A+D B$$ +A+D C ,hus can be implemented using F5F 9=input +A+D gates( I guess this is the minimum number o% gates that need to be used( 5 input +!RD Same as abo0e 2ust interchange +A+D 'ith +!R ##A +!R B$ +!R #A +!R B$$ +!R C 5 input U+!RD Same as abo0e e)cept the inputs %or the second U+!R gate !utput o% the %irst U+!R gate is one o% the inputs and connect the second input to ground or logical F6F ##A U+!R B$ U+!R 6$$ U+!R C <6$ Is it possible to reduce clock ske' to /ero1 4)plain your ans'er 1 40en though there are clock layout strategies #&=tree$ that can in theory reduce clock ske' to /ero by ha0ing the same path length %rom each %lip=%lop %rom the pll process 0ariations in R and C across the chip 'ill cause clock ske' as 'ell as a pure &=,ree scheme is not practical #consumes too much area$( $/%esign a F+; .Finite +tate ;achine/ to detect a se<uence $6$$6? 2/Con3ert %EFF into di3ide &y 2. .not latch/? What is the ma? cloc( fre<uency of the circuit 5 gi3en the following information? ,JsetupH 8nS ,Jhold H 9nS ,Jpropagation H 76nS CircuitD Connect .bar to D and apply the clk at clk o% D** and take the !@P at .( It gi0es %re-@9( "a)( *re- o% operationD 7@ #propagation delayVsetup time$ H 7@78ns H 89(< "&/ 3/0i3e the circuit to e?tend the falling edge of the input &y 2 cloc( pulses? *he wa3eforms are shown in the following figure. 4/ For the Circuit +hown &elow5 What is the ;a?imum Fre<uency of >peration? -re there any hold time 3iolations for FF2? 1f yes5 how do you modify the circuit to a3oid them? ,he minimum time period H 5V9V#7V7V7$ H Ins "a)imum *re-uency H 7@InH 79<"&/( And there is a hold time 0iolation in the circuit because o% %eedback i% you obser0e tc-9VA+D gate delay is less than thold9,o a0oid this 'e need to use e0en number o% in0erters#bu%%ers$( &ere 'e need to use 9 in0erters each 'ith a delay o% 7ns( then the hold time 0alue e)actly meets( /%esign a %Elatch using .a/ using 2'$ ;u? .&/ from +E8 2atch ? !/How to implement a ;aster +la3e flip flop using a 2 to $ mu?? "/how many 2 input ?orFs are needed to inplement $! input parity generator ? It is al'ays n=7 Where n is number o% inputs(So 78 input parity generator 'ill re-uire 7< t'o input )orFs ( #/%esign a circuit for finding the 4Fs compliment of a BC% num&er using 4E &it &inary adder and some e?ternal logic gates? :Fs compliment is nothing but subracting the gi0en no %rom :(So using a ? bit binary adder 'e can 2ust subract the gi0en binary no %rom 7667#i(e( :$(&ere 'e can use the 9Fs compliment method addition( 4/ What is %ifference &etween write&ac( and write through cache? A caching method in 'hich modi%ications to data in the cache arenFt copied to the cache source until absolutely necessary( Write=back caching is a0ailable on many microprocessors including all Intel processors since the I6?I8( With these microprocessors data modi%ications to data stored in the L7 cache arenFt copied to main memory until absolutely necessary( In contrast a 'rite=through cache per%orms all 'rite operations in parallel == data is 'ritten to main memory and the L7 cache simultaneously( Write=back caching yields some'hat better per%ormance than 'rite=through caching because it reduces the number o% 'rite operations to main memory( With this per%ormance impro0ement comes a slight risk that data may be lost i% the system crashes( A 'rite=back cache is also called a copy=back cache( !6/%ifference &etween +ynchronous5 -synchronous C 1synchronous communication? Sending data encoded into your signal re-uires that the sender and recei0er are both using the same encoding@decoding method and kno' 'here to look in the signal to %ind data( Asynchronous systems do not send separate in%ormation to indicate the encoding or clocking in%ormation( ,he recei0er must decide the clocking o% the signal on its o'n( ,his means that the recei0er must decide 'here to look in the signal stream to %ind ones and /eroes and decide %or itsel% 'here each indi0idual bit stops and starts( ,his in%ormation is not in the data in the signal sent %rom transmitting unit( Synchronous systems negotiate the connection at the data=link le0el be%ore communication begins( Basic synchronous systems 'ill synchroni/e t'o clocks be%ore transmission and reset their numeric counters %or errors etc( "ore ad0anced systems may negotiate things like error correction and compression( ,ime=dependent( it re%ers to processes 'here data must be deli0ered 'ithin certain time constraints( *or e)ample "ultimedia stream re-uire an isochronous transport mechanism to ensure that data is deli0ered as %ast as it is displayed and to ensure that the audio is synchroni/ed 'ith the 0ideo( !$/ What are different ways ;ultiply C %i3ide? Set -uotient to /ero Repeat 'hile di0idend is greater than or e-ual to di0isor Subtract di0isor %rom di0idend Add 7 to -uotient 4nd o% repeat block -uotient is correct di0idend is remainder S,!P Binary Di0ision by Shi%t and Subtract Basically the re0erse o% the mutliply by shi%t and add( Set -uotient to 6 Align le%tmost digits in di0idend and di0isor Repeat I% that portion o% the di0idend abo0e the di0isor is greater than or e-ual to the di0isor ,hen subtract di0isor %rom that portion o% the di0idend and Concatenate 7 to the right hand end o% the -uotient 4lse concatenate 6 to the right hand end o% the -uotient Shi%t the di0isor one place right Bntil di0idend is less than the di0isor -uotient is correct di0idend is remainder S,!P Binary "ultiply = Repeated Shi%t and Add Repeated shi%t and add = starting 'ith a result o% 6 shi%t the second multiplicand to correspond 'ith each 7 in the %irst multiplicand and add to the result( Shi%ting each position le%t is e-ui0alent to multiplying by 9 2ust as in decimal representation a shi%t le%t is e-ui0alent to multiplying by 76( Set result to 6 Repeat Shi%t 9nd multiplicand le%t until rightmost digit is lined up 'ith le%tmost 7 in %irst multiplicand Add 9nd multiplicand in that position to result Remo0e that 7 %rom 7st multiplicand Bntil 7st multiplicand is /ero Result is correct S,!P !2/What is a +oC .+ystem >n Chip/5 -+1C5 Dfull custom chipD5 and an FP0-? ,here are no precise de%initions( &ere is my sense o% it all( *irst 7< years ago people 'ere unclear on e)actly 'hat ELSI meant( Was it <6666 gates1 766666 gates1 'as is 2ust anything bigger than LSI1 "y pro%essor simply told me thatP ELSI is a le0el o% comple)ity and integration in a chip that demands 4lectronic Design Automation tools in order to succeed( In other 'ords big enough that manually dra'ing lots o% little blue red and green lines is too much %or a human to reasonably do( I think that like'ise SoC is that le0el o% integration onto a chip that demands more e)pertise beyond traditional skills o% electronics( In other 'ords pulling o%% a SoC demands &ard'are So%t'are and Systems 4ngineering talent( So tri0ially SoCs aggressi0ely combine &W@SW on a single chip( "aybe more pragmatically SoC 2ust means that ASIC and So%t'are %olks are learning a little bit more about each otherFs techni-ues and tools than they did be%ore( ,'o other interpretations o% SoC are 7$ a chip that integrates 0arious IP #Intellectual Property$ blocks on it and is thus highly centered 'ith issues like Reuse and 9$ a chip integrating multiple classes o% electronic circuitry such as Digital C"!S mi)ed=signal digital and analog #e(g( sensors modulators A@Ds$ DRA" memory high 0oltage po'er etc( ASIC stands %or CApplication Speci%ic Integrated CircuitC( A chip designed %or a speci%ic application( Bsually I think people associate ASICs 'ith the Standard Cell design methodology( Standard Cell design and the typical CASIC %lo'C usually means that designers are using &ard'are Description Languages Synthesis and a library o% primiti0e cells #e(g( libraries containing A+D +A+D !R +!R +!, *LIP=*L!P LA,C& ADD4R BB**4R PAD cells that are 'ired together #real libraries are not this simple but you get the idea(($( Design usually is +!, done at a transistor le0el( ,here is a high reliance on automated tools because the assumption is that the chip is being made %or a SP4CI*IC APPLICA,I!+ 'here time is o% the essence( But the chip is manu%actured %rom scratch in that no pre=made circuitry is being programmed or reused( ASIC designer may or may not e0en be a'are o% the locations o% 0arious pieces o% circuitry on the chip since the tools do much o% the construction placement and 'iring o% all the little pieces( *ull Custom in contrast to ASIC #or Standard Cell$ means that e0ery geometric %eature going onto the chip being designed #think o% those pretty chip pictures 'e ha0e all seen$ is controlled more or less by the human design( Automated tools are certainly used to 'ire up di%%erent parts o% the circuit and maybe e0en manipulate #repeat rotate etc($ sections o% the chip( But the human designer is acti0ely engaged 'ith the physical %eatures o% the circuitry( &igher human cra%ting and less reliance on standard cells takes more time and implies higher +R4 costs but lo'ers R4 costs %or standard parts like memories processors uarts etc( *PGAs or *ield Programmable Gate Arrays are completely designed chips that designers load a programming pattern into to achie0e a speci%ic digital %unction( A bit pattern #almost like a so%t'are program$ is loaded into the already manu%actured de0ice 'hich essentially interconnects lots o% a0ailable gates to meet the designers purposes( *PGAs are sometimes thought o% as a CSea o% GatesC 'here the designer speci%ies ho' they are connected( *PGA designers o%ten use many o% the same tools that ASIC designers use e0en though the *PGA is inherently more %le)ible( All these things can be intermi)ed in hybrid sorts o% 'ays( *or e)ample *PGAs are no' a0ailable that ha0e microprocessor embedded 'ithin them 'hich 'ere designed in a %ull custom manner all o% 'hich no' demands CSoCC types o% &W@SW integration skills %rom the designer( !3/ What is D+canD ? ZScan Insertion and A,PG helps test ASICs #e(g( chips$ during manu%acture( I% you kno' 'hat M,AG boundary scan is then Scan is the same idea e)cept that it is done inside the chip instead o% on the entire board( Scan tests %or de%ects in the chipFs circuitry a%ter it is manu%actured #e(g( Scan does not help you test 'hether your Design %unctions as intended$( ASIC designers usually implement the scan themsel0es and occurs 2ust a%ter synthesis( A,PG #Automated ,est Pattern Generation$ re%ers to the creation o% C,est EectorsC that the Scan circuitry enables to be introduced into the chip( &ereFs a brie% summaryD [ Scan Insertion is done by a tool and results in all #or most$ o% your designFs %lip= %lops to be replaced by special CScan *lip=%lopsC( Scan %lops ha0e additional inputs@outputs that allo' them to be con%igured into a CchainC #e(g( a big shi%t register$ 'hen the chip is put into a test mode( [ ,he Scan %lip=%lops are connected up into a chain #perhaps multiple chains$ [ ,he A,PG tool 'hich kno's about the scan chain youF0e created generates a series o% test 0ectors( [ ,he A,PG test 0ectors include both CStimulusC and C4)pectedC bit patterns( ,hese bit 0ectors are shi%ted into the chip on the scan chains and the chips reaction to the stimulus is shi%ted back out again( [ ,he A,4 #Automated ,est 4-uipment$ at the chip %actory can put the chip into the scan test mode and apply the test 0ectors( I% any 0ectors do not match then the chip is de%ecti0e and it is thro'n a'ay( [ Scan@A,PG tools 'ill stri0e to ma)imi/e the Cco0erageC o% the A,PG 0ectors( In other 'ords gi0en some measure o% the total number o% nodes in the chip that could be %aulty #shorted grounded Cstuck at 7C Cstuck at 6C$ 'hat percentage o% them can be detected 'ith the A,PG 0ectors1 Scan is a good technology and can achi0e high co0erage in the :6R range( [ Scan testing does not sol0e all test problems( Scan testing typically does not test memories #no %lip=%lopsS$ needs a gate=le0el netlist to 'ork 'ith and can take a long time to run on the A,4( [ *PGA designers may be un%amiliar 'ith scan since *PGA testing has already been done by the *PGA manu%acturer( ASIC designers do not ha0e this lu)ury and must handle all the manu%acturing test details themsel0es( Check out the Synopsys WWW site %or more in%o( $/ Write a 3erilog code to swap contents of two registers with and without a temporary register? With temp reg P al'ays \ #posedge clock$ begin tempHbP bHaP aHtempP end Without temp regP al'ays \ #posedge clock$ begin a ]H bP b ]H aP end 9$ Di%%erence bet'een blocking and non=blocking1#Eerilog inter0ie' -uestions that is most commonly asked$ ,he Eerilog language has t'o %orms o% the procedural assignment statementD blocking and non=blocking( ,he t'o are distinguished by the H and ]H assignment operators( ,he blocking assignment statement #H operator$ acts much like in traditional programming languages( ,he 'hole statement is done be%ore control passes on to the ne)t statement( ,he non=blocking #]H operator$ e0aluates all the right=hand sides %or the current time unit and assigns the le%t= hand sides at the end o% the time unit( *or e)ample the %ollo'ing Eerilog program @@ testing blocking and non=blocking assignment module blockingP reg N6O A BP initial beginD init7 A H 5P ^7 A H A V 7P @@ blocking procedural assignment B H A V 7P _display#CBlockingD AH Rb BH RbC A B $P A H 5P ^7 A ]H A V 7P @@ non= blocking procedural assignment B ]H A V 7P ^7 _display#C+on=blockingD AH Rb BH RbC A B $P end endmodule produces the %ollo'ing outputD BlockingD AH 66666766 BH 66666767 +on= blockingD AH 66666766 BH 66666766 ,he e%%ect is %or all the non=blocking assignments to use the old 0alues o% the 0ariables at the beginning o% the current time unit and to assign the registers ne' 0alues at the end o% the current time unit( ,his re%lects ho' register trans%ers occur in some hard'are systems( blocking procedural assignment is used %or combinational logic and non=blocking procedural assignment %or se-uential %ifference &etween tas( and function? *unctionD A %unction is unable to enable a task ho'e0er %unctions can enable other %unctions( A %unction 'ill carry out its re-uired duty in /ero simulation time( # ,he program time 'ill not be incremented during the %unction routine$ Within a %unction no e0ent delay or timing control statements are permitted In the in0ocation o% a %unction their must be at least one argument to be passed( *unctions 'ill only return a single 0alue and can not use either output or inout statements( ,asksD ,asks are capable o% enabling a %unction as 'ell as enabling other 0ersions o% a ,ask ,asks also run 'ith a /ero simulation ho'e0er they can i% re-uired be e)ecuted in a non /ero simulation time( ,asks are allo'ed to contain any o% these statements( A task is allo'ed to use /ero or more arguments 'hich are o% type output input or inout( A ,ask is unable to return a 0alue but has the %acility to pass multiple 0alues 0ia the output and inout statements ( 4/ %ifference &etween inter statement and intra statement delay? @@de%ine register 0ariables reg a b cP @@intra assignment delays initial begin a H 6P c H 6P b H ^< a V cP @@,ake 0alue o% a and c at the timeH6 e0aluate @@a V c and then 'ait < time units to assign 0alue @@to b( end @@4-ui0alent method 'ith temporary 0ariables and regular delay control initial begin a H 6P c H 6P tempJac H a V cP ^< b H tempJacP @@,ake 0alue o% a V c at the current time and @@store it in a temporary 0ariable( 40en though a and c @@might change bet'een 6 and < @@the 0alue assigned to b at time < is una%%ected( end / What is delta simulation time? !/ %ifference &etween Imonitor5Idisplay C Istro&e? ,hese commands ha0e the same synta) and display te)t on the screen during simulation( ,hey are much less con0enient than 'a0e%orm display tools like c'a0es1( _display and _strobe display once e0ery time they are e)ecuted 'hereas _monitor displays e0ery time one o% its parameters changes( ,he di%%erence bet'een _display and _strobe is that _strobe displays the parameters at the 0ery end o% the current simulation time unit rather than e)actly 'here it is e)ecuted( ,he %ormat string is like that in C@CVV and may contain %ormat characters( *ormat characters include Rd #decimal$ Rh #he)adecimal$ Rb #binary$ Rc #character$ Rs #string$ and Rt #time$ Rm #hierarchy le0el$( R<d R<b etc( 'ould gi0e e)actly < spaces %or the number instead o% the space needed( Append b h o to the task name to change de%ault %ormat to binary octal or he)adecimal( Synta)D _display #C%ormatJstringC parJ7 parJ9 ((( $P _strobe #C%ormatJstringC parJ7 parJ9 ((( $P _monitor #C%ormatJstringC parJ7 parJ9 ((( $P "/ What is difference &etween ,erilog full case and parallel case? A C%ullC case statement is a case statement in 'hich all possible case=e)pression binary patterns can be matched to a case item or to a case de%ault( I% a case statement does not include a case de%ault and i% it is possible to %ind a binary case e)pression that does not match any o% the de%ined case items the case statement is not C%ull(C A CparallelC case statement is a case statement in 'hich it is only possible to match a case e)pression to one and only one case item( I% it is possible to %ind a case e)pression that 'ould match more than one case item the matching case items are called Co0erlappingC case items and the case statement is not Cparallel(C #/ What is meant &y inferring latches5how to a3oid it? Consider the %ollo'ing D al'ays \#s7 or s6 or i6 or i7 or i9 or i5$ case #`s7 s6a$ 9Fd6 D out H i6P 9Fd7 D out H i7P 9Fd9 D out H i9P endcase in a case statement i% all the possible combinations are not compared and de%ault is also not speci%ied like in e)ample abo0e a latch 'ill be in%erred a latch is in%erred because to reproduce the pre0ious 0alue 'hen unkno'n branch is speci%ied( *or e)ample in abo0e case i% `s7s6aH5 the pre0ious stored 0alue is reproduced %or this storing a latch is in%erred( ,he same may be obser0ed in I* statement in case an 4LS4 I* is not speci%ied( ,o a0oid in%erring latches make sure that all the cases are mentioned i% not de%ault condition is pro0ided( 4/ *ell me how &loc(ing and non &loc(ing statements get e?ecuted? 4)ecution o% blocking assignments can be 0ie'ed as a one=step processD 7( 40aluate the R&S #right=hand side e-uation$ and update the L&S #le%t=hand side e)pression$ o% the blocking assignment 'ithout interruption %rom any other Eerilog statement( A blocking assignment CblocksC trailing assignments in the same al'ays block %rom occurring until a%ter the current assignment has been completed 4)ecution o% nonblocking assignments can be 0ie'ed as a t'o=step processD 7( 40aluate the R&S o% nonblocking statements at the beginning o% the time step( 9( Bpdate the L&S o% nonblocking statements at the end o% the time step( $6/ ,aria&le and signal which will &e @pdated first? Signals $$/ What is sensiti3ity list? ,he sensiti0ity list indicates that 'hen a change occurs to any one o% elements in the list change beginbend statement inside that al'ays block 'ill get e)ecuted( $2/ 1n a pure com&inational circuit is it necessary to mention all the inputs in sensiti3ity dis(? 1f yes5 why? Qes in a pure combinational circuit is it necessary to mention all the inputs in sensiti0ity disk other'ise it 'ill result in pre and post synthesis mismatch( $3/ *ell me structure of ,erilog code you follow? A good template %or your Eerilog %ile is sho'n belo'( @@ timescale directi0e tells the simulator the base units and precision o% the simulation ctimescale 7 ns @ 76 ps module name #input and outputs$P @@ parameter declarations parameter parameterJname H parameter 0alueP @@ Input output declarations input in7P input in9P @@ single bit inputs output NmsbO outP @@ a bus output @@ internal signal register type declaration = register types #only assigned 'ithin al'ays statements$( reg register 0ariable 7P reg NmsbO register 0ariable 9P @@ internal signal( net type declaration = #only assigned outside al'ays statements$ 'ire net 0ariable 7P @@ hierarchy = instantiating another module re%erence name instance name # (pin7 #net7$ (pin9 #net9$ ( (pinn #netn$ $P @@ synchronous procedures al'ays \ #posedge clock$ begin ( end @@ combinatinal procedures al'ays \ #signal7 or signal9 or signal5$ begin ( end assign net 0ariable H combinational logicP endmodule $4/ %ifference &etween ,erilog and 3hdl? Compilation E&DL( "ultiple design=units #entity@architecture pairs$ that reside in the same system %ile may be separately compiled i% so desired( &o'e0er it is good design practice to keep each design unit in its o'n system %ile in 'hich case separate compilation should not be an issue( Eerilog( ,he Eerilog language is still rooted in its nati0e interpretati0e mode( Compilation is a means o% speeding up simulation but has not changed the original nature o% the language( As a result care must be taken 'ith both the compilation order o% code 'ritten in a single %ile and the compilation order o% multiple %iles( Simulation results can change by simply changing the order o% compilation( Data types E&DL( A multitude o% language or user de%ined data types can be used( ,his may mean dedicated con0ersion %unctions are needed to con0ert ob2ects %rom one type to another( ,he choice o% 'hich data types to use should be considered 'isely especially enumerated #abstract$ data types( ,his 'ill make models easier to 'rite clearer to read and a0oid unnecessary con0ersion %unctions that can clutter the code( E&DL may be pre%erred because it allo's a multitude o% language or user de%ined data types to be used( Eerilog( Compared to E&DL Eerilog data types a re 0ery simple easy to use and 0ery much geared to'ards modeling hard'are structure as opposed to abstract hard'are modeling( Bnlike E&DL all data types used in a Eerilog model are de%ined by the Eerilog language and not by the user( ,here are net data types %or e)ample 'ire and a register data type called reg( A model 'ith a signal 'hose type is one o% the net data types has a corresponding electrical 'ire in the implied modeled circuit( !b2ects that is signals o% type reg hold their 0alue o0er simulation delta cycles and should not be con%used 'ith the modeling o% a hard'are register( Eerilog may be pre%erred because o% itFs simplicity( Design reusability E&DL( Procedures and %unctions may be placed in a package so that they are a0ailable to any design=unit that 'ishes to use them( Eerilog( ,here is no concept o% packages in Eerilog( *unctions and procedures used 'ithin a model must be de%ined in the module( ,o make %unctions and procedures generally accessible %rom di%%erent module statements the %unctions and procedures must be placed in a separate system %ile and included using the cinclude compiler directi0e( $/ What are different styles of ,erilog coding 1 mean gateEle3el5continuous le3el and others e?plain in detail? $!/ Can you tell me some of system tas(s and their purpose? _display _displayb _displayh _displayo _'rite _'riteb _'riteh _'riteo( ,he most use%ul o% these is _display(,his can be used %or displaying strings e)pression or 0alues o% 0ariables( &ere are some e)amples o% usage( _display#C&ello oniC$P === outputD &ello oni _display#_time$ @@ current simulation time( === outputD ?86 counter H ?Fb76P _display#C ,he count is RbC counter$P === outputD ,he count is 6676 _reset resets the simulation back to time 6P _stop halts the simulator and puts it in interacti0e mode 'here the user can enter commandsP _%inish e)its the simulator back to the operating system $"/ Can you list out some of enhancements in ,erilog 266$? In earlier 0ersion o% Eerilog 'e use ForF to speci%y more than one element in sensiti0ity list ( In Eerilog 9667 'e can use comma as sho'n in the e)ample belo'( @@ Eerilog 9k e)ample %or usage o% comma al'ays \ #i7i9i5i?$ Eerilog 9667 allo's us to use star in sensiti0e list instead o% listing all the 0ariables in R&S o% combo logics ( ,his remo0es typo mistakes and thus a0oids simulation and synthesis mismatches Eerilog 9667 allo's port direction and data type in the port list o% modules as sho'n in the e)ample belo' module memory # input r input 'r input NAO dataJin input N5O addr output NAO dataJout $P 7I$Write a Eerilog code %or synchronous and asynchronous reset1 Synchronous reset synchronous means clock dependent so reset must not be present in sensiti0ity disk egD al'ays \ #posedge clk $ begin i% #reset$ ( ( ( end Asynchronous means clock independent so reset must be present in sensiti0ity list( 4g Al'ays \#posedge clock or posedge reset$ begin i% #reset$ ( ( ( end $4/ What is pli? Why is it used? Programming Language Inter%ace #PLI$ o% Eerilog &DL is a mechanism to inter%ace Eerilog programs 'ith programs 'ritten in C language( It also pro0ides mechanism to access internal databases o% the simulator %rom the C program( PLI is used %or implementing system calls 'hich 'ould ha0e been hard to do other'ise #or impossible$ using Eerilog synta)( !r in other 'ords you can take ad0antage o% both the paradigms = parallel and hard'are related %eatures o% Eerilog and se-uential %lo' o% C = using PLI( 26/ *here is a triangle and on it there are 3 ants one on each corner and are free to mo3e along sides of triangle what is pro&a&ility that they will collide? Ants can mo0e only along edges o% triangle in either o% direction letFs say one is represented by 7 and another by 6 since there are 5 sides eight combinations are possible 'hen all ants are going in same direction they 'onFt collide that is 777 or 666 so probability o% collision is 9@IH7@? 2$/ *ell me a&out file 1B>? 2$/ What is difference &etween free)e deposit and force? _deposit#0ariable 0alue$P ,his system task sets a Eerilog register or net to the speci%ied 0alue( 0ariable is the register or net to be changedP 0alue is the ne' 0alue %or the register or net( ,he 0alue remains until there is a subse-uent dri0er transaction or another _deposit task %or the same register or net( ,his system task operates identically to the "odelSim %orce =deposit command( ,he %orce command has =%ree/e =dri0e and =deposit options( When none o% these is speci%ied then =%ree/e is assumed %or unresol0ed signals and =dri0e is assumed %or resol0ed signals( ,his is designed to pro0ide compatibility 'ith %orce %iles( But i% you pre%er =%ree/e as the de%ault %or both resol0ed and unresol0ed signals( ,erilog inter3iew 7uestions 22/Will case infer priority register if yes how gi3e an e?ample? yes case can in%er priority register depending on coding style reg rP @@ Priority encoded mu) al'ays \ #a or b or c or select9$ begin r H cP case #select9$ 9Fb66D r H aP 9Fb67D r H bP endcase end 23/ Case?5) difference5 which is prefera&le5 why? CAS4G D Special 0ersion o% the case statement 'hich uses a G logic 0alue to represent donFt=care bits( CAS4U D Special 0ersion o% the case statement 'hich uses G or U logic 0alues to represent donFt=care bits( CAS4G should be used %or case statements 'ith 'ildcard donFt cares other'ise use o% CAS4 is re-uiredP CAS4U should ne0er be used( ,his is becauseD DonFt cares are not allo'ed in the CcaseC statement( ,here%ore case) or case/ are re-uired( Case) 'ill automatically match any ) or / 'ith anything in the case statement( Case/ 'ill only match /Fs == )Fs re-uire an absolute match( 24/0i3en the following ,erilog code5 what 3alue of DaD is displayed? al'ays \#clk$ begin a H 6P a ]H 7P _display#a$P end ,his is a tricky oneS Eerilog scheduling semantics basically imply a %our=le0el deep -ueue %or the current simulation timeD 7D Acti0e 40ents #blocking statements$ 9D Inacti0e 40ents #^6 delays etc$ 5D +on=Blocking Assign Bpdates #non=blocking statements$ ?D "onitor 40ents #_display _monitor etc$( Since the Ca H 6C is an acti0e e0ent it is scheduled into the 7st C-ueueC( ,he Ca ]H 7C is a non=blocking e0ent so itFs placed into the 5rd -ueue( *inally the display statement is placed into the ?th -ueue( !nly e0ents in the acti0e -ueue are completed this sim cycle so the Ca H 6C happens and then the display sho's a H 6( I% 'e 'ere to look at the 0alue o% a in the ne)t sim cycle it 'ould sho' 7( 9<$ What is the di%%erence bet'een the %ollo'ing t'o lines o% Eerilog code1 ^< a H bP a H ^< bP ^< a H bP Wait %i0e time units be%ore doing the action %or Ca H bPC( a H ^< bP ,he 0alue o% b is calculated and stored in an internal temp registerA%ter %i0e time units assign this stored 0alue to a( 2!/ What is the difference &etween' c H %oo 1 a D bP and i% #%oo$ c H aP else c H bP ,he 1 merges ans'ers i% the condition is C)C so %or instance i% %oo H 7Fb) a H Fb76 and b H Fb77 youFd get c H Fb7)( !n the other hand i% treats Us or Gs as *ALS4 so youFd al'ays get c H b( 2"/ What are 1ntertial and *ransport %elays ?? 2#/ What does Jtimescale $ nsB $ ps signify in a 3erilog code? Ftimescale directi0e is a compiler directi0e(It is used to measure simulation time or delay time( Bsage D ctimescale 5?$'hat is 0erilog case #7$ 1 'ire N5O )P al'ays \#((($ begin case #7Fb7$ )N6OD S!"4,&I+G7P )N7OD S!"4,&I+G9P )N9OD S!"4,&I+G5P )N5OD S!"4,&I+G?P endcase end ,he case statement 'alks do'n the list o% cases and e)ecutes the %irst one that matches( So here i% the lo'est 7=bit o% ) is bit 9 then something5 is the statement that 'ill get e)ecuted #or selected by the logic$( 3/ Why is it that Dif .2F&6$ C 2F&$6/...D doesnFt run the true case? ,his is a popular coding error( Qou used the bit 'ise A+D operator #;$ 'here you meant to use the logical A+D operator #;;$( 3!/ What are %ifferent types of ,erilog +imulators ? ,here are mainly t'o types o% simulators a0ailable( 40ent Dri0en Cycle Based 40ent=based SimulatorD ,his Digital Logic Simulation method sacri%ices per%ormance %or rich %unctionalityD e0ery acti0e signal is calculated %or e0ery de0ice it propagate((((((((( PCB designer mista(e $ Not sending your preliminary controlled impedance board stackup to your intended board fabricator for review (and approval). Al'ays send your calculated stackup 'ith all corresponding data %or controlled impedance to your intended printed circuit board %abrication house 'ell in ad0ance o% beginning your placement and routing(
.uality=minded %abricators typically ha0e their internal processes do'n=to=a= science that they 'ill not release to you > it3s proprietary( So they 'ill usually dt'eak3 your stackup design to account %or their pro0en processes so they can then arri0e at your re-uired impedances and manu%acturing tolerances( Like'ise they may also recommend a modi%ied stackup that is less costly carries lo'er risk and deli0ers higher yields( I% you don3t connect 'ith board %abricators early in your design cycle you could end up %inishing your design and sending it to the %abricator > thinking you3ll ha0e a %inished board returned in three days > 'hereas actually you30e done nothing more than created a sho'=stopper( Qou could be told your impedances 'ill be out o% tolerance or your design may not e0en 'ork( Worst=case scenario you 'ill ha0e to redo your design %rom scratch and 'ill ha0e 'asted a lot o% time( Go tell that to your pro2ect managerS
PCB designer mista(e 2 Not including extra components that may be needed. I once did a design 'ith a 0ery tight timeline( ,he circuit designer 'as still testing in the lab 'hile in parallel I 'as in the 77th hour %inishing PCB design routing( ,he board 'as 0ery dense 'ith no room %or e)tra sur%ace=mount resistor components( We 'ere already using 6?69 geometries %or the discrete semiconductors( ,hen it 'as disco0ered in the lab that this design did not meet 4"I @ R*I inter%erence limits( ,he lab asked eCan you add these 78 series resistors in series here please1f I responded eWhere1 ,here is no room(f ,he design ultimately 'ent to %abrication Nand assemblyO 'ithout the resistors installed( So i% you are not sure design e)tra components in because they are easy to remo0e in a re=spin and act as a placeholder 2ust in case they are needed later(
PCB designer mista(e 3 Not sending your preliminary component placement to your intended assembly house (EMS provider) at the initial stages of your !"# design layout. As 'ith the bare board %abricator the 4"S pro0iders ha0e their o'n internal processes that 'e designers don3t al'ays kno' because again these may be proprietary or competiti0e in nature( 4"S pro0iders need to be able to run design rule check programs or utilities %rom 0arious third=party so%t'are pro0iders or their o'n custom in=house design rule check to ensure there is su%%icient room %or placement in high=yield high 0olume assembly runs( !% note'orthy importance 4"S pro0iders certainly kno' 'here time is lost 'ith speci%ic components and board=related locations( So they can recommend 'here you can gi0e them some additional placement room on the board design to minimi/e or totally eliminate re'ork time a%ter boards are run thru their S", line process( PCB designer mista(e 4 Not having design reviews. Qou should ha0e se0eral design re0ie's during critical times o% the design %lo'( Demand that your marketing or sales people are present so they also see i% their communi-ue about 'hat type o% product they 'ant your team#s$ to deli0er has been interpreted correctly( Segments included in this process %or critical design re0ie's %ollo'ing completion o% the schematic can include re0ie' o% initial components placement on the correct PCB %orm=%actor board en0elope( ,hen a%ter the routing is complete sho'ing the routing layers in hard=copy %ollo'ed lastly by re0ie'ing the completed %abrication and assembly data package g 'ith all o% the abo0e completed prior to the package being sent out( ,his 'ay all key stakeholders can o0ersee i% their areas o% e)pertise and input 'ill deli0er a -uality product( ,hen and only thenbi% e0erything checks !T the entire team still has an opportunity to discuss anything that 'as missed such as nice=to=ha0e3s %uture options demarcationb Also it is al'ays best to ha0e another set=o%=eyes re0ie' things that may spot something you may ha0e o0erlooked( PCB %esigner mista(e Not doing regular backups of your !"# design work. I can3t stress this enough( When I 'as 'orking %rom a home=o%%ice a heart= stopping moment occurred 'hen I completely ble' a'ay three months 'orth o% design 'ork( While I 'as mo0ing my mouse on the near=%inished layout my inde) %inger t'itched 'hile the mouse cursor 'as ho0ering o0er the %ilename in my %ile na0igator( ,he Result1 "y entire design 'as blo'n a'ay( I spent the ne)t hour diligently going through all o% the scenarios o% retrie0ing such as checking the trash bin looking into ad2acent %oldersb'ith no luck( But 'hat sa0ed me 'as that I had become disciplined at %inishing my design 'orkday o0er time by doing a %ull=backup onto a spare dri0e( So I only lost one day3s 'orth o% 'ork and not the three months it could ha0e been( Whe'S ,rue story cra/y as it sounds( PCB %esigner mista(e ! Not communicating regularly. Al'ays print o%% schematics B!"s placement layouts and circulate these to your designers as an *QI to them( Teep them in the loop to let them see your progress(
It is so easy %or miscommunications to occur 'hen the days are long and %atigue stress and multi=tasking begins to taint one3s perception( It also sho's your circuit designer#s$ ho' much actual time their design is taking so they can gi0e their pro2ect manager#s$ a heads=up regarding ho' close #or o0er$ to achie0ing the promised deli0ery date the %inished design 'ill be( 1n PCB design what the formula for the trace with calculation. ,race 'idth calculation %or 'hat type o% signal1 I% it is %or controlled impedance traces need to consider the height #distance$ %rom re%erence plane 2ust thickness and 'idth alone is not enough i% it is %or po'er consider the thickness o% copper and 'idth o% trace(