Title: Presentacin de PowerPoint
1REDES DE ALTAS PRESTACIONES Y SUS APLICACIONES
Lección 8. Lenguajes de Descripción de Hardware
Introducción a Verilog
Departamento de Arquitectura y Tecnología de
Computadores
E.T.S. Ingeniería Informática
2Bibliografía
- THOMAS, D.E. MOORBY, P.The Verilog Hardware
Description Language. Kluwer Academic
Publishers, 1991. - NAVADI, Z.Verilog Computer-Based Training
Course. McGraw Hill, 2002. - MAZOR, S. LANGSTRAAT, P.A Guide to VHDL.
Kluwer Academic Publishers, 1992. - Software Active HDL 4.2 (www.aldec.com)
3Lenguajes de Descripción de Hardware.
Introducción a Verilog
- Introducción a los Lenguajes de Descripción de
Hardware. - Niveles de diseño y dominios de representación
- Introducción a Verilog
4INTRODUCCIÓN A LOS LENGUAJES DE DESCRIPCIÓN DE
HARDWARE (HDLs)
- Un HDL es una herramienta que facilita el diseño,
análisis, y comprobación del comportamiento de un
elemento hardware (circuito o sistema más o menos
complejo) - Su principal dominio de aplicación es el modelado
de dispositivos para comprobar su corrección
funcional mediante simulación, aunque existen
otros usos posibles. - Áreas de aplicación
- Síntesis automática Generación de dispositivos
digitales a partir de la especificación de su
comportamiento a través de un lenguaje de
descripción de hardware. - Diagnosis de Fallos Se pueden diseñar
estrategias de detección de fallos de circuitos a
partir de modelos de defectos descritos mediante
un lenguaje de descripción de hardware. - Verificación Formal Se trata de verificar que,
para todos los estados iniciales aceptables, y
para todas las entradas posibles, la
implementación del diseño cumple su
especificación. - Modelado de Rendimiento Se pueden comprobar las
prestaciones del sistema que se pretende
implementar, simulando su comportamiento a partir
de una descripción del mismo realizada con un
lenguaje de descripción de hardware. - Documentación Tarea muy importante en todo
proceso de diseño, y sobre todo en el caso de que
el sistema tenga una complejidad considerable. Si
se dispone de una descripción precisa de todo el
sistema mediante un lenguaje que tenga una
capacidad de abstracción elevada se facilita este
trabajo. -
5INTRODUCCIÓN A LOS LENGUAJES DE DESCRIPCIÓN DE
HARDWARE (HDLs)
- HDLs precursores
- CDL (Computer Design Languaje) (Chu, 60s, IBM
7090) - DDL (Digital systems Design Language)
(Universidad de Wisconsin, 60s) - AHPL (A Hardware Programming Language) (Hill,
Peterson, 1973) - ISPS (Instruction Set Processor Specifications)
(Principio de los 70) - ISP (Instruction Set Processor prime) (Rose,
Drogowski, 1975) - TI-HDL (Texas Instrument-HDL) (HDL desarrollado
por TI a principio de los 70) - UDL/I (Unified Design Language for Integrated
circuits) (Japan Electronic Industry Development
Association, 1989) - M (HDL utilizado por el simulador Lsim de Mentor
Graphics diseñado a partir de C) - HDLs Actuales
- Verilog (1983/84)
- Lenguaje diseñado por Cadence Design Systems
Inc. como lenguaje para su simulador. Su uso
está promovido por la Open Verilog International
(OVI). Estándar IEEE 1364-2001 - VHDL (VHSIC Very High Speed Integrated Circuits
Hardware Description Language) (1985) - Diseñado por Intermetrics, IBM, y TI en 1985.
La Computer Society de IEEE lo convirtió en un
estándar y promovió su uso en 1987 IEEE 1076
6Lección 20. Lenguajes de Descripción de Hardware.
Introducción a Verilog
- Introducción a los Lenguajes de Descripción de
Hardware. - Niveles de diseño y dominios de representación
- Introducción a Verilog
7NIVELES DE DISEÑO Y DOMINIOS DE REPRESENTACIÓN (I)
- Para entender (analizar, describir, diseñar,...)
un sistema complejo se utilizan distintos niveles
de abstracción. - Cada nivel está caracterizado por
- Componentes o primitivas disponibles
- Metodología para el análisis y la síntesis
- Elementos sintetizados a partir de las primitivas
disponibles y que son los componentes del nivel
superior. - Niveles usuales en un sistema digital
- Sistema
- Chip
- Transferencia entre registros
- Circuito Lógico
- Circuito eléctrico
- Nivel físico (layout)
8NIVELES DE DISEÑO Y DOMINIOS DE REPRESENTACIÓN
(II)
- Independientemente del nivel de abstracción, los
modelos de especificación y simulación se pueden
construir en los dominios - Estructural
- La descripción de un elemento se hace en
términos de sus componentes primitivos y su
interconexión. - Funcional o de comportamiento
- La descripción del elemento se hace en términos
de su relación de entradas/salidas - Los lenguajes Verilog y VHDL disponen de recursos
expresivos suficientes para cubrir totalmente la
descripción y el modelado de dispositivos
digitales en los niveles de circuito lógico,
transferencia entre registros, y chip, y
parcialmente en los niveles de sistema y circuito
eléctrico. - Se pueden mezclar descripciones de distintos
niveles, y descripciones estructurales y
funcionales.
9Lección 20. Lenguajes de Descripción de Hardware.
Introducción a Verilog
- Introducción a los Lenguajes de Descripción de
Hardware. - Niveles de diseño y dominios de representación
- Introducción a Verilog
10INTRODUCCIÓN A VERILOG CONCEPTO DE MÓDULO (I)
- El sistema digital se describe como una serie de
módulos module - Mediante la sentencia module se define un módulo
y se pueden especificar todos sus detalles. Una
vez que se ha definido el módulo se puede
utilizar (instanciar, instantiate) cuantas veces
sea preciso en un diseño. Cada ejemplar del
módulo que se utilice (instance) puede estar
conectado con otras instancias de forma distinta
y puede tener un nombre diferente. - Cada módulo es una unidad lógica que incluye
- Una interfaz para su conexión con otros módulos
- Una descripción de su contenido mediante la
especificación de su estructura interna (módulos
que lo constituyen y su forma de interconexión) o
mediante la especificación de su comportamiento - Los módulos se conectan mediante cables (nets)
que, junto con los registros (registers) son uno
de los tipos de datos que utiliza Verilog. - Las nets modelan una conexión eléctrica entre
entidades estructurales (módulos). Existen varios
tipos de nets wire, wire-AND, wire-OR, trireg
11INTRODUCCIÓN A VERILOG CONCEPTO DE MÓDULO (II)
Ejemplo 1
module ffNAND // El modulo se llama
ffNand wire q,qBar // Se definen q y qBar
como wire son las líneas para transmitir los
valores logicos reg preset,clear // Se
definen preset y clear como registers (reg)
variables o elementos que pueden // almacenar
valores (0 o 1) nand 1 // Los modulos
que vienen a continuacion, g1 y g2, son puertas
de tipo NAND con un // retardo unidad. Estas
puertas estan predefinidas en Verilog, como las
puertas AND,.. g1(q,qBar,preset), g2(qBar,q,c
lear) // Puertas NAND g1 y g2. Primero la salida
y luego las dos entradas endmodule // El
modulo termina con endmodule
preset
q
Varios módulos pueden constituir módulos mayores
de forma jerárquica. En el ejemplo, las puertas
NAND se utilizan para constituir el módulo ffNAND
que, a su vez puede utilizarse para constituir un
módulo mayor. Esto es clave para poder abordar
diseños de sistemas complejos La definición de
preset y clear como variables de tipo register se
hace para facilitar la simulación
nand (g1)
nand (g2)
qBar
clear
ffNAND
12INTRODUCCIÓN A VERILOG CONCEPTO DE MÓDULO (III)
Descripción del módulo ffNAND incluyendo
sentencias que permiten aplicar estímulos a las
puertas NAND y observar los cambios en las
salidas para simular el comportamiento del módulo
Ejemplo 2
module ffNAND wire q,qBar reg
preset,clear nand 1 g1(q,qBar,preset), g2
(qBar,q,clear) initial begin // Señales que
deben imprimirse siempre que haya un cambio en
alguna de ellas monitor(time,,"Presetb
clearb qb qBarb",preset,clear,q,qBar) //
Forma de onda para simular el flip-flop cuatro
eventos que se iran produciendo 100 preset0
clear1 100 preset1 100 clear0 100
clear1 100 finish end endmodule
Se ha incluido la sentencia initial a partir de
la cual el simulador de Verilog empieza la
simulación
13INTRODUCCIÓN A VERILOG CONCEPTO DE MÓDULO (IV)
- Comentarios adicionales al Ejemplo 2
- Un simulador de Verilog es un programa que
ejecuta las sentencias que hay a partir de la
sentencia initial (y como se verá, también a
partir de la sentencia always). Propaga los
cambios en los valores de las señales desde las
salidas de as puertas y de los registros a las
entradas de los siguientes. También mantiene
información del instante de tiempo actual y
modifica las señales teniendo en cuenta los
retardos que se indican en la descripción del
módulo. Esos cambios futuros en las señales se
guardan en colas de eventos. El simulador
continúa hasta que no hay más eventos o se para
la simulación. - Salida obtenida
- 0 presetx clearx qx qBarx
- 10 preset0 clear1 qx qBarx
- 11 preset0 clear1 q1 qBarx
- 12 preset0 clear1 q1 qBar0
- 20 preset1 clear1 q1 qBar0
- 30 preset1 clear0 q1 qBar0
- 31 preset1 clear0 q1 qBar1
- 32 preset1 clear0 q0 qBar1
- Las señales pueden tomar los valores 1, 0, x
(desconocido), z (alta impedancia) - preset y clear se declaran como register para
poder asignarles valores. A los wires no se les
puede asignar valores, sólo transmiten valores. - El tiempo se indica en unidades de tiempo.
14INTRODUCCIÓN A VERILOG JERARQUÍA DE MÓDULOS (I)
A través de un ejemplo se ilustra la forma en que
se puede describir un sistema con varios
módulos. El sistema se ilustra en la figura.
Consta de una tarjeta (board) que incluye un
generador de reloj (m555) y un contador de cuatro
bits (m16) que, a su vez, está constituido por
cuatro flip-flops de tipo D (a, b, c, d)
module board() wire 30 count wire
clock,f,af m16 counter(count,clock,f,a
f) m555 clockGen (clock) always
_at_(posedge clock) display(time,,,"count
d, fd, afd",count,f,af) endmodule
board
count f af
m16
m555
a
b
c
d
clock
- Es necesario añadir la descripción de los módulos
m16 y m555 (de los que counter y clockGen son
instancias). Estas descripciones se pueden (deben
según la herramienta) añadir en el mismo fichero
para realizar la simulación del sistema. - La sentencia display es similar a una sentencia
print de un lenguaje de programación. - La sentencia always es equivalente a un
while(TRUE) y es la base para el modelado del
comportamiento secuencial del módulo. Incluye una
o varias instrucciones que se ejecutan
repetidamente. En este caso la sentencia
_at_(posedge clock) display ( que hace que se
imprima lo indicado cada vez que se produce el
flanco positivo de clock.
15INTRODUCCIÓN A VERILOG JERARQUÍA DE MÓDULOS (II)
module m16(value,clock,fifteen,altFifteen) //
Los puertos del módulo entre parentesis output
30 value output fifteen,
altFifteen input clock dEdgeFF
a(value0,clock,value0), // es el
complemento b(value1,clock,value1value0),
// es la EXOR c(value2,clock,value2value
10), // value10 es value1 and
value0 d(value3,clock,value3value20)
assign fifteenvalue0value1value2value
3 assign altFifteenvalue endmodule
- El módulo tiene el puerto value declarado como
puerto de salida (output) de 4 bits, tal y como
se indica entre corchetes 03. También están
los puertos de salida de un bit, fifteen, y
altFifteen, y el puerto de entrada (input) de un
bit, clock. También es posible declarar puertos
de entrada/salida con la palabra clave inout. - Hay cuatro instancias del módulo dEdgeFF para
cada uno de los cuatro bits del contador. El
orden de los nombres en la lista de instanciación
de puertos debe coincidir con el orden de los
puertos en la definición del módulo. - La sentencia assign es una sentencia de
asignación continua que permite describir
funcionalmente una función lógica sin tener que
recurrir a su implementación estructural. El lado
derecho de la igualdad se evalúa cada vez que
cambia algún operando y el resultado se asigna
inmediatamente.
16INTRODUCCIÓN A VERILOG JERARQUÍA DE MÓDULOS (III)
module dEdgeFF (q,clock,data) output q reg
q input clock,data initial q0 always
_at_(negedge clock) 10 qdata endmodule
- Se trata de un biestable tipo D disparado por el
flanco negativo del reloj. La sentencia always
sólo incluye a _at_(negedge clock) 10 qdata, que
se ejecuta continuamente, indicando que, cuando
la señal clock pasa de 1 a 0, el valor de q se
hace igual al valor de data tras un retardo de 10
unidades de tiempo. - El modelado del comportamiento en Verilog no sólo
se limita a describir acciones en los flancos de
reloj. Se dispone de primitivas similares a las
existentes en lenguajes de programación de alto
nivel, como C, que permiten describir bucles,
condiciones, subrutinas,
17INTRODUCCIÓN A VERILOG JERARQUÍA DE MÓDULOS (IV)
module m555(clock) output clock reg
clock initial 5 clock1 always 100
clockclock endmodule
- El módulo m555 tiene un registro interno, que
también es la salida del circuito, y se
inicializa tras cinco unidades de tiempo,
cambiando su estado cada 100 unidades de tiempo.
El periodo es, por tanto, de 200 unidades de
tiempo. - La directiva timescale permite especificar las
unidades de tiempo reales y la precisión con la
que se deben redondear los cálculos de tiempo que
haga el simulador - timescale 1ns/100ps
- Indica que una unidad de tiempo es igual a 1 ns y
que los pasos de tiempo del simulador son de 100
ps en 100 ps.
18INTRODUCCIÓN A VERILOG JERARQUÍA DE MÓDULOS (V)
module m16(value,clock,fifteen,altFifteen)
//descripcion de comportamiento de m16 output
30 value reg 30 value output
fifteen, altFifteen reg fifteen,
altFifteen input clock initial val
ue0 always begin _at_(negedge clock) 10
valuevalue1 if (value15) begin
altFifteen1 fifteen1 end else begin
altFifteen0 fifteen0 end end endmodule
- El modelado de comportamiento (behavioral) es una
abstracción de la forma de trabajar del módulo,
sin hacer referencia a cómo se implementa este
módulo en términos de puertas u otros módulos. - Este tipo de módulos son útiles en las primeras
etapas de diseño, cuando lo que prima es simular
el comportamiento del sistema frente a considerar
aspectos de su implementación.
19INTRODUCCIÓN A VERILOG MEZCLA DE DESCRIPCIONES
ESTRUCTURALES Y DE COMPORTAMIENTO (I)
- El proceso de diseño suele iniciarse con una
descripción del comportamiento del sistema para
llegar a descripciones estructurales en términos
de módulos de los que se dispone para su
implementación física (puertas, procesadores,
módulos de memoria,..). - Es usual utilizar descripciones en las que se
mezclan módulos descritos a nivel de
comportamiento y módulos que se describen
estructuralmente.
Ejemplo Generador de Números de Fiboacci Existe
un módulo (ng)que genera un número (number) y lo
pasa al módulo de generación de números de
fibonacci (fng) donde se calcula el número de
Fibonacci correspondiente. Mediante el latch
ready se sincroniza el paso de las números de un
módulo a otros. Las descripciones de
comportamiento de ng y fng se ejecutan
concurrentemente y se pasan información cuando la
salida del latch indica que se ha leido el dato y
que hay otro disponible.
20INTRODUCCIÓN A VERILOG MEZCLA DE DESCRIPCIONES
ESTRUCTURALES Y DE COMPORTAMIENTO (II)
module top() wire flag,numProduced,num
Consumed wire 150 number,numberOut nandLa
tch ready(flag,,numConsumed,numProduced) numberG
en ng(number,numProduced,flag) fibNumberGen
fng(number,flag,numConsumed,numberOut) endmodule
ready ? nandLatch ng ? numberGen fng ?
fibNumberGen
21INTRODUCCIÓN A VERILOG MEZCLA DE DESCRIPCIONES
ESTRUCTURALES Y DE COMPORTAMIENTO (III)
module top() wire flag,numProduced,num
Consumed wire 150 number,numberOut nandLa
tch ready(flag,,numConsumed,numProduced) numberG
en ng(number,numProduced,flag) fibNumberGen
fng(number,flag,numConsumed,numberOut) endmodule
module nandLatch (q,qBar,set,reset) output
q,qBar input set,reset nand
2 (q,qBar,set), (qBar,q,reset) endmodule
22INTRODUCCIÓN A VERILOG MEZCLA DE DESCRIPCIONES
ESTRUCTURALES Y DE COMPORTAMIENTO (IV)
module top() wire flag,numProduced,num
Consumed wire 150 number,numberOut nandLa
tch ready(flag,,numConsumed,numProduced) numberG
en ng(number,numProduced,flag) fibNumberGen
fng(number,flag,numConsumed,numberOut) endmodule
23INTRODUCCIÓN A VERILOG MEZCLA DE DESCRIPCIONES
ESTRUCTURALES Y DE COMPORTAMIENTO (V)
module top() wire
flag,numProduced,numConsumed wire 150
number,numberOut nandLatch
ready(flag,,numConsumed,numProduced)
numberGen ng(number,numProduced,flag)
fibNumberGen fng(number,flag,numConsumed,numberOut
) endmodule
24INTRODUCCIÓN A VERILOG SENTENCIAS DE ASIGNACIÓN
- Se han visto dos sentencias de asignación
- En las descripcones estructurales se hace uso de
las asignaciones continuas que permiten asignar
la salida de una expresión a una línea (wire). - wire a
- assign ab(cd) o bien wire ab(cd)
- En las descripciones de comportamiento, la
asignación mediante se utiliza sólo para
asignar valores a registros o elementos de
memoria. La asignación se realiza sólo cuando el
control se transfiere a la correspondiente
instrucción (cuando se ejecuta esa instrucción). - Se pueden utilizar los wires en las sentencias de
asignación en descripciones de comportamiento,
pero sólo en el lado derecho del signo igual
myValue startingValue - En el caso de sentencias de asignación de
constantes, a veces es preciso indicar el tamaño
en bits de una constante. Por ejemplo
altFifteen0 es correcto, pero también se podría
escribir altFifteen1b0
25INTRODUCCIÓN A VERILOG SINCRONIZACIÓN PRODUCTOR
CONSUMIDOR (I)
26INTRODUCCIÓN A VERILOG SINCRONIZACIÓN PRODUCTOR
CONSUMIDOR (II)
module ProducerConsumer wire 70 data wire
pReady, cReady producer
p(data,pReady,cReady) consumer
c(data,pReady,cReady) endmodule
module producer(dataOut,prodReady,consReady) out
put 70 dataOut output
prodReady input consReady reg
prodReady reg 70 dataOut,temp always
begin prodReady 0 forever begin w
ait(consReady) dataOutrandom 10
prodReady1 wait(!consReady) prodReady0
end end endmodule
27INTRODUCCIÓN A VERILOG SINCRONIZACIÓN PRODUCTOR
CONSUMIDOR (II)
module ProducerConsumer wire 70 data wire
pReady, cReady producer
p(data,pReady,cReady) consumer
c(data,pReady,cReady) endmodule
module consumer(dataIn,prodReady,consReady) inpu
t 70 dataIn input
prodReady output consReady reg
consReady reg 70 dataInCopy always
begin consReady 1 forever begin
wait(prodReady) dataInCopy dataIn 10
consReady0 wait(!prodReady) consReady1
end end endmodule
28INTRODUCCIÓN A VERILOG CARGA DE MEMORIA DESDE
FICHERO
readmemb ("file", memory_identifier
,begin_address,end_address)
reg 30 memory 150 initial begin
readmemb("data.bin", memory) end
Carga de memory desde el fichero data.bin (datos
en formato binario)
readmemh ("file", memory_identifier
,begin_address,end_address)
reg 30 memory 150 initial
readmemh("data.hex", memory, 2, 4)
Carga de memory desde el fichero data.hex (datos
en formato hexadecimal). Se empieza en la
posición 2 y se acaba en la 4 de memory
Si se especifican begin_address y end_address se
puede cargar parte de la memoria desde el
fichero. La forma básica de indicar los números
en el fichero es uno a uno separados por new_lines
29INTRODUCCIÓN A VERILOG DESCRIPCIÓN FUNCIONAL DE
UN PROCESADOR (I)
module mark1Case reg 310 m08191 //
8192 palabras de 32 bits reg 120 pc //
contador de programa de 32 bits reg 310
acc // acumulador de 32 bits reg 150
ir // registro de instrucción de 16
bits always begin irmpc case(ir151
3) 3b000 pc mir120 3b001
pcpcmir120 3b010 acc
-mir120 3b011 mir120acc 3b1
00, 3b101 accacc-mir120 3b110
if (acclt0) pcpc1 endcase 10 pcpc1
end endmodule
Uso de la sentencia case en la descripción de
comportamiento de un procesador
30INTRODUCCIÓN A VERILOG DESCRIPCIÓN FUNCIONAL DE
UN PROCESADOR (II)
module mark1Case reg 310 m08191 //
8192 palabras de 32 bits reg 120 pc //
contador de programa de 32 bits reg 310
acc // acumulador de 32 bits reg 150
ir // registro de instrucción de 16
bits always begin irmpc if
(ir15133b000) pcmir120 else if
(ir15133b001) pcpcmir120 else
if (ir15133b010) acc-mir120 //
y así continúa para los restantes codigos 10
pcpc1 end endmodule
Uso de if-else-if en la descripción de
comportamiento de un procesador
31INTRODUCCIÓN A VERILOG TAREAS Y FUNCIONES (I)
module mark1Case reg 310 m08191 reg
120 pc reg 310 acc reg 150
ir always begin irmpc
case(ir1513) // expresiones case
3b111 accmultiply(acc,m120)
endcase pcpc1 end endmodule
function 310 multiply input 310 a
input 310 b reg 150 mcnd,mpy
begin mpyb150 mcnda150
multiply0 repeat(16) begin
if (mpy0) multiplymultiplymcnd
,16h0000 multiplymultiply gtgt 1
mpympygtgt1 end end endfunction
Una función es similar a una función software. Se
llama desde una expresión y el valor que devuelve
se utiliza en esa expresión. A diferencia de una
tarea no puede incluir sentencias de
temporización, ni de control de eventos
x,y es una sentencia que indica concatenación
de x e y
32INTRODUCCIÓN A VERILOG TAREAS Y FUNCIONES (II)
module mark1Case reg 310 m08191 reg
120 pc reg 310 acc reg 150
ir always begin irmpc
case(ir1513) // expresiones case
3b111 multiply(acc,m120)
endcase pcpc1 end endmodule
task multiply inout 310 a input 310
b reg 150 mcnd,mpy reg 310
prod begin mpyb150
mcnda150 prod0 repeat(16)
begin if (mpy0)
prodprodmcnd,16h0000 prodprod gtgt
1 mpympygtgt1 end
aprod end endfunction
Una tarea es algo similar a un procedimiento
software. Se llama desde una sentencia específica
y después se ejecuta la instrucción siguiente a
la llamada. No se puede utilizar en una
expresión. Se le pasan parámetros y devuelve
un resultado.
x,y es una sentencia que indica concatenación
de x e y
33Ejemplo de Simulación (I)
productor consumidor
module nodo_nodo wire 630 d1,d2,d3,d4,d5,d6
wire pR1,pR2,pR3,pR4,pR5,pR6 wire
cR1,cR2,cR3,cR4,cR5,cR6 wire intr productor
p1(d1,pR1,cR1) linea_pci pci2(d1,pR1,cR1,d2,p
R2,cR2), pci6(d5,pR5,cR5,d6,pR6,cR6) linea_lan
lan4(d3,pR3,cR3,d4,pR4,cR4) consumidor_produc
tor_1 cp3(d2,pR2,cR2,d3,pR3,cR3,), cp5(d4,pR4
,cR4,d5,pR5,cR5,intr) consumidor
c7(d6,pR6,cR6,intr) endmodule
linea_lan
consumidor_productor
34Ejemplo de Simulación (II)
Llega a NIC (genera la interrupción)
35Ejemplo de Simulación (III)
Overhead del procesamiento de la interrupción más
el retardo del bus
36Para ampliar
- Páginas Web
- www.altera.com (Altera)
- www.simucad.com (Simucad)
- www.xilinx.com (Xilinx)
- http//www.ert.rwth-aachen.de/lisa/lisa.html
(Lisa - Universidad de Aachen). Modelo de máquina
genérico y lenguaje de descripción que permite el
modelado preciso de procesadores segmentados. - Artículos de Revistas
- Dutt, N. Choi, K.Configurable Processors for
Embedded Computing. IEEE Computer, pp.120-123.
Enero 2003. (Sección dedicada a Embedded
Computing en el IEEE Computer) - Schulz, S. et al.Model-Based Codesign. IEEE
Computer, pp.60-67. Agosto, 1998. - Schlett, M.Trends in embedded microprocessor
design. IEEE Computer, pp.44-49. Agosto, 1998.