0% encontró este documento útil (0 votos)
7 vistas13 páginas

Electrónica Secuencial en FPGA: Prácticas

El documento presenta un reporte de prácticas de ingeniería mecatrónica en el Instituto Tecnológico Superior de Huichapan, centrado en la implementación de electrónica secuencial en FPGAs. Se discuten conceptos clave como PWM, códigos GOWIN, y la utilización de VHDL para controlar displays y realizar transmisiones. La conclusión destaca la flexibilidad y el alto rendimiento de las FPGAs en el diseño digital, permitiendo el desarrollo de sistemas complejos de manera eficiente.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas13 páginas

Electrónica Secuencial en FPGA: Prácticas

El documento presenta un reporte de prácticas de ingeniería mecatrónica en el Instituto Tecnológico Superior de Huichapan, centrado en la implementación de electrónica secuencial en FPGAs. Se discuten conceptos clave como PWM, códigos GOWIN, y la utilización de VHDL para controlar displays y realizar transmisiones. La conclusión destaca la flexibilidad y el alto rendimiento de las FPGAs en el diseño digital, permitiendo el desarrollo de sistemas complejos de manera eficiente.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ITESHU ING.

MECATRONICA

Instituto Tecnológico Superior de


Huichapan

División de Ingenierı́a
Mecatrónica

Reporte de Practicas

Practicas U4

Alumnos: Profesor:
Maricruz Abigail Ramirez Mentado Benigno Muñoz Barron
[22021144]

5º Semestre
06 de Diciembre 2024

1
ITESHU ING. MECATRONICA

Índice
1. Introducción 3
1.0.1. PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Codigos GOWIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1. VHDL DRIVERDISPLAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2. TRANSMISION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.3. Representacion fisica en targeta roja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2. Conclusion 13

3. Referencias 13

2
ITESHU ING. MECATRONICA

1. Introducción
. Los circuitos secuenciales son un tipo de circuitos digitales en los que las salidas dependen no solo de las
entradas actuales, sino también del estado anterior del sistema. Esto se logra utilizando elementos de almace-
namiento, como flip-flops o registros, que permiten guardar información entre ciclos de reloj. Esto los diferencia
de los circuitos combinacionales, donde las salidas dependen exclusivamente de las entradas actuales.
La electrónica secuencial constituye una base esencial en el diseño de sistemas digitales modernos. A di-
ferencia de los circuitos combinacionales, los sistemas secuenciales dependen no solo de las entradas actuales,
sino también de un historial de estados previos almacenados en elementos de memoria, como flip-flops. Esta
caracterı́stica permite el diseño de dispositivos con comportamientos dinámicos y temporales, como contadores,
registros, máquinas de estados y sistemas más complejos.
Las FPGA (Field-Programmable Gate Arrays) se han convertido en una herramienta clave para implementar
estos sistemas secuenciales. Estas tarjetas ofrecen una plataforma flexible y reconfigurable, ideal para diseñar,
simular y probar circuitos digitales antes de su implementación final en hardware. Gracias a su arquitectura
basada en bloques lógicos programables y redes de interconexión configurables, las FPGA permiten integrar
fácilmente elementos secuenciales y combinacionales en un solo dispositivo.
Ventajas de Implementar Electrónica Secuencial en FPGA: Flexibilidad y Reconfiguración: Las FPGA per-
miten modificar el diseño en tiempo real, ideal para depuración y mejoras iterativas. Procesamiento Paralelo:
Las FPGA pueden manejar múltiples operaciones simultáneamente, mejorando la eficiencia del diseño. Alta
Velocidad: Gracias a sus recursos internos optimizados, como relojes configurables y memoria embebida, las
FPGA permiten implementar sistemas secuenciales rápidos. Ciclo de Desarrollo Rápido: La simulación previa
al hardware real facilita la detección y corrección de errores, reduciendo el tiempo de diseño. Aplicaciones Co-
munes: Controladores de máquinas de estados finitos (FSM): Usados en sistemas de control y comunicación.
Contadores y registros de desplazamiento: Para tareas como generación de señales, sincronización y procesa-
miento de datos. Interfaces digitales: Protocolos de comunicación como UART, SPI o I²C pueden diseñarse con
sistemas secuenciales. Procesadores de señales digitales (DSP): Usados en aplicaciones de audio, video y tele-
comunicaciones. Herramientas para Diseñar en FPGA: El diseño secuencial en FPGA generalmente se realiza
mediante lenguajes de descripción de hardware (HDL), como VHDL o Verilog, y herramientas de desarrollo
como:
Vivado (Xilinx) o Quartus (Intel): Plataformas de desarrollo para sı́ntesis, simulación y programación de
FPGA. Simuladores HDL: Para verificar la funcionalidad del diseño antes de programar la tarjeta. En resu-
men, implementar sistemas de electrónica secuencial en FPGA representa una solución poderosa, flexible y
eficiente para abordar problemas de diseño digital. Estas plataformas abren un abanico de posibilidades, desde
aplicaciones académicas y prototipos hasta productos comerciales de alta complejidad.

