Вы находитесь на странице: 1из 13

BCDSequentialDivisionUnit

ARGUELLESPADILLAADIEL

Acontinuacinsepresentaelprocesodediseoyelaboracin,deuncircuitosecuencialquedividedos datosenformatoBCDsinsigno,dedoscifracadauno. Laoperacincentralconqueserealizarelproceso,estotalmenteBCD,yelalgoritmopararealizarla Divisinescogido,eselderestassucesiva. Sedebetenerpresentequetodosloscircuitosaimplementarsernsecuencialesysncronos,talescomo: contadores,registros,mquinadeestado,etc. Este proyecto ser implementado en la Starter Kit Board yelsistemadebe sercapaz demostrarlos datos que se van ingresando y debe eliminar los ceros innecesarios en los Display, al igualquegenerar unbitde error (1 si hay error y 0 cuando no hay error) cuando el resultadono escorrecto. Elresultado dela divisin debe tener 4 cifras optimizadas, es decir la coma puede ir en cualquier parte del resultadode manera que seaprovechealmximolas4cifras. Para realizar el proceso de la divisin mediante el algoritmo de la resta sucesiva, se debe tener claro su funcionamiento. Estealgoritmofuncionadelasiguientemanera:porejemplosetienesladivisin5/2,donde Dividendo:5 Divisor:2 Cociente:2 Residuo:1

Ahoraveamoslasrestassucesivas: 52=3 32=1 Como se observa se ha ido restandodel dividendo, el divisor y laoperacinse repite hastaque elresultado ya no sea mayor que el divisoromenorque 0. Elresultado delaltima resta es el residuoy la cantidadde restasrealizadaseselcociente.Ntesequeelcocientees2yentotalhay2restas. Comoelresiduoes1,estesedebeajustarparaseguirrestando,esdecirsemultiplicax10,porejemplo. 1x10=10ysetiene Dividendo:10 Divisor:2 Cociente:5 Residuo:0

Ahoraveamoslasrestassucesivas: 102=8 82=6 62=4 42=2 22=0

Como se observa se hizo el mismos procedimiento anterior, sielresultado vuelve a ser distinto decero se procede de nuevo a multiplicar x10 en caso contrario termina el proceso y como cociente de 5/2 se tiene 2,5 donde el punto decimal se ubica inmediatamente despus de la parte entera. Debido a todo este procesolaparteenterayfraccionariasehacenporseparado. En la Figura 1.0se observaun diagrama debloquegeneral delsistema. Inicialmente se tiene dos registros que permite guardar el dato A y el dato B, ingresado por el mismobusde datos,debidoque la tarjetasolo tiene 8 interruptores, y se permite ingresar mximo 8 bits al tiempo. Seguido se observa el bloque que genera el bit de error, inmediatamente se encuentra la mquina de estado que controla el proceso, el bloque para la parte entera, los tres bloques para la parte fraccionaria, el decodificador para el punto decimal, el multiplexor para las 4 cifras mximas optimizadasy decodificador para elencendidoy apagado delosdisplay,posteriormentesedardetalledelfuncionamientodecadabloque.

Figura1.0

Seguido del diagrama general, se ubican el bloque MUX DATA INGRES (Figura 1.1), dos multiplexores: MUX DATO IN OUT (Figura 1.3), MUX VISUAL (Figura 1.4) y por ltimo para terminar el diagrama totalmente,elbloquedelamultiplexacin(Figura1.5).

Figura1.1

