usb_device_programming_class_project

the mbed main and custom SPI code, as well as the Tk/Python, verilog & CPU machine-code-program files, are available via the following link.

there is a defect in the mercurial revision control system - I can't push updates into the same repository - need to use forks

Import programRTOS_project_fork_02

embedded RTOS class project.

Introduction

A combined project for 'USB Device Programming' and 'Embedded RTOS' classes for UCSC-extension.

Goal

Provide a Tk/Python GUI used for monitoring and control of a toy CPU running in an FPGA.

Features

  • GUI-based CPU register read/write.
  • GUI-based CPU main-memory read/write.
  • GUI-based CPU machine-code file upload/download.
  • GUI-controlled lock-step execution of the CPU program.
  • GUI-controlled end-to-end fully automatic test.

Implementation

  • Tk GUI on a PC host.
  • Python programming on a PC host.
  • PC host <-> MBED applications board serial-over-USB connection.
  • multi-threaded MBED main program using serial-device USB library.
  • custom SPI MBED library used to interface with an FPGA.
  • verilog-based toy CPU programmed into the FPGA.
  • machine-code programming files for the toy CPU programmed into the FPGA.

Indicators

  • MBED: the four LEDs are heartbeats for the four threads.
  • MBED: the LCD display shows SPI and CPU cumulative clock-counts.

Equipment

  • Linux host PC.
  • USB cable.
  • MBED LPC1768 CPU board.
  • MBED application board.
  • twisted-pair SPI lines.
  • Altera development board.

Tools & Libraries

  • Tk & Python interpreters.
  • Python serial library.
  • MBED compiler.
  • MBED libraries.
  • Altera Quartus, including use of Signal-Tap.

Link to pdf Presentation

/media/uploads/gatedClock/presentation.pdf

/media/uploads/gatedClock/pict2622.jpg /media/uploads/gatedClock/pict2616.jpg /media/uploads/gatedClock/ui.jpg

video made before speed improvement

video made before speed improvement

video made before speed improvement


Please log in to post comments.