Professional Documents
Culture Documents
EscueladeIngenieradeSistemas
DepartamentodeComputacin
ArquitecturadeComputadores
Clase02
SemestreA2010
caro Alzuru C.
AGENDA
Circuitoscombinacionales
Compuertaslgicas
lgebradeBoole
IntroduccinaSystemC
Circuitoscombinacionales
Loscircuitoslgicossepuedendividirendos
tipos:
Combinacionales:Lasalidadependeslodelos
valoresdeentrada.Funcionansinlapresenciade
unamemoria.
Secuenciales:Lasalidadependedelosvaloresde
entradaydelosvaloresalmacenadosenmemoria.
Elbloquedeconstruccinfundamentaldetodos
loscircuitoslgicosdigitaleseslacompuerta.
Unacompuertaesuncircuitoelectrnicoque
implementaunaoperacinlgicasencilla:AND,
OR,NOT,NOR,NAND
Elinterruptor
Elinterruptormanual
Funcionamiento
Dosestados
Elinterruptorcontrolable:
Ciertovoltajecontrolasise
enciendeoseapaga
Voltajealto:Elswitcheseenciende
Elinterruptorcomoherramienta
Lasalidatendrvoltaje
alto,slocuandoambas
entradastienentambin
voltajealto
Estaestructuraes
conocidacomocompuerta
lgicaAND
Entrada
1
Salida
Entrada
2
Tabla de verdad
Smbolo
x.y
CompuertaOR
Lasalidatendrvoltajealto,cuandoal
menosunadelasentradastenga
tambinvoltajealto
Tabla de verdad
x
x+y
Entrada1
Salida
Smbolo
Entrada2
CompuertaNOT
Tabla de verdad
Entrada
Salida
Voltaje Alto
Lasalidatendrvoltajealto,cuandolaentrada
tengavoltajebajo
Smbolo
Otrascompuertas
NAND
Tabla de verdad
XOR
Tabla de verdad
Tabla de verdad
x.y
x+y
Smbolo
NOR
Smbolo
Smbolo
Cmofabricarcompuertasde
interruptoresoswitches?
Potenciamecnica
Electromagnetismo
Tecnologaactual(Transistor):
CMOS(ComplementaryMetal
OxideSemiconductor)
Elsemiconducormscomn:Dixidodesilicio).
Elincrebleavancedelafsicahahechoquese
puedantener~2.5milmillonesdetransistoresenun
solochip.
lgebradeBoole
Denominadaasenhonorasuinventor,el
matemticoinglsGeorgeBoole.En1854.
En1938,ClaudeShannon(M.I.T.)sugierequeel
lgebradeBoolepuedeserutilizadapara
resolverproblemasdecircuitosdigitalesde
conmutacin.
Comotodalgebra,sebasaenvariablesy
operaciones:
Variables:Slopuedentenerdosvalores:1
(Verdadero)y0(Falso)
.
Operaciones:OR(A+B),AND(AB)yNOT(A)
lgebradeBoole
PostuladosbsicosdellgebradeBoole:
Leyesdeidentidad:A+0=AyA.1=A
Leyesdel0ydel1:A+1=1yA.0=0
Leyesdelinverso:A+A=1yA.A=0
Leyesconmutativas:A+B=B+AyA.B=B.A
Leyesasociativas:A+(B+C)=(A+B)+CyA.
(B.C)=(A.B).C
Leyesdistributivas:A.(B+C)=(A.B)+(A.C)yA+
(B.C)=(A+B).(A+C)
LeyesdeDeMorgan:A.B=A+ByA+B=A.B
Tabladeverdad
Herramientaquenospermiterepresentarlas
posiblecombinacionesdevaloresdeuncircuito
lgico
Muestraelvalorlgicadelasalidadeuncircuito
lgicodeacuerdoalosposiblesvaloresdelas
entradas
Tabla de verdad
Hagamoslatabladeverdadde:
x
y
x.y
F=A.B.C+A.B.C+A.B.C
SystemC
SystemCesunabibliotecadeclasesenC++que
permitemodelarsistemassoftware/hardwarey
simularlosconexactitudaniveldeciclosdereloj.
http://www.systemc.org
SystemCessoftwarelibre.
Metodologadediseo:
EscribirelmodeloenC++usandolostipos,funcionesyla
formadescriptivaSystemC.
Secompilaysesimulaelsistema.
SystemCestrespaldadoporcasitodaslas
empresasyorganismosimportantesdelsector.
PorquSystemC?
Complejidadcrecienteenlosdispositivoselectrnicosyen
lasmetodologasdediseodesistemas.
Cadavezseacortamseltimetomarketenlos
dispositivoselectrnicos
C++nofuecreadoparaeldiseodehardware
AlgunasdelascarenciasdeC++queSystemCcubre:
Comunicacinestilohardware:Seales,puertos.
Nocindetiempo:Relojes,operacionessincronizadas.
Concurrencia:Elhardwareesinherentementeparalelo
Reactividad:Elhardwareesreactivo,reaccionaaestmulosal
interactuarconsuambiente(Serequieremanejarexcepciones)
Tiposdedatoshardware:Bit,vectordebits,tiposlgicos
multivaluados,enteroconysinsigno.
Procesodediseo
Tradicionalvs.ConSystemC
CapacidadesdeSystemC
Mdulos:Sonlaunidadfundamentalde
funcionamiento.Sedescribenatravsdelaclase
SC_MODULE.Dentrodeunmdulopuedenhaber
procesosyotrosmdulos.
Procesos:Describenfuncionalidad.Seencuentran
dentrodelosmdulos.Puedenserdedostipos:
SC_METHODySC_THREAD.
Puertos:Losmdulostienenpuertos.Atravsde
estossecomunicanconotrosmdulos.Existentres
tiposbsicosdepuertos:input,outputeinout.
CapacidadesdeSystemC
Seales:Transportanunvalor.Permitecomunicar
procesoseinstanciasdemdulos.Dedostipos:
ResolvedyUnresolved.
Tiposdedatosexpandido
Clocks
Simulacinporeventos:Kernelligeroquepermite
simulacionesdegranvelocidad.
Protocolosdecomunicacin
Soportededepuracin
HolaMundo1
#include"systemc.h"
//Llamamoshello_worldalmdulo
SC_MODULE(hello_world){
SC_CTOR(hello_world){
//Imprimimosunsaludo
cout<<"HolaMundo!.\n";
}
};//Ojoconeste;Porquestarall?
//sc_mainescomoelmaindeC++
intsc_main(intargc,char*argv[]){
hello_worldhello("");
return(0);
}
HolaMundo2
#include"systemc.h"
SC_MODULE(hello_world){
SC_CTOR(hello_world){
}
voidsaludo(){
cout<<"HolaMundo!...\n";
}
};
intsc_main(intargc,char*argv[]){
hello_worldhello("");
hello.saludo();
return(0);
}
EjemplodeCompuertaAND
#include "systemc.h //Biblioteca de clases SystemC
//Definicin de mdulo:
SC_MODULE(Compuerta_AND) {
//Puertos de entrada del mdulo
sc_in<bool> entrada_A;
sc_in<bool> entrada_B;
//Puertos de salida del mdulo
sc_out<bool> salida_S;
//Funcin a ejecutar cuando cambie la entrada en alguno
//de los puertos.
void evaluar(){
salida_S.write(entrada_A.read()&&entrada_B.read());
}
//Constructor del mdulo
SC_CTOR(Compuerta_AND)
{
SC_METHOD(evaluar);
sensitive << entrada_A << entrada_B;
}
};