A continuacin se observa laparte interna del bloque dela Figura1.1, dondeingresan los 8 bitsdeldato A y del dato B. Este bloque (Figura 1.2) tiene como funcin mostrar losdatos que se vaningresados, al igual queapagarlosdisplayconcerosinnecesarios. Su funcin es de la siguiente manera:los 4bitsde cada datode una cifra ingresan auna compuertaOR de 4 entradas, con el fin dedetectarcuando el datos escero, de esa manera se crean4 seales: A0,A1,B0, y B1, estas seales se unen para formar la seal SEL, que ser el selector del multiplexor que dejar pasar los datos que se observar en los displays, al igual SEL mediante el decodificador selecciona que display se enciende o apaga, segn el datos sea distinto de cero cero respectivamente. Cabe recordar que los display de la tarjeta encienden a nivel bajo. En la Tabla 1.0 se observaun ejemploms claro con cincodatos. Inmediatamente en la Imagen 1.0 se observa la simulacin para este bloque. Donde se ingresan los mismos datos observados en la Tabla 1.0. Los dos datos A y B salen por un mismo bus para ser mostrados en la tarjeta, las dos primeras cifras (de izquierda aderecha) observada en la sealdat(15:0), corresponden al dato A y los dos que siguen al dato B, como se puede ver tambin, para a=01 solo display(0) se encuentra a nivel bajo y, para b=09 a nivel bajo esta display(2), yas para losdemsdatos observadoendichaimagen.

Figura1.2

Tabla1.0

SimulacinparalaFigura1.2.

Imagen1.0 En la Figura 1.3 se observa el multiplexor MUX_DATO_IN_OUT, que cumple la funcin de escoger entre DAT_DISPL, que son las condiciones para los datos de entrada, A y B (datos a observar y display que encienden o apagan) y D_DISPLAY, condiciones para elresultado delaDivisin.Lassealesde entrada como de salida son 20 bits, los 4 bits menos significativos para las seales del encendido de los display: DISP0, DISP1, DISP2, y DISP3, ylos 16bits ms significativos para la seal DIV1, quesonlos datos que seobservanellatarjeta. Este multiplexor es controlado por las seal SEL3, formada por medio de una compuerta AND de 4 entradas (Ver Figura1.0), donde ingresa lasseales(F, F2) queindicanel finalde la operacin para laparte enteray fraccionaria respectivamente, cuando cualquiera delas seales queentranalacompuerta AND es cero, entonces SEL3=0 y esto indica que el proceso para la divisin no ha terminado,y por tanto la salida en el multiplexor ser SALID=DAT_DISPL, que son las condiciones para los datos de entrada A y B. Si SEL3=1entoncesSALID=D_DISPLAYysonlascondicionesparaelcocientedeAentreB.

Figura1.3

La simulacin para la Figura 1.3se observaen la Imagen1.1, dondese ve claramente, cuandoSEL=1en la seal salid=dat_out, donde SEL= SEL3, dat_in=DAT_DISPL,y dat_out=D_DISPLAY. CuandoSEL=0 salid=dat_in.

Imagen1.1 Para el multiplexor MUX_VISUAL (Figura 1.4) cuya parte interna se observa en la Figura 1.5, tiene 3
seales de entrada: A y B (datos de entrada)de8bitsyDIV1 de16 bits, estecircuitopermitevisualizarlos datos queseestn ingresando yelresultadodeladivisin,pararealizar estafuncinse necesitande16multiplexores de dos entradas de 1 bit,dondeseleasignaalasseales menos significativas decadamultiplexorlos8bitsde cada dato de entrada A y B, ylos16bitscorrespondiente alcociente,asignados alas sealesms significativas de cada multiplexor ver Figura 1.5. SEL selecciona los bits menos significativos cuando sea cero y los ms significativoencasocontrario,lasealSELeslamismasealSEL3descritaanteriormente.

Figura1.4 El funcionamiento para el bloque descrito anteriormente sepuede observaren laImagen 1.2. Para los datos

de entrada a=01, b=09 y q=3333: para elciclode 300 nsa400ns, sel=1y div=3333, para el ciclo 400 ns a500ns,sel=0ydiv=0901yasparalosdemspruebasciclos.

Imagen1.2

Figura1.5 Porltimopara formareldiagramadebloquegeneral,faltaagregar elbloquedela multiplexacin Figura1.6,que permite la visualizacin de los datos en la tarjeta. Formado por un divisor de frecuencia de 50MHz a 100Hz aproximadamente, esta seal de 100Hz debe habilitar un contador de 2 bits que controla MUX1de4datosde4 bits, MUX2 multiplexor del punto decimal y DECO el decodificador del encendido de los display. El bloque CONV_BCD_7_SEG que codifica los datos para ser visualizados en los display, y las 4 compuertas OR con 3 sealesdeentradascadauna,msadelantesedarexplicacindeestasseales(DESP(3:0),ERO).