3
ITESHU ING. MECATRONICA

1.0.1. PWM
Este diseño genera una señal PWM cuya relación de encendido y apagado (duty cycle) está determinada por
la entrada ref. El temporizador timerfree introduce un control periódico que afecta la operación del contador.
El objetivo principal del código es implementar un módulo PWM (modulación por ancho de pulso) utilizando
dos componentes adicionales: contador y timerfree.

4
ITESHU ING. MECATRONICA

1.1. Codigos GOWIN


Codigo realizado en GOWIN ”PWM”

1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3

4 entity pwm is
5 port (
6 ref : in std_logic_vector (9 downto 0);
7 clk : in std_logic ;
8 rst : in std_logic ;
9 pulso : out std_logic
10 );
11

12 end pwm ;
13

14 architecture pwm of pwm is


15 component contador
16 generic ( n : integer := 4);
17 port (
18 opc : in std_logic_vector (1 downto 0);
19 clk : in std_logic ;
20 rst : in std_logic ;
21 cta : out std_logic_vector (n -1 downto 0)
22 );
23

24 end component ;
25

26 component timerfree
27 generic ( n : integer :=4);
28 port (
29 k : in std_logic_vector (n -1 downto 0);
30 clk : in std_logic ;
31 rst : in std_logic ;
32 t : out std_logic
33 );
34 end component ;
35 signal z : std_logic ;
36 signal opc : std_logic_vector (1 downto 0);
37 signal cta : std_logic_vector (9 downto 0);
38 begin
39 tag1 : contador generic map (10) port map ( opc , clk , rst , cta );
40 tag2 : timerfree generic map (5) port map ("11010" , clk , rst , z );
41 opc <= ’0 ’ & z ;
42 pulso <= ’0 ’ when cta > ref else ’1 ’;
43 end pwm ;

1.1.1. VHDL DRIVERDISPLAY


Este código VHDL implementa un driver de display de 7 segmentos multiplexado. El objetivo principal es
controlar un display de 4 dı́gitos, donde cada dı́gito se muestra uno a la vez (multiplexado), mientras que las
señales de control y el contenido del display son gestionados dinámicamente.

CódigO DRIVERDISPLAY

5
ITESHU ING. MECATRONICA

Figura 1: Implementacion del codigo en fisioco usando la targenta TANG NANO

Figura 2: Implementacion del codigo en fisioco usando la targenta TANG NANO

1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3

4 entity driverdisplay is
5 port (
6 u : in std_logic_vector (3 downto 0);

6
ITESHU ING. MECATRONICA

7 d : in std_logic_vector (3 downto 0);


8 c : in std_logic_vector (3 downto 0);
9 m : in std_logic_vector (3 downto 0);
10 clk : in std_logic ;
11 rst : in std_logic ;
12 seg : out std_logic_vector (6 downto 0);
13 cat : out std_logic_vector (3 downto 0)
14 );
15 end driverdisplay ;
16

17 architecture driverdisplay of driverdisplay is


18 component timerfree
19 generic ( n : integer :=4);
20 port (
21 k : in std_logic_vector (n -1 downto 0);
22 clk : in std_logic ;
23 rst : in std_logic ;
24 t : out std_logic
25 );
26 end component ;
27

28 component bcd27seg
29 port (
30 n : in std_logic_vector (3 downto 0);
31 seg : out std_logic_vector (6 downto 0)
32 );
33 end component ;
34

35 component fsm
36 port (
37 t : in std_logic ;
38 clk : in std_logic ;
39 rst : in std_logic ;
40 sel : out std_logic_vector (1 downto 0)
41 );
42 end component ;
43 signal t : std_logic ;
44 signal mx : std_logic_vector (3 downto 0);
45 signal sel : std_logic_vector (1 downto 0);
46 begin
47

48 chip1 : timerfree generic map (15) port map ("110100101110111" , clk , rst , t );
49 -- chip1 : timerfree generic map (25) port map ("1111111111111111111111111" , clk , rst , t )
50 chip2 : bcd27seg port map ( mx , seg );
51 chip3 : fsm port map (t , clk , rst , sel );
52

53 mx <= u when sel = "00" else


54 d when sel ="01" else
55 c when sel = "10" else
56 m;
57 cat <= "0111" when sel = "00" else
58 "1011" when sel = "01" else
59 "1101" when sel = "10" else
60 "1110";
61

7
ITESHU ING. MECATRONICA

62

63 end driverdisplay ;

Figura 3: Implementacion del codigo en fisioco usando la targenta TANG NANO

Figura 4: Implementacion del codigo en fisioco usando la targenta TANG NANO

1.1.2. TRANSMISION
Código TRANSMISION

8
ITESHU ING. MECATRONICA

