# Input and Output
The MCC design, as defined in the Entity wrapper, has four 16-bit inputs and four 16-bit outputs (
OutputA-D respectively). These signals can be routed to come to/from physical ADC/DAC channels on the hardware, Digital I/O where supported, or from other instruments in the Multi-instrument configuration.
# Clk and Reset
# Inputs and Outputs
Input and Output ports on the wrapper can either be:
- Connected to other ports through the Moku Application's block diagram
- Permanently connected to particular ADCs or DACs, or
- Not connected
|InputA||Block Diagram||Block Diagram|
|InputB||Block Diagram||Block Diagram|
|InputC||ADC In 1||Not Connected|
|InputD||ADC In 2||Not Connected|
|OutputA||Block Diagram||Block Diagram|
|OutputB||Block Diagram||Block Diagram|
|OutputC||Block Diagram||Not Connected|
|OutputD||Not Connected||Not Connected|
All Inputs and Outputs are 16-bit signed values. When the port is externally connected to Digital I/O, the signed 16-bit values should be interpreted simply as a 16-bit standard logic vector.
# Analog I/O Scaling
The bits-to-volts scaling of ADCs, DACs and between instruments is as follows. This table assumes no ADC attenuation and no DAC gain is configured.
|Source/Sink||Moku:Go bits/volt||Moku:Pro bits/volt|
Note that scaling is different depending on source. This can lead to a number of unexpected effects, for example the trivial "passthrough" instrument
OutputA <= InputA actually scales the signal down by 16x if passed from ADC to DAC (High-Z) on Moku:Go (
6550.4 / 409.4). This also means that the apparent signal amplitude changes depending whether the MCC design uses an ADC or another instrument as its source.
# Using Digital I/O
On Moku:Go, a slot Input, Output or both may be routed to the Digital I/O block. In this case, the
Output signal should be interpretted as a 16-bit
std_logic_vector or equivalent. Each bit of this vector corresponds to a digital I/O pin in the obvious way, i.e.
InputX(0) contains the current logical value of DIO Pin 1, driving DIO Pin 16 is done by assigning a value to
Input/OutputX are the slot signals you've routed to the DIO block in the Multi-instrument Mode builder).
The Digital I/O block does not have automatic detection of driving sources, the I/O direction for each pin must be manually configured. On the MiM Configuration screen, click the Digital I/O block and set each pin's desired driving direction.
Driving an Input
If you attempt to drive a value to a pin configured as an input, that action is silently ignored. If you read in from a pin that's configured as an output, the operation succeeds and simply gives you the current logical value of the pin.