Giter VIP home page Giter VIP logo

johonkanen / vhdl-experiments Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pkazm/vhdl-experiments

0.0 0.0 0.0 84.64 MB

All the mumbo jumbo code that is me learning VHDL. Primarily targeted for Microsemi Smartfusion2

License: GNU General Public License v3.0

JavaScript 0.03% Python 0.04% Perl 0.01% C 0.03% Objective-C 0.01% Tcl 0.07% VHDL 97.96% Verilog 0.79% Assembly 0.33% MATLAB 0.12% Coq 0.01% XSLT 0.50% Stata 0.08% HTML 0.03%

vhdl-experiments's Introduction

vhdl-experiments

All the mumbo jumbo code that is me learning VHDL. Targeted for Microsemi Smartfusion2. https://www.digikey.com/product-detail/en/microsemi-corporation/M2S010-MKR-KIT/1100-1288-ND/6709124

Why Smartfusion2?

I would like to do FPGA design for satellites. In my research it seems the most common part selection for these types of missions are FPGAs that use flash based configuration memory. Flash based configuration has inherent upset tolerence (immunity?) characteristics that make configuration validation on "normal" FPGAs unecessary, this reduces the amount of work to implement a design.

The 2 major providers of flash based FPGAs are Xilinx with a few select products, and Microsemi (formerly Actel) across their entire line of products.

Non specialized versions of Xilinx FPGA development boards start in the $70 range with limited accessible I/O and little to no onboard peripherals or interfaces (VGA, ethernet, etc.). Additionally there was a change to new design tools that threw into question whether the older design tool that supported the FPGAs on the cheaper dev boards would run on a modern Windows 10 OS. It probably would but figuring all compatibilites out sort of becomes its own project.

Microsemi on the other hand has the previously linked dev board for ~$40 shipped. The Smartfusion2 device is a SoC FPGA and is supported by the most recent versions of the designer software. The FPGA portion shares features with Igloo2 devices (the standalone FPGA version) and RTG4 devices (Microsemi's second to current space grade/radiation hardened FPGA). Notably the block RAM, and DSP math blocks seem to be copy/pasted between the $40 smartfusion2 kit I purchased and the RTG4 devices supposedly being used by NASA.

Conclusion: Price, ability to accumulate device applicable knowledge to my area of interest, and the promise of modern tools with ongoing support all pointed to Smartfusion2.

Project Chronology:

  1. Basic_VHDL_Thing
    • Hardware I/O validation
  2. APB3_Practice
    • APB3 AMBA Bus
    • IP Core: I2C
    • IP Core: timer
    • VHDL I2C slave
    • most projects after this also incorporate APB busses with better slave implementations.
  3. Ultimate LED Controller
    • Builds off APB3_Practice
    • PWM
    • I2C connection to onboard light sensor
  4. Nokia5110_first
    • write to Nokia5110 from RTL memory
    • SPI
  5. Nokia5110_Driver_Block (updated as bugs/features found in future projects)
    • Builds off Nokia5110_first
    • Synplify Pro Infer uSRAM blocks
    • Generic controlled generated logic
    • LCD frame buffer
  6. Delta_Sigma_first
    • Incorporates Nokia5110_Driver_Block
    • LVDS Analog to pulse bitstream
    • Pulse bitstream to quantized integer numbers
    • Convert integer values to pixel bars for graph display
    • Writing pixel data to Nokia5110 LCD with frame buffer
  7. I2C Master (WIP)
    • Intended to be a generic I2C master I will use in future projects
    • Incorporates a simple instruction queue to perform complete I2C transactions without calling out to a bus master
  8. Delta-Sigma ADC
    • Rewritten as I found more resources and continued to understand the parts of the design
    • Includes a simple averaging filter
  9. FFT Core (WIP)
    • I need an FFT core, I want to understand FFTs, so I am writing my own FFT
    • Uses uSRAM to store complex numbers
    • Uses DSP/Math blocks in DOTP mode for complex multiplication
    • Operates on 9 bit signed numbers
    • 9 bit signed twiddle factors with a post multiplication bit shift to correct the scaled twiddle values and stay within 9 bits.
  10. Complex Magnitude
    • Investigates several approaches to calculate the Magnitude of Complex numbers
    • Brute Force using square root cores
    • Alpha Max plus Beta Min approximation
    • CORDIC approximation

vhdl-experiments's People

Contributors

pkazm avatar phoenix136 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.