Está en la página 1de 19

10/05/2013

LENGUAJES DE DESCRIPCIN PARA


SEALES MIXTAS
Estos lenguajes estn orientados al modelado y simulacin de sistemas
complejos de seales mixtas (analgicas y digitales) y multi-tecnologas
(sistemas con bloques electrnicos, mecnicos, etc.)

Existen varios lenguajes que soportan este tipo de modelado:

Verilog AMS

Mast

VHDL-AMS Objeto de estudio en la materia

Todos estos lenguajes basan su capacidad para el modelado de sistemas


mixtos en extensiones del lenguaje ya utilizado para la descripcin de
sistemas digitales

EJEMPLO DE MODELO (1)


Pueden modelarse componentes para despus armar un circuito con ellos.
Se trata de un modelado conservativo.

use ieee.electrical_systems.all; p
+
entity capacitor is
generic( V
valor_capacitor: real);
port( i -
terminal p, m : electrical); m
end entity capacitor;

architecture simple of capacitor is


quantity v across i through p to m;
begin
i==valor_capacitor*vdot;
end architecture simple;

1
10/05/2013

EJEMPLO DE MODELO (2)

Pueden modelarse bloques que no carguen las etapas previas


(similar SIMULINK), para despus armar un sistema con ellos.
Se trata de un modelado no conservativo.

entity derivador is
input output
port (quantity input: real;
quantity output: real); S
end entity derivador;

architecture simple of derivador is


begin
output==inputdot; Si esto se cambia
end architecture simple; por:
inputinteg
se obtiene un integrador

EXTENSIONES AMS DE VHDL


NATURE:

Permite la definicin de una disciplina fsica o


dominio de energa.

ELCTRICO TRMICO MECNICO..

Permite al lenguaje soportar las leyes de


conservacin de la energa.

Ejemplo: KCL y KCV. Otras similares para


sistemas mecnicos, trmicos, etc.

2
10/05/2013

Para soportar las leyes de conservacin se requiere algo


ms que diferentes tipos de datos como en VHDL. Es por
ello que se definen dos aspectos del nature:

Uno (across) representa la accin sobre el sistema


Ejemplos: voltaje en los sistemas elctricos o
temperatura en los trmicos.

El otro (through) representa la magnitud afectada


por la accin. Ejemplos: corriente en sistemas
elctricos o flujo de calor en los sistemas trmicos.

Adems tiene un componente de referencia en el


dominio (por ejemplo masa en el elctrico).

Ejemplos de declaracin de natures

Para el caso de los sistemas elctricos, la declaracin de


Nature podra ser como sigue:

nature electrical is
voltage across
current through
ground reference;

Para el caso de los sistemas magnticos:

nature magnetic is
mmf across
flux through
magnetic_ground
reference;

3
10/05/2013

Para el caso de los sistemas trmicos:

nature thermal is
temperature across
thermal_power through
thermal_ground reference;

Para el caso de los sistemas de fluidos:

nature fluidic is
pressure across
flow through
fluidic_ground_reference;

TERMINAL

Un terminal es un punto de conexin analgico en el que se deben


cumplir las leyes de conservacin (en cualquiera de los dominios fsicos
que pudiera contener el modelo).

Un terminal debe ser declarado con alguna naturaleza (nature).

Por ejemplo: en trminos elctricos, un terminal debe interpretarse


como un punto de conexin donde pueden medirse corriente y tensin.
Ejemplo de declaracin de terminales
Port (
terminal vp: electrical;
terminal vm: electrical;
terminal p: electrical;
terminal m: electrical);

La declaracin anterior define 4 pines (vp, vm, p y m) de naturaleza


elctrica

La variable across es voltaje y la through es corriente.

4
10/05/2013

QUANTITY

Junto con el concepto de terminales, permiten representar variables


de tiempo continuo y forzar el cumplimiento de las leyes de
conservacin (cuando sea necesario).

Las quantities pueden ser declaradas como free, branch o source

Free quantity: utilizada en aquellos nodos del sistema donde no se


pretende forzar las leyes de conservacin (modelado no conservativo,
similar a matlab-simulink)

Entity CB is

port (quantity Inp: in real;

quantity Outp:out real)

End entity CB;

Branch quantity: se utilizan en aquellos nodos en los que es necesario


