Programmable Pulse Generator


Contact People:

Sy Rankowitz
Jack Fried
Stephen Adler

Last Update: 2/9/99


0.0 Notice

This is a preliminary document and may change without notice. Please send any corrections, suggestions and/or general feedback to Jack Fried
.


1.0 Introduction

This document describes the Phenix Programmable Pulse Generator (PPG). It is contained on one 9U x 400mm eurocard and one 9u x 120 mm transition module. The main function of the system is to provide 8 programmable Pulses  that are available in TTL, NIM AND ECL logic levels and produce the  Following signals . 2.0 Board Level Overview
 

 The PPG  contains a 256 byte pattern memory which can be programed via the VME64 Backplane and addressed by the mode bits (from the granule timing module (GTM)) to produce any desired pulse pattern. The pulse width is selectable through on board registers from 26.5 ns up to 106 ns in 26.5 ns steps. The Pulse can also be delayed up to 26.5 ns in .15 ns steps . Another  256x8 memory  is used to  describe what pulse combination occurred and is brought to the front panel as LVDS. All signals are brought to the front panel of the PPG as TTL,ECL and NIM. Level 1 synchronized to the 9.38MHZ clock is also brought to the front panel as TTL,ECL and NIM. The PPG can function independent of the GTM, by use of its built in scheduler. The on board scheduler is 256 bytes deep and it allows any number of patterns and repeats. The PPG can also be programed as a continuos pulse generator (heart beat generator)  triggered by the GTM mode bits or software. The frequency of the heart beat ranges from .56 HZ -4.7MHZ with a pulse width of 106ns - 27 us. once started the  heart beat can only be turned off by a board reset ( independent of GTM start and stop pulse).



 
 

 Figure 1. Block Diagram of Programmable Pulse Generator
 


 
 
 
 


 


 



 
 
 
 
 
 
 
 
 
 
Base +(offset)
   
bits
FUNCTION
0000
 
R
0..15
BOARD ID NUMBER
0002
 
R
0..15
BOARD SERIAL NUMBER
1000
D0
R/W
0
0 LOAD BIT PATTERN MEMORY
1 NORMAL RUN
1002
D1
R/W
0
0 USE ON BOARD CLOCK
1 USE MODE BITS AND CLOCK FROM GTM
1002
D1
R/W
1
ON BOARD SCHEDULER
   0 OFF
   1 ON
1002
D1
R/W
2
ON BOARD SCHEDULER
   0 USE 10MHZ CLOCK
   1 USE 40MHZ CLOCK
1004
D2
R/W
0
SETUP BIT PATTERN IN MEMORIES 
   0 OFF
   1 ON
1006
D3
R/W
0
PGP 0 CONTINUOUS HEART BEAT PULSE ENABLE
   0 OFF
   1 ON
1006
D3
R/W
1
PGP 1 CONTINUOUS HEART BEAT PULSE 
ENABLE
   0 OFF
   1 ON
1006
D3
R/W
2
PGP 2 CONTINUOUS HEART BEAT PULSE ENABLE
   0 OFF
   1 ON
1006
D3
R/W
3
PGP 3 CONTINUOUS HEART BEAT PULSE ENABLE 
  0 OFF
  1 ON
1008
D4
R/W
0..4
PGP 0 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

100A
D5
R/W
0..4
PGP 1 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

100C
D6
R/W
0..4
PGP 2 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

100E
D7
R/W
0..4
PGP 3 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

1010
D8
R/W
0..4
PGP 4 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

1012
D9
R/W
0..4
PGP 5 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

1014
D10
R/W
0..4
PGP 6 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

1016
D11
R/W
0..4
PGP 7 PULSE WIDTH SETUP

0X00 = 26.5 ns
0X01 = 53 ns
0X02 = 79.5 ns
0X03 = 106 ns

1018
D12
R/W
0..7
DELAY PGP 0..3 ¼ CLOCK

0..1 PULSE 0
2..3 PULSE 1
4..5 PULSE 2
6..7 PULSE 3

00 = NO DELAY
01 = ¼ DELAY
10 = ½ DELAY
11 = ¾ DELAY

101A
D13
R/W
0..7
DELAY PGP 4..7 ¼ CLOCK

0..1 PULSE 4
2..3 PULSE 5
4..5 PULSE 6
6..7 PULSE 7

00 = NO DELAY
01 = ¼ DELAY
10 = ½ DELAY
11 = ¾ DELAY

101C
D14
R/W
0..1
DELAY DESC BITS ¼ CLOCK

00 = NO DELAY
01 = ¼ DELAY
10 = ½ DELAY
11 = ¾ DELAY

