Al iniciar la clase, el profesor explico la práctica que se realizaría que consistía en un
comparador, el cual tendría dos entradas, cada una de 4 bits y con las cuales se haría la comparación de que si la entrada A era menor o igual a la entrada B, en donde la salida S es de un solo bit, siendo 1 verdadero, y 0 falso. Para la primera parte de la práctica se debía seguir el mismo procedimiento que con las anteriores, empleando el lenguaje vhdl en nivel estructurado, y el objetivo de esto era que pudiéramos evidenciar lo complejo que puede llegar a ser un programa realizado en este nivel, ya que como se tienen 256 posibles combinaciones, se hace muy tediosa la tarea de realizar la tabla de verdad y por consiguiente las ecuaciones booleanas que nos permiten darle sentido al código; debido a esto se empleó el programa Excel para la realización de la tabla de verdad, y un programa online el cual nos permitió hacer el mapa de karnaugh correspondiente y nos entregó el código de la salida S en vhdl y verilog (ver anexo). Posteriormente, con la parte analítica finalizada, se procede a la implementación del código en la aplicación, en donde se utilizaron dos entradas tipo “bus”, las cuales cuando se realizó el Test Bench, se cambiaba su valor con diferentes impulsos para poder probar los casos más importantes, y así comprobar que el código estaba realizando la función que se deseaba, y donde se pudo observar el diagrama RTL en donde se representan todas las conexiones lógicas que se le indico a la máquina y se observó la gran complejidad de este (ver figura 1) . La segunda parte del laboratorio consistía en realizar el mismo comparador, pero ahora con el lenguaje comportamental, en donde evidentemente fue muy sencillo en comparación con la versión en lenguaje estructurado, ya que aquí no era necesario realizar la tabla de verdad con las 256 posibles soluciones para poder realizar la ecuación booleana para la salida S, sino que simplemente se definía su “comportamiento” mediante un código muy parecido al paradigma que estamos acostumbrados a usar, que es secuencial, y no como el paradigma que hemos trabajado siempre en el laboratorio que es paralelo; luego de tener este código se procede igualmente a realizar el Test Bench para comprobar su funcionamiento, y observamos el diagrama RTL, en donde se puede apreciar la gran diferencia en comparación con el anterior diagrama, debido a que es mucho más sencillo y compacto (ver figura 2). Conclusiones. Aunque en muchos casos es mejor usar el lenguaje estructurado, para poder ordenarle a la maquina exactamente que conexiones logicas queremos que se realicen, en otros casos deja de ser optimo este lenguaje por su alta complejidad y alta demanda de tiempo para realizar las ecuaciones booleanas que le dan sentido al programa. Al comparar los dos diagramas RTL, se pudo observar que si es mucho mas sencilla la implementacion en el lenguaje comportamental ya que no se especifica una puertas logicas que se deben emplear entre cada bit de las entradas. Se debe tener conocimiento de ambos lenguajes y en que momento emplearlos, debido a que dependiendo el tipo de problema que se presente puede ser mas favorable la implementacion en uno que en otro, y optimizar tiempo y recursos. Al realizar un estudio entre ambos codigos y sus “delay” en el Dsign Summary, se observo que ambos tiene exactamente el mismo valor (ver figuras 3 y 4), debido a que la maquina esta realizando la misma operación pero la diferencia entre ambos codigos es que en el primero, nosotros somos quienes le indicamos a la maquina las conexiones que debe hacer, ecambio en el segundo, la maquina se encarga de inferir dichas conexiones, es decir, hace el trabajo por nosostros. Figura 1. Diagrama RTL con código en lenguaje estructurado. Figura 2. Diagrama RTL con código en lenguaje comportamental. Figura 3. Design Summary del comparador en lenguaje comportamental Figura 4. Design Summary del comparador en lenguaje estructurado.