Clases_parte2:Septiembre

  



Clase: 17 de septiembre de 2020

En la clase presentada, identificaremos las herramientas y funciones del software ISE Design Suite.

Se ejecuta el software y creamos un nuevo proyecto.



Es recomendable crear una carpeta por proyecto, esto permite llevar un buen control y no revolver otros archivos evitando problemas a futuro.


Se deja la configuración predeterminada 



Obtenemos tres ventanas


Este ventada se divide en dos partes, la parte de jerarquía y la parte de procesos. Cada vez que vamos agregando un elemento se va actualizando la ventana de acuerdo a los complementos añadidos.
 

Se puede observar en el panel siguiente, los errores, advertencias, salida de la consola, entre otros.


Seleccionamos el panel de jerarquía y seleccionamos una nueva fuente. Elegimos VHDL Module y le asignamos un nombre, en este caso "AND" para realizar como ejemplo una compuerta lógica tipo AND.


Asignamos puertos




Se obtiene la siguiente estructura:

Para la simulación de una compuerta AND se escribe el siguiente código: 

s<=a and b;


Y seleccionamos "Synthesize" para verificar si no hay ningún error.


 

Seleccionar la parte simulación y elegimos el proyecto elegido.






Se abre la siguiente ventana 


Se realizara el comportamiento de la compuerta AND.


Forzamos una constante en la primera y segunda entrada con un valor 0.



Damos inicio a la simulación.


En la ventana se reflejara el comportamiento de los valores que asignamos y comprobar las salidas.



Clase: 18 de septiembre de 2020

Anatomía de un modelo VHDL

  • "Entidad" describe la vista externa de un componente
  • "Arquitectura" describe el comportamiento interno y / o la estructura del componente.
  Sumador de bits completo

Direcciones

  • In- conducido a la entidad desde una fuente externa (puede leer, pero no actualizar dentro de la arquitectura).
  • out- impulsado desde dentro de la entidad. (puede conducir pero no leer dentro de la arquitectura).
  • inout- bidireccional impulsores tanto dentro de la entidad como externos. (puede leer o escribir dentro de la arquitectura).
  • buffer- como "out" pero puede leer y escribir.
Data_type: cualquier tipo de señal escalar o agregada.

Cascade 8 I-bit direccion para 8- bit adder 

entity Adder8 is

port (A, B:in BIT_VECTOR (7 downto 0);

     Cin:in BIT;

     Cout: out BIT;

    Sum: out BIT_VECTOR (7 downto 0));

end Adder8;


Tipos de datos (Built-in)

Scalar (valor único) tipos de señal:

  • bit- Los valores son "0" y "1".
  • Boolean- El valor puede ser TRUE (Verdadero) o FALSE (Falso).
  • integer- Valores [(-2^31).....+(2^31-1) en 32 bits host.
Aggregate (multi-valor) tipos de señal:

bit_vector- array of bits

    signal b: bit_vector (7 downto 0);

    signal c:bit_vector (0 to 7);

   b <= c after 1 ns;

   c <= "01010011"; 

 IEEE std_logic_1164 package 

Proporciona estados lógicos adicionales como valores de datos

package Part_STD_Logic_1164 is 

type StD_ULOGIC is ( 'U',- Uninitialized

                                     'X',- Forcing Unknown

                                     '0',-Forcing 0

                                     '1',-Forcing 1

                                     'Z',-High Impedance

                                     'W',- Weak Unknown.

                                     'L',- Weak 0

                                     'H',-Weak 1

                                     '-'  -- Don't Care);

type STD_ULOGIC_VECTOR is array (NATURAL range <>) of STD_ULOGIC;

--others subtypes: X01, X01Z, UX01, UX01Z- subsets of std_logic/ulogic 


Clase: 29 de septiembre de 2020

VHDL 'Descripción'


if (sel = '1' ) then 

      z <=y;

else 

    z <= x ;

end if;

z  <= y when sel = '1' else x;


Ejemplo de de condicional en ISE Project Navigator

Se realizo el siguiente código de condicional:


Se establece que que si el selector es igual a 1, entonces la salida Z se le asigna el valor de Y. Si no Z obtiene el valor de X.


El código es comprobado por la simulación.





Comentarios

Entradas populares de este blog

Llenado de tanque en VHDL

Práctica LCD

Practica LCD con RS232