![]()
작성일: 2017.12.03
1. PRBS
- Generator and Receiver
2. E2
- Framer / Deframer (according ITU-T G.703 / G.742)
3. E3
- Framer / Deframer (according ITU-T G.703 / G.751)
4. E3 - Mux / Demux
- Multiplexer of 16 E1 Channels (according ITU-T G.703 / G.742 / G.751)
5. VCO
- Voltage Controlled Oscillator
1. PRBS - Generator and Receiver
The different types of PRBS and the suggested data-rates for the different PRBS types are described in the ITU-T standards O.150, O.151, O.152 and O.153
| PRBS type | Standard | Suggested Datarate [kbit/sec] | Feedback tap |
|---|---|---|---|
| 29 -1 | ITU-T O.150 / O.153 | up to 14.4 | 5th + 9th |
| 211 -1 | ITU-T O.150 / O.152 / O.153 | 64, n*64 (n=1..31), 48 to 168 | 9th + 11th |
| 215 -1 | ITU-T O.150 / O.151 | 1544, 2048, 6312, 8448, 32064, 44736 | 14th + 15th |
| 220 -1 | ITU-T O.150 / O.151 | 1544, 6312, 32064, 44736 | 17th + 20th |
| 220 -1 | ITU-T O.150 / O.153 | up to 72 | 3rd + 20th (note 1) |
| 223 -1 | ITU-T O.150 / O.151 | 34368, 44736, 139264 | 18th + 23rd |
| 229 -1 | ITU-T O.150 | 27th + 29th | |
| 231 -1 | ITU-T O.150 | 28th + 31st |
Documentation for the PRBS-Moduls : PDF-Document
VHDL-Moduls of the PRBS-Generator and Receiver : Zip-File
1.a. PRBS - Generator

entity PRBS_TX_SER is
port (
CLK : in std_logic; -- synchron clock
RESET : in std_logic; -- asynchron reset
CLK_EN : in std_logic; -- clock enable
PRBS_SET : in std_logic; -- set new PRBS / bit pattern
PRBS_TYPE : in std_logic_vector (3 downto 0); -- type of PRBS / bit pattern
PRBS_INV : in std_logic; -- invert PRBS pattern
ERR_INSERT : in std_logic; -- manual error insert
ERR_SET : in std_logic; -- set new error type
ERR_TYPE : in std_logic_vector (3 downto 0); -- error type
TX_BIT : out std_logic -- tx serial output
);
end PRBS_TX_SER;
1.b. PRBS - Receiver

entity PRBS_RX_SER is
port (
CLK : in std_logic; -- synchron clock
RESET : in std_logic; -- asynchron reset
CLK_EN : in std_logic; -- clock enable
RX_BIT : in std_logic; -- rx serial input
PRBS_SET : in std_logic; -- set new PRBS / bit pattern
PRBS_TYPE : in std_logic_vector (3 downto 0); -- type of PRBS / bit pattern
PRBS_INV : in std_logic; -- invert PRBS pattern
SYN_STATE : out std_logic; -- synchronisation state output
SYN_LOS : out std_logic; -- sync loss signaling output
BIT_ERR : out std_logic; -- biterror signaling output
CLK_ERR : out std_logic -- clockerror (bitslip) signaling output
);
end PRBS_RX_SER;
2. E2 - Framer / Deframer (according ITU-T G.703 / G.742)
Standard : ITU-T G.703 and G.742
Datarate : 8448 kbit/sec
Tolerance : +/- 30 ppM
The E2 transmission scheme according G.742 consists of frames with a length of 848 bits. A frame consists of four sets, which are 212 bits long. 9962.26 frames are transmitted per second.
The nominal data rate of E1 is 2048 kbit/sec. The E2 payload inclusive the justification payload bits can transport per E1 channel 2052.2 kbit/sec. Without the justification payload bits the transport capacity per E1 channel is 2042.3 kbit/sec. The justification payload bits are used to transport data with a utilisation of 57.6 % at the nominal E1 data rate of 2048 kbit/sec.
Documentation for the E2-Framer/Deframer-Moduls : PDF-Document
VHDL-Moduls of the E2-Framer/Deframer-Moduls : On Request
2.a. E2 - Framer