Figura1.6

El bloque observado en la Figura 1.7, corresponde alaparte entera deladivisin,cuya parte internase ve enlaFigura1.8.Elprocesoquerealizaestesistemacorrespondealdescritoalprincipiodeldocumento.

Figura1.7

Para la parte entera seutiliza:dos multiplexores,MUX1y MUX2. Unregistro utilizados cuatrosvecesREG, un contador binario CONT BIN y un contador BCD CONT 99, dos comparadores: un comparador de igualdad (COMP=) y de mayor igual (COMP>=) y unrestador BCDREST utilizado dos veces.Todosestos componentesseobservanenlaFigura1.8ysedetallacadaunoporseparado. Este bloque funciona de la siguiente manera: Todos los circuitos secuenciales inicialmente se encuentran en cero, por tanto en lasealde salida delcomparador de igualdadSEL1=1 y enMUX1 T=A(seales de 12 bits). Cuando E que es la seal de inicio se encuentra a nivel alto, se guarda en el prximo flanco ascendente de REG_1 el dato B de 12 bits y en REG_2 a T,estosdatos guardadosen los registrosluego pasan al comparador mayor igual (COMP>=) mediante las seales T2 y BB. Si el dato guardado en la seal T2 correspondiente al dato A es menor que el dato guardado en BB correspondiente al dato B es menor, CON va ser 0 y por consiguiente la seal CON2 que habilita el contador CONT 99 ser 0 ya que depende de la compuerta AND donde entra E y CON. Luego la seal F que indica el final de la comparacin va estar a nivel alto, por depender de la compuerta AND donde ingresan la seal E y la negacin de CON. Esta permite que el registro REG_4 guarde el resultado de restar el dato que se encuentraen DIV11 de12 bits y la constante 1dondelos 8bits menos significativosseraelresultado de la parte entera de la divisin. El bloque REST_2 se ubica en esta posicin porque COMP>= dependen de dos seales que salen de circuito secuenciales, que inicialmente se encuentran en cero y por tanto CON=1, entonces cuando E=1 en la siguiente seal de reloj CONT 99 empieza el conteo y setendr unconteomsdelqueseespera. El bloque REST_1 realiza la resta del dato A menos B este resultado se guarda en el registro REG_3 cuando CON=1 y luego pasa a MUX2 donde steselecciona entreT2 yRE2, segnel selectorde 2 bits (SEL2). Ver Tabla 1.1. SEL2 es formada por las seales CON y SS, donde CON es el bit menos significativo.SSdetectasienDIV1hayundatoceroodistintodecero.

Tabla1.1 PD es la seal para saber cuando existe un punto decimal, esta dependede CON,S11y S22 donde estas dos ultimas seales nos dice: si ambas son 1, inmediatamente despus de este numero va el punto decimal, o si es cero inmediatamente despus de este se ubica elpunto.SlocuandoCON=0 existira un punto decimal teniendo en cuenta tambin los valores de la parte fraccionaria, este proceso del punto decimalsedetallamsadelante.

Siguiendo las seales para el bloque de la Figura 1.8 solo falta describir la seal EN que tiene como funcin activar el contador binario cuando la seal de inicioE=1 yHAB=1, este conel finde queen el comparador SEL1 sea 1 o 0 para que MUX1 deje pasar A inicialmente o R cuando SEL1 sea 0 debidoqueelcontadorbinariohacambiadodeestado. Cabe observar que cuando en el procesos el resultado de la resta ya no sea mayorque el divisor o menor que 0, los dos contadores se detienen mediante EN y CON2 respectivamente. Sielresiduo es diferentede 000 este pasa a la parte fraccionaria mediante RES1 para ser ajustado y seguir el mismo proceso descritoenesteapartadosiendolasealdeinicioparaestaparteF. Si en COMP>= el dato T2 es mayor que BB se hace el procesos contrario descrito anteriormente, en MUX1 ingresara R, que sera el resultado de restar al dividendo el divisor y as serepite el procesoque el resultadoyanoseamayorqueeldivisoromenorque0.

