2014-11-01

FunCPU - Clock Generator

Construction of FunCPU has begun with the clock generator. The module is already fully functional on its own, but space is left for incorporating more components for the EPROM chips storing the micro-program and for some control logic.

An 555 is used to generate the base for the clock signals. There are two options to manipulate the clock frequency. A trimmer potentiometer is used to fine tune the frequency within two ranges selected by the right switch. In one position the base clock frequency ranges roughly from 1.4 Hz to 64 Hz, which can be used for debugging, in the other position this covers the interval from 14.5 Khz to 47 Khz, which is suitable for normal operations.
A 74HC74 is used to ensure the following:
whenever the two-phase clock starts:- it starts with phase 1
- it starts with full cycle
- signals when two-phase clock starts
furthermore the duty cycle is guaranteed to be roughly 50%.
A 74HC161 fed by the two-phase clock is applied to generate micro-sequence (from 0 to 3).
A 74HC02 is used as an RS flip-flop to debounce the Edit/Run toggle switch.and also to enable/disable clock signals.
The LED-bar is used for debugging and can be turned on/off by the left switch.
not used
not used
US0least significant bit of the micro-sequencer
US1most significant bit of the micro-sequencer
CLK2phase 2 of the master clock
CLK1phase 1 of the master clock
RUNbright, if in Run mode
EDITbright, if in Edit mode
CLK RUN   to indicate whether clock is enabled
CLKMaster clock with half of the frequency of the base clock

 The following BUS  ("B6") is impelemted on the board:
RUN_OUT
(15)
EDIT_OUTCLK2  not usedCLK1not used
CLK_RUN
(3)
VCC
(1)
GND
(16)
US0US1not usednot usedRUN_INEDIT_IN
(4)
not used
(2)

RUN_IN and EDIT_IN are the incoming signals (with prell) representing Run or Edit respectively. Whereas RUN_OUT and EDIT_OUT are the debounced signals. The rest of the signals are described above along with LED indicators.

Finally, we can see the clock generator in action. Before the clicking noise, FunCPU is in "Edit" mode, therefore clock is basically idling. When Run/Edit toggle is switched to "Run" position, then at the next clock cycle the clock generator starts to operate as indicated by the the blinking LEDs.

No comments:

Post a Comment