El presente demo va a implementar un counter básico en el Intel® Cyclone® 10 LP FPGA evaluation kit via el 2x20 GPIO header.
El Kit de evaluación Intel® Cyclone® 10 LP Kit de bajo costo, provee una plataforma fácil de usar para verificar las caracteristicas del Intel Cyclone 10 LP FPGA. En un previo artículo, se describió como implementar una interfaz virtualJTAGen en el Cyclone 10 LP FPGA.
En este demo el siguiente GPIO header se va a usar para emitir las salidas desde un contador. El espeficio Verilog HDL usado en este demo es el siguiente,
// Digikey Coffee Cup Counter for 2x20 GPIO header for Intel Cyclone 10 board
module counter (
input wire clk, // 50MHz input clock
output wire GPIO0, //GPIO0
output wire GPIO1, //GPIO1
output wire GPIO2, //GPIO2
output wire GPIO3, //GPIO3
output wire GPIO4, //GPIO4
output wire GPIO5, //GPIO5
output wire GPIO6, //GPIO6
output wire GPIO7, //GPIO7
output wire GPIO8, //GPIO8
output wire GPIO9 //GPIO9
);
reg [31:0] counter;
initial begin
counter = 0;
end
always @(posedge clk)
begin
counter <= counter + 1;
end
assign GPIO9 = counter[31];
assign GPIO8 = counter[30];
assign GPIO7 = counter[29];
assign GPIO6 = counter[28];
assign GPIO5 = counter[27];
assign GPIO4 = counter[26];
assign GPIO3 = counter[25];
assign GPIO2 = counter[24];
assign GPIO1 = counter[23];
assign GPIO0 = counter[22];
endmodule
El diagrama relevante de este puerto 2x20 GPIO port en el Kit de evaluación de Intel® Cyclone® 10 LP FPGA como se muestra a continuación,
Se sabe desde hace tiempo que estas definiciones pueden automatizarse y pueden ser creadas por GUI’s o otros sistemas, pero el proposito de este articulo no es ese, sino de establecerlos manualmente. Las definiciones de los I/O usadas en este demo son,
set_location_assignment PIN_L13 -to GPIO0
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO0
set_location_assignment PIN_L16 -to GPIO1
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO1
set_location_assignment PIN_L15 -to GPIO2
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO2
set_location_assignment PIN_K16 -to GPIO3
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO3
set_location_assignment PIN_P16 -to GPIO4
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO4
set_location_assignment PIN_R16 -to GPIO5
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO5
set_location_assignment PIN_N16 -to GPIO6
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO6
set_location_assignment PIN_N15 -to GPIO7
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO7
set_location_assignment PIN_N14 -to GPIO8
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO8
set_location_assignment PIN_P15 -to GPIO9
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO9
El Sparkfun Logic Analyzer fue conectado para verificar las señales en el puerto 2x20 GPIO como se muestra en la siguiente foto,
La sigueinte toma del Sparkfun Logic Analyzer confirma la operación apropiada de este demo,
El Kit de evaluación Intel® Cyclone® 10 LP FPGA es una excelente plataforma para desorrollar muchas aplicaciones y está disponible en DigiKey.
Que tenga un buen día.
Este artículo está disponible en inglés aquí.
This article is available in english here.