hacer cumplir las leyes de conservacin (modelado conservativo, similar
a SPICE).

T1 Terminal positivo

I1 I2 V

T2 Terminal negativo

Terminal T1, T2: electrical;


Quantity v across I1, I2 through T1 to T2

5
10/05/2013

ATRIBUTOS

Los atributos permiten asignar propiedades a los objetos de diseo de


AMS. El resultado de la evaluacin de la sentencia que contiene el
atributo se vuelve en s mismo una quantity..

Algunas quantities de este tipo definidas en VHDL AMS son

qdot: derivada temporal de la quantity q


qinteg: integral sobre tiempo de q, desde 0 a tiempo actual
sslew: (mx_pendiente_subida, mx_pendiente_bajada): es una
quantity que sigue a la seal s pero con derivadas limitadas por
los arguementos dados.
qdelayed(T): es la quantity q demorada T
qltf: funcin de transferencia de Laplace cuya salida es q
qztf: funcin de transferencia en el dominio Z cuya salida es q

Existen tambin algunos atributos no especficos para quantities.


Entre otros:

ahigh(n): valor ms alto en el rango del ndice n


alow(n): valor ms bajo en el rango del ndice n
qabove(e): retorna un booleano falso cuando la quantity
q est por debajo del umbral e y un booleano verdadero
cuando q est por arriba de e

6
10/05/2013

SENTENCIA SIMULTNEA SIMPLE


Las sentencias simultneas se usan para expresar relaciones entre
quantities.

El simulador debe resolver estas ecuaciones de tal forma


que las relaciones y las leyes de conservacin se cumplan.

Ejemplo:

Terminal plus, minus : electrical;


Quantity voltaje across
current through plus to minus;
Quantity power : real;
Power==voltage*current;

SENTENCIA SIMULTNEA IF
Se utiliza para especificar el comportamiento analgico de un sistema
basado en un conjunto de condiciones.

Ejemplo:

if (sw_on) and (ctrl>0.0) use


v==0.0;
else
i==0.0;
end use;

7
10/05/2013

SENTENCIA CASE SIMULTNEA


Esta sentencia permite especificar el comportamiento analgico
mediante la seleccin de una de un nmero de alternativas basadas
en el valor de una expresin.

Ejemplo:

case clk use


when 0 => vin==1.5;
when 1 => vin==2.5;
when 2 => vin==3.5;
when others => vin==0.0;
end case;

SENTENCIA BREAK
La sentencia break permite especificar condiciones iniciales

Ejemplo:

Break v => 0.0, s => 10.0;

Break on permite anunciar al solver una discontinuidad en quantities.


El solver analgico es reinicializado.

En VHDL-AMS las discontinuidades deben ser explcitamente declaradas.

8
10/05/2013

Ejemplo

architecture Good of VoltageLimiter is


quantity vin across ip to im;
quantity vout across iout through op to om;
begin
if vinAbove(vlim) use
vout == vlim;
elsif not vinAbove(-vlim) use
vout == -vlim;
else
vout == vin;
end use;
break on vinAbove(vlim), vinAbove(-vlim);
end architecture Good;

CONSTANTES
Cumplen las mismas funciones que en VHDL digital.
La declaracin tiene la siguiente sintaxis:

constant identifier : subtipo := expresin

Ejemplo:

constant t1 : real := 1.0/(f1*math_2_pi)

GENRICOS
Sirven para configurar al modelo de acuerdo a una lista de parmetros.
Se deben declarar en la entidad.

Ejemplo:

generic (Rin: real:= 1.0e+6


gain: real := 1.0);

9
10/05/2013

LIBRERA IEEE
PAQUETES PARA LA SIMULACIN DE SISTEMAS MULTI DOMINIO

Dominio Utilizacin
Elctrico use ieee.electrical_systems.all

Mecnico use ieee.mechanical_systems.all


Traslacin
Rotacin
Trmico use ieee.thermal_systems.all
Fluidica use ieee.fluidic_systems.all
Radiacin use ieee.radiant_systems.all

PAQUETE PARA OPERACIONES MATEMTICAS

Math_Real(1076.2)

Utilizacin: use ieee.math_real.all

ELEMENTOS ESTRUCTURALES VHDL AMS

Entidad (entity)

Definicin del paquete


use ieee.electrical_systems.all;
sistemas elctricos

entity vsource is Declaracin de entidad


