Competition 2026
Competition: Collaboration/Education
Cover image
SYNAPSE block diagram: a Cortex-M0 and Analog FSM with Trigger/Sync control a shared record and stimulation path.

SYNAPSE — Neuromuscular Interface Chip

A custom chip project for recording and stimulating nerve/muscle signals, sensing an electrode's electrical activity and delivering safe, controlled electrical pulses back to it. Built around an analog front-end and dual-mode data converters for capturing both fast signal spikes and slow baseline drift, plus a closed-loop stimulation path with hardware-level safety limiting to keep delivered current within safe bounds.

Project Milestones

Getting StartedProject StructureContinuous Integration and Deployment for verification
Architectural DesignSpecifying a SoCdata modelIP SelectionVerification Methodology
Behavioural DesignBehavioural ModellingGenerate RTLRTL VerificationSimulation
Logical DesignTechnology SelectionSynthesisDesign for TestLogical verification
Physical DesignFloor PlanningPreparationClock Tree SynthesisRoutingTiming closurePhysical VerificationTape Out
Post Silicon
Complete
In Progress
Not Started
Not Needed
Click on any milestone above for details
X

Do you want to view information on how to complete the work stage ""

View

or update the work stage for this project?

Log in if you are the author to update

  1. Getting Started

    Design Flow
    Target Date
    Completed Date

    A custom SoC for recording and stimulating nerve and muscle signals: it senses an electrode's electrical activity and delivers safe, controlled pulses back through the same electrodes. Built on the nanoSoC reference design with an Arm Cortex-M0.

    It combines an analog front-end and dual-mode data converters (fast SAR for spikes, high-resolution ΔΣ for slow baseline drift) with a stimulation path that has hardware-level current limiting. A single hardware trigger edge starts stimulation and acquisition together, giving deterministic stim-to-record timing with no software jitter. Four electrodes are shared between record and stim through a switch.

  2. Project Structure

    Target Date
    Completed Date

    SYNAPSE's project structure is set up following the SoC Labs accelerator-project template. The design lives in its own repo with rtl/, models/, tb/ and docs/, linked as a submodule (synapse) of a private fork of accelerator-project. projbranch and ACCELERATOR_DIR are updated, and the nanoSoC flow environment runs under WSL2 Ubuntu (Icarus Verilog, GTKWave). Save and update scripts keep the design repo and the fork in sync with upstream. Arm IP (Cortex-M0, DMA) is pending Arm Academic Access.

    Result of Work

    Project structure complete. Design repo: https://github.com/nikhilrenny/Synapse (README, block diagram, rtl/models/tb/docs). Linked as submodule synapse in a private accelerator-project fork. Environment verified under WSL2 Ubuntu (set_env.sh, socsim, iverilog, GTKWave).

  3. Continuous Integration and Deployment for verification

    Target Date
    Completed Date

    CI/CD milestone update

    Description of work: I set up automated checks for my design. A self hosted GitLab runner is installed and runs as a service. The pipeline on my design repository is set up to compile and run every testbench with Icarus Verilog on every push. A second automated check runs on my full SoC project. It downloads the SoC Labs repositories, confirms the simulator is installed, and runs the same tests. I installed Vivado 2026.1 so it can be launched from the runner machine. I also reviewed the nanoSoC documentation and scripts to plan the FPGA stages. The design repository and its pipeline are public at https://gitlab.com/nikhilrenny/synapse-ci/-/tree/3263c5eb699a8f458a67970a29ed8b5579a4eb28/

    Result of Work

    Result of work: Both pipelines run and pass. I have not written the first testbench yet, so no tests have run so far. The first one will be for my control logic and will run automatically as soon as it is added. 

    Left to do: write the first testbench. Compile the bootrom and run the nanoSoC simulations, once I have Arm Academic Access for the required Arm IP and compiler. Add a Digilent Nexys 4 DDR board target so nanoSoC can be built for the board I own. Add an automated FPGA build stage with Vivado. Add a deploy stage that programs the board over USB and checks its UART output.

Team

Comments

Hi,

Thanks for opening a SoC Labs project. We have an area of the site Design Flow where we are developing material to describe the steps necessary to take a System on Chip design from initial concept to final implementation. 

The first step is Getting Started

Edit your project and click on

Add milestone button

 

Start to type getting started into the Design Flow field and it should auto populate, select.

fill in design flow fields

You can edit is later and add details in the description as you complete things. Set yourself a target date for completing it. It does not matter what you guess. Part of learning about SoC design is learning to estimate how long things will take. You learn by making estimates and then realising just how long things take, you get better the more you do it. 

By adding your first milestone a Project Tracker gets added to your project.

project tracker

 

You can click on future milestones to see what is required and add them to your project.

click on getting started milestone

 

You may want to look at Sydney's example project as they have some great Milestones as examples of how to add them.

Sensing for Precision Agriculture 

Look forward to hearing from you,

John.

Thanks for adding the Getting Started milestone.

As the step says. "You should use your milestones in your project to make notes and record progress and this will help you maintain a clear Project Management plan throughout the project"

You simple edit the milestone and add notes to the text entry.

I know we have started to discuss how to establish your "Development Environment" so you have access to Arm IP and tooling as well as Version Control systems, such as Git.

David Mapstone can help with some of this.

John.

Hi John,

Thanks for the guidance, I've got the Getting Started milestone set up and will keep adding notes there as I go to track progress.

Thanks also for the pointer on the Development Environment, I'll follow up with David to get access to Arm IP, tooling, and Git set up.

Will take a look at Sydney's project for reference on structuring milestones.

Thanks,
Nikhil

Hi,

Thanks for the project update. It is was good to see the 'Project Structure' milestone added and thanks for sharing the Git link. The team here are looking forward to working with you. I wanted to make you aware of our UK System on Chip Design Contest 26-27. I think this project would be a great entry. If you are happy to enter the contest then you can simple restate the type of project when you make your next edit.

change project type in the project edit page

Hi John,

Thanks for the update and for the kind words on the ‘Project Structure’ milestone. I’m looking forward to working with the team.

Thanks for flagging the UK System on Chip Design Contest 26-27. I’d be happy to enter SYNAPSE, and I’ll restate the project type in my next edit.

Best regards,
Nikhil Renny

Add new comment

To post a comment on this article, please log in to your account. New users can create an account.

Project Creator
Placeholder Nikhil Tom Renny

at Solent University
Research area: Mixed-signal SoC for bidirectional neuromuscular recording and stimulation
ORCID Profile

Submitted on

Actions

Log-in to Join the Team