Intermedio > Circuitos integrados > ISE Proyect Navigator

ISE Proyect Navigator

Objetivos

  1. Aprender a usar el ISe Project Navigator como una herramienta de software en que apoye en el aprendizaje de la tecnología de lógica no cableada en circuitos digitales.
  2. Poder desarrollar el procedimiento de edición o captura, verificación funcional, rutado y conexionado.
  3. Poder simular circuitos digitales usando el software de simulación ISE Project Navigator.
  4. Analizar he interpretar los resultados de la simulación en un diagrama de tiempo.

Introducción Teórica

El proceso de diseño se llevará a cabo a través de los pasos indicados en la figura 1, que se describen brevemente a continuación.


Create Code/Schematic:El diseño debe ser introducido en la herramienta mediante la ubicación y conexionado de los diferentes componentes, disponibles en varias bibliotecas

Funcional Simulation:Permite comprobar que la funcionalidad del esquema capturado es la esperada. Para ello deben especificarse los valores que deben colocarse en las entradas del circuito (mediante el fichero scf), a continuación, debe simularse el periodo de tiempo deseado, y finalmente debe comprobarse que los resultados en las salidas del circuito sean correctos.

Place and Route:Si la simulación del circuito ha sido satisfactoria, el siguiente paso consiste en ubicar el diseño en el chip programable del que se disponga (en nuestro caso el chip EPM7128SLC84). Para ello debe compilarse el diseño, de manera que se asignarán las puertas que lo componen a las celdas programables de las que dispone el chip y se decidirá su interconexión. Como resultado de esta etapa se obtendrá el fichero de programación del chip

Programming:Una vez obtenido el fichero de programación correspondiente al diseño, debe conectarse el cable de programación (byteblaster) al puerto paralelo del PC y la placa de demostración. Mediante la programación el contenido del fichero será transferido a la placa. Si la programación se ha realizado correctamente podremos comprobar cómo efectivamente, a cada pulsación de uno de los botones de la placa, ésta cuenta.

Procedimiento

I. Primera parte

A continuación, se detallan los pasos que, siguiendo el diagrama de flujo indicado en la figura 1, permitirán completar el diseño del proyecto.

Lanzar el programa ISE Project Navigator

Creación del nuevo proyecto
Puesto que la captura del diseño va a realizarse mediante un esquemático crea un nuevo Proyecto con el Project Wizard

Escoger el TOP-LEVEL SOURCE TYPE: Schematic


Clickear en "next" y seleccionar Evaluation Development Board Spartan-3A Starter Kit Spartan 3A and Spartan3AN:


Tras hacer Next y después Finish terminamos de poner los diferentes parámetros del gestor de proyectos.
La siguiente etapa es clickear New y escoger Schematic


Como resultado se abre un nuevo esquemático de nombre "untitledSchematic1.sch".

Se hace click en la pestaña marcada Symbols para que parezca a la izquierda una lista de símbolos que podremos utilizar.

Captura del esquema
Para añadir un nuevo componente al esquema debe realizar un click sobre el símbolo deseado
Selecciona los diferentes componentes que forman parte del esquemático.
Puedes replicar los componentes tantas veces como quieras seleccionando una instancia, copiándola en el portapapeles (ctrl + C) y pegándola de nuevo (ctrl + V)
Conecta los componentes a los diferentes módulos y pines de entrada y salida.

Haz un clic derecho sobre la etiqueta de cada pin, y reemplázala por el nombre que le corresponda.

Graba con el nombre "monigote" y verifica el esquematico Tools --> Check Schematic

Si el esquema es correcto el compilador lo notificará con el mensaje '0 errors and 0 warnings'.

Si se han producido errores se abrirá una nueva ventana con información detallada. Para acceder al punto donde se localiza el error haz doble click sobre cada mensaje. Corrige todos los errores y repite la verificación.

Cuando nos ponemos en la etiqueta y miramos sus propiedades que vemos como propiedades
Ir a tools y anotar todo lo que tenemos con una Breve descripción de lo que hacen.

