prvtdnn

The Chisel design of Polyphase Real-Value Time-Delay Neural Network (PRVTDNN).

https://github.com/seu-mslab/prvtdnn

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

The Chisel design of Polyphase Real-Value Time-Delay Neural Network (PRVTDNN).

Basic Info
  • Host: GitHub
  • Owner: SEU-MSLab
  • License: mit
  • Language: Scala
  • Default Branch: master
  • Size: 376 KB
Statistics
  • Stars: 1
  • Watchers: 0
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

Hardware Implementation of Polyphase Real-Valued Time-Delay Neural Networks

Introduction

This repo contain the source code of Polyphase Real-Valued Time-Delay Neural Networks Implementation designed in Chisel.

System Architecture

The architecture include - Systolic array: to do the matrix multiplication. - Bias and activation module: to add biases and apply activation functions, we implement three, ReLU, Sigmoid and Linear. - Parameter loading module: to propagate weights to systolic arrays and biases to bias and activation modules. - Pipeline dataflow: the DPD is a real-time problem, so multiple systolic arrays are cascade to make a fully pipeline neural network implementation at the expense of more area.

The system architecture

Performance

The following experiment result using 40 MHz 5G-NR signal with a 3.5 GHz GaN power amplifier. The test board is AMD VCK190 evaluation board.

| # | Network Configuration| Activation function| Number of parameters |Type | NMSE (dB)| ACPR (dBc)| DSP | URAM | LUTs | Registers | |-----|-----------------|---------|-----|------|--------|------------------|-----|------|------ |--------| | N/A | w/o DPD | N/A | N/A | N/A | -25.35 | -35.98/-33.91 | N/A | N/A | N/A | N/A | | 1 | [12,10,10,8] | ReLU | 328 | S/W | -31.35 | -43.47/-43.78 | N/A | N/A | N/A | N/A | | | | | | H/W | -31.28 | -43.29/-43.28 | 300 | 0 | 9034 | 11082 | | 2 | [20,10,10,8] | ReLU | 408 | S/W | -32.14 | -44.07/-44.77 | N/A | N/A | N/A | N/A | | | | | | H/W | -31.25 | -43.91/-44.06 | 380 | 0 | 11327 | 13549 | | 3 | [20,10,10,10,8] | ReLU | 518 | S/W | -32.51 | -43.49/-44.45 | N/A | N/A | N/A | N/A | | | | | | H/W | -32.34 | -43.36/-44.33 | 480 | 0 | 14281 | 16877 | | 4 | [12,10,10,8] | sigmoid | 328 | S/W | -30.10 | -43.95/-44.15 | N/A | N/A | N/A | N/A | | | | | | H/W | -29.52 | -43.97/-44.18 | 300 | 19 | 9035 | 11334 | | 5 | [20,10,10,8] | sigmoid | 408 | S/W | -34.57 | -46.07/-46.58 | N/A | N/A | N/A | N/A | | | | | | H/W | -34.03 | -45.19/-46.07 | 380 | 19 | 11328 | 13787 | | 6 | [20,10,10,10,8] | sigmoid | 518 | S/W | -34.86 | -48.06/-48.38 | N/A | N/A | N/A | N/A | | | | | | H/W | -35.28 | -47.63/-47.89 | 480 | 29 | 14313 | 16830 |

Prerequisites

  • JDK 8 or newer. You can install the JDK as recommended by your operating system, or use the prebuilt binaries from AdoptOpenJDK.
  • SBT. SBT is the most common built tool in the Scala community. You can download it here.
  • Firrtl. Firrtl is the tool to convert firrtl to verilog file. You can download it here, and put it to your environment variable $PATH.

How to get started

sh git clone git@github.com:SEU-MSlab/PRVTDNN.git cd PRVTDNN Generate the Verilog file with sh sbt run Run the test with sh sbt test

You should see a whole bunch of output that ends with something like the following lines [info] Tests: succeeded 1, failed 0, canceled 0, ignored 0, pending 0 [info] All tests passed. [success] Total time: 5 s, completed Dec 16, 2020 12:18:44 PM

Owner

  • Name: SEU-MSLab
  • Login: SEU-MSLab
  • Kind: organization
  • Location: China

Microwave System Lab of Southeast University

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: PRVTDNN
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - name: Microwave System Lab @ Southeast University
    city: Nanjing
    country: CN
    email: chao.yu@seu.edu.cn
  - given-names: Zhe
    family-names: Li
    email: lizhe99@seu.edu.cn
repository-code: 'https://github.com/SEU-MSLab/PRVTDNN'
abstract: >-
  The Chisel design of Polyphase Real-Value Time-Delay
  Neural Network (PRVTDNN).
keywords:
  - FPGA
  - Digital predistortion
  - Chisel
license: MIT

GitHub Events

Total
Last Year

Dependencies

.github/workflows/template-cleanup.yml actions
  • actions/checkout v2 composite
  • ad-m/github-push-action v0.6.0 composite
.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • coursier/cache-action v5 composite
  • jodersky/setup-mill v0.2.3 composite
  • olafurpg/setup-scala v10 composite