Me encuentro terminando los examenes finales de mi 6° cuatrimestre de 10 que son para mi carrera.
En éste periodo cursé 4 materias: Sistemas Operativos, Diseño de Sistemas Digitales, Dinámica de Sistemas Físicos (resumida como circuítos) y Métodos Numéricos.
La más demandante de todas fue la de Sistemas digitales. Esa materia trata de diseñar chips o circuitos y construirlos; no confundirlo con Dinamica de Sistemas Físicos, que trata de diseñar circuitos en papel y estudiar su comportamiento eléctrico (corriente, voltaje, capacitancia e impedancia, etc.) A lo largo del cuatrimestre lo que hice en Digitales fue dedicarme a cablear las cosas, y mi compañero de equipo se enfocó en la programación de ellos. Para el examen final, desafortunadamente requería saber como programarlos y pues la verdad era algo complicado lograr eso de un dia para otro, pues cada lenguaje de programación tiene sus moños y además, el examen del tercer parcial nos calló la sorpresa de que el programa valía el 75% del examen y todos habiamos estudiado pura teoría. Me resultaba muy complicado aprenderme como hacer cada cosa estudiando los archivos uno a uno y el detalle que hacia complicado todo era que debía estudiarlos TODOS, porque con uno que no estudiara, si lo requeria para programar el dispositivo del examen, ya por solo ese dispositivo no iba a funcionar el sistema e iba a concluir en un terrible CERO. Por lo que me puse mejor a estudiar la parte teórica y alrededor de la una de la mañana se me ocurrió escribir en "pseudo-codigo" un diagrama de flujo con todas las instrucciones posibles en el orden debido considerando todos los posibles casos de dispositivos.
Pseudo-codigo significa escribir el concepto de una instrucción que el programa va a seguir, y escribes la idea de una manera en que la sintaxis es parecida a como se escribiría en el lenguaje de programación. La utilidad de ésto es que luego de que uno expresa la idea que tiene, normalmente debería uno de escribir un documento como éste para revizar las instrucciones que quieres hacer y en base a este documento escribes el programa ya con todos los detalles.
Diagrama de flujo es un diagrama en el que vas siguiendo el sentido de las flechas o bien sigues leyendo de arriba hacia abajo, deteniendote en algunos renglones para aplicar una instruccion o bien analizar tu situación en renglones con condicionales, y dependiendo el caso saltas a otro renglon distinto o continuas.
Pues el documento que hice me resultó en dos páginas, y en lugar de haberme puesto a aprenderme 6 o 7 páginas de instrucciones enteras, solo tuve que aprenderme menos de dos paginas de instrucciones. Al terminarlo bastó con leerlo dos veces más para tenerlo grabado y transfomarlo en mi arma secreta para el examen. Al final del post les escribo ese pseudocodigo solo por si tienen interes de sabér de qué estoy hablando.
Sorpendentemente para mí, ese documento me fué mucho más util de lo que esperaba, ya que algunas preguntas del examen cuestionaban que instruccion es la correcta para un caso específico de dispositivo, y pues como yo lo había echo a manera de condicionales, no tuve ningún problema. Por otro lado, nos pidieron realizar un programa a mano (en papel), y no nos permitieron usar la computadora (ahi hay ejemplos y cuando una palabra/instrucción no esta bien escrita el programa te aviza). A final de cuentas me fue bien en ese examen y mi promedio que lo traía en 6, me quedó en 7.
Mi materia de Métodos numéricos no fue en lo absoluto complicada. Al contrario, me gustó demasiado y no me hizo falta repasar para los dos primeros parciales. Para el tercer parcial la cosa se me complicó porque aunque estuve presente corporalmente en el salón, me dormí todas las sesiones justo despues de que nombraran lista. Y como siempre le entregué todo al profesor, y aunque estuviera dormido si me despertaban y me preguntaban le contestaba correctamente, no se awito por verme dormir. Bueno, también le había explicado que comenzaba a caerme de sueño a esas horas por el agotamiento que tenía a lo largo del día y no porque no me gustara su clase, se lo tomó de muy buena manera porque justamente se lo comenté antes de la primer clase en donde me quedara dormido. En ese parcial al final hubo unos temas que no vi proque falté a calses una semana entera (me quedaba dormido en la banca de afuera...) y fue lo que me hizo pasar aquel rato dificil con su examen que nos dió para llevar, pero ya expliqué en un post anterior como lo solucioné =P.
Para Sistemas Físicos (circuitos), pues... todo el cuatrimestre fue lo mismo, solo fuimos agregando tipos de componentes a los casos que resolvíamos, de ahí en más todo fue lo mismo. Ayer y hoy todos mis compañeros estaban preocupadísimos por esa materia y se la pasaban resolviendo ejercicios y ejercicios. Yo la verdad no le vi el caso, puesto que siempre fue la misma cosa. Lo único que revizé fue una integral que sirve para resolver los sistemas cuando tienes capacitores o inductores, porque esas cosas almacenan voltaje(capacitores) o corriente(inductores) y cuando quitas las fuentes de alimentación, esas cosas se vuelven las fuentes, entonces el flujo de la electricidad cambia en cantidad y por lo general cambia también el sentido del flujo. Hoy que hicimos el examen, el profesor anunció que era para dos horas. Me tomó 1 hora 15 minutos resolverlo, incluyendo que tuve que rehacer un ejercicio de los 4 que eran en total, porque lo resolví con un método y decía en las instrucciones que debía hacerlo con otro. Me extrañó que mis compañeros apenas fueran a la mitad, pero pues debió ser por el estres que se acumularon todos. No es que niegue que yo sea capaz, pero... a lo largo de todo el cuatrimestre yo fui el más fregado de todos mis compañeros de la carrera (mi compañero de equipo de digitales no toma esta clase, por eso no lo incluyo aqui), siempre fui el ultimo en entregar trabajos y tareas, el que menos tiempo tenia de estudiar, el que menos entendia las cosas y asi.... Creo que lo que tuve a mi favor esque yo deshaogo mi estres y/o hago las cosas de manera que no me lo causen, mis compañeros no.
Ahorita estoy por estudiar unos ejercicios para mi examen de Sistemas Operativos del día de mañana, tereminandolo ya solo me queda entregar los proyectos que tengo para el viernes y lunes y estoy completamente fuera de esta oleada.
------------------------------------------------------------------------------------------------------------
AQUI ESTA El PSEUDO-CODIGO
GUIA EN PSEUDOCÓDIGO PARA CODIGOS VHDL
Encabezado:
if ( archivo.vhd = paquete.vhd ) then
library ieee;
use ieee.std_logic_1164.all;
if ( archivo.vhd = contador.vhd ) then
use work.std_arith.all;
end if;
package nombre is component of dispositivo port(
entradasDispositivo: in std_logic; si es vector, std_logic_vector
salidasDispositivo: out std_logic; si es vector, std_logic_vector
end component;
end package;
end if;
library ieee;
use ieee.std_logic_1164.all;
if ( archivo.vhd = main.vhd ) then
use work.paquetesDispositivos.all;
end if;
if ( archivo.vhd = contador.vhd ) then
use work.std_arith.all;
end if;
end Encabezado;
Cuerpo:
entity nombreDispositivo is port(
variablesEntrada: in std_logic; si es vector, std_logic_vector
variablesSalida: in std_logic); si es vector, std_logic_vector
end nombreDispositivo;
architecture archDispositvo of nombreDispositivo is
if ( archivo.vhd = main.vhd ) then
signal variable: std_logic; si es vector, std_logic_vector
end if;
begin
if ( monitorear_un_evento_es_requerido ) then
prc: Process ( variablesMonitoreadas ) clk, rst
begin
case selector is Comportamiento de Process
when “00” => salida <= entradaA ; si un solo bit '0' or '1'
when “01” => salida <= entradaB ; if (clk'event and clk = '1' )
when “10” => salida <= entradaC ;
when others => salida <= entradaD ;
end case
end Process;
end if;
Comportamiento (1)
if a = b then
rsl <= '1';
else
rsl <= '0';
end if;
Comportamiento (2)
rsl <= '1' when a=b else '0';
Comportamiento (3)
if ( archivo.vhd = main.vhd ) then
variableSignal: entidadDispositivo port map ( variable1, variable2, variable3 ... );
end if;
recordar enviar la salida de main.vhd al port map del buffer
la salida del contador es '0' mientras reset sea '1', sino variable <= variable + 1 ;
al monitorear clk usar: clk'event and clk = '1'
end archDispositivo;
end Cuerpo;
miércoles, 13 de agosto de 2008
A FINALES DE LA 6° OLEADA
Autor intelectual:
Geko
el
8/13/2008 10:37:00 p. m.
Suscribirse a:
Enviar comentarios (Atom)
1 comentario:
LO bueno es que has salido librado... me tomará tiempo entender el código pero lo que si se nota es la diferencia que hay de eso a 7 páginas. XD Más vale ser hábil que perico. Cuídate hijo.
Publicar un comentario