Declaracin de parmetros
generic(
rin: real:= 1.0e6;
gain: real:= 1.0);

port( Declaracin de puertos y tipos


terminal vp: electrical;
terminal vm: electrical;
terminal p: electrical:
terminal m: electrical);
end entity vsource;

10
10/05/2013

Arquitectura (architecture)
Nombre arquitectura
declaracin
Nombre de la entidad
architecture behav of vsource is

quantity vin across iin through vp to vm;


quantity vout across iout through p to m;

begin Declaracin de cantidades across


y through
iin==vin/rin;
vout== gain*vin; Sentencias simultneas

end architecture behav;

MODELADO CONSERVATIVO
FUENTE DE CORRIENTE DE DC

use ieee.electrical_systems.all;

entity fuente_corriente is m
generic(
valor_corriente: real); i
port(
terminal p, m : electrical); p
end entity fuente_corriente;

architecture simple of fuente_corriente is


quantity i through p to m;
begin
i==valor_corriente;
end architecture simple;

11
10/05/2013

FUENTE DE TENSIN DE DC

use ieee.electrical_systems.all;

entity fuente_tension is
p
generic(
valor_tension: real); +
port(
V
terminal p, m : electrical);
end entity fuente_tension; i -
m
architecture simple of fuente_tension is
quantity v across i through p to m;
begin
v==valor_tension;
end architecture simple;

RESISTENCIA
p +
use ieee.electrical_systems.all;

entity resistor is
generic( V
valor_resistencia: real);
port( i
terminal p, m : electrical);
end entity resistor; m -

architecture simple of resistor is


quantity v across i through p to m;
begin
i==v/valor_resistencia;
end architecture simple;

12
10/05/2013

CAPACITOR

p
use ieee.electrical_systems.all;
+
entity capacitor is V
generic(
valor_capacitor: real); i -
port( m
terminal p, m : electrical);
end entity capacitor;

architecture simple of capacitor is


quantity v across i through p to m;
begin
i==valor_capacitor*vdot;
end architecture simple;

INDUCTOR

p +
use ieee.electrical_systems.all;
V
entity inductor is
generic(
valor_inductor: real); i m -
port(
terminal p, m : electrical);
end entity capacitor;

architecture simple of inductor is


quantity v across i through p to m;
begin
v==valor_inductor*idot;
end architecture simple;

13
10/05/2013

ARMANDO UN CIRCUITO
CON COMPONENTES
-- DEFINICIoN DE UNA FUENTE DE TENSION DE ALTERNA

-- ESQUEMATICO:
-- p o----(~)----o m

LIBRARY DISCIPLINES;
LIBRARY IEEE;
USE DISCIPLINES.ELECTROMAGNETIC_SYSTEM.ALL;
USE IEEE.MATH_REAL.ALL;

ENTITY fuente IS
PORT(TERMINAL p,m: ELECTRICAL);
END;
ARCHITECTURE behav OF fuente IS
QUANTITY v_in ACROSS i_out THROUGH p TO m;
BEGIN
v_in==10.0 * sin (2.0*3.14*500.0 * now);
END;

-- DEFINICION DEL RESISTOR

-- ESQUEMATICO:
-- p o----/\/\/\----o m

LIBRARY DISCIPLINES;
USE DISCIPLINES.ELECTROMAGNETIC_SYSTEM.ALL;
ENTITY resistor IS
PORT (TERMINAL p,m : ELECTRICAL);
END resistor;
ARCHITECTURE behav OF resistor IS
QUANTITY r_e ACROSS r_i THROUGH p TO m;
BEGIN
r_i == r_e/10.0;
END behav;

14
10/05/2013

-- DEFINICION DEL INDUCTOR


-- ESQUEMATICO:

-- p o----()()()----o m

LIBRARY DISCIPLINES;
USE DISCIPLINES.ELECTROMAGNETIC_SYSTEM.ALL;

ENTITY l IS
PORT(TERMINAL p,m: ELECTRICAL);
END l;
ARCHITECTURE behav OF l IS
QUANTITY u_l ACROSS i_l THROUGH p TO m;
BEGIN
u_l==10.0e-3 * i_l'dot;
END;

--TEST BENCH

LIBRARY DISCIPLINES;
USE DISCIPLINES.ELECTROMAGNETIC_SYSTEM.ALL;