Figura1.8

EnlaImagen1.3seobservalasimulacinparaelbloquedelaFigura1.8,dondesehaceladivisinde

Imagen1.3

25/4dondedebedeestarlasealdeinicioEanivelalto. Se ve el resultado de restar al dividendo25 el divisor4 en cadaciclode relojy por ltimocomo cocientede la parte entera se tiene 6y como residuo1que pasara ajustarse a la parte fraccionaria.La seal F indica el final de la operacin en el ciclo 1750 ns aproximadamente al igual que el residuo, para el punto ubicar el punto decimal se observa que el bit menos significativo de pd es 1 eso indica quesolohayun dato para laparteenteratalcomosemuestraendiveinmediatamenteirelpunto. Para la parte fraccionaria (Figura 1.9) se utilizan 3 bloque que realizan el mismo proceso, similar al de la parte entera, con lo nico diferente que para ajustar el residuo que se genera en la parte entera en este bloque se implementa un eliminador de cero menos significativo y un multiplicador por 10 que permiten mantenerelmismotamaoquebits(12bits)deldatoByasrealizarlarestanormalmente.

Figura1.9

La coneccion de los tres bloque de la parte fraccionaria se observa en diagramade bloque generalFigura 1.0. Esto tres bloque completara las 4 cifras mximas optimizadas mostrada en la tarjeta encaso deque la parte entera solo sea de una cifra, en el casode quesean dos,se escogerlas dos primeras cifra de la parte fraccionaria para completar las 4 cifras. El circuito internadel bloque delaparte fraccionariase ve en la Figura 2.0 donde el diagrama muestra claramente cada componente con susrespectivassealesytamaos
debits,paraestecasoseutilizauncontadorBCD(CONT_DEC)de4bitsparaelresultadodeladivisin.

Figura2.0

En la Imagen 1.4 se puede comprobarelfuncionamientodel bloque delaFigura 2.0paraelcociente 2/5 y

enlaImagen1.5paraelcociente2/50.

Imagen1.4

Imagen1.5 Para solucionar en el circuito cuando se ingrese un dato que no sea BCD, se hace el uso del lgebra de boole para implementar las ecuaciones de la seal de salida descrita en la Tabla 1.2, que generar una sealanivelaltocuandoeldatoseaBCD.

Tabla1.2 Luego del uso del algebra boole, el circuito que se genera se muestra enla Figura2.2,dondeesteseutiliza
dosvecesparaeldatoAde8bitsyparaeldatoBigualmente. Yparadarsolucincuandosedivideentrecero,los8bitsdeldatoBseingresaendoscompuertasORde4

Figura2.1 entradas para saber cuando el dato es cero y asi implementar el circuito de error de la Figura 2.1, cuya parte internase observa en la Figura 2.3 en donde si unas de estas seales queentrana lacompuertaANDescero, esporquehayunacondicinnodeseadaeneldivisor.

Figura2.2

SimulacinparalaFigura2.2,seobservaquecuandoeldatonoesBCD,errpasadenivelaltoabajo.

Imagen1.6 Bloque completo para la seal de error, su simulacin se ve en la Imagen 1.7, si el cualquier dato no es BCDosieldatoBescerolasealERRser0

Figura2.3

Imagen1.7 Por ltimo se tiene el sistema que controla el proceso general de la divisin, en la Figura2.4se observael
diagramadeestadoquedebecumplirparaqueelprocesosedsecuencialmente.

Figura2.4

En el sistema de control ingresa la seal ERR que es la seal que indica cuando hay un error en el sistema. Y la seal INIC que es la seal de inicio manual del proceso, este sistema controla la sealde inicio de la parte entera en el casoque nohalla errory se hace el proceso de la divisin normal,en el caso de que si hay errorla seal de inicio permaneceren 0 y portantono sehace el proceso dela divisin y se manda la seal de error aun led que indica el resultadono deseado yse apaganlos diplay delatarjeta mediantelasealERO.

Figura2.5

EnlaImagen1.8sepuedeobservarlasimulacindelamquinadeestado.

Imagen1.8

Вам также может понравиться