Presentacin de PowerPoint - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Presentacin de PowerPoint

Description:

Introducci n a los Lenguajes de Descripci n de Hardware. ... DE DESCRIPCI N DE HARDWARE (HDLs) ... AHPL (A Hardware Programming Language) (Hill, Peterson, 1973) ... – PowerPoint PPT presentation

Number of Views:109
Avg rating:3.0/5.0
Slides: 37
Provided by: jul958
Category:

less

Transcript and Presenter's Notes

Title: Presentacin de PowerPoint


1
REDES 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
2
Bibliografí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)

3
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

4
INTRODUCCIÓ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.

5
INTRODUCCIÓ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

6
Lecció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

7
NIVELES 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)

8
NIVELES 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.

9
Lecció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

10
INTRODUCCIÓ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

11
INTRODUCCIÓ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
12
INTRODUCCIÓ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
13
INTRODUCCIÓ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.

14
INTRODUCCIÓ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.

15
INTRODUCCIÓ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.

16
INTRODUCCIÓ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,

17
INTRODUCCIÓ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.

18
INTRODUCCIÓ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.

19
INTRODUCCIÓ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.
20
INTRODUCCIÓ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
21
INTRODUCCIÓ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
22
INTRODUCCIÓ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
23
INTRODUCCIÓ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
24
INTRODUCCIÓ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

25
INTRODUCCIÓN A VERILOG SINCRONIZACIÓN PRODUCTOR
CONSUMIDOR (I)
26
INTRODUCCIÓ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
27
INTRODUCCIÓ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
28
INTRODUCCIÓ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
29
INTRODUCCIÓ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
30
INTRODUCCIÓ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
31
INTRODUCCIÓ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
32
INTRODUCCIÓ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
33
Ejemplo 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
34
Ejemplo de Simulación (II)
Llega a NIC (genera la interrupción)
35
Ejemplo de Simulación (III)
Overhead del procesamiento de la interrupción más
el retardo del bus
36
Para 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.
Write a Comment
User Comments (0)
About PowerShow.com