Skip to content

Commit f8056e0

Browse files
committed
Merge branch 'main' of https://github.com/Lippitz-Lab/PLL-on-FPGA into main
2 parents cfaba79 + 150919b commit f8056e0

File tree

11 files changed

+63
-3
lines changed

11 files changed

+63
-3
lines changed

CITATION.cff

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# This CITATION.cff file was generated with cffinit.
2+
# Visit https://bit.ly/cffinit to generate yours today!
3+
4+
cff-version: 1.2.0
5+
title: PLL on FPGA via Labview
6+
message: >-
7+
If you use this software, please cite it using the
8+
metadata from this file.
9+
type: software
10+
authors:
11+
- given-names: Lucas
12+
family-names: Ludwig
13+
orcid: 'https://orcid.org/0009-0006-1472-0537'
14+
- given-names: Markus
15+
family-names: Lippitz
16+
orcid: 'https://orcid.org/0000-0003-1218-6511'
17+
repository-code: 'https://github.com/Lippitz-Lab/PLL-on-FPGA'
18+
abstract: >-
19+
This repository contains two implementations of a
20+
phase-locked loop (PLL) on a FPGA (field-programmable gate
21+
array). We use the Labview graphical programming
22+
environment to generate FPGA binary code and a PC
23+
interface.
24+
license: MIT

MyRio/doc/FPGA_main.png

74.8 KB
Loading

MyRio/doc/project.png

21.2 KB
Loading

MyRio_Implementation.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# MyRio Implementation
2+
3+
The top level FPGA code is located in `FPGA_main.vi`.
4+
5+
![Top level FPGA code](MyRio/doc/FPGA_main.png)
6+
7+
The ADC runs at 500 kHz. It is important to keep this timing. The code execution must not take more time than this. A detailed description can be found in the [pdf file](MyRio/Documentation_PLL.pdf).
8+
9+
The project file is the best place to get an overview:
10+
11+
![Lock-In Code](MyRio/doc/project.png)

NI_USB_7856R_implementation.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# USB 7856R Implementation
2+
3+
The top level FPGA code is located in `FPGA_main.vi`. It contains several parallel running loops, the most important ones are shown below.
4+
5+
![Top-level FPGA code](USB7856/doc/FPGA_Main_1.png)
6+
7+
8+
The ADC runs at 1 MHz and is synchronized to the PLL processing loop, which takes 75 steps at 75 MHz for each sample. Inside the 75 MHz loop are two PLLs and a lock-in amplifier.
9+
10+
11+
![PLL code](USB7856/doc/pll-3ch.png)
12+
13+
The PLL in `pll-3ch.vi` (above) is implemented as a [pipeline](https://www.ni.com/docs/en-US/bundle/labview-fpga-module/page/optimizing-fpga-vis-using-pipelining-fpga-module.html), which uses the same hardware to compute three successive PLL phases.
14+
15+
The lock-in amplifier in `lockin-3ch.vi` (below) is just a variant of the PLL code.
16+
17+
![Lock-In code](USB7856/doc/lockin-3ch.png)
18+
19+
The project file is the best place to get an overview:
20+
21+
![Lock-In code](USB7856/doc/project.png)

USB7856/doc/FPGA_Main_1.png

59.6 KB
Loading

USB7856/doc/FPGA_Main_2.png

46.6 KB
Loading

USB7856/doc/lockin-3ch.png

45.1 KB
Loading

USB7856/doc/pll-3ch.png

40.6 KB
Loading

USB7856/doc/project.png

32.7 KB
Loading

0 commit comments

Comments
 (0)