101E
D15
R/W
0..7
(RESERVED) (NEW BOARD) 10ns DELAY 
1020
D16
R/W
0..7
PGP 0 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
1022
D17
R/W
0..7
PGP 1 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
1024
D18
R/W
0..7
PGP 2 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
1026
D19
R/W
0..7
PGP 3 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
1028
D20
R/W
0..7
PGP 4 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
102A
D21
R/W
0..7
PGP 5 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
102C
D22
R/W
0..7
PGP 6 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
102E
D23
R/W
0..7
PGP 7 FINE DELAY (0-256) IN 0.15ns STEPS
(At startup set to zero)
1030
D24
R
0..7
MODE BIT SIMULATOR COUNTER VALUE
(At startup set to zero)
1032
D25
R/W
0..7
PGP 0 CONTINUOUS HEART BEAT PULSE WIDTH

PULSE WIDTH = (255 X) * 106ns
RANGE FOR X = 0 -- 254

1034
D26
R/W
0..7
PGP 1 CONTINUOUS HEART BEAT PULSE WIDTH

PULSE WIDTH = (255 X) * 106ns
RANGE FOR X = 0 254

1036
D27
R/W
0..7
PGP 2 CONTINUOUS HEART BEAT PULSE WIDTH

PULSE WIDTH = (255 X) * 106ns
RANGE FOR X = 0 254

1038
D28
R/W
0..7
PGP 3 CONTINUOUS HEART BEAT PULSE WIDTH

PULSE WIDTH = (255 X) * 106ns
RANGE FOR X = 0 254

103A
D29
R/W
0
ARM HEART BEAT PULSE 0

0 .. DISABLED
1 .. ARMED

103A
D29
R/W
1
ARM HEART BEAT PULSE 1

0 .. DISABLED
1 .. ARMED

103A
D29
R/W
2
ARM HEART BEAT PULSE 2

0 .. DISABLED
1 .. ARMED

103A
D29
R/W
3
ARM HEART BEAT PULSE 3

0 .. DISABLED
1 .. ARMED

103A
D29
R/W
4
CONTINUOUS HEART BEAT PULSE 

TRIGGER
SET TO 1 THEN TO ZERO 

103C
D30
R/W
0
CONTINUOUS HEART BEAT TRIGGER SELECT 

0.. MODE BITS WILL TRIGGER ITS OWN 
PULSE
1.. ANY PULSE ENABLED WILL
TRIGGER ALL ENABLED PULSES

(USE THIS MODE FOR FORCE TRIGGER)

103E
D31
R/W
0
1.. RESET ALL BOARD
103E
D31
R/W
1
1 .. LOAD PULSE WIDTH COUNTER 
103E
D31
R/W
2
1 .. LOAD HEART BEAT COUNTER 
1040
D32
R/W
0..15
HEART BEAT FREQUENCY COUNTER 
PULSE 0 (0..15)
1042
D33
R/W
0..7
HEART BEAT FREQUENCY COUNTER 
PULSE 0 (16..23)

X = 0..23 
PERIOD = (2^23 X) * 106ns
FREQ. = 1/PERIOD

1044
D34
R/W
0..15
HEART BEAT FREQUENCY COUNTER 
PULSE 1 (0..15)
1046
D35
R/W
0..7
HEART BEAT FREQUENCY COUNTER 
PULSE 1 (16..23)

X = 0..23 
PERIOD = (2^23 X) * 106ns
FREQ. = 1/PERIOD

1048
D36
R/W
0..15
HEART BEAT FREQUENCY COUNTER 

PULSE 2 (0..15)

104A
D37
R/W
0..7
HEART BEAT FREQUENCY COUNTER 
PULSE 2 (16..23)

X = 0..23 
PERIOD = (2^23 X) * 106ns
FREQ. = 1/PERIOD

104C
D38
R/W
0..15
HEART BEAT FREQUENCY COUNTER 
PULSE 3 (0..15)
104E
D39
R/W
0..7
HEART BEAT FREQUENCY COUNTER 
PULSE 3 (16..23)

X = 0..23 
PERIOD = (2^23 X) * 106ns
FREQ. = 1/PERIOD


 
 
 
Base +(offset)
DEPTH
 
BITS
FUNCTION
BASE + 2000 0..FF (256 words)
R/W
0..15
PATTERN MEMORY & DESC MEMORY
BASE + 3000 0..FF (256 bytes) R/W
0..7
MODE BIT TEST MEMORY
BASE + 3000 0..FF (256 bits) R/W
8
SET TO ONE TO GO TO START OF SCHEDULER


Please report any problems to  Jack Fried