Microchip CLB en el VERYVERILOG MINI FPGA KIT with MPLAB IDE

El propósito de este artículo es ilustrar como se trabaja con los Microchip Configuration Logic Blocks (CLB) mostrados en el siguiente diagrama de bloque,

usando la plataforma VERYVERILOG MINI FPGA KIT con el MPLAB IDE,

image

Por favor utilize el siguiente projecto y ubiquelo en el directorio de su preferencia. Abra el proyecto usando el MPLAB IDE. La plataforma VERYVERILOG MINI FPGA KIT será usado en este demo donde un LED parpadea controlado por un programa interno, y concurrentemente, un módulo definido en Verilog implementa una puerta lógica tipo AND dentro del Microchip CLB. La fuente de código main.c es la siguiente,


#include "mcc_generated_files/system/system.h"

/*
    Main application
*/

int main(void)
{
    SYSTEM_Initialize();
  
    while(1)
    {
        CLBSWINL = 0;                                         // starts with digit "0" 
        for(uint8_t counter = 0x00; counter <= 0x0F; counter++)     // loop for incrementing between 0h and Fh
        {
            __delay_ms(1000);                                 // waits until displays 
            CLBSWINL = CLBSWINL + 1;                          // increments the displayed hexadecimal number
        }
    }    
}

Este programa fue originalmente diseñado para controlar un display de siete segmentos clásico que fue simplificado para ilustrar un ejemplo bien básico del Microchip CLB, para introducción a esta plataforma. El programa main.c inicializa todo lo necesario en esta función importante,

void SYSTEM_Initialize(void)
{
    CLOCK_Initialize();
    CLB1_Initialize();
    PIN_MANAGER_Initialize();
    CRC_Initialize();
    INTERRUPT_Initialize();
}

Entonces procede a incrementar el contador en el programa, donde uno de los bits de esta variable se usa para controlar el estado de un LED.

Ahora, desde el MPLAB IDE en este proyecto, por favor navege así en el menu Windows → MPLAB Code Configurator. Entonces desde el Application Builder como se muestra a continuación, se selecciona la casilla CLB1,

Se navega a la libreria de síntesis (CLB synthesizer Library) como se muestra aquí,

Aquí hemos creado una conneción directa de la variable CLBSWIN0 controlada periódicamente desde el programa main.c via el CLB a el puerto PPS_OUT1 (conectado a un LED). También la puerta lógica AND se implemento en Verilog. Este módulo andgate de Verilog está conectado a CLBIN1PPS and CLBIN3PPS dos entradas independientes (a,b) (conectadas a dos botones en el kit) y la salida se conectó al PPS_OUT2 (esta salida conectada LED en el kit). Si este módulo Verilog es seleccionado (doble clic) en el diagrama de bloque, se puede ver el código Verilog,

Si cualquier cambio es aplicado al diseño del CLB, el desarrolador tiene que oprimir el botón en el MPLAB IDE Synthesize nuevamente (Para crear un nuevo archivo clbBitstream.S en el proyecto) antes de continuar una nueva version y sea progrmado en el Microchip PIC16F13145. También dentro del area del PIN Package View como se muestra luego con las asignaciones apropiadas para este demo sencillo en la plataforma VERYVERILOG MINI FPGA KIT usando el correspondiente esquemático,

como se ilustra a continuación,

Ahora desde el MPLAB IDE se compone el proyecto.

BUILD SUCCESSFUL (total time: 6s)

y se programa el Microchip PIC16F13145 en la plataforma VERYVERILOG MINI FPGA KIT. Si la misma fue programada apropiadamente entonces el demo CLB es como se liustra en el siguiente video,

El puerto PPS_OUT1 está conetado a unos de los LEDs de la plataforma y esta parpadeando periodicamente desde el main.c. Tambien las entradas de la puerta lógica AND estan conectadas a dos botones y la salida a un LED. Este video muestra el funcionamiento de este demo del Microchip CLB. El demo básico CLB de la plataforma VERYVERILOG MINI FPGA KIT se ha completado.

La plataforma VERYVERILOG MINI FPGA KIT es un sistema de desarrollo bien simple, que se puede usar desde el MPLAB IDE como también desde el internet para la parte del Microchip CLB. Existen herramientas en linea como este veryVerilog - Logic Circuit Design 101 - Microchip Try que permiten al diseñador crear el arhcivo de CLB que se puede sintetizar en como un .S file en el proyecto donde es importado en el MPLAB IDE (para compilarlo) y bajarlo viael mismo MPLAB IDE, o se puede programar via el enlance WebICSP v1.8. La plataforma VERYVERILOG MINI FPGA KIT es fácil de usar para principiantes y novicios que quieran aprender acerca de los Microchip CLBs 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.

1 Like