Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Lógica de transferencia entre registros Daniela Camargo Vargas Facultad de Ingeniería Programa de Ingeniería Electrónica extensión Tunja Universidad Pedagógica y Tecnológica de Colombia Tunja, Boyacá - Colombia daniela.camargo01@uptc.edu.co José Luis Gachagoque Sánchez Facultad de Ingeniería Programa de Ingeniería Electrónica extensión Tunja Universidad Pedagógica y Tecnológica de Colombia Tunja, Boyacá - Colombia jose.gachagoque@uptc.edu.co Duvan Felipe Uribe Suarez Facultad de Ingeniería Programa de Ingeniería Electrónica extensión Tunja Universidad Pedagógica y Tecnológica de Colombia Tunja, Boyacá - Colombia Duvan.uribe@uptc.edu.co Abstract— For the development of the practice were taken into account three points of the laboratory, the first of them corresponds to the multiplication of two binary numbers without sign of 5 bits each by successive sums. The second one deals with the count of the present ones in a data of 10 bits and finally, the function of series of Fibonacci for a data of 4 bits. These three points developed through the transfer logic between registers, making two important blocks, first a DataPath that contains micro-operations, multiplexors and registers to store data and secondly a ControlPath that in this case is an FSM that controls the selections of the multiplexers and hence the inputs thereto; these two blocks are interconnected to comply with an order indicated, all described and simulated VHDL to be implemented in the development board and FPGA CYCLONE II to verify their operation. Resumen— Para el desarrollo de la práctica se tuvieron en cuenta tres puntos del laboratorio, el primero de ellos corresponde a la multiplicación de dos números binarios sin signo de 5 bits cada uno por medio de sumas sucesivas. El segundo trata sobre el conteo de 1s presentes en un dato de 10 bits y por último, la función de series de Fibonacci para un dato de 4 bits. Estos tres puntos desarrollados mediante la lógica de transferencia entre registros, realizando dos bloques importantes, en primer lugar un DataPath que contiene micro-operaciones, multiplexores y registros para almacenar datos y en segundo lugar un ControlPath que en este caso es una FSM que controla las selecciones de los multiplexores y por ende las entradas a los mismos; estos dos bloques se encuentran interconectados para cumplir una orden indicada, todo esto descrito y simulado VHDL para luego ser implementado en la tarjeta de desarrollo FPGA CYCLONE II y verificar su funcionamiento. I. INTRODUCCIÓN En el diseño de sistemas digitales se utiliza enfoque modular. Los módulos se construyen a partir de componentes digitales como registros, decodificadores, elementos aritméticos y lógica de control, los diferentes módulos están interconectados con los datos y las trayectorias de control comunes conforman un sistema de computadora combinacional. Si tenemos en cuenta que una computadora digital, típicamente tiene muchos registros y se deben diseñar trayectorias para transmitir información de un registro a otro, la cantidad de conexiones o alambres será excesiva si se usan líneas separadas entre registros. Una mejor y eficiente manera para transmitir la información entre registros y todos los que conforman el sistema es utilizando un bus de datos, para esto es de mejor aplicación multiplexores tal y como se emplearon en el laboratorio y de esta manera evitar exceso de cableado; esto es muy común cuando se implementan distintas operaciones en donde las entradas al sistema son bastantes, por lo que para ello simplemente con una selección (multiplexor) se puede utilizar el mismo número de switch para varias entradas en caso de que el dato de entrada sea en binario. II. DESARROLLO DE LA PRÁCTICA La práctica de laboratorio se dividió en el diseño e implementación de 3 fragmentos principales: →Multiplicador de sumas repetitivas →Conteo de unos en un dato binario →Cálculo de función de Fibonacci El esquema general desarrollado, se observa en la figura 1. Fig. 1 Esquema general diseñado e implementado de la práctica. Cada una de las partes que conforman el diseño de la figura anterior, se describe a continuación: A. Multiplicador de sumas repetitivas Para el diseño de la función dada se utilizó el siguiente algoritmo, el cual representa la manera en que opera el multiplicador de sumas sucesivas. . Fig. 2 Algoritmo que describe la multiplicación de sumas sucesivas. La carta ASMD del multiplicador es la dada en la figura 3. Presenta 4 estados en los que: ❖ Idle: La máquina se encuentra en estado de “espera” a la siguiente operación a realizar. Se procederá a Load o Ab solamente si Start = 0. ❖ Load: Se cargan los datos de entrada a operar, y se asigna a la respuesta (R) el valor cero para el posterior comienzo de sumar. Se entrará a “Load”, si a y b son diferentes de cero(condición establecida en las condiciones de la carta), de lo contrario se pasará a “ab”. ❖ Ab: Se cargan los datos de entrada a operar, y se asigna a la respuesta (R) el valor cero. En este caso, la respuesta de la operación, por ello, el siguiente estado es “Idle” . ❖ Op: es en este estado donde se realiza la operación de suma. El estado se repetirá sólo si N es diferente de cero. De lo contrario, el siguiente estado es “Idle”. Fig. 3 Carta ASMD de multiplicador de sumas sucesivas. Micro-operaciones y registros: Según el diseño realizado, y como se observa en la carta, se necesitan 3 registros: A, N y R. Las micro-operaciones con cada registro son la siguientes: Los datos de entrada se designan: a y b Registro A: -Idle: A← A -Load: A← a -Ab: A← a -Op: A← A Registro N: -Idle: N← N -Load: N← b -Ab: N← b -Op: N← N-1 Registro R: -Idle: R← R -Load: R← ’0’ -Ab: R← ’0’ -Op: R← R+A La operación de multiplicación como tal, funciona de la siguiente manera: Siendo los datos a(dato 1) y b(dato 2) los números a multiplicar, se asignan a: A = a ; A es el registro que guarda el dato 1. N = b ; N es el registro que guarda el dato 2 en primera instancia R Es el registro del resultado de la operación que en primera instancia es igual a ‘0’. Secuencialmente, el dato en R irá cambiando realizando la siguiente operación: R=R+A, mientras que a N se le restará “1” (N=N-1) , con el fin de llegar a N=’0’; Cuando se llegue a N=0 no se harán más sumas, porque esto es lo que indicaque el dato 1 se ha sumado tantas veces como lo determina el valor del dato ingresado 2. Ejemplo: La operación a realizar es la siguiente: Fig 4. Operación ejemplo a realizar Dato 1: a= 6 ; Dato 2: b=5 En primera instancia: A=a=6 ; N=b=5 ; R=0 De manera secuencial: (1) R=R+A=0+6=6; N=N-1=5-1=4 (2) R=R+A=6+6=12; N=N-1=5-1=3 (3) R=R+A=12+6=18; N=N-1=5-1=2 (4) R=R+A=18+6=24; N=N-1=5-1=1 (5) R=R+A=24+6=30; N=N-1=5-1=0 Como N=0, no se realizan más sumas, conllevando al resultado final; para el ejemplo, R=30. Fig. 5Operación ejemplo realizada Los dos bloques funcionales, corresponden al DataPath y ControlPath. En el bloque de DataPath se encuentran las microoperaciones, los multiplexores de selección de operaciones y los registros. En ControlPath se encuentra la máquina de estados correspondiente. La figura 6, hace referencia a la interconexión entre estos dos elementos. Fig. 6 Diagrama de bloques general del multiplicador. Las entradas Comp_N y Comp_A_B que se observan en la figura anterior, conciernen a las condiciones vistas en la carta ASMD como a=0 o b=0 y n=0. El controlPath descrito en VHDL se puede resumir en la figura 7, cuya imagen corresponde a la máquina de estados. Fig. 7 Máquina de estados correspondiente al ControlPath de multiplicador.. El DataPath está compuesto principalmente por 3 partes como se aprecia en la figura , cuya imagen corresponde al RTL de la descripción hecha en Vhdl. Fig. 8 Bloques internos del DataPath.. Siendo Bloque_Mux, el bloque de los multiplexores de selección de estado, el bloque_Reg es el bloque que contiene los registros y el bloque_sum_comp contiene las operaciones anexas (sumas y comparaciones), los RTL de cada uno de ellos se muestra a continuación, en las figuras 9, 10, 11 respectivamente. Fig. 9 Bloque de multiplexores, correspondiente al DataPath de multiplicador. En la figura anterior, cada bloque de multiplexores contiene 10 multiplexores 4 a 1 referentes a cada bit del dato (10 bits que es el valor máximo multiplicando dos datos cada uno de 5 bits). Esto con el fin de obtener el dato en paralelo; A su vez, cada salida de cada bloque se dirige a los registros A, N y R. Fig. 10 Bloque de registros, correspondiente al DataPath de multiplicador En la figura anterior se encuentran los 3 registros descritos en VHDL: cada uno, es un registro pipo de 10 bits. Fig 11. Bloque de operaciones, correspondiente al DataPath de multiplicador La figura anterior presenta las comparaciones debidas a las condiciones requeridas, la suma (bloque denominado Adder) entre el dato que se encuentra en el registro R y el registro A, y la resta de N-1 (bloque Subtract). B. Conteo de unos en dato binario Para el diseño de la función dada se utilizó el siguiente algoritmo (figura 12) , el cual representa la manera que se da el proceso para encontrar 1s en un dato binario Fig. 12 Algoritmo que describe la cuenta de 1s en un dat binario La carta ASMD del contador de unos en un dato binario está dado en la figura .Presenta 3 estados en los cuales: ❖ Ready: La máquina se encuentra en estado de “espera” a la siguiente operación a realizar. Se procederá a Assigned solamente si Start = 0. ❖ Assigned: Se cargan el dato de entrada a revisar, y se asigna al conteo (B) el valor cero para el posterior comienzo y de inmediato pasa al tercer estado Count. ❖ Count : es en este estado donde se realiza el conteo de unos del dato binario. En este estado se estará preguntando por el dato de entrada: si es 0, los 10 bits el siguiente estado será Ready, pero si el dato de entrada es diferente de 0, pasa a preguntar por el bit más significativo, en el cual si es un 1 lógico irá a la suma de B, y si no solo reiniciará el estado corriendo el dato A una posición hacia la derecha. Fig 13. esquema de la carta ASMD realizada. Micro-operaciones y registros: Según el diseño realizado, y como se observa en la carta ASMD (figura 13), se necesitan 2 registros: A y B. Las micro-operaciones con cada registro son la siguientes: Registro A: -Ready: A← A -Assigned: A← dat_a -Count: A← sr A Registro B: -Ready: B← B -Assigned: B← 0 -Count: B← B+1 El funcionamiento del sistema es el siguiente: inicialmente los registros estarán parados con el dato interior de salida o con cero si es la primera vuelta o si el sistema se resetea. Allí se encontrará esperando un dato de entrada start para iniciar el proceso y luego de esto los valores de los registros A y B se asignan al dato de entrada y a 0 con el fin de analizar el dato y reiniciar la cuenta respectivamente. Luego de la asignación pasa al estado donde hace la cuenta de 1s lógicos que hay en el dato de la siguiente manera: El dato asignado al registro A será comparado con 0, en el cual si es afirmativo, el registro B mantiene el dato 0 del estado anterior y se reinicia el proceso. De no ser así, se pasa a otro comparador donde solo se observa el dato menos significativo, y en caso de ser uno se sumará a B una unidad, de lo contrario vuelve a reiniciar el estado donde se encontraba. El dato A se desplaza un bit a la derecha y se asigna 0 al bit más significativo, de tal forma que pasen todos los datos del dato A y el registro solo quede cargado con 0 y allí reinicia el proceso para una cuenta nueva. Los dos bloques funcionales, corresponden al DataPath y ControlPath. En el bloque de DataPath se encuentran las microoperaciones, los multiplexores de selección de operaciones y los registros. En ControlPath se encuentra la máquina de estados correspondiente. La figura, hace referencia a la interconexión entre estos dos elementos. Fig. 14 Diagrama de bloques general del contador de 1s. El controlPath descrito en VHDL se puede resumir en la figura 15, cuya imagen corresponde a la máquina de estados. Fig. 15 Máquina de estados correspondiente al ControlPath de contador de 1s El DataPath está compuesto principalmente por 3 partes como se aprecia en la figura 16 , cuya imagen corresponde al RTL de la descripción hecha en Vhdl. Fig. 16 Bloques internos de DataPath de contador de 1s Siendo Bloque_Mux, el bloque de los multiplexores de selección de estado, el bloque_Reg es el bloque que contiene los registros y el bloque UP contiene las operaciones anexas (sumas y comparaciones); los RTL de cada uno de ellos se muestra a continuación, en las figuras 17, 18y 19 respectivamente . Fig. 17 Bloque multiplexores del DataPath de contador de 1s En la figura anterior, cada bloque de multiplexores contiene 10 multiplexores 4 a 1 referentes a cada bit del dato(dato de entrada 10 bits). Esto con el fin de obtener el dato en paralelo; A su vez, cada salida de cada bloque se dirige a los registros A, B y al enable del registro B. Este enable consta de un solo 1 bit que está controlado por el estado de la máquina de estado, cuyo funcionamiento principal es tomar en cuenta si sumar a B o mantener el dato según el bit menos significativo del registro A. Fig. 18 Bloque multiplexores del DataPath de contador de 1s En la figura anterior se encuentran los 2 registros descritos en VHDL: cada uno, es un registro pipo de 10 bits. Fig. 19 Sumador y comparador del DataPath de contador de 1s La figura anterior presenta las comparaciones debidas a las condiciones requeridas. B. Cálculo de función de Fibonacci Para obtener el resultado de la función de Fibonacci para un dato de 4 bits sin signo se tuvo en cuenta la siguiente expresión matemática: Fig. 20 Función de Fibonacci El algoritmo empleado en el diseño para obtener el resultado de dicha función es el que se muestra a continuación: a ← 0 b ← 1 for k (0 to n-1) do b ← b + a a ← b n ← n -1 z = b Entradas para la transferencia lógica entre registros · clk = señal de reloj · rst = reset del programa · d_i = dato de entrada · start = inicio de cálculo del valor de entrada de acuerdo a la función de Fibonacci Salida del cálculo del valor de función de Fibonacci · Rb = registro b La carta AMSD del algoritmo anterior fue diseñada mediante el método Moore que se presenta en la figura 21. Fig. 21 Carta ASMD correspondiente a función de FIbonacci. De lo anterior cabe resaltar que: ❖ ra = registro a ❖ rb = registro b ❖ n = registro n ❖ d_i = dato de entrada ❖ start = inicio para cálculo de la función en la máquina de estado finito ❖ idle = primer estado de espera ❖ assig = segundo estado de cuando el dato de entrada es ‘0’ ❖ compa = tercer estado de cuando el dato de entrada es ‘1’ ❖ adder = cuarto estado cuando el dato de entrada es mayor que ‘1’ ❖ T = True (verdadero) ❖ F = False (falso) Tabla I Datos en registros de acuerdo a entrada Registro a Registro b Registro n 0 0 15 0 1 14 1 1 13 1 2 12 2 3 11 3 5 10 5 8 9 8 13 8 13 21 7 21 34 6 34 55 5 55 89 4 89 144 3 144 233 2 233 377 1 377 610 0 Para la tabla I se tuvo en cuenta la carta AMSD mostrada anteriormente: para el caso en que la entrada fuese de “1111” en binario que corresponde a 15 en decimal. A continuación se muestran las micro-operaciones de cada uno de los registros en los respectivos estados en que se encuentren. Operaciones del registro a en los estados ra ← ra (estado idle) ra ← 0 (estado assig) ra ← 0 (estado compa) ra ← rb (estado adder) Operaciones del registro b en los estados rb← rb (estado idle) rb ← 0(estado assig) rb ← 1 (estado compa) rb ← rb + ra (estado adder) Operaciones del registro n en los estados n ← n (estado idle) n ← d_i (estado assig) n ← n-1(estado compa) n ← n-1(estado adder) Fig. 22 Bloque interno de DataPath función de Fibonacci El diagrama de bloques de la figura 22 muestra el DataPath compuesto principalmente por tres grupos. El primero corresponde a la parte de las micro-operaciones, el segundo al bloque de multiplexores controlando las entradas de cada uno de ellos mediante líneas de selección a partir de la FSM y por último el bloque de registros en este caso los registros a, b y n. Fig. 23 Sumadores correspondientes al bloque del DAtaPath funcion de fibonacci. De la figura anterior se puede observar que en las micro-operaciones se realiza una suma entre los registros a y b, en donde la suma respectiva depende del valor almacenado en los dos registros. El valor de esta salida ingresará a uno de los multiplexores del siguiente bloque, y la suma está relacionada con el valor del dato de entrada, almacenado en el registro n que cada vez decrementará su valor en -1 hasta que el conteo sea 0, obteniendo el resultado final de la función en registro b. Fig. 24 Bloque de multiplexores del DataPath función de fibonacci. Los bloques de la figura anterior corresponden a los tres multiplexores en donde cada salida del multiplexor corresponde a la entrada de un registro del siguiente bloque, por lo que se tiene tres multiplexores para los 3 registros; cada una de las entradas de los multiplexores, corresponden a los estados diseñados en el ControlPath que dependen de los datos almacenados en los registros y de las micro-operaciones. Fig. 25 Bloque de registros del DataPath función de fibonacci. La figura 25 muestra los tres registros empleados para obtener el resultado de la función de Fibonacci, en donde el primer registro de arriba hacia abajo corresponde al registro n, el segundo al registro b y el tercero al registro a. Como ya se indicó anteriormente, los valores almacenados en los registros, dependen de las micro-operaciones, de las entradas y líneas de selección de los multiplexores y de las salida mismas de los registros. Cabe resaltar que el número de bits del registro n es de 4 bits que corresponde al dato de entrada, el registro a es de 10 bits ya que este registro puede tomar datos almacenados del registro b y el registro b es de 10 bits ya que su valor de salida en el mayor de los casos es de 610 en decimal. Fig. 26 Máquina de estados correspondiente al ControlPath de contador de 1s La figura 26 corresponde a la máquina de estados finitos para controlar las líneas de selección de los multiplexores y por ende la entradas de los mismos que se encuentran dentro del DataPath. Fig. 27. Diagrama de bloques de la interconexión del ControlPath y DataPath Para la interconexión del ControlPath con el DataPath se tuvo en cuenta que mediante la salida de la máquina de estados finitos se controlarían las líneas de selección del bloque de multiplexores, en dondela transición de estados dentro de la FSM depende del valor almacenado en el registro n verificando si el valor era 0, 1 o ninguno de estos. Si el valor de salida era 0 es porque el dato de entrada (d_i) era 0, si el valor del registro es 1, es porque el dato de entrada es 1 o sino porque el dato de entrada era mayor que 1, pero en conteo del dato de entrada llega hasta 1 hasta que ya no se realizan más operaciones entre registros obteniendo el dato final de salida correspondiente al registro b. Fig. 28. Simulación de la función de Fibonacci en Quartus II La imagen de la figura 28 muestra una simulación de la función de Fibonacci utilizando la herramienta de Quartus II University Program VWF en donde el dato de entrada corresponde al número 5, obteniendo a la salida el número correspondiente de la serie que es 5 almacenado en el registro b. → Para la visualización de los resultados correspondientes a los 3 puntos de laboratorio, se utilizó un multiplexor para elegir el punto a presentar como se observa en la figura 1, en donde: TABLA II. SELECCIÓN DE PUNTOS DE LABORATORIO A PRESENTAR Selección Salida 00 Multiplicación de dos datos 01 Conteo de 1s que hay en un dato de 10 bits 10 Función de Fibonacci 11 ‘0’ Luego una carta ASMD para la secuencia del desarrollo, un DataPath que contendrá registros, micro-operaciones entre registros y multiplexores, un ControlPath que controlará algunas enables de registros, líneas de selección de multiplexores y algunos otros componentes que hacen parte del ControlPath, para obtener la salida deseada. Conversión binaria a BCD y decodificación a 7 segmentos Teniendo cada dato de salida correspondiente a cada una de las operaciones realizadas, el número se pasó a su representación BCD donde para su descripción fue necesario conocer el algoritmo XS3 que se requiere para llevar a cabo la conversión: El algoritmo consiste en desplazar bit a bit e ir comparando con 4 los 3 vectores de cuatro bits que representan las unidades, decenas, centenas y unidades de mil. En el proceso de comparación, si alguno de estos vectores es mayor o igual a 4 se le suman 3 para así llevar los bits al siguiente vector, y si no, se deja igual y se sigue desplazando. El proceso se repite hasta que el último bit se desplace y ese a su vez se descarta. Ya bien teniendo la conversión de binario a bcd se procede a definir el bloque de los decodificadores de bcd a 7 segmentos para representar las unidades, decenas, centenas y unidades de mil. III. ANÁLISIS DE RESULTADOS En primer lugar, es de resaltar que las operaciones aritméticas como la multiplicación y la división no se listan dentro de las operaciones aritméticas básicas, ya que la única forma en que estas pueden llevarse a cabo mediante circuitos combinacionales, en la mayoría de los computadores, la operación se ejecuta mediante secuencia de micro-operaciones de suma y desplazamiento para el caso de multiplicación y de resta y desplazamiento para la división. Todo lo anterior es implementado como se realizó en este laboratorio, mediante registros que almacenan información de acuerdo con una condición dada específicamente; las micro-operaciones lógicas especifican operaciones en una cadena de bits almacenados en dichos registros. En el diseño de los ejercicios propuestos, se comprendió la forma simbólica mediante un operador de sustitución ← que denota una transferencia de un dato contenido en un registro que pasará a otro, teniendo en cuenta que el registro fuente almacenado en el primer registro no cambia durante la transferencia. Es importante tener claro que en un circuito digital principalmente cuando tiene que ver con lógica de transferencia entre registros, las micro-operaciones aritméticas básicas son la suma, la resta, incremento, decremento y corrimiento. Por lo que como ya se dijo anteriormente, la multiplicación y la división no son consideradas básicas por lo que son una composición de las nombradas primeramente. La lógica de transferencia entre registros facilita de manera significativa el diseño de sistemas digitales, ya que entre sus características se tiene el poseer memoria. Al poder guardar los datos, se consigue realizar operaciones que dependen de resultados de acciones previas. Con cada punto de la práctica se pudo observar cómo se simplifica el diseño debido a la separación por bloques de cada uno de los entes del sistema. Diseñar el algoritmo general, es básicamente lo más importante, puesto que es la base de todo el diseño. Al obtener ya el algoritmo, se procede a elaborar la carta ASMD, la cual también tiene gran importancia porque es allí donde se observan las condiciones, estados y flujo del algoritmo de una manera más entendible.Como se pudo observar, cada carta descritas anteriormente tiene su propio flujo, que depende exclusivamente del sistema a implementar. Las micro-operaciones entre registros, se apreciaron claramente en la simulaciones hechas. A manera de ejemplo, se encuentra la simulación respectiva al multiplicador (figura 29), en la que: Los datos indicados por las flechas, son los datos que se multiplican por efecto del start (Start da inicio a la operación). Los datos encerrados en un círculo relacionados de igual forma al color de la flecha, son el resultado de cada operación. Entre las cosas más considerables a resaltar en la imagen, es cómo de acuerdo al algoritmo realizado y su carta ASMD, que se aprecia en la figura 3, el registro R va mostrando la operación hecha sucesivamente (sumas) en cada flanco de reloj hasta que en este caso, N=0. Los pequeños recuadros encerrados en el rectángulo verde, corresponden a los valores de las sumas secuenciales llevadas en cada flanco de reloj. Fig. 29. Simulación de multiplicador de sumas sucesivas en Quartus II Las descripciones en VHDL de los registros, se hicieron de acuerdo a registros PIPO, para que el dato ingrese y salga de forma inmediata. Se hizo de esta manera para hacer más sencillo el diseño del sistema, la implementación en la tarjeta de desarrollo FPGA y sobre todo, rapidez en las micro-operaciones y por ende, resultados. Los multiplexores, sumadores, comparadores, decodificadores y demás, son dispositivos anexos que demanda el diseño. Esta lógica combinacional, hace parte de las micro-operaciones que se realizan entre registros y que por ello, también de ella depende el funcionamiento de las mismas. En la práctica no fueron tantas las necesarias, pero sí, es clave tener una descripción clara y precisa de éstos.. Al momento de describir en VHDL todo en cuanto a los bloques del sistema, es recomendable hacer un bosquejodel mismo, para mayor comodidad y seguridad en el proceso. IV. CONCLUSIONES ★ La lógica de transferencia entre registros, al gozar de ese carácter de ‘tener memoria’ por sus registros, facilita significativamente el diseño de diversos sistemas digitales. Comparado con sistemas combinacionales, que darían tablas muy extensas y tal vez no eficaces, el diseño secuencial es vital a la hora de la elaboración e implementación de los diversos sistemas. ★ Con la realización de esta práctica de laboratorio se aprendió a implementar funciones y operaciones matemáticas mediante el uso de registros, en el que todas de las operaciones realizadas en la práctica, tenían que almacenar información a medida que transcurría el tiempo y en donde las entradas de los registros estaban relacionadas entre sí con los demás registros de diseño para cumplir una determinada función. ★ Para llevar a cabo un correcto funcionamiento de un diseño de transferencia lógica entre registros en importante tener en cuenta algunas pautas como lo son el algoritmo de la operación que se quiere implementar identificando entradas y salidas al sistema, luego una carta ASMD para la secuencia del desarrollo, un DataPath que contendrá registros, micro-operaciones entre registros y multiplexores, un ControlPath que controlará algunas enables de registros, líneas de selección de multiplexores y algunos otros componentes que hacen parte del ControlPath, para obtener la salida deseada. ★ La notación simbólica que se utilizan para describir las transferencias de microoperaciones entre registros se llama lenguaje de transferencias de registros. El termino “transferencia de registro” implica la disponibilidad de circuitos lógicos de hardware que puedan efectuar una microoperacion definida y transferir el resultado de la operación al mismo o a otro registro. El conocer de manera oportuna el lenguaje, hace que como diseñador se pueda entender cualquier sistema a realizar, modificar o leer eficientemente. ★ Los computadores y cualquier unidad de control, aritmética o lógica, utiliza la transferencia entre registros, debido a que permiten guardar información temporalmente para facilitar la manipulación de los datos. De allí, parte también la importancia a la hora de entender y manejar de la mejor manera el uso de registros y dispositivos anexos en pro de su correcta utilización. ★ La lógica entre registros es ampliamente usada en medios computacionales, convertidores digital analógico y analógico digital, sistemas que necesiten retardos de propagación de datos, protocolos de comunicación, secuenciadores (luces y anuncios publicitarios), sistemas de transmisión de datos y en general, operaciones que se realicen secuencialmente. V. INFOGRAFÌA → Documento de la Universidad Nacional de ingeniería, facultad de electrotecnia y computación: “Registros”. Disponible en: https://electrouni.files.wordpress.com/2010/08/registros .pdf → Video de internet: “Modelsim Tutorial”. Disponible en: https://youtu.be/Z8whdGa7RtY → Documento sobre VHDL: “VHDL Test Tutorial”. Disponible en: https://moodle.epfl.ch/pluginfile.php/1772382/mod_res ource/content/3/vhdl_testbench_tutorial.pdf
Compartir