Simple NCO Ver 1
submitted by PaulMaddox
This Module gives you a simple NCO, with 24 Bit control over frequency, Sync out and sync in (with a synth enable bit), Also you can put the output into high impedance mode allowing multiple oscillators to share a common input and output bus structure.
Control is via an 8bit data bus and 3 bit address, with a write pin (active on falling edge)
The rate of addition (and hence max rate and resoloution) is controlled by the frequency of the Clk_in clock (rising edge).
To write data to the module, Put the data onto data_bus, the address onto the data_sel input and then pulse Write low, it is falling edge triggered.
Address map for Data_sel is as follows;-
'000' = data on data_bus goes to LOWEST byte of frequency control
'001' = data on data_bus goes to MIDDLE byte of frequency control
'010' = data on data_bus goes to HIGHEST byte of frequency control
'100' = data on data_bus goes to the CONTROL byte (Bit 0 is Sync_in enable, active high)
To read data from the module Simply put enable high.
the top 8 bits of the accumulator will be put onto the output Wave_out
The VHDL source is here osc_core_1.vhd
It is free, but please leave the authors name and webpage link in the code