FPGA Cyclone IV - Display 4 digitos
Indice
IntroducciónCrear un nuevo proyecto - Paso 1
Nuevo archivo - Paso 2
Asignación de pines - Paso 3
Programar - Paso 4
Introducción
Ya sabemos todo lo necesario para programar nuestra FPGA, ahora es momento de jugar con los periféricos de nuestra tarjeta de desarrollo.
Aquí te enseñamos cómo usar el display de 4 dígitos de tu FPGA en Windows, fácil y en menos de 15 minutos.
Prerrequisitos
[+] Intel Quartus Prime Lite Edition.
[+] FPGA Cyclone IV.
[+] USB-Blaster.
Paso 1: Crear un nuevo proyecto
Lo primero será abrir Quartus
En la parte superior izquierda vamos a dar clic en File > New Project Wizard.
En el asistente para creación de proyectos vamos a indicar el directorio donde deseamos guardar nuestro proyecto, seleccionar en Project Type proyecto vacío Empty project. A continuación clic en Next.
Recuerda en la pestaña Family, Device & Board Settings seleccionar la referencia de nuestra FPGA EP4CE6E22C8
En la siguiente ventana vamos a desactivar el simulador, clic en Next y en la última pestaña Summary clic en Finish y listo, se creará nuestro proyecto.
* Si te aparece una ventana de advertencia como la siguiente, marca el check en Don't show this message again y clic en Yes.
Paso 2: Nuevo archivo
Ahora vamos a crear el archivo donde podemos comenzar a escribir el código para nuestro hardware, sea Verilog o VHDL.
Lo primero será ir a File > New.
En la ventana que nos aparece vamos a seleccionar el tipo de archivo que queremos crear, en nuestro caso usaremos Verilog HDL.
El archivo se creará y podemos comenzar a escribir nuestro código Verilog.
module display_4dig(seg,dig,clock,); input clock; output [7:0] seg; output [3:0] dig; reg [7:0] seg; reg [3:0] dig; reg [3:0] disp_dat; reg [36:0] count; always @ (posedge clock )
begin count = count + 1'b1; dig = 8'b00000000; end
always @ (count[24])
begin disp_dat = {count[28:25]}; end
always @ (disp_dat)
begin case (disp_dat) 4'h0 : seg = 8'hc0; //Display "0" 4'h1 : seg = 8'hf9; //Display "1" 4'h2 : seg = 8'ha4; //Display "2" 4'h3 : seg = 8'hb0; //Display "3" 4'h4 : seg = 8'h99; //Display "4" 4'h5 : seg = 8'h92; //Display "5" 4'h6 : seg = 8'h82; //Display "6" 4'h7 : seg = 8'hf8; //Display "7" 4'h8 : seg = 8'h80; //Display "8" 4'h9 : seg = 8'h90; //Display "9" 4'ha : seg = 8'h88; //Display "a" 4'hb : seg = 8'h83; //Display "b" 4'hc : seg = 8'hc6; //Display "c" 4'hd : seg = 8'ha1; //Display "d" 4'he : seg = 8'h86; //Display "e" 4'hf : seg = 8'h8e; //Display "f" endcase end endmodule
Cuando ya tengamos escrito nuestro código debemos compilarlo, para esto debemos hacer clic en la flecha azul del panel superior.
Esperamos a que termine el proceso de compilación y que el Flow Status diga Successful. Si el proceso no es exitoso recuerda revisar la pestaña Messages allí encontrarás información útil para solucionar el error.
Paso 3: Asignación de pines
Vamos a la barra de menús para abrir la ventana de asignación de pines Assignments > Pin planner .
De acuerdo con nuestro código tenemos una señal de entrada y dos buses de salida; la señal de reloj, los comunes y los segmentos del display.
Node Name | Direction | Location |
---|---|---|
clock | Input | PIN_23 |
dig[3] | Output | PIN_137 |
dig[2] | Output | PIN_136 |
dig[1] | Output | PIN_135 |
dig[0] | Output | PIN_133 |
seg[7] | Output | PIN_127 |
seg[6] | Output | PIN_124 |
seg[5] | Output | PIN_126 |
seg[4] | Output | PIN_132 |
seg[3] | Output | PIN_129 |
seg[2] | Output | PIN_125 |
seg[1] | Output | PIN_121 |
seg[0] | Output | PIN_128 |
Paso 4: Programar
El último paso será enviar nuestro diseño al FPGA. Vamos a ir a la barra de menús Tools > Programmer.
* En este punto asegúrate de tener todo conectado, la alimentación de la FPGA y el USB-Blaster a tu computador y FPGA.
Antes de hacer clic en Start asegúrate de que el Hardware setup detecte correctamente el USB-Blaster.
Se inicia el proceso de programación de nuestra FPGA y estará listo cuando la barra de progreso llegue al 100%.
Y listo, ¡Felicitaciones!
Ya sabes cómo usar el display de cuatro dígitos en tu FPGA Cyclone IV.
Autor:
M. Sneider M. Cortes
Última actualización: 19/07/2024