entity E2_G742_FRAMER is
port (
E2_REF_CLK : in std_logic; -- Framer Clock
E2_REF_CLK_EN : in std_logic; -- Framer Clock Enable
RESET : in std_logic; -- Reset
E1_CH1_TX_CLK : in std_logic; -- E1 Channel 1 Clock
E1_CH1_TX_VAL : in std_logic; -- E1 Channel 1 Data Valid
E1_CH1_TX_DATA : in std_logic; -- E1 Channel 1 Data
E1_CH1_TX_ERR : out std_logic; -- E1 Channel 1 Error-Out
E1_CH2_TX_CLK : in std_logic; -- E1 Channel 2 Clock
E1_CH2_TX_VAL : in std_logic; -- E1 Channel 2 Data Valid
E1_CH2_TX_DATA : in std_logic; -- E1 Channel 2 Data
E1_CH2_TX_ERR : out std_logic; -- E1 Channel 2 Error-Out
E1_CH3_TX_CLK : in std_logic; -- E1 Channel 3 Clock
E1_CH3_TX_VAL : in std_logic; -- E1 Channel 3 Data Valid
E1_CH3_TX_DATA : in std_logic; -- E1 Channel 3 Data
E1_CH3_TX_ERR : out std_logic; -- E1 Channel 3 Error-Out
E1_CH4_TX_CLK : in std_logic; -- E1 Channel 4 Clock
E1_CH4_TX_VAL : in std_logic; -- E1 Channel 4 Data Valid
E1_CH4_TX_DATA : in std_logic; -- E1 Channel 4 Data
E1_CH4_TX_ERR : out std_logic; -- E1 Channel 4 Error-Out
E2_RAI : in std_logic; -- Remote Alarm Indication
E2_NA : in std_logic; -- National Bit
E2_FRAME_START : out std_logic; -- Frame Pulse
E2_IDLE_SET : in std_logic; -- Pulse : new IDLE Command
E2_IDLE_CMD : in std_logic_vector (2 downto 0); -- IDLE Command
E2_FAS_SET : in std_logic; -- Pulse : new FAS Command
E2_REMOTE_EN : in std_logic; -- Remote Channel : Enable
E2_REMOTE_DATA : in std_logic_vector (3 downto 0); -- Remote Channel : TX Data
E2_TX_CLK : out std_logic; -- E2 Output Clock
E2_TX_CLK_EN : out std_logic; -- E2 Output Clock Enable
E2_TX_DATA : out std_logic -- E2 Output Data
);
end E2_G742_FRAMER;
2.b. E2 - Deframer

entity E2_G742_DEFRAMER is
port (
RESET : in std_logic; -- Reset
E2_RX_CLK : in std_logic; -- RX Input Data Clock
E2_RX_CLK_EN : in std_logic; -- RX Input Data Clock Enable
E2_RX_DATA : in std_logic; -- RX Input Data
E2_RX_LCV : in std_logic; -- RX Code Violation
E2_RX_LOS : in std_logic; -- RX Loss Of Signal
E2_RX_LOL : in std_logic; -- RX Loss Of Lock
E2_REF_CLK : out std_logic; -- Output Ref. Clock
E2_REF_CLK_EN : out std_logic; -- Output Ref. Clock Enable
E2_FRAME_START : out std_logic; -- Frame Pulse
E2_SYNC : out std_logic; -- State : Frame Synchronous
E2_RAI : out std_logic; -- State : RAI Bit
E2_NA : out std_logic; -- State : NA Bit
E2_AIS : out std_logic; -- State : Alarm Ind. Signal
E2_LOS : out std_logic; -- State : Loss Of Signal
E1_CH1_RX_VAL : out std_logic; -- E1 Channel 1 Data Valid
E1_CH1_RX_DATA : out std_logic; -- E1 Channel 1 Data
E1_CH2_RX_VAL : out std_logic; -- E1 Channel 2 Data Valid
E1_CH2_RX_DATA : out std_logic; -- E1 Channel 2 Data
E1_CH3_RX_VAL : out std_logic; -- E1 Channel 3 Data Valid
E1_CH3_RX_DATA : out std_logic; -- E1 Channel 3 Data
E1_CH4_RX_VAL : out std_logic; -- E1 Channel 4 Data Valid
E1_CH4_RX_DATA : out std_logic; -- E1 Channel 4 Data
E2_REMOTE_EN : in std_logic; -- Remote Channel : Enable
E2_REMOTE_DATA : out std_logic_vector (3 downto 0) -- Remote Channel : RX Data
);
end E2_G742_DEFRAMER;
3. E3 - Framer / Deframer (according ITU-T G.703 / G.751)
Standard : ITU-T G.703 and G.751
Datarate : 34 368 kbit/sec
Tolerance : +/- 20 ppM
The E3 transmission scheme according G.751 consists of frames with a length of 1536 bits. A frame consists of four sets, which are 384 bits long. 22375 frames are transmitted per second.
The nominal data rate of E2 is 8448 kbit/sec. The E3 payload inclusive the justification payload bits can transport per E2 channel 8457.75 kbit/sec. Without the justification payload bits the transport capacity per E2 channel is 8435.375 kbit/sec. The justification payload bits are used to transport data with a utilisation of 56.4 % at the nominal E2 data rate of 8448 kbit/sec.
Documentation for the E3-Framer/Deframer-Moduls : PDF-Document
VHDL-Moduls of the E3-Framer/Deframer-Moduls : On Request
3.a. E3 - Framer

