Model to code generation of UML/SysML activity diagrams for ARM CortexM MCUs (Master Thesis):

2013-2015 Hardware Verification Group ARM Cortex-M SysML Formal Verification Model Checking


Previously in our group, we formalized SysML activity diagrams by developing a calculus called New Activity Calculus (NuAC). In this work, we redefined NuAC terms to support RTX (Keil Real-Time Operating System) and present an automated SysML/UML activity diagram to RTX code generator, using mapping rules expressed in NuAC. To achieve this goal, we proposed a set of rules that were used for mapping a SysML/ UML activity diagram into a suitable code to be executed on ARM CortexM processor family. To automate the process of code generation, we developed a JAVA application that uses the proposed rules to automatically generate the RTX code from the input activity diagram model.

Synthesis and Verification of Data Encryption Standard:

Summer 2013 Formal Hardware Verification Synthesis


The aim of this project was to answer the following: Given a behavioural (as a reference) and a netlist of a design, using equivalency checking, find the bugs that resides in the netlist. We first started by describing the functional behavior and specification of a Data Encryption Standard(DES). We then synthesized the provided behavioral code (HDL) in Synopsys Design Compiler and we discussed about the synthesis results. The generated net list from the synthesizer was used as our reference design. We applied equivalency checking techniques on the given netlist (buggy) and reference design to find bugs. Furthermore, we introduced and explained the techniques that we used for finding bugs in the design. Finally, a comparison between Synopsys Formality and Cadence Conformal was described.

Formal Modeling, Verification and Implementation of a Train Control System:

Winter 2015 ARM-CortexM4 Formal Verification Model checking AutoFOUS3 (AF3) Python


In this project the BART train control system was formally modeled and after verifing the properties of the system, the train control algorithm was then implemented on an ARM Cortex-M4 processor. We first started by formally modelling the train operation and its control system. To verify the correct functionality of the algorithm, we expressed the model in AF3 block representation. Using NuSMV, we verified the essential properties of the system. Finally, the BART’s train control system was implemented on an ARM platform.


Desiging PCB for nRF24L01+ working @ 2.4GHZ using Altium Designer:

Winter 2014 Altium Designer PCB

Board Features:

  • – Easy to use with FRDM based platform
  • – Arduino Compatible
  • – 100m Range at 250kbps
  • – 250kbps to 2Mbit Data Rate
  • – Multiceiver - 6 Data Pipes
  • – Software selectable channel from 2400MHz to 2525MHz (125 Selectable channels)
  • – Onboard pin header available to add HC-05 Bluetooth module

Android App for monitoring a WSN:

Winter 2014 Android Java Dropbox API


Features:
  • – Support upto 120 nodes in the network
  • – Automatic recognition of a new Node in the network
  • – Using DbxDatastore as the back-end data store
  • – Live Network monitor
  • – Automatic Network history builder

Modeling a JPEG Encoder using SystemC in C++:

Winter 2013 SystemC C++ Hardware Software Co-design


Project Objectives:
  • – Customizing SystemC FIFO Channels
  • – Creating a customized OS built on top of SystemC schedular
  • – Creating customized communication channel (A double-handshake bus protocol)
  • – Encapsulating HW models from Software models

Functional Verification of RTL design (implementation of a four-operation calculator) using SystemVerilog:

Winter 2013 SystemVerilog Functional Verification


Project Objectives:
  • – Creating a class based verfication environment
  • – Reaching Overall 70% coverage on all input test cases
  • – Creating an automatic randomized test generator

Data Logger based on SIM908:

Winter 2012 Altium Designer PCB


Features:
  • – Onboard switching power supply (input 9~40 V, Output 4.2v)
  • – Smart Battery charger
  • – Connectivity: GSM/GPRS
  • – Capable of Capturing GPS position