Autor Tema: Logica programable en HDL con PLDs simples  (Leído 32632 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #15 en: 15 de Marzo de 2011, 10:27:10 »
Programacion del minitermino F(C,B,A) = Sm(0,1,2,5,7) en lenguaje Schematic usando la GAL22V10

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado dolphin_96

  • PIC12
  • **
  • Mensajes: 73
    • Ezkybel Electronics
Re: Logica programable en HDL con PLDs simples
« Respuesta #16 en: 15 de Marzo de 2011, 10:29:52 »
Pues me apunto como "seguidor" y le agradesco de antemano su tiempo para compartir sus conocimientos
gracias
Visiten: www.xbot.es/ezkybel tengo tutoriales para pics con visual basic...:)

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #17 en: 15 de Marzo de 2011, 10:46:04 »
A continuacion muestro la simulacion en PROTEUS isis, utilizo la version 7.4. En el archivo adjunto, coloco el .jed para cargar en isis, el archivo para proteus y un video de la simulacion de esta funcion.



saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #18 en: 18 de Marzo de 2011, 20:52:23 »
Bloque simple de un sumador completo



Lineas de entrada: Ci,B y A
Lineas de salida : Co y S


Ci B  A     Co S
-------     ----
0  0  0     0  0
0  0  1     0  1        
0  1  0     0  1
0  1  1     1  0
1  0  0     0  1
1  0  1     1  0
1  1  0     1  0
1  1  1     1  1

Expresado en un minitermino tendriamos:

-Co(Ci,B,A) = Sm(3,5,6,7)
-S(Ci,B,A)  = Sm(1,2,4,7)

Por lo tanto la forma canonica para este par de miniterminos seria:

Co = (!Ci&B&A)#(Ci&!B&A)#(Ci&B&!A)#(Ci&B&A);
S  = (!Ci&!B&A)#(!Ci&B&!A)#(Ci&!B&!A)#(Ci&B&A);

Con lo cual podemos programar en el lenguaje HDL de nuestra preferencia.

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #19 en: 18 de Marzo de 2011, 20:54:38 »
Sumado completo (full-adder) implementado en ecuaciones boleanas. Editado y
compilado en winCUPL (lenguaje cupl).

Código: [Seleccionar]
PIN 2  = A;
PIN 3  = B;
PIN 4  = Ci;

PIN 23 = S;
PIN 22 = Co;

S  = (!Ci&!B&A)#(!Ci&B&!A)#(Ci&!B&!A)#(Ci&B&A);
Co = (!Ci&B&A)#(Ci&!B&A)#(Ci&B&!A)#(Ci&B&A);

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #20 en: 18 de Marzo de 2011, 20:55:56 »
Sumado completo (full-adder) implementado en tablas de verdad. Editado y
compilado en winCUPL (lenguaje cupl).

Código: [Seleccionar]
PIN 2  = A;
PIN 3  = B;
PIN 4  = Ci;

PIN 23 = S;
PIN 22 = Co;


FIELD entradas = [Ci,B,A];
FIELD salidas  = [Co,S];

TABLE entradas => salidas
{
   'b'000 => 'b'00;
   'b'001 => 'b'01;
   'b'010 => 'b'01;
   'b'011 => 'b'10;
   'b'100 => 'b'01;
   'b'101 => 'b'10;
   'b'110 => 'b'10;
   'b'111 => 'b'11;
}

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #21 en: 18 de Marzo de 2011, 22:57:10 »
Con ecuaciones boleanas usando lenguaje ABEL, qui esta el mismo codigo:

Código: [Seleccionar]
MODULE sumador;
TITLE 'Bloque simple de un sumador completo'

DECLARATIONS;

        sumador DEVICE 'P22V10';
        A,B,Ci PIN 2,3,4;
        S,Co   PIN 23,22 ISTYPE 'COM';

EQUATIONS;

   S  = (!Ci&!B&A)#(!Ci&B&!A)#(Ci&!B&!A)#(Ci&B&A);
   Co = (!Ci&B&A)#(Ci&!B&A)#(Ci&B&!A)#(Ci&B&A);

END sumador;

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #22 en: 19 de Marzo de 2011, 15:03:14 »
La version tablas de verdad en ABEL es esta:

Código: [Seleccionar]
MODULE sumador;
TITLE 'Bloque basico de un sumador completo'

