IP Core PWM16
Desarrollo e implementación del interface SBA para un núcleo PWM de 16 canales independientes programables.
Development and implementation of the SBA interface for a 16 independents programmable channels PWM IP Core.
Renzo Bermudez
RESUMEN
Núcleos IP (Núcleos de Propiedad Intelectual) son para el diseño de hardware lo que las librerías son para la programación de computadoras. Se suelen utilizar mucho en el estilo y la forma de un circuito discreto integrado, donde la “placa de circuito” es un diseño más grande en ASIC o en FPGA. Un núcleo de propiedad intelectual a menudo adopta la forma de un programa de computadora escrito en el HDL, tales como Verilog, VHDL o SystemC. Idealmente, un IP-Core debe ser lo más portable posible, es decir, que fácilmente se pueda adaptar a cualquier tecnología de otros proveedores o diferentes métodos de diseño. Receptores/Transmisores Asíncronos Universales (UART), Unidades Centrales de Procesamiento (CPU), Controladores Ethernet, Interfaces PCI, son algunos ejemplos de IP-Cores. En este trabajo se presenta la adaptación de un IPCore PWM de 16 canales a una estructura de bloques independientes similar a los SoC (System on Chip). No se ha implementado un microprocesador como maestro del sistema, en su lugar una máquina de estado compleja, administra un bus, esto con la finalidad de ahorrar recursos en la FPGA. Esta máquina de estado compleja que hace las veces de controlador del sistema se encuentra dentro de una disposición a la que se le denomina SBA (Simple Bus Architecture) o Arquitectura Simple de Bus, la cual no es más que una simplificación de las señales y reglas que establece la especificación Wishbone. El sistema así integrado permite la configuración de 16 salidas digitales PWM independientes en modo de bajo rizado. Si bien en el ejemplo que se presenta en este trabajo muestra un solo IPCore PWM instanciado, esto no supone un límite, el núcleo PWM implementado no hace uso de recursos específicos o especiales de la FPGA lo que permite que la cantidad de bloques instanciados pueda crecer tanto como bloques genéricos configurables en la FPGA se encuentren disponibles. Es decir, por cada núcleo instanciado se dispondrá de 16 canales PWM independientes que poseerán una posición de programación específica dentro del mapa de direcciones del SBA.
Palabras clave: FPGA, PWM, System on Chip.
ABSTRACT
IP Cores are for the hardware design as libraries are for computer programming. They are typically used in the style and form of discrete integrated circuit, where the "circuit board" is a larger design in ASIC or FPGA. A IP core often takes the form of a software program written in HDL such as Verilog, VHDL or SystemC. Ideally, an IP-Core must be fully portable, meaning that it can be easily adapted to any technology from other suppliers or different methods of design. Receivers / Transmitters Universal Asynchronous (UART), Central Processing Units (CPU), Ethernet Controllers, PCI Interfaces, are examples of IP-Cores. This paper presents the adaptation of a 16-channel PWM IP Core to a independent blocks structure similar to SoC (System on Chip). Was not necessary the implementation of a microprocessor as a master of the system, instead a complex state machine administrate the bus, that in order to save resources in the FPGA. This complex state machine that work as the controller is inside of a system which is called SBA (Single Bus Architecture), this is just a simplification of the signals and rules establishing in the Wishbone specification. The system thus allows the configuration of 16 independents PWM digital outputs, low ripple mode. While the example presented in this work shows a single PWM IPCore instantiated this is not a limit, the core PWM implemented does not use specific resources or special FPGA allowing the number of blocks instantiated can grow so much as blocks in the FPGA configurable generic becomes available. That is, for each core instances we have 16 independent PWM channels sits in a specific preset position within the address map of the SBA.
Keywords: FPGA, PWM, System on Chip.
Ver artículo completo AQUI