entity E3_G751_FRAMER is
port (
E3_REF_CLK : in std_logic; -- Framer Clock
RESET : in std_logic; -- Reset
E2_CH1_TX_CLK : in std_logic; -- E2 Channel 1 Clock
E2_CH1_TX_VAL : in std_logic; -- E2 Channel 1 Data Valid
E2_CH1_TX_DATA : in std_logic; -- E2 Channel 1 Data
E2_CH1_TX_ERR : out std_logic; -- E2 Channel 1 Error-Out
E2_CH2_TX_CLK : in std_logic; -- E2 Channel 2 Clock
E2_CH2_TX_VAL : in std_logic; -- E2 Channel 2 Data Valid
E2_CH2_TX_DATA : in std_logic; -- E2 Channel 2 Data
E2_CH2_TX_ERR : out std_logic; -- E2 Channel 2 Error-Out
E2_CH3_TX_CLK : in std_logic; -- E2 Channel 3 Clock
E2_CH3_TX_VAL : in std_logic; -- E2 Channel 3 Data Valid
E2_CH3_TX_DATA : in std_logic; -- E2 Channel 3 Data
E2_CH3_TX_ERR : out std_logic; -- E2 Channel 3 Error-Out
E2_CH4_TX_CLK : in std_logic; -- E2 Channel 4 Clock
E2_CH4_TX_VAL : in std_logic; -- E2 Channel 4 Data Valid
E2_CH4_TX_DATA : in std_logic; -- E2 Channel 4 Data
E2_CH4_TX_ERR : out std_logic; -- E2 Channel 4 Error-Out
E3_RAI : in std_logic; -- Remote Alarm Indication
E3_NA : in std_logic; -- National Bit
E3_FRAME_START : out std_logic; -- Frame Pulse
E3_IDLE_SET : in std_logic; -- Pulse : new IDLE Command
E3_IDLE_CMD : in std_logic_vector (2 downto 0); -- IDLE Command
E3_FAS_SET : in std_logic; -- Pulse : new FAS Command
E3_FAS_CMD : in std_logic_vector (2 downto 0); -- FAS Command
E3_REMOTE_EN : in std_logic; -- Remote Channel : Enable
E3_REMOTE_DATA : in std_logic_vector (3 downto 0); -- Remote Channel : TX Data
E3_TX_CLK : out std_logic; -- E2 Output Clock
E3_TX_DATA : out std_logic -- E3 Output Data
);
end E3_G751_FRAMER;
3.b. E3 - Deframer

entity E3_G751_DEFRAMER is
port (
RESET : in std_logic; -- Reset
E3_RX_CLK : in std_logic; -- RX Input Data Clock
E3_RX_DATA : in std_logic; -- RX Input Data
E3_RX_LCV : in std_logic; -- RX Code Violation
E3_RX_LOS : in std_logic; -- RX Loss Of Signal
E3_RX_LOL : in std_logic; -- RX Loss Of Lock
E3_REF_CLK : out std_logic; -- Output Ref. Clock
E3_FRAME_START : out std_logic; -- Frame Pulse
E3_SYNC : out std_logic; -- State : Frame Synchronous
E3_RAI : out std_logic; -- State : RAI Bit
E3_NA : out std_logic; -- State : NA Bit
E3_AIS : out std_logic; -- State : Alarm Ind. Signal
E3_LOS : out std_logic; -- State : Loss Of Signal
E2_CH1_RX_VAL : out std_logic; -- E2 Channel 1 Data Valid
E2_CH1_RX_DATA : out std_logic; -- E2 Channel 1 Data
E2_CH2_RX_VAL : out std_logic; -- E2 Channel 2 Data Valid
E2_CH2_RX_DATA : out std_logic; -- E2 Channel 2 Data
E2_CH3_RX_VAL : out std_logic; -- E2 Channel 3 Data Valid
E2_CH3_RX_DATA : out std_logic; -- E2 Channel 3 Data
E2_CH4_RX_VAL : out std_logic; -- E2 Channel 4 Data Valid
E2_CH4_RX_DATA : out std_logic; -- E2 Channel 4 Data
E3_REMOTE_EN : in std_logic; -- Remote Channel : Enable
E3_REMOTE_DATA : out std_logic_vector (3 downto 0) -- Remote Channel : RX Data
);
end E3_G751_DEFRAMER;
4. E3 - Mux / Demux - Multiplexer of 16 E1 Channels
For transmitting many E1 channels over one line, the ITU describes in the standard G.742 a method for multiplexing four E1 channels to one E2 channel and in the standard G.751 a method for multiplexing four E2 channels to one E3 channel. The used technique is Time Division Multiplexing (TDM).
The multiplexing/demultiplexing is done in two stages :
- First from E1 to E2
- Second from E2 to E3