ENTITY circuito IS
END;
ARCHITECTURE behav OF network IS
TERMINAL n1,n2: ELECTRICAL;
BEGIN
vsrc: ENTITY fuente (behav)
PORT MAP (n1, electrical_ground);
r1: ENTITY resistor (behav)
PORT MAP (n1, n2);
l1: ENTITY l (behav)
PORT MAP (n2, electrical_ground);
END;

15
10/05/2013

MODELADO DE UN CIRCUITO DE VARIOS


COMPONENTES SIN INSTANCIACIN
t1 D t2

Rectificador de
Vs R media onda

LIBRARY DISCIPLINES;
LIBRARY IEEE;
USE DISCIPLINES.ELECTROMAGNETIC_SYSTEM.ALL;
USE IEEE.MATH_REAL.ALL;

--entity declaration

ENTITY hwr IS
END hwr;

t1 D t2

Vs R

ARCHITECTURE behavior OF hwr IS

terminal t1, t2 : electrical;

quantity vDiode across iDiode through t1 TO t2;


quantity v2 across i2 through t2 TO electrical_ground;
quantity vs across isrc through t1 TO electrical_ground;

CONSTANT saturation_current : real := 0.0000000000001;


CONSTANT Vt : real := 0.025;
CONSTANT BV : real := 100.0;
CONSTANT neg_sat : real := -saturation_current;

16
10/05/2013

t1 D t2

BEGIN -- behavior
Vs R
--diode equations

if( vDiode >= (-1.0 * Vt)) USE


eqn1_1: iDiode == saturation_current * (exp(vDiode/Vt) - 1.0);
ELSE
IF ((vDiode < (-3.0 * Vt)) AND (vDiode > -BV)) use
eqn1_2: iDiode == neg_sat;
ELSE
eqn1_3: iDiode == neg_sat * (exp(-(BV +
vDiode)/Vt) - 1.0 + saturation_current);
END USE ;
END USE;
--resistor equation
eqn2: v2 == 100.0 * i2;
--voltage source equation
eqn4: vs == 15.0 * sin(2.0 * 3.14 * 300.0 * now);

END behavior ;

MODELADO NO CONSERVATIVO
VHDL AMS permite el modelado utilizando tcnicas de flujo de seales.

Estos modelos se caracterizan por los siguientes aspectos:

Las seales son direccionales (un nico sentido)

Las salidas no son cargadas por el bloque que se conecta a ellas.

Las leyes de conservacin no se aplican.

Las seales no tienen unidades

Las seales no tienen puntos de referencias.

Generalmente esto redunda en:

Desarrollo del modelo ms rpido.

Tiempos de simulacin reducidos.

17
10/05/2013

BLOQUE DE GANANCIA

input output
K

entity ganancia is Diferencia importante con los


generic( modelos anteriores:
K: real:=1.0);
port (quantity input:in real; Los puertos estn declarados
quantity output:out real); como quantities, NO como
end entity ganancia; terminales => no se fuerza el
cumplimiento de las leyes de
architecture simple of gain is conservacin.
begin
output==K*input;
end architecture simple;

SUMADOR DE DOS ENTRADAS

in1 out
+
in2

entity sumador is
generic (k1, k2 : real :=1);
port (quantity in1, in2 :in real;
quantity out: out real);
end entity sumador;

architecture simple of sumador is


begin
output==k1*in1+k2*in2;
end architecture simple;

18
10/05/2013

DERIVADOR

input output
S

entity derivador is
port (quantity input: real;
quantity output: real);
end entity derivador;

architecture simple of derivador is


begin
output==inputdot; Si esto se cambia
end architecture simple; por:
inputinteg
se obtiene un integrador

FILTRO DE DOS POLOS


library ieee;
use ieee.math_real.all;
entity filtro is
generic ( input output
k: real:= 1.0; k/[(1+t1*S)(1+t2*S)]
f1: real:= 10;
f2: real:=100);
port (
quantity input: in real;
quantity output: out real);
end entity filtro;
architecture simple of filtro is
begin
constant w1: real:= f1*math_2_pi;
constant w2: real:= f2*math_2_pi;
constant num: real := K;
constant den: real_vector := (w1*w2, w1+w2, 1.0);
begin
output==k*inputltf (num, den);
end architecture simple;

19

También podría gustarte