Procedure of DSP Acceleration Program
Robert Webber (5/13/96)

Constraints | Memory Structure | Major DSP Program Functions |
DSP Support Program Functions, Hardware Inputs & Outputs to BDFSM, and DSP Program Sequencing
[ Booster Notes ] [ *Booster Home* ]


Constraints:

1.) Frequency curve table loaded to BDFSM must contain N £ 10,000 points, 1 point per 4 microseconds. DSP program is constructed so as to require this point spacing. Once triggered, the curve is played through in the forward direction at one update per microsecond (DSP iterates between the 4 microsecond point spacing.) Curve is then played through in reverse at one update per 4 microseconds. Each update in the reverse direction skips M points in the curve table, with the result that return of the curve to its initial value is M times faster than stepping forward. DSP will report error if total curve cycle time is greater than 60 milliseconds. That is 4*N*(1+1/M) must be less than 60,000! For normal Booster operation frequency table will be 9,000 points, and M will be 4. Therefore curve plays forward in 36 milliseconds and reverse in 8 milliseconds.

2.) Bias curve table loaded to BDFSM must contain N £ 10,000 points, 1 point per 8 microseconds. DSP program is constructed so as to require this point spacing. Once triggered, the curve is played completely through in one direction only. Table must contain the complete bias current cycle. This permits ramp up and ramp down curves to have different shapes. DSP will report error if total curve cycle time is greater than 60 milliseconds. That is N must be less than 7500! For normal Booster operation frequency table will be 7500 points. Therefore the bias curve plays in 60 milliseconds.

Memory Structure:

The 16K word shared memory on BDFSM, the only memory typically accessible by VXI in normal operating conditions, is structured as below:

Address                                     Assignment
PARAMETERS --- 16x3 words
0x0000                                     New Injection Freq. Value Flag INJFRQFLG
0x0001                                     Injection Frequency Setting INJFRQS
0x0002                                     Injection Frequency Reading INJFRQR

0x0003                                     New Curve Delay Value Flag CRVDLYFLG
0x0004                                     Curve Delay Setting CRVDLYS
0x0005                                     Curve Delay Reading CRVDLYR

0x0006                                     New Freq. Curve Reverse Step Value Flag REVSTEPFLG
0x0007                                     Frequency Curve Reverse Step Setting REVSTEPS
0x0008                                     Frequency Curve Reverse Step Reading REVSTEPR

0x0009                                     New Freq. Curve Reverse Step Value Flag REVSTEPFLG
0x000A                                    Frequency Curve Reverse Step Setting REVSTEPS
0x000B                                     Frequency Curve Reverse Step Reading REVSTEPR

0x000C                                     New Freq. Curve Reverse Step Value Flag REVSTEPFLG
0x000D                                     Frequency Curve Reverse Step Setting REVSTEPS
0x000E                                     Frequency Curve Reverse Step Reading REVSTEPR

0x000F-0x002F                         13 Spare parameters w/ flag, setting, and reading attributes

MODE and STATUS FLAGS --- 32 words
0x0030                                     Standby Cycle Flag STBYFLG
0x0031                                     DC Cycle Flag DCFLG
0x0032                                      DSP BusLock Flag BUSLKFLG
0x0033                                     Internal/External Bias Table Source Flag BTSFLG
0x0034-004F                            Spare Mode and Status Flags

SEMAPHORES --- 32 words
0x0050                                         Request Freq. Table Echo Flag RFTFLG
0x0051                                         Request Bias Table Echo Flag RBTFLG
0x0052                                         Curve Table Buffer Free Flag CTBFREEFLG
0x0053                                         New Frequency Table Flag NFTFLG
0x0054                                         New Bias Table Flag NBTFLG
0x0055-006F                               Spare Semaphore Flags

FAST TIME PLOT BUFFERS --- 144 words
0x0070-00FF                             (undefined)

CURVE TABLES --- 10,240 words
0x0100                                         New Curve Table Set or Echo Size TSIZE
0x0101-28FF                              New Curve Value Set or Echo Buffer (10, 239 words) TABLE

SNAPSHOT PLOT BUFFERS --- 5,888 words
0x2900-3FFF                             (undefined)

Major DSP Program Functions

1.) Initialize DSP and BDFSM
2.) Initialize for next (this) cycle (get new injection frequency offset and update curve table, update Injection Offset Echo Register
3.) Accelerate Beam (play freq. and bias curves and phaselock to beam at 1 microsecond update rate)
4.) Play frequency curve is reverse
5.) Play bias curve
6.) Read in and initialize new frequency curve table and injection points mirror
7.) Read in and initialize new bias curve table
8.) Write current frequency curve table to curve table buffer
9.) Write current bias curve table to curve table buffer
10.) Compute bias table from frequency table
11.) Write default parameters and curve tables to non-volatile boot memory
12.) Write fast time plot values to buffer registers

Functions 1 and 3 are exclusive and have complete control of DSP; other functions must operate together without conflict.

DSP Support Program Functions

1.) Injection Curve Mirror
2.) Circular Buffer Interrupt
3.) Injection Frequency Offset Handler
4.) Floating Point Division Routine
5.) Compute Bias Table from Freq table

Hardware Inputs to BDFSM
1.) Cycle start trigger to IRQ 1
2.) PhaseLock gate to Flag0
3.) Bias Curve permit to Flag 1 (what about pre-pre-pulse cycle?)
4.) Beam Present Signal on Sumbus to Flag 2
5.) Phase Detector signal to ADC2

Hardware Outputs from BDFSM
1.) Booster RF from DDSO
2.) Booster BPM LO RF from DDS1
3.) Bias curve from DACO
4.) Analog of Frequency Curve from DAC 1

DSP Program Sequencing
Reset - Initialize Chip with INIT-21K which


[ top of page ]
[ Booster Notes ] [ *Booster Home* ]

Security, Privacy, Legal