Está en la página 1de 23

https://www.rapidtables.org/calc/math/base-calculator.

html

Dado un conjunto de salidas que entrega el circuito siempre van a depender de la situación
que se encuentre descrita en las entradas.
Para un circuito de m entradas vamos a tener 2 a la m combinaciones posibles, la cantidad de
salidas de un circuito combinacional no depende de la cantidad de entradas disponibles.
En las técnicas de diseño enfocadas en la tecnología TTL Y CMOS las características de la
compuertas NAND y NOR, como estas, resultaban vitales puesto que se podía conseguir
reducir los costos y las dimensiones del arreglo físico implementando cualquier compuerta
con estos dos operadores lógicos de tal manera que era muy importante saberlos manejar de
manera universal, en la actualidad esta forma de conocimiento ya no es tan necesaria.

Las experiencias adquiridas son útiles en la verificación del funcionamiento de un arreglo, en


particular nos permitirán determinar si estamos ante un circuito combinacional.
Un diagrama nos representa el flujo que sigue la información a lo largo del proceso de tal
manera que tenemos claramente donde están las entradas y donde las salidas
En un circuito combinacional e flujo de datos siempre va de una dirección, nunca regresa,
siempre fluye desde la entradas hasta las salidas y no hay forma de que esta regrese al
comienzo.
El procedimiento de diseño se pueden emplear diversos puntos de vista
En que consiste este dispositivo y como emplearlo
Tiene antecedentes tecnológicos a lo PLDs y a los ASICs
PLDs arreglos de circuitos combinacinales acoplados con elementos de memoria. El termino
programable no hace referencia a un lenguaje de programación puesto que no se desarrollan
elementos de software.
Se refiere al hecho de que el enrutado de estos arreglos se puede configurar mediante el
empleo de un lenguaje HDL o Hardware Design Languaje
Se describe el circuito como tal.

Se compone de una suerte se sumas de producto s de las variables de entrada para describir
las salidas
El lenguaje hdl determina de que manera se relacionan las variables con respecto de los
bloques de multiplicacion y las sumas para definir auna función
A partir de pld
simple se desarrolaron tipos mas complejos distinguiéndose dpor como se manejan el juego
de compuertas lógicas y los elementos de memoria.

Sistemas completos implementados en un solo chip por lo que se enfocan en la


minituarizacion.
Se fabrican para fines tecnológicos y comerciales.Hacer el núcleo de una tableta electrónica o
un juguete. Se componen de enormes bloques de compuertas memorias y otros artilugios
electrónicos de diversa índole se implementan mediante lenguaje HDL
Muy eficientes pero muy costosos.
Los PLDs simples fueron una respuesta al mercado a la necesidad de seguir realizando
prototipos aun menor costo y fomentando la creación de capital humano
Creación de los CPLDs o PLDs de estructura compleja y posteriormente FPGAs

Tanto un CPLD como un FPGA poseen un gran número de elementos lógicos programables.
Pero en densidad de puertas lógicas el primero posee decenas de miles y el fpga van del
orden de cientos de miles hasta millones de ellas.
Las ventajas
Al configurar hardware estamos dirigiendo el flujo de datos manipulando señales eléctricas
por lo que el procesamiento de información es precisamente en paralelo(las compuertas
existen físicamente hablando y por lo tanto realizan operaciones de forma simultanea)
Si realizamos una sincronización de los procesos para establecer un régimen temporal
veremos que se pueden manejar altas frecuencias de flujo de datos.
El diseño implementado en un dispositivo puede desecharse para realizar otro diseño
Des
No existe un estándar común de inicialización ya que estas reglas la define
El lenguaje de descripción de hardware si es un estándar pero ciertamente es complejo por la
naturaleza paralela del dispositivo
El costo es superior al de otro tipo de soluciones tecnológicas.
VIDEO 2
FPGA: Gran Matriz de compuertas AND y OR cuyas interconexiones se definen por un
lenguaje luego podemos imaginar a estas configuraciones como tablas de verdad LUTs
Dan lugar a circuitos implementados mediante una Memoria temporal estática SRAM. El
empleo de memoria SRAM implica que el dispositivo pierde la configuración una vez se le
quita la alimentación

