Skip to content

Latest commit

 

History

86 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FPGA GOWIN LAB1 pablinza@me.com

Descripcion de Circuitos Logicos Combinatorios CLC y Secuencuales CLS con HDL / Verilog
Carpeta con los proyectos generados por GOWIN EDA utilizando el chip GW1NR-LV9QN88PC6/I5 de la placa Tangnano9k.
El software IDE esta disponible en la pagina del fabricante GOWIN --> Click
La documentacion de la Tangnano9k puedes encontrarla en el sitio --> Click
La descripcion de circuitos se realiza con Verilog evitando en lo posible el uso de codigo IP, a excepcion de implementaciones mas complejas. Se utilizo la version linux GOWIN EDA V1.9.11.02 corriendo en la distro Debian 13, abajo dejo un video de como realizar la instalacion del software a utilizar
Para cargar el bitstream del circuito en la memoria RAM/FPGA o EEPROM utilizare openFPGALoader por linea de comandos -->Click

Instalacion del GOWIN EDA y Activacion de Licencia

En el siguiente enlace --> Click veras un video que muestra como se realiza la descarga e instalacion del software GOWIN EDA. Descripcion de la Placa Sipeed Tangnano9K para el montaje de circuitos en Laboratorio Sistemas Digitales


El siguiente enlace (https://pcz1.blogspot.com/2025/06/introduccion-tarjeta-fpga-tangnano-9k.html) a mi blog brinda una descripcion resumida de esta tarjeta. Si realmente quieres entrar a fondo con el desarrollo de circuitos digitales te recomiendo que revisese los documentos del fabricante que son la mejor referencia de uso y resolucion de posibles errores (errdata).
Cada carpeta del proyecto Gowin tiene el nombre precedido por el numero de actividad, en su estructura encontrara los modulos descriptivos Verilog con extension .v en la subcarpeta /src, mientras que el firmware .fs generado durante la sintesis se encuentra en la subcarpeta impl/pnr.

Lista de circuitos digitales implementados en TangNano9k

- C01 - Multiplexor de 2 Canales con datos de 4-bit [MUX2S4B]

Este primer circuito muestra la implementacion de un multiplexor simple de dos canales para datos de 4-bit, la teoria y diseño de este circuito se describe mejor en el siguiente enlace a mi blog -->Click. la descripcion del modulo Verilog se efectuara a nivel del comportamiento, para las pruebas de funcionamiento utilizaremos conmutadores (switches) a cada entrada y diodos led en las salidas. Puedes ver el video de la implementacion -->Click


- C02 - Decodificador a 7-Segmentos [DECO7SEG]

En este ejemplo se muestra la implementacion de un circuito decodificador binario a 7-Segmentos, para las pruebas de funcionamiento utilizaremos como salida una pantalla de 7-segmentos tipo Anodo Comun y en la entrada cuatro pulsadores para conformar un numero de 4-bit en el rango 00 a 15. Opcionalmente se implementara una entrada de habilitacion para controlar en encendido y apagado de los segmentos. Puedes ver el video de la implementacion -->Click


- C03 - Multiplexor + Decodificador Encapsulado [MUX2DECO7SEG]

Este ejemplo muestra en base a dos los circuitos previamente descritos como crear un modulo de nivel superior top.v que contiene la instancia de los módulos mux2s4b.v, deco7seg.v de nivel inferior y define las conexiones entre sus entradas y salidas, creando la estructura completa del circuito. Para ver el video de la implementacion -->Click


- C04 - Sumador Paralelo de 4-bit con Decodificador BCD [ADDER4BIT]

En este ejemplo se implementa un circuito sumador aritmetico (A+B) de numeros binarios de 4-bit con salida visual de dos digitos decimales en pantallas de 7 segmentos, este ejercicio es un ejemplo mas de como integrar en un modulo top.v de nivel superior las instancias correspondientes a los modulos sumador adder.v, decodificador bcd decobcd.v y decodificador 7 segmentos deco7seg.v. Para ver el video de la implementacion -->Click


- C05 - Oscilador y Temporizador con Divisores [CLOCKGEN]

En este ejemplo veremos en primera instancia como generar dos señales de reloj (CKDIV) de baja frecuencia, la primera señal de reloj fo1 utilizara el Cristal de 27MHz conectado al pin 52(GCLKT3), la otra señal de reloj fo2 usara el oscilador interno (onchip) de 250MHz que activaremos con la primitiva OSC o generador IP Core. Adicionalmente a la salida de cada senal de reloj se adicionaran divisores con salidas so1 y so2 para destellara luces leds a 1Hz y 4Hz respectivamente. Considerar que en este ejemplo todos los elementos del circuito forman parte de la placa TangNano9K. Para ver video de la implementacion -->Click


- C06 - Maquina de Estados Finitos para Encoder y Pantalla [ENC7SEG] **En Desarrollo

Este ejemplo muestra como describir una maquina de estados finitos MEF1 para llevar a cabo la lectura de un Encoder Rotativo (KY-040) con la que sera posible ajustar un numero entero de cuatro digitos 0000-9999. Otra maquina de estados finitos MEF2 controlara una Pantalla LTC-5723 que agrupa 4 digitos de 7-Segmentos para utilizar la tecnica de multiplexacion por division de tiempo TDM. Entonces desde el Encoder KY-040 se podra ajustar cada digito del numero que muestra la Pantalla LTC-HC5723. Los diferentes modulos del circuito se integran en un modulo top.v de nivel superior


- C07 - Medicion de datos utilizando Convertidor ADC [ADCSENSE] **En Desarrollo

Con el fin de medir senales analogicas, se describe un driver para el convertidor ADC/DAC de 8-bit PCF8591 de cuatro canales. El circuito medira la senal analogica de cuatro canales ANS1-ANS4 conectados a potenciometros que permitira variar el voltaje de entrada, el resultado de la conversion ADC seran enviados por puerto serial UART. La implementacion del protocolo I2C y UART se realizara utilizando el generador IPCore.

- C08 - Modulacion de Ancho de Pulso [PWMSERVO] **En Desarrollo

Este ejemplo tiene como base el circuito anterior y muestra usar resultado de la conversion ADC PCF8591 al control de servomotores, se creara un modulador de ancho de pulso de 8-bit, que controlara de forma independiente cada unos de los servomotores mediante un joystick de dos ejes X-Y y un potenciometro. La implementacion de salida se llevara a cabo en un brazo robot con garra

- C09 - Salida de Datos por Video HMDI [HDMIP1]

Aplicado al uso de la interface HDMI (IPcore) de la placa tangnano 9K, se muestra como enviar datos
Autor: Pablo Zarate, puedes contactarme a pablinza@me.com / pablinzte@gmail.com.
Visita mi Blog Blog de Contenidos.
Visita mi Canal Blog de Contenidos.
Santa Cruz - Bolivia

About

Descripcion Inicial de circuitos Verilog en Tangnano 9K

Topics

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages