CDL Modules
|
Files | |
file | bbc_micro_de1_cl.cdl |
BBC microcomputer with RAMs for the CL DE1 + daughterboard. | |
module de1_cl_controls::de1_cl_controls | ( | clock | clk, |
input bit | reset_n, | ||
output t_de1_cl_inputs_control | inputs_control, | ||
input t_de1_cl_inputs_status | inputs_status, | ||
output t_de1_cl_user_inputs | user_inputs, | ||
input bit | sr_divider[8] | ||
) |
This module manages the buttons and other controls on the Cambridge University Computer Laboratory DE1 daughterboard.
A number of input switches are handled through a shift register, which is clocked using the input clock 'clk' divided down by the divider. This is handled by
The rotary encoder switch '318-ENC130175F-12PS' available from Mouser has the following operation:
Clockwise: B disconnects from C when A is disconnected from C
Counter-clockwise: B connects to C when A is disconnected from C
The CL daughterboard for the DE1 has a debounce RC network on the A and B pins, with a RC (probably) of 47us (high), so presumably the encoder is not optical :-).
[in] | clk | system clock - not the shift register pin, something faster |
[in] | reset_n | async reset |
[out] | inputs_control | Signals to the shift register etc on the DE1 CL daughterboard |
[in] | inputs_status | Signals from the shift register, rotary encoders, etc on the DE1 CL daughterboard |
[out] | user_inputs | |
[in] | sr_divider | clock divider to control speed of shift register |