La salida de una LUT puede ser enviada a dos elementos, una se dirige hacia un selector de
dos canales(multiplexor), canal 1 y 2
Este dispositivo permite el paso de solo uno de los canales por vez hacia su salida.
El otro elemento al que esta conectada la LUT es un dispositivo de memoria, aquí llamada
celda básica o Flip-Flop, esta conectado a una señal de reloj, un dispositivo de tipo
secuencial, opera por ciclos de reloj, su función es la de almacenar las salidas disponibles en
cada instante de tiempo de la LUT, de tal manera que el multiplexor en su canal 2, es recibir
esa señal que se almacena temporalmente en el dispositivo de memoria.
Multiplexor: decidir si nuestra LUT, con su juego de memoria, se comporta de forma
puramente combinacional, tomar el canal 1, o de forma secuencial, tomar el canal 2,
Dispositivos secuenciales: dispositivos que manejan memoria.
A este arreglo completo se le llama unidad lógica o elemento lógico LE por sus siglas en
ingles.
Cada LE con el que cuenta el fpga están interconectados entre si y a las salidas del propio
fpga.
Implementar un proyecto con un fpga consiste en designar la tabla de verdad que da
solución al problema, determinar si es necesaria la retención de la información durante el
proceso y luego, conectar las entradas y las salidas de los elementos lógicos ya sea entre
ellos o hacia las salidas del fpga.
No es necesario minimizar las funciones, en su lugar hay que buscar estrategias que reduzcan
la cantidad de código, ya que se deben especificar todas las combinaciones posibles según la
cantidad de entradas que tenga nuestra función, aunque si especificamos, literalmente, toda
una tabla de verdad entonces estamos volviendo a la técnica tradicional de diseño.
No deseable en este dispositivo

En un FPGA los diseños no se orientan hacia la designación especifica de cada compuerta


sino a la forma en que deseamos que fluya el procesamiento de los datos (señales digitales).
El nivel de abstracción que se emplea al deseñar un circuito con el FPGA, es denominado RTL
nivel de transferencia entre registros, cada uno de los dispositivos que vamos designando a
la hora de crear un código se llama Registro y no solamente compuerta.
Pasos a seguir al implementar un proyecto con un FPGA
-Visualizar el problema de tal forma que podamos la tabla de verdad correspondiente pero
priorizando el reciclaje de diseños previos que pudieran ser aplicables, Emplear registro
-Determinados las condiciones del problema y los elementos disponibles, procedemos su
descripción ene el lenguaje HDL del que dispongamos.
-Proceso de síntesis en el que le código será convertido en un circuito lógico. En la parte de la
síntesis realizar un estudio sobre el comportamiento de las señales de entrada y de salida
para determinar si nuestro diseño es el óptimo.
-Designación de entradas y salidas que vamos a utilizar propiamente sobre nuestro
dispositivo de destino y finalmente lo implementaremos sobre el FPGA elegido.

Paso previo al diseño con FPGA es entender lenguajes de descripción de hardware VHDL
Los niveles de abstracción HDL hacen referencia a la forma de dar solución técnica aun
problema manejando una entidad y una arquitectura.
La entidad define al diseño externamente, designando el nombre del arreglo designando las
entradas y las salidas, así como los tipos de datos que estas manejan.
La arquitectura define la funcionalidad de la entidad implementando las operaciones para el
fin que persigue dicha solución.

Las entradas y las salidas de una entidad son denominadas ports o puertos.
Un tipo especial de puerto puede funcionar de manera bidireccional (se comporta como
entrada o salida a la vez).
Los puertos deben tener nombres que no deben empezar por números, no admiten símbolo
especiales salvo el guion bajo, no hay distinción entre mayúsculas y minúsculas, cada puerto
debe tener un nombre diferente.
Los tipos datos manejados por los puertos pueden ser variados, valores lógicos, valores
numéricos naturales, valores enteros, alfanuméricos, aunque no todos son sintetizables.

Para designar el flujo de datos en un puerto se utilizan


IN: Entradas OUT: para las salidas INOUT: implementar un puerto bidireccional
Los flujos de tipo IN y OUT están estrictamente definidos, si un flujo es de entrada entonces
no se puede escribir en dicho puerto, si un flujo es de salida entonces no se puede leer de el.

Existen diversas librerías para trabajar con FPGAs algunas implementadas por los propios
fabricantes pero la industria prefiere el empleo de los entandares en este caso IEEE 1164
STD LOGIC Bit por bit STD LOGIC VECTOR: manipulación de arreglos de bits, cuando
ya se habla de buffers.
Buffer: palabra de una determinada longitud de bits, por ejemplo una palabra de 4 bits de 8
bits de 16 bits, o de 32 bits etc
Para introducir los conceptos del estándar vamos a manejar los tipos de datos STD LOGIC
cuyos valores posibles son ‘0’, ‘1’, ‘U’.
Se incluyen comillas al indicar los valores posibles, ya que el compilador necesita entender
que se esta hablando de valores lógicos y no de valores numéricos ya que en ese caso será
necesario implementar otro tipo de librería.