DECLARATIONS;

   sumador DEVICE 'P22V10';
   A,B,Ci PIN 2,3,4;
   Co,S   PIN 22,23 ISTYPE 'COM';

EQUATIONS;

   truth_table ([Ci,B,A]->[Co,S])
   [0,0,0]->[0,0];
   [0,0,1]->[0,1];
   [0,1,0]->[0,1];
   [0,1,1]->[1,0];
   [1,0,0]->[0,1];
   [1,0,1]->[1,0];
   [1,1,0]->[1,0];
   [1,1,1]->[1,1];

END sumador;

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #23 en: 19 de Marzo de 2011, 15:21:21 »
Sumador completo programado en codigo VHDL. Esto lo compile en ispLEVER de Lattice Semiconductor y en el compilador WARP galaxy.

Código: [Seleccionar]
library ieee;
use ieee.std_logic_1164.all;

entity sumador is port
(
   A,B,Ci: in  std_logic;
     Co,S: out std_logic
);
end sumador;

architecture concurrent of sumador is
begin

   S  <= (not Ci and not B and A) or (not Ci and B and not A)
          or (Ci and not B and not A) or (Ci and B and A);
   Co <= (not Ci and B and A) or (Ci and not B and A)
          or (Ci and B and not A) or (Ci and B and A);

end functional;
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #24 en: 19 de Marzo de 2011, 15:26:48 »
Sumador completo version para VERILOG compilado en ispLEVER.

Código: [Seleccionar]
module sumador
(
   input A,
   input B,
   input Ci,

   output S,
   output Co
);

   assign S  = (!C&!B&A)|(!C&B&!A)|(C&!B&!A)|(C&B&A);
   assign Co = (!C&B&A)|(C&!B&A)|(C&B&!A)|(C&B&A);

endmodule

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #25 en: 19 de Marzo de 2011, 15:35:52 »
Para terminar con el modulo basico del sumador completo les muestro como quedaria el circuito para simular en PROTEUS. En ISIS se puede encontrar la GAL con el nombre AM22V10, creo que por ahi alguien estuvo un poco perdido con eso.

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #26 en: 21 de Marzo de 2011, 22:05:32 »
La descripcion de un MUX de 2-1 del tipo del 74LS157 tendria la forma
del minitermino:

   Y(S,B,A) = Sm(1,3,6,7)

La tabla caracteristicas de esta funcion seria asi:

S B A    Y
-----      -
0 0 0     0
0 0 1     1
0 1 0     0
0 1 1     1
1 0 0     0
1 0 1     0
1 1 0     1
1 1 1     1

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #27 en: 21 de Marzo de 2011, 22:08:07 »
MUX 2-1 en winCUPL con ecuaciones boleanas

Código: [Seleccionar]
/* Asignacion de ENTRADAS */

PIN 2 = A;
PIN 3 = B;
PIN 4 = S;

/* Asignacion de SALIDAS */

PIN 23 = Y;

/* ECUACIONES logicas */

Y = (!S&A)#(S&B);

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #28 en: 21 de Marzo de 2011, 22:10:15 »
MUX 2-1 en winCUPL con tablas de verdad

Código: [Seleccionar]
PIN 2 = A;
PIN 3 = B;
PIN 4 = S;

PIN 23 = Y;

FIELD ENTRADAS = [S,B,A];
FIELD SALIDAS  = [Y];

TABLE ENTRADAS => SALIDAS
{
   'b'000 => 'b'0;
   'b'001 => 'b'1;
   'b'010 => 'b'0;
   'b'011 => 'b'1;
   'b'100 => 'b'0;
   'b'101 => 'b'0;
   'b'110 => 'b'1;
   'b'111 => 'b'1;
}



No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Logica programable en HDL con PLDs simples
« Respuesta #29 en: 21 de Marzo de 2011, 22:11:47 »
MUX 2-1 en ABEL con ecuaciones boleanas

Código: [Seleccionar]
MODULE mux2a1;
TITLE 'Multiplexor de 2 entradas'

DECLARATIONS;

        mux2a1 DEVICE 'P22V10';
        A,B,S PIN 2,3,4;
        Y     PIN 23 ISTYPE 'COM';

EQUATIONS;

   S  = (!S&A)#(S&B);

END mux2a1;

No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"


 

anything