FPGA-based Numerically Controlled Oscillator (DDS) using Verilog HDL and Xilinx Vivado.
This project implements a configurable Numerically Controlled Oscillator (DDS) featuring precise frequency and amplitude control using fixed-point arithmetic and RTL design principles.
- 32-bit phase accumulator
- 256-point sine lookup table
- Runtime frequency control using phase increment
- Amplitude control using fixed-point multiplier
- Behavioral simulation using Vivado
- Verilog HDL
- Xilinx Vivado
- Fixed-point arithmetic
rtl/📝 – Verilog RTL design filesnco.vsine_lut.v
sim/🧪 – Testbench filesnco_tb.v
mem/💾 – Sine LUT memory filesine256.hex
- Open Xilinx Vivado
- Create a new RTL Project
- Add RTL files from the
rtl/directory - Add the testbench file from the
sim/directory - Add the LUT memory file from the
mem/directory - Run Behavioral Simulation
- View sine waveform, frequency tuning, and amplitude scaling in the waveform window
Below is an example waveform generated from the NCO during simulation:
- Signal generation
- Software Defined Radio (SDR)
- Communication systems