Esquema básico que sigue un código en VHDL cuando se quiere definir una entidad.
Las palabras en negrita excepto modo son palabras reservadas del lenguaje VHDL
library: designa cual de todas las librerías disponibles se empleara.
use: determina cual conjunto de tipos de datos de la librería se van a emplear , en este caso
std_logic, permite manipular bits individualmente
entity: permite dar nombre al arreglo is: declara el comienzo de la designación de la entidad
generic (junto con sus argumentos): es un elemento opcional que permite declarar variables
constantes y propiedades para la entidad en independencia de la arquitectura que
posteriormente se declare, no es sintetizable, solo sirve para a simulación del diseño.
port: establecerá el conjunto de entradas y salidas para la entidad
end: termina la designacion de la entidad siempre indicando de nuevo el nombre que esta
tenga.
Toda sentencia en el lenguaje VHDL termina en ;
La designacion del flujo se realiza mediante : seguido inmediatamente de la dirección que el
flujo tiene (in) y posteriormente el tipo(tipo) de dato que manejara dicho puerto(entrada 1,
entrada2) los puertos se pueden enlistar separados por comas.
En la definición de port, el ultimo puerto no requiere de ; antes de cerrar el paréntesis
correspondiente.

Como la entidad es una sentencia desde que empieza la palabra formalmente dicha,
entonces la sentencia termina hasta que escribimos end nombre por lo que se coloca
también un ;.

Mostramos el formato que sigue la implementación de una arquitectura


Las negritas son palabras reservadas
architecture: designa el nombre dado a la misma(arch_name) palabra cualquiera que
permite describir el comportamiento que se emplea en la descripción, el cual puede ser
funcional, de flujo de datos, estructural, etc.
of:indica a quien le pertenece la arquitectura, esto es a una entidad que debió designarse de
forma previa.
is: comienza la declaración justamente de la arquitectura, los tipos, señales y componentes
son elementos auxiliares para el elemento de la entidad que bien pueden ser constantes
variables o entidades definidas en otros proyectos.
begin: indica el comienzo del bloque de comportamiento de la arquitectura, los códigos,
instrucciones y ecuaciones establecen el comportamiento combinacional de la arquitectura.
Los componentes se refieren a la utilización de las operaciones definidas en una entidad
realizada con anterioridad y que se esta incluyendo en el proyecto presente.
process: es un procedimiento secuencial, esto es de memoria, cuyos valores devueltos
dependen de los cambios habidos en la (lista de sensibilidad) lista de variables o señales que
son las que determinan los cambios de valor dentro del procedimiento secuencial.

Constant después su nombre y : seguido tipo de valor que va a manejar esta constante el
operador de asignación := y el valor correspondiente.
Variable después nombre de dicha variable, operador de asignación(:) de tipo, y
[opcionalmente] un valor inicial asignado con el operador :=
Signal, nombre de la señal seguida de el operador de asignación de tipo
Los valores entregados a la sconstantes, las variables, y las señales deben ser compatibles
con los tipos manejados.
Si nosotros vamos a emplear valor lógicos estos deben encerrarse en comillas simple
Los puertos de hecho son señales, pero su tipo de objeto es asignado una vez que nosotros lo
declaramos en la entidad,
Todos los operadores que se manejan en el leguaje VHDL y todos aquellos que no son de tipo
lógico requieren ser precargados con una librería especifica
Nos enfocaremos en aquellos de tipo lógico, recurrir a los operadores de asignación según la
necesidad del elemento de codificación que estemos utilizando.
Declara que librería se usara, la librería en cuestión IEEE;
Definir el conjunto de variables a utilizar de esa librería use
Y el conjunto de variables que es IEEE.STD_LOGIC_1164.ALL para indicar que queremos
todos los tipos definidos
Escribimos port por definir los puertos del circuito
Los puertos de nuestro dispositivo son a,b
Ponemos : para indicar la dirección del flujo, en este caso son de entrada in y se define el tipo
de dato, como se quiere que se lean valores lógicos entonces std_logic solamente,
A continuación declaramos la salida S, definir la dirección del fluji: es este caso salida out de
que tipo std_logic
Se termina de definir la entidad y ahí que cerrarla dando end y el nombre de la entidad
creada;
Solamente se ha diseñado el circuito desde afuera diciendo las entradas y la salidas
A continuación se debe designar la arquitectura architecture y darle el nombre a la
arquitectura, solo se defne la operación que se debe realizar y decimos a quien le pertenece
of
Y seguiría el espacio de los elementos auxiliares de nuestra arquitectura pero e n este caso
no se necesiatan.
Sigue la palabra begin , para comenzar a designar como van a ser las salidas con respecto de
la entradas.
Entonces dejamos espacio, S va a recibir un <= ‘1’ , el símbolo es el operador de asignación,
el valor que se asigna, en este caso es lógico debe ir entre comillas simples de no ponerlo el
compilador nos marcaria error porque interpretaría al numero justamente como un numero
y no como un valor lógico.
Luego cuando when, S recibe un 1 cuando
La simulación de un diseño se realiza aplicando formas de onda(vectores de prueba) a las
entradas del circuito, gráficamente
Consta de dos áreas
Enamrca una escala de tiempo
Lista los puntos o nodos de interés en el circuito que queremos simnlar
La escala de tiempo parte desde los 0 a 960 ns
Este rango de tiempo es demasiado grande ya que el fpga es un dispositivo de alta velocidad
por lo que hay que limitar el rango a solamente unos cuanto ns en este caso a 50.

