Entity: SaciMaster
- File: SaciMaster.vhd
Diagram
Description
Title : SACI Protocol: https://confluence.slac.stanford.edu/x/YYcRDQ
Company : SLAC National Accelerator Laboratory
Description: Saci Master Module
This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to
the terms contained in the LICENSE.txt file.
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| TPD_G | time | 1 ns | |
| SYNCHRONIZE_CONTROL_G | boolean | true |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk | in | sl | Main clock |
| rst | in | sl | |
| saciClk | out | sl | Serial interface |
| saciSelL | out | slv(SACI_NUM_SLAVES_C-1 downto 0) | |
| saciCmd | out | sl | |
| saciRsp | in | sl | |
| saciMasterIn | in | SaciMasterInType | Parallel interface |
| saciMasterOut | out | SaciMasterOutType |
Signals
| Name | Type | Description |
|---|---|---|
| r | RegType | |
| rin | RegType | |
| saciRspFall | sl |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| SYNCHRONIZER_INIT_0_C | SynchronizerType | (tmp => '0', sync => '0', last => '0') |
|
| SYNCHRONIZER_INIT_1_C | SynchronizerType | (tmp => '1', sync => '1', last => '1') |
Types
| Name | Type | Description |
|---|---|---|
| SynchronizerType | ||
| SynchronizerArray | array (natural range <>) of SynchronizerType | |
| StateType | (IDLE_S, CHIP_SELECT_S, TX_S, RX_START_S, RX_HEADER_S, RX_DATA_S, ACK_S) |
|
| RegType |
Functions
- synchronize ( input : in sl;
current : in SynchronizerType;
nextOut : out SynchronizerType) return ()
- synchronize ( var : inout SynchronizerType;
input : in sl) return ()
Description
Simplified. Can be used when v := r has already been called.
- synchronize ( input : in slv;
current : in SynchronizerArray;
nextOut : out SynchronizerArray) return ()
- synchronize ( var : inout SynchronizerArray;
input : in slv) return ()
Description
Simplified. Can be used when v := r has already been called.
- shiftInLeft ( i : in sl;
r : in slv;
v : out slv) return ()
Processes
- fall: ( clk, rst )
Description
------------------------------------------------------------------------------------------------ Capture serial input on falling edge of clock ------------------------------------------------------------------------------------------------
- seq: ( clk, rst )
- comb: ( r, saciRspFall, saciMasterIn )