Upload
lelien
View
248
Download
4
Embed Size (px)
Citation preview
2
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Mapa de contenidos
Niveles de descripcioacuten de un circuito
Circuitos para operaciones aritmeacuteticas y loacutegicas
Aritmeacutetica BCD
Circuitos secuenciales baacutesicos latches y flip flops y su modelacioacuten en VHDL
Registros
Circuitos monoestables y astables
Disentildeo de circuitos secuenciales basados en
registros
Disentildeo de autoacutematas
Disentildeo de circuitos basados en unidades de control
Memorias
Perifeacutericos
Aplicaciones aritmeacuteticas
Volumen 1
Volumen 2
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Introduccioacuten del eBook
Este eBook se centra en el disentildeo de circuitos loacutegicos no es una intro-duccioacuten sino una lectura de nivel intermedio Su contenido estaacute dirigido a quienes dominan el aacutelgebra booleana y ya han disentildeado y construido
circuitos combinacionales de igual forma se espera que estos lectores tengan conocimientos de sistemas numeacutericos y de organizacioacuten computacional
El mayor eacutenfasis de disentildeo se enfocaraacute a sistemas digitales de registro mo-nitoreo y control asiacute como de unidades centrales de procesamiento
El eBook tiene un enfoque praacutectico estaacute basado en la solucioacuten de proble-mas Se plantea el disentildeo de componentes baacutesicos para luego interconectarlos y crear sistemas maacutes complejos por lo que el meacutetodo de aprendizaje impliacutecito es inductivo e incremental
Dragan Trifunovic Photoscom
Breve marco teoacuterico
Ejemplos muy especiacuteficos
Generalizacioacuten
Aplicacioacuten
GeneralizacioacutenAplicacioacuten
Paacuteg 1 de 2
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Para el disentildeo de circuitos digitales se seguiraacuten dos enfoques disentildeo basado en circuitos esque-maacuteticos utilizando componentes TTL comerciales y el uso de una poderosa herramienta de disentildeo un lenguaje descriptor de circuitos VHDL (VHDL = VHSIC Hardware Description Language VH-SIC = Very High Speed Integrated Circuit) ya que para la formacioacuten de un ingeniero especializado en Electroacutenica Digital competente y competitivo inter-nacionalmente es necesario que se conozcan las herramientas de disentildeo de sistemas electroacutenicos maacutes poderosas y modernas La mejor de estas herramientas ―que es la que aprenderaacute con este eBook― es VHDL que permite el disentildeo simu-lacioacuten e implementacioacuten de sistemas digitales La solucioacuten de los ejercicios y proyectos propuestos y la flexibilidad de disentildeo que provee el VHDL contri-buiraacuten que cada lector forme o refuerce un estilo de disentildeo propio
Actualmente el desarrollo de un paiacutes tiene una gran relacioacuten con la produccioacuten y uso de productos de alta tecnologiacutea ya que su produccioacuten y uso son de alto valor agregado El compromiso inminente que tiene todo ingeniero egresado de una institu-cioacuten de educacioacuten superior en contribuir al desa-rrollo nacional conlleva a impactar en los procesos productivos para que sean maacutes eficientes Los
sistemas basados en electroacutenica digital juegan un papel clave en concretar este compromiso El as-pecto medular del eBook es la combinacioacuten entre el
bosquejo de circuitos esquemaacuteticos el aprendizaje de VHDL y el disentildeo de dispositivos de aplicacioacuten praacutectica
Introduccioacuten del eBook
raquo Disentildeo de dispositivos que requieren caacutelculos complejos
raquo Disentildeo de unidades centrales de procesamiento
Disentildeo de sistemas de
coacutemputo
raquo Disentildeo de dispositivos a partir de problemas muy generales y abiertos
raquo Disentildeo de sistemas digitales innovadores
Disentildeo de dispositivos innovadores
raquo Breve marco teoacuterico
raquo Disentildeo de circuitos digitales
Disentildeo de circuitos digitales
Paacuteg 2 de 2
5
Organizador temaacutetico
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
6
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL
VHDL es la abreviacioacuten de VHSIC (Very High Speed Integrated Circuit) y HDL son las siglas de Hardware Des-cription Language
VHDL es un lenguaje ―con una sintaxis similar a la de los lenguajes de programacioacuten pero con una esencia sus-tancialmente diferente― con el que se define un circuito a partir de definir sus elementos y su interconexioacuten VHDL es una herramienta EDA (Electronic Design Automation) utilizada en el disentildeo de sistemas electroacutenicos que se con-tendraacute en un circuito integrado Al igual que el lenguaje de programacioacuten ADA (en memoria de Ada Byron hija del poeta Lord Byron matemaacutetica y compiladora el trabajo de Charles Babbage) su disentildeo VHDL inicioacute en 1981 El pri-mer borrador se tuvo listo en agosto de 1985 y fue disentildea-do por Intermetrics IBM y Texas Instrument
El desarrollo de VHDL fue patrocinado por la milicia es-tadounidense para estandarizar la especificacioacuten de sis-temas digitales Se requeriacutea documentar todos los ASIC (Application Specific Integrated Circuit) que se fabricaran para el Departamento de Defensa de Estados Unidos y por esta razoacuten se disentildeoacute con una sintaxis similar a la de ADA
En diciembre de 1987 fue aprobado como estaacutendar del IEEE y posteriormente en 1993 fue revisado y registrado como norma IEEE Std1076-1993
Otros lenguajes descriptores de hardware son
bull ABEL (Advanced Boolean Expression Language) lenguaje inicialmente creado en 1983 para programar PLD (Programmable Logic Device) por Data IO Corporation en Redmond Washington
bull Verilog (Verify logic) que fue creado en 1985 en Auto-mated Integrated Design SystemsCadence la cual tiene ahora todos los derechos sobre los simuladores loacutegicos de Verilog
Los sistemas de desarrollo que cuentan con VHDL como herramienta de disentildeo permiten la descripcioacuten (documen-tacioacuten) simulacioacuten e implementacioacuten de circuitos digitales
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL
Paacuteg 1 de 2
GLOSARIO
IEEE Institute of Electrical and Electronics InstituteAsociacioacuten con base en EUA y capiacutetulos en todo el mundo Produce revistas especializada organiza con-gresos y es reponsable de fijar estaacuten-dares
ABEL (Advanced Boolean Expres-sion Language)Lenguaje inicialmente creado en 1983 para programar PLD (Programmable Logic Device) por Data IO Corpora-tion en Redmond Washington Es un lenguaje descriptor de hardware de maacutes bajo nivel que VHDL y Verilog Los circuitos se describen en aacutelgebra booleana y tablas de verdad
Verilog (Verify logic)Fue creado en 1985 en Automated Integrated Design SystemsCaden-ce la cual tiene ahora todos los dere-chos sobre los simuladores loacutegicos de Verilog Es un lenguaje descriptor de hardware con una sintaxis similar a C
VHDLAcroacutenimo de VHSIC Hardware Des-cription Language VHSIC = Very High Speed Integrated Circuit Es un lenguaje descriptor de hardware con una sintaxis similar a ADA
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
7 GLOSARIO
FPGA Field Programmable Gate ArrayTipo de PLD (Programmable Logic Device)basado en la interconexioacuten de ceacutelulas llamadas CLB En un FPGA se configura un circuito loacutegico Los principales fabricantes de tarjetas de desarrollo para FPGAs que cuentan tanto de un FPGA como de perifeacuteri-cos e interfaces para entrada y salida son
Altera - FPGA Manufacturer (Cyclo-ne Arria Statix)Lattice - FPGA Manufacturer (XP Mach SC EC ECP)Xilinx - FPGA Manufacturer (Spartan amp Virtex)Avnet (US) - A wide range of Spartan 3 Virtex 2 Virtex 2 Pro Virtex 4 and Virtex 5 boardsBraemac (Australia) - Australian Alte-raTerasic DistributorBurchED (Australia) - Xilinx FPGA Video GuidesDigilent Inc (US) - Tarjetas de Desa-rrollo de XilinixKNJN LLC (US) - Tarjetas de Desa-rrollo diversasTrenz Electronics (Germany) - Tarje-tas de Desarrollo de XilinixXess (US) - Tarjetas de Desarrollo de Xilinix
Dicha implementacioacuten se realiza en dos tipos de circui-tos configurables CPLD (Complex Programable Logic De-vice) y FPGA (Field Programable Gate Array) Ambos tipos de circuitos permiten el ruteo (configuracioacuten) de circuitos secuenciales y son de gran densidad ya que cuentan con miles de compuertas loacutegicas Los diferentes modelos exis-tentes tienen diferentes cantidades de compuertas y sopor-tan diferentes frecuencias de reloj Su arquitectura baacutesica cuenta con redes AND-OR para configurar circuitos com-binacionales y flip flops (tiacutepicamente D) para configurar registros La arquitectura de un FPGA y de un CPLD se muestra en el apeacutendice I
Tambieacuten es posible la fabricacioacuten de un circuito a la medida un ASIC a partir de la especificacioacuten del circuito en VHDL la cual cada vez tiene menos desventajas con respecto a la fabricacioacuten de un ASIC ya que actualmente cada vez es mayor la velocidad de un circuito construido sobre un FPGA y por supuesto el costo de fabricacioacuten es muy bajo ya que el costo individual de un circuito es de aproximadamente 100 pesos y existen sistemas de desa-rrollo de uso abierto
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL
Paacuteg 2 de 2
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
8
11 Caracteriacutesticas generales de un circuito descrito en VHDL
El primer propoacutesito de VHDL fue crear un estaacutendar para la descripcioacuten de circui-tos El disentildeo esquemaacutetico de un circui-to con muacuteltiples componentes necesita mucho espacio en papel son difiacuteciles de analizar no tienen principio ni fin Si se precisa equipo computacional para ela-borar el disentildeo esquemaacutetico son nece-sarios monitores amplios para alcanzar a visualizar una parte representativa del circuito ademaacutes se requieren impreso-ras especiales (plotters) porque los dise-ntildeos no caben en una hoja simple de otro modo habriacutea que seccionarlos lo cual los volveriacutea menos comprensibles
VHDL es una alternativa para describir circuitos utilizan-do solo texto sin graacuteficas que ciertamente requiere menos recursos para escribirse desplegarse y almacenarse Por otra parte este lenguaje permite describir los componen-tes digitales de diferentes formas de acuerdo al circuito o al gusto del disentildeador Por ejemplo cuando se dibuja el disentildeo esquemaacutetico de un circuito es posible hacerlo con diferentes niveles de integracioacuten es decir podemos dibujar compuertas (o maacutes bajo nivel transistores) o bien circui-tos conocidos (sumadores decodificadores registros etc) sentildealaacutendolos como cajas en VHDL ocurre algo similar es posible disentildear un circuito por sus compuertas loacutegicas o bien describirlo por su comportamiento Tambieacuten es posible
definir un componente para luego conec-tarlo con otros Al dibujar disentildeos esque-maacuteticos no se cuenta con la opcioacuten de trazar el comportamiento de un circuito esta opcioacuten es exclusiva de los lenguajes descriptores de hardware
Cualquier disentildeo de VHDL estaacute com-puesto por dos partes esenciales
1 La entidad bloque que define el puerto (o interfase) del circuito es decir las entradas y las salidas con las que se comunica al exterior
2 La arquitectura donde se describe el disentildeo del cir-cuito
Para mostrar coacutemo se describe un circuito partiremos del ejemplo que se presenta en la seccioacuten anterior
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL11 Caracteriacutesticas generales de un circuito descrito en VHDL
Paacuteg 1 de 1
LIGAS DE INTEREacuteS
Realiza los ejercicios correspondien-tes al tema
Actividad de Repaso Tema 11
Antes de continuar realiza la actividad de repaso del tema la cual encontraraacutes en la barra lateral derecha
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
9
12 Descripcioacuten de un circuito en VHDL
La descripcioacuten de circuitos loacutegicos simples en VHDL se aborda a traveacutes de ejemplos Posteriormente se formalizaraacute la sintaxis Se iniciaraacute con cir-cuitos combinacionales El primer ejemplo trata de una votacioacuten electroacutenica Suponga que se cuenta con tres interruptores para realizar una votacioacuten Para votar a favor se colocariacutea el interruptor en posicioacuten de ldquoonrdquo es decir en uno loacutegico La salida del circuito se conectariacutea a un indicador que se ilu-minariacutea en caso de ocurrir mayoriacutea de votos (dos o tres votos a favor)
Los nombres de los tres interruptores son a b y c la salida es d La ex-presioacuten miacutenima en aacutelgebra booleana para d es d = ab + ac + bc El disentildeo esquemaacutetico basado en compuertas loacutegicas es el que se aprecia en la figura 11
La descripcioacuten en VHDL es
A continuacioacuten se abordaraacute cada detalle de esta descripcioacuten
A un circuito se le asocia un nombre en este caso el nombre asociado es comb1 Como se mencionoacute la descripcioacuten consta de dos partes entidad y arquitectura (figura 12)
Figura 11 Circuito prueba
Paacuteg 1 de 4
entity comb1 is Port ( a in std_logic b in std_logic c in std_logic d out std_logic)end comb1
architecture ecuacion of comb1 isbegind lt= (a and b) or (a and c) or (b and c) end ecuacion
Figura 12 Descripcioacuten de un circuito
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL12 Descripcioacuten de un circuito en VHDL
ab
ac
bc
dcomb1
a b c
d
Puerto
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
10
Paacuteg 2 de 4
La entidad define al puerto del circuito las sentildeales que se conectaraacuten como entradas al circuito y las que se generaraacuten de salida es decir la in-terfase con el exterior del circuito Como habraacute notado el tipo con el que se han definido las sentildeales es std_logic (standard logic) El tipo std_logic in-dica que una sentildeal puede tomar valores loacutegicos como 1 o 0 Se daraacute mayor detalle de este tipo maacutes adelante
Por otra parte la arquitectura describe al circuito sus elementos e in-terconexiones La palabra ecuacion (sin acento porque VHDL no acepta acentos) en architecture ecuacion of comb1 is es parte de la documentacioacuten del circuito esa palabra solo tiene significado para el disentildeador y para quien observe el coacutedigo pero no para el compilador
En VHDL hay varias alternativas para describir un mismo circuito por su expresioacuten booleana por sus elementos loacutegicos (pueden ser sus compuer-tas) o por su comportamiento (por ejemplo su tabla de verdad)
La manera maacutes sencilla para expresar la arquitectura de un circuito com-binacional es por medio de su expresioacuten loacutegica Ademaacutes esta manera es la maacutes conocida para usted dados sus conocimientos en aacutelgebra booleana Asiacute se hace en este ejemplo
Figura 13 Arquitectura del circuito Figura 14 Descripcioacuten de la arquitectura de un circuito
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL12 Descripcioacuten de un circuito en VHDL
Entity comb1
a b c
d
Puerto Arquitectura
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
11
121 Descripcioacuten por secciones
Existen maacutes alternativas para describir este circuito por ejemplo por partes en vez de utilizar solo una expresioacuten booleana se usan varias En la figura 15 se muestran alternativas para la descripcioacuten por secciones
Es posible etiquetar las salidas intermedias de algunas o todas las com-puertas y fraccionar el circuito Note que las salidas intermedias son entra-das de otra seccioacuten del circuito Estas sentildeales intermedias no son parte del puerto porque no tienen contacto con el exterior del circuito es decir no son parte del puerto
La definicioacuten de estas sentildeales se efectuacutea en la seccioacuten architecture Esta seccioacuten declarativa inicia con la palabra signal y se debe colocar antes de begin Cabe sentildealar que cada lista de sentildeales intermedias que corres-pondan a un tipo debe iniciar con la palabra signal
Tanto a b c d como S1 S2 y S3 son sentildeales pero las primeras son sentildeales que estaacuten conectadas al puerto del circuito y las segundas son se-ntildeales internas del mismo
El orden en que se describen las sentildeales intermedias S1 S2 y S3 asiacute como la salida d no tiene importancia Cualquier orden es correcto final-mente en los circuitos esquemaacuteticos no hay un inicio establecido por alguna convencioacuten Es arbitrario si el circuito se define desde sus entradas hasta sus salidas o si se comienza por la parte central El disentildeador puede definir el orden en que desea describir su circuito
Paacuteg 3 de 4
Figura 15 Descripcioacuten por secciones
entity comb1 isPort (a in std_logicb in std_logicc in std_logicd out std_logic)end comb1
architecture ecuaciones of comb1 issignal S1 S2 S3 std_logic begind lt= S1 or S2 or S3S1 lt= a and bS2 lt= b and cS3 lt= a and cend ecuaciones
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL12 Descripcioacuten de un circuito en VHDL
ab
ac
bc
d
S1
S2
S3
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
12
La siguiente seriacutea otra posibilidad para la descripcioacuten del circuito
Otra posible descripcioacuten del circuito es
Se proporcionaraacute maacutes informacioacuten sobre los operadores booleanos y la construccioacuten de expresiones booleanas en el tema ldquoExpresiones booleanas en VHDLrdquo
Paacuteg 4 de 4
entity comb1 isPort (a in std_logic b in std_logic c in std_logic d out std_logic)end comb1
architecture ecuaciones of comb1 issignal S1 S2 S3 std_logic beginS1 lt= a and bS2 lt= b and c d lt=S1 or S2 or S3S3 lt= a and cend ecuaciones
S1 lt= a and bS2 lt= b and c S3 lt= a and cd lt=S1 OR S2 OR S3
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL12 Descripcioacuten de un circuito en VHDL
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
13
13 Simulacioacuten de un circuito
Al tener un circuito descrito en VHDL cualquier programador capacitado en desarrollar un compilador puede visualizar la factibilidad de programar un simulador que muestre el comportamiento de las salidas de un circuito a traveacutes del tiempo a partir de construir estructuras de datos consistentes de tablas que evaluacuteen las salidas cada vez que ocurren cambios en las entra-das
Antes de que existieran simuladores disponibles para estudiantes univer-sitarios desarrolleacute un simulador como parte de un curso de posgrado Lue-go surgieron opciones estudiantiles y actualmente hay una gran variedad de sistemas de desarrollo de uso abierto que permiten simular circuitos
Para comprender la simulacioacuten el primer paso es examinar la respuesta de un circuito Para ello analicemos el retraso de una compuerta
El retraso de una compuerta es el tiempo que se requiere para que su salida sea estable y vaacutelida (figura 16) Este tiempo estaacute en el orden de pi-cosegundos Como es un lapso de tiempo muy pequentildeo se le denomina delta de tiempo
Si en tiempo = 0 las entradas al circuito tienen un valor estable las sa-lidas S1 S2 y S3 tendraacuten salidas estables y vaacutelidas al mismo tiempo esto seraacute en tiempo = delta y la salida d tendraacute un valor estable en tiempo = 2 delta
Las salidas S1 S2 y S3 son estables al mismo tiempo porque su ope-racioacuten eleacutectrica ocurre al mismo tiempo Como no es posible que el coacutedigo ejecute coacutedigo en forma concurrente el simulador se vale de estructuras de datos para emular el paralelismo de las compuertas
El sistema de desarrollo crea una tabla que registra en queacute tiempo estaraacute estable cada salida y cuando una salida es entrada de otra parte del circuito se hace el caacutelculo del retraso La salida de cada compuerta o de cada sec-cioacuten del circuito se calcula de acuerdo al tiempo en que es vaacutelida su entrada maacutes el tiempo de retraso de esa compuerta o seccioacuten del circuito
Por otra parte cada vez que cambia el valor de una sentildeal de la cual de-pende una sentildeal de salida se calcula de nuevo el valor de la salida esto ocurre hasta que el valor de todas las salidas queda estable
Paacuteg 1 de 4
Figura 16 Retraso de un circuito
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL13 Simulacioacuten de un circuito
ab
ac
bc
d
S1
S2
S3
∆
∆
∆
∆
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
14
Por ejemplo para la descripcioacuten
Suponga que en tiempo = 0 se asocian un 0 a a1 a b y 1 a c Con esta entrada la salida d quedariacutea estable despueacutes del tiempo de retraso (delta) del circuito
El valor U significa undefined es decir indefinido In-definido significa que puede ser 0 o 1 no que esteacute desco-nectado o sin valor Cabe recalcar que una vez que una compuerta esteacute energizada tiene una salida pero no es la salida vaacutelida sino hasta que transcurre el tiempo de res-puesta (retraso) de la compuerta
Si el circuito se hubiera descrito fragmentado habriacutea una diferencia en el tiempo de retraso calculado en la simula-cioacuten dado que el simulador relaciona un retraso delta al circuito completo asociado a una salida no lo hace com-puerta por compuerta
Por ejemplo para la descripcioacuten
O para la siguiente (que es equivalente a la anterior)
La simulacioacuten generariacutea los resultados que se muestran en la tabla 12
d lt=S1 or S2 or S3S1 lt= a and bS2 lt= b and cS3 lt= a and c
S1 lt= a and bS2 lt= b and cd lt=S1 or S2 or S3S3 lt= a and c
architecture ecuacion of comb1 isbegind lt= (a and b) or (a and c) or (b and c) end ecuacion
Tabla 11 Simulacioacuten del circuito
t = 0a = 0b = 1c = 1d = U
t = 0 + ∆a = 0b = 1c = 1d = 1 Tabla 12 Tabla de valores de sentildeales en el tiempo
t = 0
a = 0
b = 1
c = 1
S1 = U
S2 = U
S3 = U
d = U
t = 0 + 2∆
a = 0
b = 1
c = 1
S1 = 0
S2 = 1
S3 = 0
d = 1
t = 0 + ∆
a = 0
b = 1
c = 1
S1 = 0
S2 = 1
S3 = 0
d = U
GLOSARIO
RetrasoEn VHDL es posible definir el tiempo en que la salida de una compuerta loacutegica o un circuito produce una sali-da vaacutelida Esto solo es posible en la simulacioacuten de un componente
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL13 Simulacioacuten de un circuito
Paacuteg 2 de 4
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
15
131 Definicioacuten de retrasos especiacuteficos
Como un delta de tiempo tiende a cero cuando la simulacioacuten se observa en forma graacutefica los deltas de tiempo no se distinguen El simulador presen-ta un retraso de cero es decir muestra una respuesta instantaacutenea
Existe la posibilidad de definir un retraso especiacutefico para un circuito Esto solo es posible con fines de simulacioacuten ya que el retraso real de una com-puerta no puede modificarse De hecho el retraso real de una compuerta no es un paraacutemetro fijo sino que depende de la temperatura del circuito
Si se tiene el propoacutesito didaacutectico de entender el retraso de un circuito se definen retrasos de la siguiente manera agregar ldquoafter X unidad de tiempordquo al final de la definicioacuten de una salida y su circuito Las unidades de tiempo vaacutelidas son picosegundos (ps) nanosegundos (ns) microsegundos (us) milisegundos (ms) segundos (s) Por ejemplo supongamos que se desea fijar el retraso de una compuerta and en 30 ns y el de una compuerta or en 50 ns
La definicioacuten de este circuito en VHDL es
La simulacioacuten de este circuito que consta en las salidas y el tiempo en que se vuelven estables se muestra en la tabla 13
Existe otro tipo alterno al std_logic es el tipo bit La diferencia entre el tipo bit y el tipo std_logic reside en detalles que se presentaraacuten en capiacutetulo 2 por lo pronto se destaca la diferencia en la simulacioacuten de sentildeales de tipo bit Las sentildeales de este tipo inician en cero en vez de iniciar indeterminadasFigura 17 Ejemplo de retrasos de compuertas
architecture ecuaciones of comb_retraso issignal S1 S2 S3 std_logicbegind lt= S1 or S2 or S3 after 50 psS1 lt= a and b after 30 psS2 lt= b and c after 30 psS3 lt= a and c after 30 psend ecuaciones
Tabla 13 Tabla de simulacioacuten con sentildeales tipo std_logic
t = 0
a = 0
b = 1
c = 1
S1 = U
S2 = U
S3 = U
d = U
t = 0 + 80 ps
a = 0
b= 1
c = 1
S1= 0
S2 = 1
S3 = 0
d = 1
t = 0 + 30ps
a = 0
b= 1
c = 1
S1= 0
S2 = 1
S3 = 0
d = U
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL13 Simulacioacuten de un circuito
Paacuteg 3 de 4
ab
ac
bc
d
S1
S2
S3
∆
∆
∆
∆
30ps
30ps
30ps
50ps
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
16
Usando este tipo la definicioacuten del circuito es
La simulacioacuten reporta los valores que se aprecian en la tabla 14
La simulacioacuten de un circuito es un gran apoyo para entender su opera-cioacuten Sin embargo la estructura de datos que utiliza el simulador no es la misma que la que se utiliza para la configuracioacuten del circuito asiacute que en ocasiones ocurren inconsistencias Esto ocurre sobre todo en circuitos se-cuenciales Por ejemplo es posible simular un registro que cuente con dos entradas de reloj y sin embargo no es imposible configurar este circuito ya que los registros se consiguen conectando flip flops convencionales con una sola entrada de reloj
La regla general es los circuitos que se pueden simular no necesaria-mente se pueden configurar los circuitos que generan errores en su simula-cioacuten seguramente conservaraacuten esos errores en la implementacioacuten
Se mostraraacuten otras simulaciones y maacutes detalles acerca de las mismas a lo largo del eBook
Paacuteg 4 de 4
entity comb1 isPort (a in bit b in bit c in bit d out bit)end comb1
architecture ecuaciones of comb_retraso issignal S1 S2 S3 bitbegind lt= S1 or S2 or S3 after 50 psS1 lt= a and b after 30 psS2 lt= b and c after 30 psS3 lt= a and c after 30 psend ecuaciones
Tabla 14 Tabla de simulacioacuten de sentildeales tipo bit
t = 0
a = 0
b = 1
c = 1
S1 = 0
S2 = 0
S3 = 0
d = 0
t = 0 + 80 ps
a = 0
b = 1
c = 1
S1 = 0
S2 = 1
S3 = 0
d = 1
t = 0 + 30ps
a = 0
b = 1
c = 1
S1 = 0
S2 = 1
S3 = 0
d = 0
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL13 Simulacioacuten de un circuito
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
17
14 Expresiones booleanas en VHDL
En VHDL es comuacuten llamarle ecuacioacuten a una funcioacuten booleana En una ecuacioacuten se describe un circuito y se da un nombre a su salida Una opcioacuten para describir un circui-to es construir una expresioacuten booleana (hay otras opciones que se abordaraacuten maacutes adelante)
El formato de una ecuacioacuten es
Sentildeal de salida lt= expresioacuten booleana
Los siacutembolos lt= representan una flecha larr (este siacutembo-lo no se encuentra en el teclado por eso no se utiliza) Se usa lt= y no solo = porque en un circuito con retroalimen-tacioacuten la igualdad seriacutea incorrecta Por ejemplo en aacutelgebra booleana f = b + f representa la operacioacuten or entre la salida que tambieacuten es entrada y b Esto no es una igualdad mate-maacutetica es la representacioacuten de una salida loacutegica que tam-bieacuten es entrada Para no utilizar el siacutembolo de igualdad en VHDL este circuito se describe como f lt= f or a En VHDL el operador + no representa una operacioacuten loacutegica sino arit-meacutetica Los operadores booleanos se representan con su nombre en ingleacutes
Una expresioacuten estaacute formada por operandos y opera-dores Los operandos pueden ser variables booleanas o constantes En este eBook no usaremos la palabra variable para que no haya confusioacuten con las variables que se utili-zan en programacioacuten En vez de variable emplearemos el teacutermino sentildeal Las constantes booleanas pueden ser cero que en VHDL es lsquo0rsquo y uno lsquo1rsquo
En cuanto a los operadores ademaacutes de los operadores baacutesicos de la loacutegica NOT AND OR en VHDL existen ope-radores para todas las compuertas loacutegicas Asiacute que es po-sible modelar un circuito con las compuertas simples que constituyen las operaciones baacutesicas del aacutelgebra booleana y las compuertas compuestas es decir que incluyen varias operaciones loacutegicas como son XOR XNOR NAND NOR Cabe aclarar que aunque se utilicen compuertas compues-tas la expresioacuten se construye de la misma forma que si se utilizaran operadores simples por ejemplo a NAND b NAND c La operacioacuten XNOR corresponde a la operacioacuten de equivalencia que es el complemento de la operacioacuten XOR
En el lenguaje VHDL las mayuacutesculas y minuacutesculas son indistintas la a y la A se interpretan igual Asiacute que se podraacute escribir AND aND And and AnD ANd anD aNd y esto aplica a los nombres de sentildeales a los operadores y a las palabras reservadas
Los nombres de los operadores son palabras reserva-das del lenguaje
Paacuteg 1 de 4
GLOSARIO
Funcioacuten booleana Es la relacioacuten de variables booleanas (sentildeales) por medio de operadores loacutegicos
Sentildeal loacutegicaRepresenta a una variable booleana Tiene dos medidas de voltaje el cero loacutegico tiene un valor de alrededor de 0 volts generalmente se interpreta como cero hasta 15 volts y el 1 loacutegi-co que es una medida alrededor de 5 volts que generalmente variacutea de 35 a 6 volts
Operadores loacutegicosSon los operadores de la loacutegica and or not Existen algunos operadores compuestos nand nor xor
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL14 Expresiones booleanas en VHDL
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
18
En VHDL la precedencia de operadores no existe de manera que todas las operaciones tienen la misma jerarquiacutea Al construir una expresioacuten haacutega-lo como si eacutesta fuera a ser ldquoevaluadardquo de izquierda a derecha o bien como si el circuito fuera a ser conectado de izquierda a derecha
Por otra parte es posible definir expresiones booleanas en las que se usen compuertas de maacutes de dos entradas por ejemplo f(abcd) = a + b + c + d que en VHDL es f lt= a or or c or d equivale al circuito que se muestra en la figura 18
Es posible modelar el circuito de la figura 19 de la siguiente manera flt= a and b or (b and d) or (c and d) Observe que el primer and no requie-re pareacutentesis por ser el primero de izquierda a derecha Sin embargo por presentar mayor uniformidad en la expresioacuten es posible utilizar pareacutentesis para todas las operaciones and ya que si hay pareacutentesis extras no afectan a la expresioacuten ni al circuito de esta manera la funcioacuten resulta f lt= (a and b) or (b and d) or (c and d) (figura 110) Esta expresioacuten representa el mismo circuito que el anterior
Figura 19 Circuito de la ecuacioacuten f lt= a and b or (b and d) or (c and d)
Figura 18 Circuito de la ecuacioacuten f lt= a or b or c or d
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL14 Expresiones booleanas en VHDL
Paacuteg 2 de 4
f
a b c d
f
a b c d
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
19
Si la expresioacuten se hubiera escrito sin pareacutentesis f lt= a and b or b and c or c and d hubiera definido el circuito que se muestra en la figura 111
La ecuacioacuten equivalente con pareacutentesis es la siguiente f lt= (((((a and b) or b) and c) or c) and d)
El not es un operador unitario es decir es una compuerta con solo una entrada asiacute que en las expresiones no requiere pareacutentesis por lo que f lt= not a and not b or c representa al circuito que se aprecia en la figura 112
F lt= a xnor b xnor c define el circuito que se presenta a continuacioacuten Observe que el xnor es una compuerta de soacutelo dos entradas porque asiacute estaacute definida en loacutegica la operacioacuten de or exclusivo y equivalencia (figura 113)
Figura 111 Circuito de la ecuacioacuten f lt= a and b or b and c or c and d
Figura 112 Circuito de la ecuacioacuten F(abcd) = not a and not b or c
Figura 113 Circuito de la ecuacioacuten f lt= a xnor b xnor c
Figura 110 Circuito de la ecuacioacuten f lt= (a and b) or (b and d) or (c and d)
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL14 Expresiones booleanas en VHDL
Paacuteg 3 de 4
f
a b c d
f
a b c d
f
a b c
f
a b c
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
20
El circuito para f lt= (a nand b nand not c) nand not d es el que se aprecia en la figura 114
Por uacuteltimo el circuito para z lt = a and b and not c or d es el que se observa en la figura 115
Figura 114 Circuito de la ecuacioacuten f lt= (a nand b nand not c) nand not d
Figura 115 Circuito de la ecuacioacuten z lt= a and b and not c or d
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL14 Expresiones booleanas en VHDL
Paacuteg 4 de 4
f
a b c d
z
a b c d
LIGAS DE INTEREacuteS
Realiza los ejercicios correspondien-tes al tema
Actividad de Repaso Tema 14
Antes de continuar realiza la actividad de repaso del tema la cual encontraraacutes en la barra lateral derecha
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
21
15 Maacutes informacioacuten sobre la definicioacuten de un circuito entidad
La entidad es la seccioacuten en la que se define el nombre del circuito y su puerto El puerto estaacute constituido por las sentildeales con las que el circuito se comunica con el exterior En la figura 120 se describe un circuito con en-tradas a b c y salida d Las entradas y salidas conforman el puerto y las compuertas interconectadas son la arquitectura
La manera de declarar la entidad de este circuito en VHDL es
Para la descripcioacuten en VHDL de una entidad es necesario que se defina un nombre para el circuito y tambieacuten al momento de definir las entradas y salidas se le asocie a cada una un nombre modo y tipo
En el ejemplo anterior una sentildeal tiene de nombre lsquoarsquo modo ldquoinrdquo y tipo ldquostd_logicrdquo
Figura 120 Descripcioacuten del circuito
Paacuteg 1 de 1
Entity circuito_prueba is
Port ( a b c in std_logic
d out std_logic)
end circuito_prueba
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL15 Maacutes informacioacuten sobre la definicioacuten de un circuito entidad
d
ab
c
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
22
16 Nombres
Si el circuito fuera construido en un protoboard las se-ntildeales representariacutean a los cables que van conectados a las entradas de los componentes o que provienen de sus salidas Para hacer referencia a las sentildeales en la arqui-tectura del circuito es necesario etiquetarlas con un nom-bre se recomienda que el nombre de la sentildeal sea faacutecil de identificar es decir si existe una sentildeal que se encargue de reiniciar alguacuten proceso entonces el nombre maacutes indicado para la sentildeal seriacutea reset
Para crear un nombre correcto es necesario conocer las reglas de construccioacuten
raquo VHDL no distingue entre mayuacutesculas Es decir las sentildeales lsquoArsquo y lsquoarsquo se consideran iguales
raquo Soacutelo se permiten letras nuacutemeros y guioacuten bajo debe comenzar con una letra y no puede contener dos guiones seguidos
raquo No es posible utilizar palabras reservadas
raquo No deben repetirse nombres para sentildeales distintas
Las mismas reglas de construccioacuten aplican al nombre general del circuito que se indica despueacutes de entity
Paacuteg 1 de 1
LIGAS DE INTEREacuteS
Realiza los ejercicios correspondien-tes al tema
Actividad de Repaso Tema 16
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL16 Nombres
Antes de continuar realiza la actividad de repaso del tema la cual encontraraacutes en la barra lateral derecha
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
23
17 Tipos de datos
Los tipos de datos son usados para asignar un ldquoformato loacutegicordquo a los niveles eleacutectricos de una sentildeal Generalmen-te el disentildeador usa el tipo de dato que maacutes se ajuste al circuito que desea construir Los tipos de datos son
raquo Std_logic que puede tomar los siguientes valores
bull 0 o 1 loacutegico es decir un bit
bull Z que indica alta impedancia es decir desconexioacuten
bull U que indica undetermined (indeterminado) esto ocurre cuando a una sentildeal no se le ha asociado un valor solo aplica a la simulacioacuten del circuito asiacute que indistintamente podriacutea ser 0 o 1
bull X que indica un corto sucede cuando una sentildeal recibe valores de distintas fuentes por ejemplo Alt=B Alt=C
raquo Bit Solo toma valores de 0 y 1 A diferencia de std_lo-gic toma 0 como valor en la simulacioacuten cuando una sentildeal no tiene valor
raquo Integer Permite que en la descripcioacuten de un circuito se utilicen valores con representaciones decimales enteras por ejemplo A lt= 5 en vez de A lt= ldquo101rdquo El compilador que se utilice se encarga de convertir a binario los datos escritos en decimal Si la sentildeal estaacute acotada entonces el nuacutemero se ajusta un vector de bits de un tamantildeo acotado si no un entero se con-vierte a un bus de datos de 32 bits
raquo Std_logic_vector Bus de bits tipo std_logic La defini-cioacuten de una sentildeal muacuteltiple es decir un bus de datos permite que se utilice solo un nombre para hacer refe-rencia a un conjunto de sentildeales digitales (o bits) Cada sentildeal individual puede tomar los valores de un dato std_logic La sintaxis que se utiliza y su uso se estudia-raacuten en el capiacutetulo 2
raquo Bit_vector Es un ldquobusrdquo de bits de tipo bit En el capiacutetu-lo 2 se estudiaraacuten su uso y definicioacuten
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL17 Tipos de datos
Paacuteg 1 de 2
LIGAS DE INTEREacuteS
Realiza los ejercicios correspondien-tes al tema
Actividad de Repaso Tema 17
Antes de continuar realiza la actividad de repaso del tema la cual encontraraacutes en la barra lateral derecha
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
24
18 Arquitectura niveles de descripcioacuten
Como ya se mencionoacute la arquitectura es la seccioacuten en la que se describe el circuito Existen tres diferentes niveles de descripcioacuten de una arquitectura en VHDL nivel estruc-tural nivel ecuaciones y nivel comportamiento o funcional Enseguida explicaremos estos niveles
Instrucciones Hacer clic sobre cada nivel para consultar la informacioacuten Hacer clic en cualquier lugar para volver
GLOSARIO
Niveles de descripcioacutenExisten tres diferentes niveles de des-cripcioacuten de una arquitectura de un cir-cuito en VHDL nivel estructural nivel ecuaciones y nivel comportamiento o funcional
LIGAS DE INTEREacuteS
Realiza los ejercicios correspondien-tes al tema
Actividad de Repaso Tema 18
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL18 Arquitectura niveles de descripcioacuten
Paacuteg 1 de 1
Antes de continuar realiza la actividad de repaso del tema la cual encontraraacutes en la barra lateral derecha
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
25
19 Sintaxis de VHDL
A continuacioacuten se muestra de nuevo la codifi-cacioacuten de la arquitectura del circuito de la figura 11 para analizar su estructura sintaacutectica
Eacutesta y cualquier otra descripcioacuten cumple con el siguiente patroacuten sintaacutectico
Sintaxis en VHDL de la definicioacuten de un componente
La palabra concurrente tiene dos propoacutesitos
Las palabras que se encuentran en negritas (bold) son palabras reservadas del lenguaje No son intercambiables por otras palabras y son re-queridas en la posicioacuten que se indica No es po-sible emplear palabras reservadas como nombre ni del componente ni de las sentildeales del circuito
Observe que al final de cada instruccioacuten con-currente ndashy en general de cada seccioacuten de la des-cripcioacutenndash se incluye un punto y coma Este signo de puntuacioacuten no puede omitirse
Las reglas para la construccioacuten vaacutelida de los nombres de las sentildeales se ofrecen en el capiacutetulo 2
architecture ecuacion of circuito_prueba is begin d lt= (a and b) or c end ecuacion
entity nombre-componente is Port (sentildeal tipo sentildeal tipo sentildeal tipo)end nombre-componente
architecture tipo-de-descripcioacuten of nombre-componente isbegininstruccioacuten_concurrente instruccioacuten_concurrente instruccioacuten_concurrente end tipo-de-descripcioacuten
Instrucciones Hacer clic sobre cada propoacutesito para consultar la informacioacuten Hacer clic en cualquier lugar para volver
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL19 Sintaxis de VHDL
Paacuteg 1 de 2
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
26
Volviendo al ejemplo dado
La palabra ecuacion tiene el propoacutesito de indicar el ni-vel en que estaacute codificada la arquitectura Puede ser una palabra cualquiera elegida por el disentildeador con el propoacutesi-to de documentar el circuito Por otra parte circuito_prue-ba es el nombre de la entidad es decir es el nombre del circuito asiacute es posible definir sentildeales internas (si las hay) A continuacioacuten se incluye la descripcioacuten de la arquitectura que inicia con la palabra reservada begin La descripcioacuten de la arquitectura finaliza por la palabra end seguida por la palabra que se haya utilizado para indicar el nivel de la arquitectura que en este ejemplo es ecuacion
El siguiente ejemplo muestra un circuito con una sentildeal interna para ilustrar el lugar sintaacutectico de la declaracioacuten En este ejemplo d y f representan nombres distintos para la misma sentildeal
Paacuteg 2 de 2
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL19 Sintaxis de VHDL
architecture ecuacion of circuito_prueba is begin d lt= (a and b) or c end ecuacion
architecture Behavioral of circuito_prueba is signal f std_logicbegin f lt= (a and b) or c d lt= fend Behavioral
LIGAS DE INTEREacuteS
Realiza los ejercicios correspondien-tes al tema
Actividad de Repaso Tema 19
Antes de continuar realiza la actividad de repaso del tema la cual encontraraacutes en la barra lateral derecha
MAPA
glosarioREC
URSO
SACTIV
IDAD
CONCLU
SIOacuteN
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
27
110 Descripcioacuten de circuitos combinacionales con mayor nuacutemero de elementos
Ya comprendidos los conceptos de entidad y arquitec-tura con los sencillos ejemplos que se presentaron y resol-vieron usted estaacute listo para empezar a codificar en VHDL disentildeos maacutes extensos Enseguida le mostramos maacutes ejem-plos de circuitos combinacionales con mayor nuacutemero de elementos
Ejemplo 1 Circuito combinacional de muacuteltiples ni-veles y compuertas diversas
Empecemos codificando el circuito combinacional que se presenta en la figura 121 a nivel ecuaciones
La codificacioacuten en VHDL de este circuito a nivel ecuacio-nes puede realizarse mediante el uso de sentildeales internas o en solo una ecuacioacuten Para algunos resulta maacutes coacutemodo y menos propenso a errores codificarlo con sentildeales internas
La manera de codificarlo con el uso de sentildeales es de la siguiente manera
Nota La manera en que se codificariacutea sin uso de sentildea-les se encuentra en el coacutedigo a manera de comentario Los comentarios se incluyen despueacutes de dos guiones
GLOSARIO
Nivel ecuacionesConsiste en describir un circuito a partir de las expresiones booleanas que lo conforman
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL110 Descripcioacuten de circuitos combinacionales con mayor nuacutemero de elementos
Paacuteg 1 de 5
Figura 121 Circuito combinacional de muacuteltiples niveles
library IEEEuse IEEESTD_LOGIC_1164ALLuse IEEESTD_LOGIC_ARITHALLuse IEEESTD_LOGIC_UNSIGNEDALL
entity Ejemplo isport(abcde in std_logic f out std_logic)end Ejemplo
architecture Behavioral of tercerafigura issignal ghijk std_logicbegin--f lt= e xor ( ( (a and b) or (c nor d) ) and ( (a and b) nand (c nor d) ) ) g lt= a and bh lt= c nor di lt= g or hj lt= g nand hk lt= i and jf lt= e xor kend Behavioral
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
28
Ejemplo 2 Juego de TV
En un programa de concursos de televisioacuten hay un juego en el que par-ticipan tres personas Cada participante cuenta con un interruptor Los in-terruptores cerrados (posicioacuten on) generan un 1 loacutegico Los interruptores abiertos (posicioacuten off) generan un 0 loacutegico Por otra parte hay cuatro indi-cadores (LEDs) en un tablero A B C y D Un indicador enciende si recibe un 1 loacutegico
raquo El indicador A debe encender solo cuando todos los jugadores posi-cionan en on sus interruptores
raquo El indicador B debe encender si y solo si A estaacute apagado
raquo El indicador C debe encender si y solo si dos o maacutes jugadores posi-cionan en on sus interruptores
raquo El indicador D debe encender si y solo si uno o ninguno de los juga-dores posicionan en on sus interruptores
Dadas las especificaciones anteriores codifique en VHDL los siguientes circuitos y simuacutelelos
1 Circuito para encender el indicador A
2 Circuito para encender el indicador B
3 Circuito para encender el indicador C
4 Circuito para encender el indicador D
Para solucionar este problema ndashy en el caso de cualquier circuito que sea desee codificarndash es altamente recomendable realizar un esquemaacutetico antes de comenzar a programarlo con el fin de tener maacutes clara la idea para su elaboracioacuten
Despueacutes de realizar las funciones booleanas necesarias para que este circuito funcione se procede al esquemaacutetico mostrado en la figura 122
Figura 122 Disentildeo esquemaacutetico del juego de TV
Paacuteg 2 de 5
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL110 Descripcioacuten de circuitos combinacionales con mayor nuacutemero de elementos
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
29
A continuacioacuten se muestra el juego de TV codificado basado en el es-quemaacutetico del mismo
Ejemplo 3 Alarmas residenciales
Se estaacute implementando el sistema de alarmas de un pequentildeo departa-mento A usted se le ha contratado para disentildear y construir los circuitos que hagan funcionar el sistema
El sistema cuenta con sensores interruptores y diferentes tipos de alar-mas
Se instalaron cinco tipos de sensores
raquo Magneacuteticos para las ventanas
raquo Infrarrojos para detectar movimiento
raquo De humo
raquo De CO2 (detecta que pase cierto nivel)
raquo De humedad (detecta que pase cierto nivel)
El nuacutemero de sensores que se instalaron fue
raquo Dos magneacuteticos
raquo Un infrarrojo
raquo Uno de humo
raquo Uno de CO2
raquo Uno de humedad
Los sensores deben activar cinco tipos de alarmas
raquo Contra robo
raquo Contra incendios
raquo Para avisar sobre la humedad
raquo Para avisar sobre el CO2
raquo Para avisar que hay alguna alarma encendida
library IEEEuse IEEESTD_LOGIC_1164ALLuse IEEESTD_LOGIC_ARITHALLuse IEEESTD_LOGIC_UNSIGNEDALL
entity TV is Port ( p1p2p3 in STD_LOGIC abcd out STD_LOGIC)end TV
architecture Behavioral of TV is signal snp1 snp2 snp3 std_logicbegin snp1 lt= not p1 snp2 lt= not p2 snp3 lt= not p3 a lt= p1 and p2 and p3 b lt= not(p1 and p2 and p3) c lt= (p1 and p2) or (p1 and p3) or (p2 and p3) d lt= (snp1 and snp2) or (snp2 and snp3) or (snp1 and snp3)end Behavioral
Paacuteg 3 de 5
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL110 Descripcioacuten de circuitos combinacionales con mayor nuacutemero de elementos
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
30
Se colocaron dos interruptores que en ldquoon (1)rdquo sirven para
raquo Activar la alarma de robos
raquo Indicar que hay gente en casa (que proba-blemente encienda estufa cerillos etc)
Para implementar su disentildeo
raquo Utilice dip switches para representar a los sensores e interruptores
raquo Utilice LEDs para representar a las alar-mas
El coacutedigo estaacute disentildeado de la siguiente forma
raquo La alarma de robos se encenderaacute cuan-do el interruptor de alarma de robo se encuentre encendido y el interruptor que indica presencia de residentes se encuen-tre apagado
raquo Teniendo en cuenta a los interruptores la alarma se encenderaacute cuando el sensor infrarrojo esteacute encendido o alguno de los sensores magneacuteticos se enciendan
raquo La alarma de incendio se encenderaacute cuan-do el sensor de humo detecte un alto nivel de humo
raquo La alarma de humedad dependeraacute uacutenica-mente del sensor de humedad
raquo La alarma de CO2 se encenderaacute solo si la alarma de CO2 lo indica
raquo La alarma de alarma encendida se pren-deraacute si alguna de las alarmas estaacute encen-dida
De esta manera el esquemaacutetico se represen-tariacutea tal como se observa en la figura 123
Figura 123 Disentildeo esquemaacutetico de alarmas residenciales
Paacuteg 4 de 5
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL110 Descripcioacuten de circuitos combinacionales con mayor nuacutemero de elementos
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
31
La codificacioacuten de este disentildeo esquemaacutetico es 1101 Modos
El modo define la direccioacuten o sentido de conexioacuten de una sentildeal Se de-finen en el puerto del circuito Existen cuatro modos in (entrada) out (sali-da) inout (entradasalida) y buffer
raquo Modo in Se utiliza para definir a las sentildeales de entrada al circuito
raquo Modo out Se refiere a las sentildeales de salida del circuito
raquo Modo inout Indica que una sentildeal del puerto puede ser tanto de en-trada como de salida (bidireccional)
raquo Modo buffer Se usa para sentildeales de salida que internamente son usadas tambieacuten como entrada
library IEEEuse IEEESTD_LOGIC_1164ALLuse IEEESTD_LOGIC_ARITHALLuse IEEESTD_LOGIC_UNSIGNEDALL
entity Alarmas is Port ( iar in STD_LOGIC --interruptor alarma de robo iig in STD_LOGIC --interruptor indica hay gente sm1 in STD_LOGIC --sensor magnetico 1 sm2 in STD_LOGIC --sensor magnetico 2 sifr in STD_LOGIC --sensor infrarojo shumo in STD_LOGIC --sensor humo sco in STD_LOGIC --sensor co2 shume in STD_LOGIC --sensor humedad d arob inout STD_LOGIC --alarma de robo ainc inout STD_LOGIC --alarma incendio ahume inout STD_LOGIC --alarma humedad d aco inout STD_LOGIC -- alarma co2 aenc inout STD_LOGIC) -- alarma encendidaend Alarmas
architecture Behavioral of Alarmas is
beginarob lt= ((not iig and sifr) or sm1 or sm2) and iarainc lt= shumoahume lt= shumeaco lt= scoaenc lt= arob or ainc or ahume or acoend Behavioral
Paacuteg 5 de 5
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL110 Descripcioacuten de circuitos combinacionales con mayor nuacutemero de elementos
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
32 Capiacutetulo 1 Descripcioacuten de un circuito en VHDL
Paacuteg 1 de 1
Actividad integradora del capiacutetulo 1Instrucciones Hacer clic sobre la imagen para descargar el archivo correspondiente a esta actividad
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
33
Conclusioacuten del capiacutetulo 1 Capiacutetulo 1 Descripcioacuten de un circuito en VHDL
En este capiacutetulo se ha presentado una introduccioacuten al lenguaje de modelacioacuten de circuitos VHDL Se inicioacute el aprendizaje de VHDL describiendo circuitos combinacio-nales utilizando aacutelgebra booleana Despueacutes de estudiar este capiacutetulo el lector debe ser capaz de reconocer las entradas salidas y sentildeales intermedias de un circuito combinacional Tambieacuten debe poder plantear las ecua-ciones booleanas necesarias para describir el circuito
Paacuteg 1 de 1
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
AABEL (Advanced Boolean Expression Language)Lenguaje inicialmente creado en 1983 para pro-gramar PLD (Programmable Logic Device) por Data IO Corporation en Redmond Washington Es un lenguaje descriptor de hardware de maacutes bajo nivel que VHDL y Verilog Los circuitos se describen en aacutelgebra booleana y tablas de ver-dad
EEcuacioacuten booleana Ver Funcioacuten booleana
FFPGA Field Programmable Gate ArrayTipo de PLD (Programmable Logic Device) basa-do en la interconexioacuten de ceacutelulas llamadas CLB En un FPGA se configura un circuito loacutegico Los principales fabricantes de tarjetas de desarro-llo para FPGAs que cuentan tanto de un FPGA
como de perifeacutericos e interfaces para entrada y salida son
Altera - FPGA Manufacturer (Cyclone Arria Statix)Lattice - FPGA Manufacturer (XP Mach SC EC ECP)Xilinx - FPGA Manufacturer (Spartan amp Virtex)Avnet (US) - A wide range of Spartan 3 Virtex 2 Virtex 2 Pro Virtex 4 and Virtex 5 boardsBraemac (Australia) - Australian AlteraTerasic DistributorBurchED (Australia) - Xilinx FPGA Video Guides
Glosario del capiacutetulo 1A B C D E F G H I J K L M N Ntilde O P Q R S T U V W X Y Z
Paacuteg 1 de 2
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Glosario del capiacutetulo 1
Digilent Inc (US) - Tarjetas de Desarrollo de Xi-linixKNJN LLC (US) - Tarjetas de Desarrollo diver-sasTrenz Electronics (Germany) - Tarjetas de De-sarrollo de XilinixXess (US) - Tarjetas de Desarrollo de Xilinix
Funcioacuten booleana Es la relacioacuten de variables booleanas (sentildeales) por medio de operadores loacutegicos
IIEEE Institute of Electrical and Electronics InstituteAsociacioacuten con base en EUA y capiacutetulos en todo el mundo Produce revistas especializada organiza congresos y es reponsable de fijar es-taacutendares
RRetrasoEn VHDL es posible definir el tiempo en que la salida de una compuerta loacutegica o un circuito pro-duce una salida vaacutelida Esto solo es posible en la simulacioacuten de un componente
VVerilog (Verify logic)Fue creado en 1985 en Automated Integrated De-sign SystemsCadence la cual tiene ahora todos los derechos sobre los simuladores loacutegicos de Verilog Es un lenguaje descriptor de hardware con una sintaxis similar a C
VHDLAcroacutenimo de VHSIC Hardware Description Lan-guage VHSIC = Very High Speed Integrated Cir-cuit Es un lenguaje descriptor de hardware con una sintaxis similar a ADA
Paacuteg 2 de 2
A B C D E F G H I J K L M N Ntilde O P Q R S T U V W X Y Z
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Recursos del capiacutetulo 1
Una discusioacuten sobre ventajas y desventajas de la fabricacioacuten de un ASIC o la configuracioacuten de un circuito en un FPGA se encuentra en
raquo httpwwwxilinxcomcompanygettingstarted
Historia de VHDL
raquo httpwwwdouloscomknowhowvhdl_designers_guidea_brief_his-tory_of_vhdl
Construccioacuten de circuitos integrados
raquo httpwwwnobelsephysicseducationalintegrated_circuithistory
Historia de los FPGAs
raquo httpturingkingsuabca~nlaanpresentationsfpgahistoryphp
Actividad integradora del capiacutetulo 1
raquo Hoja de respuestas
Paacuteg 1 de 1
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Introduccioacuten del eBook iii
Capiacutetulo 1 Descripcioacuten de un circuito en VHDL 211 Caracteriacutesticas generales de un circuito descrito en VHDL 412 Descripcioacuten de un circuito en VHDL 5
121 Descripcioacuten por secciones 713 Simulacioacuten de un circuito 9
131 Definicioacuten de retrasos especiacuteficos 1114 Expresiones booleanas en VHDL 1315 Maacutes informacioacuten sobre la definicioacuten de un circuito entidad 1716 Nombres 1817 Tipos de datos 1918 Arquitectura niveles de descripcioacuten2019 Sintaxis de VHDL 21110 Descripcioacuten de circuitos combinacionales con mayor nuacutemero de elementos 23
1101 Modos 27Conclusioacuten del capiacutetulo 1 29Glosario del capiacutetulo 1 30Recursos del capiacutetulo 132
Capiacutetulo 2 Niveles de descripcioacuten de un circuito 3421 Definiciones del mux 41 en diferentes niveles 35
211 Nivel Ecuaciones 35212 Nivel Estructural 35213 Nivel Comportamiento 41
22 Circuitos combinacionales disentildeados con procesos 44
23 Verificacioacuten del if 4724 Uso del case 48Conclusioacuten del capiacutetulo 2 50Glosario del capiacutetulo 2 51Recursos del capiacutetulo 253
Capiacutetulo 3 Circuitos para operaciones aritmeacuteticas y loacutegicas 5531 Disentildeo de un sumador de dos nuacutemeros de 4 bits 56
311 Disentildeo estructural del sumador de nuacutemeros de cuatro bits 59
32 Disentildeo del sumador en VHDL en nivel de ecuaciones 6133 Buses (vectores) de datos 62
331 Asociacioacuten de valores o circuitos a vectores de datos 62332 Suma descrita en forma funcional 63
34 Disentildeo del sumador en VHDL en nivel comportamiento 6435 La resta 66
351 Restador construido con restadores conectados en cascada 66352 Disentildeo de un restador a partir de restadores completos para nuacutemeros de 4 bits sin signo67353 Disentildeo del restador a nivel comportamiento67
36 Comparador 6937 Ejemplos 73
371 Restador con la teacutecnica de complementos a 1 73372 Circuito oculto 74373 Unidad loacutegica 76374 Calculadora 79
Iacutendice
Paacuteg 1 de 3
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Conclusioacuten del capiacutetulo 3 81Glosario del capiacutetulo 3 82Recursos del capiacutetulo 385
Capiacutetulo 4 Aritmeacutetica BCD8741 Disentildeo de un sumador BCD 9042 Disentildeo de un restador BCD 9743 Ejemplos 99
431 Calculadora base 3 99432 Suma de nuacutemeros en formato de signo magnitud 100
Conclusioacuten del capiacutetulo 4 103Glosario del capiacutetulo 4 104Recursos del capiacutetulo 4105
Capiacutetulo 5 Circuitos secuenciales baacutesicoslatches y flip flops y su modelacioacuten en VHDL 107
51 Introduccioacuten a los circuitos secuenciales 10752 Estructuras en VHDL para el modelado de circuitos secuenciales 109
521 Estructura if y procesos 109522 Estructura CASE 110523 Estatutos secuenciales y estatutos concurrentes 112
53 Circuitos almacenadores (Latches)114531 Latch S-R 114532 Latch J-K 117533 Latch T 120
54 Flip flops 121
541 Flip Flop D121542 Flip flop JK 124543 Flip-flop J-K con entradas de preset y clear asincroacutenicas 124
Conclusioacuten del capiacutetulo 5 128Glosario del capiacutetulo 5 129Recursos del capiacutetulo 5130
Capiacutetulo 6 Registros 13261 iquestQueacute es un registro 13262 Registros y su operacioacuten134
621 Registro de carga paralela sincroacutenica y salida paralela 134622 Registro con entrada serial sincroacutenica y salida serial con corrimiento (shift) a la derecha 135623 Contador ascendente 136624 Contador ascendente con Reset asincroacutenico 136
63 Arquitectura interna de una muestra de registros 137631 Registro con carga paralela sincroacutenica 137632 Registro con carga paralela asincroacutenica 139633 Registro con carga serial sincroacutenica y corrimiento a la derecha 140634 Contador ascendente142635 Contador BCD con reset asincroacutenico142636 Contador BCD con reset sincroacutenico144
64 Modelacioacuten de registros por sus funciones 14565 Ejemplos de modelacioacuten de registros por sus funciones 149
Iacutendice
Paacuteg 2 de 3
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
66 Definicioacuten de un circuito que contiene maacutes de un registro 15267 Ejemplos de un circuito que contiene maacutes de un registro 15468 Modelacioacuten incorrecta 156
681 Dos incrementos en la misma transicioacuten (1) 157682 Dos incrementos en la misma transicioacuten (2) 158683 Borrar e incrementar en la misma transicioacuten 158684 Definicioacuten de registros en diferentes estructuras (1) 159685 Definicioacuten de registros en diferentes estructuras (2) 160686 Diferentes operaciones en la misma transicioacuten 160687 Modelacioacuten de la salida incorrecta 161688 Contador sin sentildeal de reloj 162689 Modelacioacuten incorrecta de sentildeal de control 163
Conclusioacuten del capiacutetulo 6 165Glosario del capiacutetulo 6 166Recursos del capiacutetulo 6167
Capiacutetulo 7 Circuitos monoestables y astables 16971 Sentildeales de reloj 170
711 Divisioacuten de frecuencias en potencias de 2 171712 Obtencioacuten de frecuencias especiacuteficas 172
72 Eliminacioacuten de ruido eleacutectrico (rebotes) 174721 Circuito one shot y circuito eliminador de rebotes 174
Actividad integradora del capiacutetulo 7 178Conclusioacuten del capiacutetulo 7 179Glosario del capiacutetulo 7 180Recursos del capiacutetulo 7182
Glosario general 183Ligas de intereacutes 192Referencias 197Iacutendice 199Aviso legal 202
Iacutendice
Paacuteg 3 de 3
Disentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL
Aviso legalRoffe Samaniego Norma FridaDisentildeo de sistemas digitales a traveacutes de disentildeos esquemaacuteticos y VHDL Norma Frida Roffe Samaniego p 203 cm
1 VHDL (Lenguaje de descripcioacuten para hardware)2 Disentildeo de sistemasmdashProcesamiento de datos
LC TK78857 Dewey 621392
eBook editado disentildeado publicado y distribuido por el Instituto Tecnoloacutegico y de Estudios Superiores de MonterreySe prohiacutebe la reproduccioacuten total o parcial de esta obra por cualquier medio sin previo y expreso consentimiento por escrito del Instituto Tecnoloacutegico y de Estudios Superiores de Monterrey
DRcopy Instituto Tecnoloacutegico y de Estudios Superiores de Monterrey Meacutexico 2011Ave Eugenio Garza Sada 2501 Sur Col TecnoloacutegicoCP 64849 | Monterrey Nuevo Leoacuten | Meacutexico
ISBN en traacutemite
Primera edicioacuten agosto 2012