1 library ieee ;
2 use ieee . std_logic_1164 . all ;
3

4 entity transmision is
5 port (
6 clk : in std_logic ;
7 rst : in std_logic ;
8 str : in std_logic ;
9 d : in std_logic_vector (7 downto 0);
10 tx : out std_logic ;
11 eot : out std_logic
12 );
13

14 end transmision ;
15 architecture transmision of transmision is
16 component timerhab
17 generic ( n : integer :=4);
18 port (
19 k : in std_logic_vector (n -1 downto 0);
20 hab : in std_logic ;
21 clk : in std_logic ;
22 rst : in std_logic ;
23 t : out std_logic
24 );
25 end component ;
26

27 component contador
28 generic ( n : integer := 4);
29 port (
30 opc : in std_logic_vector (1 downto 0);
31 clk : in std_logic ;
32 rst : in std_logic ;
33 cta : out std_logic_vector (n -1 downto 0)
34 );
35

36 end component ;
37

38 component fsmtx
39 port (
40 str : in std_logic ;
41 t : in std_logic ;
42 e : in std_logic ;
43 clk : in std_logic ;
44 rst : in std_logic ;
45 eot : out std_logic ;
46 hab : out std_logic ;
47 opc : out std_logic_vector (1 downto 0)
48 );
49 end component ;
50

51 signal hab , t , e : std_logic ;


52 signal opc : std_logic_vector (1 downto 0);
53 signal sel : std_logic_vector (3 downto 0);
54 begin
55

9
ITESHU ING. MECATRONICA

56 e <= ’1 ’ when sel = "1011" else ’0 ’;


57

58 chip1 : timerhab generic map (12) port map ("101011111100" , hab , clk , rst , t );
59 chip2 : contador port map ( opc , clk , rst , sel );
60 chip3 : fsmtx port map ( str ,t ,e , clk , rst , eot , hab , opc );
61

62 tx <= ’1 ’ when sel = "0000" else


63 ’0 ’ when sel = "0001" else
64 d (0) when sel ="0010" else
65 d (1) when sel ="0011" else
66 d (2) when sel ="0100" else
67 d (3) when sel ="0101" else
68 d (4) when sel ="0110" else
69 d (5) when sel ="0111" else
70 d (6) when sel ="1000" else
71 d (7) when sel ="1001" else
72 ’1 ’;
73 end transmision ;

Figura 5: 0

10
ITESHU ING. MECATRONICA

1.1.3. Representacion fisica en targeta roja

Figura 6: 0

Figura 7: 1

11
ITESHU ING. MECATRONICA

Figura 8: 2

Figura 9: 3

12
ITESHU ING. MECATRONICA

2. Conclusion
La implementación de electrónica secuencial en FPGAs representa un avance significativo en la evolución
del diseño digital debido a la flexibilidad y el alto rendimiento que estas tarjetas ofrecen. Este enfoque permite
el desarrollo de sistemas complejos como controladores, máquinas de estados y módulos de procesamiento en
tiempo real, gracias a caracterı́sticas como:

Reconfigurabilidad:
Las FPGAs permiten realizar modificaciones rápidas en el diseño sin necesidad de hardware adicional, op-
timizando tiempos y costos durante el desarrollo. Paralelismo:

A diferencia de los procesadores tradicionales, las FPGAs facilitan la ejecución de múltiples procesos secuen-
ciales y combinacionales en paralelo, mejorando la eficiencia del sistema. Integración de Bloques Secuenciales:

En la electrónica secuencial, la sincronización mediante relojes y registros en las FPGAs asegura una ejecu-
ción precisa y confiable de las operaciones. Versatilidad:

Desde aplicaciones de baja complejidad hasta sistemas embebidos avanzados, las FPGAs soportan una am-
plia variedad de diseños y tecnologı́as, adaptándose a requerimientos especı́ficos. Simulación y Validación:

Antes de implementar el hardware, las herramientas de simulación disponibles para FPGAs permiten depurar
y validar el comportamiento secuencial del diseño.

3. Referencias
1. Decodificador BCD a 7 segmentos . (Dakota del Norte). [Link]
bcd-a-7-segmentos/: :text=Un
2. Óscar. (Dakota del Norte). Método de conversión de binario a BCD con VHDL . [Link]
cyt-numero-63/1434-metodo-de-conversion-de-binario-a-bcd-con-vhdl

3. Marcos, SM (2014). Introducción a la programación en VHDL . [Link]


11fa-466c-88c7-61ed262828a6

4. Brown, S., Vranesic, Z. (2009). Fundamentals of Digital Logic with VHDL Design (3rd ed.). McGraw-Hill
Education

5. Pedroni, V. A. (2004). Circuit Design with VHDL. MIT Press.


6. Tokheim, R. (2013). Digital Electronics: Principles and Applications (8th ed.). McGraw-Hill Education.

13

También podría gustarte