Descripción VHDL de un sumador-restador genérico de números enteros de N bits. Uso el package numeric_std porque voy a usar operaciones matemáticas, uso datos tipos signed, definidos en ese package. Para que sea genérico defino en generic la constante N que representa la cantidad de bits de los operandos. Uso operaciones lógicas y analizo la precedencia de operandos y la necesidad de usar paréntesis. Genero el indicador de desborde (overflow). Te muestro el circuito esquemático generado por la herramienta Netlist Viewer, opción RTL Viewer. Finalmente muestro la simulación. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. http://susycursos.com/blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. http://susycursos.com/contactame/
Etiqueta: operaciones matemáticas
Lección 3.V17. Multiplicador de enteros.
Descripción VHDL de un multiplicador genérico de números enteros de N bits. Uso el package numeric_std para poder realizar la operación multiplicación usando un multiplicador embebido del cual dispone la FPGA Cyclone II. Realizo un cambio de tipo de datos para poder realizar la multiplicación. Uso datos tipo signed ya que los datos del enunciado son números enteros. Muestro en el RTL Viewer cómo la operación multiplicación se la representa a través de un multiplicador embebido. Finalmente vemos en la simulación el correcto funcionamiento. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. http://susycursos.com/blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. http://susycursos.com/contactame/
Lección 3.V16. Sumador binario genérico.
Descripción y simulación de un sumador binario genérico de magnitudes de N bits. Uso el package numeric_std para cambiar el tipo de datos a unsigned para así de poder realizar la suma. Recuerdo que no existe el casting de un std_logic a unsigned, hay que transformarlo en un std_logic_vector de un solo elemento. Cambio el largo de un vector concatenándole un ‘0’ adelante. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. http://susycursos.com/blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. http://susycursos.com/contactame/
Lección 3.V13. Comparador genérico.
En este video te muestro la descripción de un comparador genérico de números enteros de N bits. En la entidad uso generic para darle un valor por omisión a la cantidad N de bits. Incluyo el package numeric_std porque necesito usar datos de tipo signed para realizar las comparaciones. Para finalizar realizo la simulación. Puedes ver el código en mi post Lección 3. VHDL por comportamiento. http://susycursos.com/blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. http://susycursos.com/contactame/
Lección 2.V12. BCD binario a Aiken.
En este video te describo un conversor de código BCD binario natural a código BCD Aiken, usando operaciones aritméticas que no están permitidas para el tipo de datos std_logic y std_logic_vector, motivo por el cual tengo que usar el package numeric_std del IEEE. Este package incluye nuevos tipos de datos, entre ellos unsigned. Haciendo conversión de datos soluciono el problema. Primero cometo adrede un error para que veas cómo te avisa el compilador que no puede hacer operaciones aritméticas con el tipo de datos std_logic_vector. Una vez corregido, lo vuelvo a compilar y finalmente simulo para comprobar el correcto comportamiento. También te muestro dónde se encuentran los package en la instalación de Altera, en particular los dos que hemos usado:
std_logic_1164 y numeric_std
Los abro para mostrarte parte del contenido, por ejemplo los tipos de datos que usamos en esta descripción. Puedes ver el código en mi post Lección 2. VHDL por comportamiento. http://susycursos.com/blog/page/6/. A través de “contactame” puedes pedirme que te envíe los archivos de texto con las descripciones para que los puedas probar y el tutorial del Quartus II, que hice. http://susycursos.com/contactame/