Desarrollo

  1. Library ieee;
  2. Use ieee.srd_logic_1164.ALL;
  3. Use ieee.numeric_std.ALL;
  4. library UNISIM;
  5. Use UNISIM.Vcomponents.ALL;
  6. ENTITY Ejemplo01_Ejemplo01_sch_tb IS
  7. END Ejemplo01_Ejemplo01_sch_tb;
  8. ARCHITECTURE behavioral OF Ejemplo01_Ejemplo01_sch_
  9. COMPONENT Ejemplo01
  10. PORT( B : IN STD_LOGIC;
  11. A : IN STD_LOGIC;
  12. C : IN STD_LOGIC;
  13. F : OUT STD_LOGIC);
  14. END COMPONENT;
  15. SIGNAL B : STD_LOGIC;
  16. SIGNAL A : STD_LOGIC;
  17. SIGNAL C : STD_LOGIC;
  18. SIGNAL F : STD_LOGIC;
  19. BEGIN
  20. UUT: Ejemplo01 PORT MAP(
  21. B => B,
  22. A => A,
  23. C => C,
  24. F => F
  25. );
  26. --*** Test Bench - User Defined Section ***
  27. tb : PROCESS
  28. BEGIN
  29. A <= '0';
  30. B <= '0';
  31. C <= '0';
  32. wait for 100ns;
  33. A <= '0';
  34. B <= '0';
  35. C <= '1';
  36. wait for 100ns;
  37. A <= '0';
  38. B <= '1';
  39. C <= '0';
  40. wait for 100ns;
  41. A <= '0';
  42. B <= '1';
  43. C <= '1';
  44. wait for 100ns;
  45. A <= '1';
  46. B <= '0';
  47. C <= '0';
  48. wait for 100ns;
  49. A <= '1';
  50. B <= '0';
  51. C <= '1';
  52. wait for 100ns;
  53. A <= '1';
  54. B <= '1';
  55. C <= '0';
  56. wait for 100ns;
  57. A <= '1';
  58. B <= '1';
  59. C <= '1';
  60. wait for 100ns;
  61. WAIT; --will wait forever
  62. End PROCESS;
  63. --*** End Test Bench - User Defined Section ***
  64. END;
  65. II. Segunda parte

    Usando el procedimiento mostrado en la parte I, realice todos los pasos para crear y simular un proyecto, para el siguiente circuito y compruebe los resultados con el diagrama de tiempos realizado teóricamente.

    La parte Simulación se desarrolla de la siguiente manera:






    Repetimos los estímolos tantas veces que sea necesario.




    Siendo las entradas las líneas A y CLK y las salidas Q1 y Q0.
    Hagan el esquemático y muestren su diagrama de tiempos.


    1. Library ieee;
    2. Use ieee.srd_logic_1164.ALL;
    3. Use ieee.numeric_std.ALL;
    4. library UNISIM;
    5. Use UNISIM.Vcomponents.ALL;
    6. ENTITY ejemesq_ejmesq_sch_sch_tb IS
    7. END ejmesq_ejmesq_sch_tb;
    8. ARCHITECTURE behavioral OF ejmesq_ejmesq_sch_tb IS
    9. COMPONENT ejmesq
    10. PORT ( A : IN STD_LOGIC;
    11. CLK : IN STD_LOGIC
    12. Q1 : OUT STD_LOGIC;
    13. Q0 : OUT STD_LOGIC;
    14. CLR : IN STD_LOGIC);
    15. END COMPONENT;
    16. SIGNAL A: STD_LOGIC;
    17. SIGNAL CLK: STD_LOGIC;
    18. SIGNAL Q1: STD_LOGIC;
    19. SIGNAL Q0 : STD_LOGIC;
    20. SIGNAL CLR : STD_LOGIC;
    21. BEGIN
    22. UTT: ejmesq PORT MAP(
    23. A => A,
    24. CLK => CLK,
    25. Q1 => Q1,
    26. Q0 => Q0,
    27. CLR => CLR
    28. );
    29. -- *** Test Bench - User Defined Section ***
    30. tb : PROCESS
    31. BEGIN
    32. A <= '0';
    33. CLK <='0';
    34. CLR <= '1';
    35. wait for 100ns;
    36. A <= '1';
    37. CLK <= '1';
    38. CLR <= '0';
    39. wait for 100ns;
    40. A <= '1';
    41. CLK <= '0';
    42. CLR <= '0';
    43. wait for 100ns;
    44. A <= '1';
    45. CLK <= '1';
    46. CLR <= '0';
    47. wait for 100ns;
    48. A <= '1';
    49. CLK <= '0';
    50. CLR <= '0';
    51. wait for 100ns;
    52. A <= '1';
    53. CLK <= '1';
    54. CLR <= '0';
    55. wait for 100ns;
    56. A <= '1';
    57. CLK <= '0';
    58. CLR <= '0';
    59. wait for 100ns;
    60. A <= '1';
    61. CLK <= '1';
    62. CLR <= '0';
    63. wait for 100ns;
    64. A <= '1';
    65. CLK <= '0';
    66. CLR <= '0';
    67. wait for 100ns;
    68. A <= '1';
    69. CLK <= '1';
    70. CLR <= '0';
    71. wait for 100ns;
    72. A <= '1';
    73. CLK <= '0';
    74. CLR <= '0';
    75. wait for 100ns;
    76. A <= '1';
    77. CLK <= '1';
    78. CLR <= '0';
    79. wait for 100ns;
    80. wait; --will wait forever
    81. END PROCESS;
    82. -- *** End Test Bench - User Defined Section ***
    83. END;

    Implemente el siguiente contador

    1. Library UNISIM;
    2. USE UNISIM.Vcomponents.ALL;
    3. ENTITY Ejemplo04_Ejemplo04_sch_tb IS
    4. END Ejmeplo04_Ejemplo04_sch_tb;
    5. ARCHITECTURE behavioral OF Ejemplo04_Ejemplo04_sch_tb Is
    6. COMPONENT Ejemplo04
    7. PORT ( Q2 : OUT STD_LOGIC;
    8. Q0 : OUT STD_LOGIC;
    9. Q1 : OUT STD_LOGIC;
    10. CLK : IN STD_LOGIC;
    11. CLR : IN STD_LOGIC);
    12. END COMPONENT;
    13. SIGNAL Q2 : STD_LOGIC;
    14. SIGNAL Q0 : STD_LOGIC;
    15. SIGNAL Q1 : STD_LOGIC;
    16. SIGNAL CLK : STD_LOGIC;
    17. SIGNAL CLR : STD_LOGIC;
    18. BEGIN
    19. UTT: Ejemplo04 PORT MAP(
    20. Q2 => Q2,
    21. Q0 => Q0,
    22. Q1 => Q1,
    23. CLK => CLK,
    24. CLR => CLR
    25. );
    26. --*** Test Bench - User Defined Section ***
    27. tb : PROCESS
    28. BEGIN
    29. CLK <= '0';
    30. CLR <= '0';
    31. wait for 100ns;
    32. CLK <= '1';
    33. CLR <= '0';
    34. wait for 100ns;
    35. CLK <= '0';
    36. CLR <= '0';
    37. wait for 100ns;
    38. CLK <= '1';
    39. CLR <= '0';
    40. wait for 100ns;
    41. CLK <= '0';
    42. CLR <= '0';
    43. wait for 100ns;
    44. CLK <= '1';
    45. CLR <= '0';
    46. wait for 100ns;
    47. CLK <= '0';
    48. CLR <= '0';
    49. wait for 100ns;
    50. CLK <= '1';
    51. CLR <= '0';
    52. wait for 100ns;
    53. CLK <= '1';
    54. CLR <= '1';
    55. wait for 100ns;
    56. WAIT; -- will wait forever
    57. END PROCESS;
    58. -- *** End Test Bench - User Defined Section ***
    59. END;

Linksappsclose