The sixteen E1 input interfaces can be used fully asynchronous compared to the E3 reference clock and the other E1 input clocks. The individual clock enable input for any E1 input interface enables the possibility of working with a higher interface clock rate (like 34.368 MHz). The whole clock-system can be sourced with only one clock too. This is often useful in a greater system.
The Remote Alarm Indication (RAI) and the National Bit (Na) of the E3 frame and the four incorporated E2 frames can be used fully independent of each other.
The generation of the internally needed E2 clock (8448 kHz) is done internally by a special division stage from the E3 reference clock (34.368 MHz).
It's possible to transmit idle-0 or idle-1 in the E3 payload.
It's also possible to transmit an unframed 0 or 1 level.
For testing purposes it's possible to transmit defective Frame Alignment Signals (FAS) to check the counterpart deframer.
An extra data channel in the overhead bits of the E3 frame enables the possibility to transmit user or control data with a data rate of nearly 90 kbit/sec. This feature is fully compliant with the ITU standards. In detail it uses the first four justification control bits (CJ1, J=1..4) in the E3 frame overhead. This is possible because the receiver performs a majority-decision with the three justification control nibbles (CJ1,CJ2,CJ3, J=1..4) when deciding if a justification must be done or not. One erroneous nibble doesn't affect the justification decision.
Combined error outputs for the E1 and the E2 domain reports problems with the signal clocking. If a E1 interface clock is too fast or too slow compared with the E3 reference clock, the E1 interface data are delivered too fast or too slow. This causes a FIFO overflow or an underflow. This event is reported on the combined error output.
Documentation for the E3 - Mux / Demux : PDF-Document
VHDL-Moduls of the E3 - Mux / Demux : Zip-File
4.a. E3 - Multiplexer

4.b. E3 - Demultiplexer

5. VCO - Voltage Controlled Oscillator
This VHDL-Module is a simple VCO. It is only for simulation, not for synthesis.
It is controlled by the following generic values :
VCO_MIN_FREQ : minimal oscillation frequency of the VCO
VCO_MAX_FREQ : maximal oscillation frequency of the VCO
VCO_BEG_FREQ : starting frequency of the VCO at start of simulation (time=0)
DAMPING : damping factor from the Phase Comparator to the VCO-Control-Level
This value controls the rapidness of the VCO frequency change, when the input signals changes.
VHDL-Modul of the VCO-Modul : Zip-File
entity VCO_WITH_PLL is
generic (
VCO_MIN_FREQ : real := 1000000.0; -- VCO Minimum Frequency [Hz]
VCO_MAX_FREQ : real := 100000000.0; -- VCO Maximum Frequency [Hz]
VCO_BEG_FREQ : real := 10000000.0; -- VCO Start Frequency at time = 0 [Hz]
DAMPING : real := 0.001 -- Damping Factor from Phase Comparator to VCO
);
port (
CLK_REF_IN : in std_logic; -- Reference Clock Input
CLK_FB_IN : in std_logic; -- Reference Clock Input
CLK_VCO_OUT : out std_logic -- Output Clock of the VCO
);
end VCO_WITH_PLL;
Contact - Information
Thorsten Gaertner
Schulstrasse 10
22113 Oststeinbek
GERMANY
e-Mail : vhdl_at_thorsten-gaertner_dot_de
(Replace "_at_" with "@" and "_dot_" with ".")
출처: http://www.thorsten-gaertner.de/vhdl/vhdl.htm
![]()
Send to a colleague |
Print this document