Line 56: |
Line 56: |
| === Non-State Components === | | === Non-State Components === |
| | | |
− | * '''transceiver'''
| + | ==== transceiver ==== |
− | ** This block provides a level of abstraction between the precise CP2200/1 interface and a generalized interface seen by the internal blocks of the FPGA. It takes information on the next transfer to carry out and returns information on the last transfer completed. It has a pulse signal to begin a transfer and a pulse signal to notify of a completed transfer. This eliminates a need for the internal workings of the FPGA to be aware of the timing of the interface; it simply begins a transfer and waits for notification of the transfer's completion. The transceiver is intended to function on the Multiplexed Intel bus format to communicate with the CP2200/1.
| + | |
− | ** inputs
| + | This block provides a level of abstraction between the precise CP2200/1 interface and a generalized interface seen by the internal blocks of the FPGA. It takes information on the next transfer to carry out and returns information on the last transfer completed. It has a pulse signal to begin a transfer and a pulse signal to notify of a completed transfer. This eliminates a need for the internal workings of the FPGA to be aware of the timing of the interface; it simply begins a transfer and waits for notification of the transfer's completion. The transceiver is intended to function on the Multiplexed Intel bus format to communicate with the CP2200/1. |
− | *** ''CLK'': clock
| + | |
− | *** ''/Rst'': asynchronous, active-low reset
| + | inputs |
− | *** ''Go'': pulse to begin a transmission
| + | * ''CLK'': clock |
− | *** ''R/W_in'': read/write toggle: active-high read, active-low write
| + | * ''/Rst'': asynchronous, active-low reset |
− | *** ''A_in'': 8-bit bus for address to read to/write from
| + | * ''Go'': pulse to begin a transmission |
− | *** ''D_in'': 8-bit bus for data to write; ignored during a read
| + | * ''R/W_in'': read/write toggle: active-high read, active-low write |
− | ** outputs to internals
| + | * ''A_in'': 8-bit bus for address to read to/write from |
− | *** ''Done'': pulse to signal completion of a transmission
| + | * ''D_in'': 8-bit bus for data to write; ignored during a read |
− | *** ''R/W_out'': read/write flag: active-high read, active-low write
| + | |
− | *** ''A_out'': 8-bit bus for address of last read/write
| + | outputs to internals |
− | *** ''D_out'': 8-bit bus for data of last read; internal systems should ignore for a write
| + | * ''Done'': pulse to signal completion of a transmission |
− | ** outputs to CP2200/1
| + | * ''R/W_out'': read/write flag: active-high read, active-low write |
− | *** ''/CS'': active-low chip select
| + | * ''A_out'': 8-bit bus for address of last read/write |
− | *** ''MotEn'': Motorola/Intel format toggle: active-high Motorola, active-low Intel
| + | * ''D_out'': 8-bit bus for data of last read; internal systems should ignore for a write |
− | *** ''MuxEn'': Multiplexed flag; not used for CP2201
| + | |
− | *** ''ALE'': ALE strobe
| + | * outputs to CP2200/1 |
− | *** ''/Wr'': Active-low write flag
| + | * ''/CS'': active-low chip select |
− | *** ''/Rd'': Active-low read flag
| + | * ''MotEn'': Motorola/Intel format toggle: active-high Motorola, active-low Intel |
− | ** inouts
| + | * ''MuxEn'': Multiplexed flag; not used for CP2201 |
− | *** ''AD'': 8-bit address and data bus
| + | * ''ALE'': ALE strobe |
− | * '''state register'''
| + | * ''/Wr'': Active-low write flag |
− | ** A three-bit register to store the current state.
| + | * ''/Rd'': Active-low read flag |
− | ** inputs
| + | |
− | *** ''Clk'': clock
| + | inouts |
− | *** ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state)
| + | * ''AD'': 8-bit address and data bus |
− | *** ''En'': write enable
| + | |
− | *** ''D'': three-bit data-in bus
| + | ==== State Register ==== |
− | ** outputs
| + | A three-bit register to store the current state. |
− | *** ''Q'': three-bit data-out bus
| + | inputs |
− | * '''temperature register'''
| + | * ''Clk'': clock |
− | ** A 16-bit register to store the most recent temperature data.
| + | * ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state) |
− | ** inputs
| + | * ''En'': write enable |
− | *** ''Clk'': clock
| + | * ''D'': three-bit data-in bus |
− | *** ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state)
| + | |
− | *** ''En'': write enable
| + | outputs |
− | *** ''D'': ten-bit data-in bus
| + | * ''Q'': three-bit data-out bus |
− | ** outputs
| + | |
− | *** ''Q'': ten-bit data-out bus
| + | ==== temperature register ==== |
− | * '''ADC registers'''
| + | A 16-bit register to store the most recent temperature data. |
− | ** A set of eight 16-bit registers to store the most recent ADC data. Also includes a demultiplexer to select which register to write to.
| + | inputs |
− | ** inputs
| + | * ''Clk'': clock |
− | *** ''Clk'': clock
| + | * ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state) |
− | *** ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state)
| + | * ''En'': write enable |
− | *** ''En'': write enable
| + | * ''D'': ten-bit data-in bus |
− | *** ''S'': 3-bit select bus
| + | |
− | *** ''D'': 12-bit data-in bus
| + | outputs |
− | ** outputs
| + | * ''Q'': ten-bit data-out bus |
− | *** ''Q'': 12-bit data-out bus; outputs data of register chosen by S bus
| + | |
− | * '''DAC registers'''
| + | ==== ADC registers ==== |
− | ** A set of 32/24/16 16-bit registers to store the most recent DAC data. Also includes a demultiplexer to select which register to write to.
| + | A set of eight 16-bit registers to store the most recent ADC data. Also includes a demultiplexer to select which register to write to. |
− | ** inputs
| + | inputs |
− | *** ''Clk'': clock
| + | * ''Clk'': clock |
− | *** ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state)
| + | * ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state) |
− | *** ''En'': write enable
| + | * ''En'': write enable |
− | *** ''S'': 5/5/4-bit select bus
| + | * ''S'': 3-bit select bus |
− | *** ''D'': 14-bit data-in bus
| + | * ''D'': 12-bit data-in bus |
− | ** outputs
| + | |
− | *** ''Q'': 14-bit data-out bus; outputs data of register chosen by S bus
| + | outputs |
| + | * ''Q'': 12-bit data-out bus; outputs data of register chosen by S bus |
| + | |
| + | ==== DAC registers ==== |
| + | A set of 32/24/16 16-bit registers to store the most recent DAC data. Also includes a demultiplexer to select which register to write to. |
| + | inputs |
| + | * ''Clk'': clock |
| + | * ''/Rst'': asynchronous, active-low reset to zero the register (puts system into reset state) |
| + | * ''En'': write enable |
| + | * ''S'': 5/5/4-bit select bus |
| + | * ''D'': 14-bit data-in bus |
| + | |
| + | outputs |
| + | * ''Q'': 14-bit data-out bus; outputs data of register chosen by S bus |
| + | |
| + | ==== Reusable Components ==== |
| + | |
| + | ===== Components Interface with Transceiver ===== |
| + | |
| + | |
| + | ===== Miscellaneous Components ===== |
| | | |
| === (000) Reset Cycle === | | === (000) Reset Cycle === |