commit | 9d7677f475bcdeeb2f0e6c04a46e755c147a526d | [log] [tgz] |
---|---|---|
author | james <james@neptune.cassia.ai> | Mon Dec 05 15:47:54 2022 -0800 |
committer | james <james@neptune.cassia.ai> | Mon Dec 05 15:47:54 2022 -0800 |
tree | 0e48d50333a8deab446762e89df68e8b1699b4d3 | |
parent | bab64732936dba535c87a01443d7f7f1fe505570 [diff] | |
parent | 1561f1af79740cf5c9ca413454d3fd6be0226304 [diff] |
merging stuff Merge branch 'gf180-pwm' of github.com:james-tandon-csueb/gf180-pwm into gf180-pwm
A basic pulse with modulation core with 8 PWMs controled by a wishbone bus slave interface. The PWMs are 8-bit programmable with full range of duty cycle control. All PWMS run synchronized to a single counter.
A simple pulse width modulator connected to a wishbone bus. Given an input clock signal, it is capable of dividing the signal by 2^n where 0 <= n < 24. This allows a 100MHz core fequency to be stepped down to just under 6 Hz if need be. The frequency of each PWM is individually controlled by the Divider registers which store the value n_i for PWM i. The Threshold register sets the duty cycle for each PWM such that its value v_i has duty cycle (256-v_i)/256 and valid v_i values are 0 < v_i <= 255. Note that v_i=0 turns off PWM i.