En node Finder vamos a buscar los nodods disponibles en nuestro diseño, es decir las
entradas y salidas que definimos en la entidad, se buscan en list y se agregan a la lista de
señales a analizar y están agregados.
Aun no están definidas las formas de onda, la salida indica un valor desconocido,
Se seleccionan una a una cada entrada, se busca overwriteclock y ahí se indica el periodo y
en la ventana emergente indicaremos el periodo(cada que tiempo se va a estar repitiendo
nuestra forma de onda) de la señal y el ciclo de trabajo (cuanto tiempo estará en estado alto
y por consiguiente en estado bajo).
Se hace en que las señales establezcan todas las combinaciones de nuestra tabla de verdad.
40ns
50% 20ns en estado bajo y 20ns en estado alto
Se procede a la simulación
Al final se verifica como son las salidas de nuestro circuito
Estas formas de onda representan justamente los voltajes entregados en los pines de nuestro
FPGA, los que se deben entregar para las entradas y las respuestas que nos devuelve en
voltaje nuestro circuito, en el fpga los voltajes devueltos son de 3.3 V para un 1 y de entre 0 a
0.5 V para indicar un valor lógico 0

Emplazamiento y el enrutamiento
Configurar como las salidas y entradas de nuestro dispositivo se vincularan con los pines del
FPGA, modo grafico de designar los pines correspondientes, pine plainer
Representación grafica del FPGA, observar pines gráficos que contienen letras Qs Y Rs, pines
que pueden ser utilizados para designar entradas o salidas físicas en nuestro FPGA.
Para designar los pines vamos a la columna location y en la fila correspondiente al nodo que
queremos designar, doble click, cambia a un menú de todos los pines disponibles en el FPGA.
Luego enable live I/O check, verificar que los pines que seleccionamos son adecuados para el
trabajo que pretendemos implementar en el FPGA.
Cjeck passed, los pines son adecuados.

Cerramos pin planer


Volveremos a compilar el proyecto para que queden designados los pines que nosotros
definimos en la herramienta anterior.

Luego descarga de la configuración hacia el FPGA


Implementación física de nuestro circuito sobre nuestro FPGA
Cables para descargar nuestro diseño al dispositivo
Cable blanco terminales tipo Jtag
Cable conversor de USB a miniUSB que debe ir conectado hacia el grabador USB Blaster,
Fuente de alimentaion a 5V.
El cable JTAG viene codificado de tal manera de no equivocarse al conectarlo al grabador y al
FPGA
Conectar terminal libre JTAG hacia el FPGA
En la propia placa lo indica.
A continuación vamos a conectar una de las terminales tipo PLUG de nuestra fuente de
alimentación hacia nuestro FPGA

También podría gustarte

  • Tabla de Z
    Tabla de Z
    Documento4 páginas
    Tabla de Z
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Señales de Manos
    Señales de Manos
    Documento10 páginas
    Señales de Manos
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Tomaquilo 3
    Tomaquilo 3
    Documento1 página
    Tomaquilo 3
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Oscillator
    Oscillator
    Documento5 páginas
    Oscillator
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Harmonics
    Harmonics
    Documento5 páginas
    Harmonics
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Reporte Potenciometro
    Reporte Potenciometro
    Documento5 páginas
    Reporte Potenciometro
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Harmonic Oscillator
    Harmonic Oscillator
    Documento5 páginas
    Harmonic Oscillator
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Crono F
    Crono F
    Documento4 páginas
    Crono F
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • ACT 1.1 FT. Investigacion
    ACT 1.1 FT. Investigacion
    Documento3 páginas
    ACT 1.1 FT. Investigacion
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones
  • Hello
    Hello
    Documento5 páginas
    Hello
    Jose Carlos Lillo Salinas
    Aún no hay calificaciones