OK, so 1 PPS GPS to Rb -> need a TIC; 10MHz Rb to OCXO -> need a PLL. Are you interested in an all digital 10nS single shot TIC that gives you a 2's complement number (negative at the left of the GPS PPS and positive at the right)? Here it is. This is my TIC, I use it on all my GPSDOs.
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY PPSPSI IS PORT (PPSTIEOut: OUT std_logic_vector (23 downto 0); PPSInA, PPSInB, Clock100, Clock20: IN std_logic); END ENTITY PPSPSI; ARCHITECTURE RippleCounter OF PPSPSI IS SIGNAL PPSPhaseCntAB, PPSPhaseCntBA: std_logic_vector (22 downto 0); SIGNAL PPSPhaseLtc: std_logic_vector (23 downto 0); SIGNAL PPSADlyed, PPSBDlyed: std_logic_vector (4 downto 0); SIGNAL PPSGateAB, PPSGateBA, PPSLtcA, PPSRstA, PPSLtcB, PPSRstB, StopCntAB, StopCntBA: std_logic; SIGNAL RstGateAB, RstGateBA, OvrLtcAB, OvrLtcBA, PPSLtcA1, PPSLtcB1, PPSA2BSign: std_logic; BEGIN PPSAtoBSign: PROCESS --Sign will be 1 when A leads B (that is the TIE is negative) BEGIN WAIT UNTIL PPSInB'EVENT AND PPSInB='1'; PPSA2BSign<= PPSInA; END PROCESS PPSAtoBSign; PPSAtoBGate: PROCESS (PPSInA, RstGateAB) BEGIN IF RstGateAB='1' THEN PPSGateAB<= '0'; ELSIF PPSInA'EVENT AND PPSInA='1' THEN PPSGateAB<= '1'; END IF; END PROCESS PPSAtoBGate; PPSBtoAGate: PROCESS (PPSInB, RstGateBA) BEGIN IF RstGateBA='1' THEN PPSGateBA<= '0'; ELSIF PPSInB'EVENT AND PPSInB='1' THEN PPSGateBA<= '1'; END IF; END PROCESS PPSBtoAGate; PPSADelay: PROCESS BEGIN WAIT UNTIL Clock20'EVENT AND Clock20='1'; PPSADlyed<= PPSADlyed (3 downto 0)&PPSInA; END PROCESS PPSADelay; PPSBDelay: PROCESS BEGIN WAIT UNTIL Clock20'EVENT AND Clock20='1'; PPSBDlyed<= PPSBDlyed (3 downto 0)&PPSInB; END PROCESS PPSBDelay; PPSPhaseErrAB0: PROCESS (Clock100, PPSRstB) --Phase error counter bit 0 clocked by the gated 100MHz BEGIN IF PPSRstB='1' THEN PPSPhaseCntAB (0)<= '1'; ELSIF Clock100'EVENT AND Clock100='1' THEN IF PPSGateAB='1' AND StopCntAB='0' THEN PPSPhaseCntAB (0)<= NOT PPSPhaseCntAB (0); END IF; END IF; END PROCESS PPSPhaseErrAB0; PPSPhaseErrAB: FOR I IN 1 TO 22 GENERATE PPSPhaseErrABi: PROCESS (PPSPhaseCntAB (I-1), PPSRstB) --Phase error counter bit 1 BEGIN IF PPSRstB='1' THEN PPSPhaseCntAB (I)<= '1'; ELSIF PPSPhaseCntAB (I-1)'EVENT AND PPSPhaseCntAB (I-1)='1' THEN PPSPhaseCntAB (I)<= NOT PPSPhaseCntAB (I); END IF; END PROCESS PPSPhaseErrABi; END GENERATE PPSPhaseErrAB; PPSPhaseErrBA0: PROCESS (Clock100, PPSRstA) --Phase error counter bit 0 clocked by the gated 100MHz BEGIN IF PPSRstA='1' THEN PPSPhaseCntBA (0)<= '0'; ELSIF Clock100'EVENT AND Clock100='1' THEN IF PPSGateBA='1' AND StopCntBA='0' THEN PPSPhaseCntBA (0)<= NOT PPSPhaseCntBA (0); END IF; END IF; END PROCESS PPSPhaseErrBA0; PPSPhaseErrBA: FOR I IN 1 TO 22 GENERATE PPSPhaseErrBAi: PROCESS (PPSPhaseCntBA (I-1), PPSRstA) --Phase error down counter BEGIN IF PPSRstA='1' THEN PPSPhaseCntBA (I)<= '0'; ELSIF PPSPhaseCntBA (I-1)'EVENT AND PPSPhaseCntBA (I-1)='0' THEN PPSPhaseCntBA (I)<= NOT PPSPhaseCntBA (I); END IF; END PROCESS PPSPhaseErrBAi; END GENERATE PPSPhaseErrBA; StopCntAB<= '1' WHEN PPSPhaseCntAB (22 downto 1)="0000000000000000000000" ELSE '0'; StopCntBA<= '1' WHEN PPSPhaseCntBA (22 downto 1)="1111111111111111111111" ELSE '0'; PPSPhaseLtc<= '0'&PPSPhaseCntBA WHEN PPSLtcA='1' AND PPSA2BSign='0' AND StopCntBA='0' ELSE '1'&PPSPhaseCntAB WHEN PPSLtcB='1' AND PPSA2BSign='1' AND StopCntAB='0' ELSE PPSPhaseLtc; OvrLtcAB<= StopCntAB WHEN PPSLtcB1='1' ELSE OvrLtcAB; OvrLtcBA<= StopCntBA WHEN PPSLtcA1='1' ELSE OvrLtcBA; RstGateAB<= '1' WHEN PPSInB='1' AND PPSBDlyed (1)='0' ELSE '0'; RstGateBA<= '1' WHEN PPSInA='1' AND PPSADlyed (1)='0' ELSE '0'; PPSLtcA<= '1' WHEN PPSADlyed="00011" ELSE '0'; PPSLtcA1<= '1' WHEN PPSADlyed="00001" ELSE '0'; --To be used by the terminal count value PPSRstA<= '1' WHEN PPSADlyed="01111" ELSE '0'; PPSLtcB<= '1' WHEN PPSBDlyed="00011" ELSE '0'; PPSLtcB1<= '1' WHEN PPSBDlyed="00001" ELSE '0'; --To be used by the terminal count value PPSRstB<= '1' WHEN PPSBDlyed="01111" ELSE '0'; PPSTIEOut<= "011111111111111111111111" WHEN OvrLtcAB='1' AND OvrLtcBA='1' AND PPSPhaseLtc (23)='0' ELSE "100000000000000000000000" WHEN OvrLtcAB='1' AND OvrLtcBA='1' AND PPSPhaseLtc (23)='1' ELSE PPSPhaseLtc; END ARCHITECTURE RippleCounter; On Mon, May 7, 2012 at 7:58 PM, <ewkeh...@aol.com> wrote: > 10 MHz between Rb and OCXO 1 pps between GPS and Rb. Always a Rb with > GPS. > Bert Kehren > > > In a message dated 5/7/2012 1:30:57 P.M. Eastern Daylight Time, azelio. > bori...@screen.it writes: > > Using the PPS as a sync source? > > On Mon, May 7, 2012 at 6:24 PM, <ewkeh...@aol.com> wrote: > > > Tried, no interest, some one has offered to in the future do a gate > array > > version, you may want to wait for that I am in the mean time using am > > analog > > loop for less than 100 seconds between Rb and OCXO and a very modified > > Shera for GPS/Rb. Works for me. > > Contact me off list and we can talk. > > Bert > > > > > > > > In a message dated 5/7/2012 12:05:54 P.M. Eastern Daylight Time, > > garn...@gmail.com writes: > > > > This is something I would also like to know. I'm sure many others > > would be interested as well. Bert would it be possible for you to > > share your thoughts on the matter with the group at large? > > > > -Eric > > > > On Mon, May 7, 2012 at 8:43 AM, <ewkeh...@aol.com> wrote: > > > Doc contact me off list > > > Bert Kehren > > > > > > > > > In a message dated 5/7/2012 11:40:04 A.M. Eastern Daylight Time, > > > docdai...@gmail.com writes: > > > > > > Does anyone have any knowledge of a simple (just soldering a few > > > connections and maybe programming a hz/volt rate) PCB for > synchronizing > > a precision > > > OCXO to a GPSDO? I am trying to improve short term stability with a > > high > > > stability OCXO and dont want to "cut into" my fury and replace the > > OCXO. I > > > cando it manually but this seems like it would be nice and desirable > > for > > > many yet I can't find anything. I presume it would have to be > digital > > > because of the long time constant. > > > > > > Doc > > > KX0O > > > > > > Sent from my iPhone > > > _______________________________________________ > > > time-nuts mailing list -- time-nuts@febo.com > > > To unsubscribe, go to > > > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > > > and follow the instructions there. > > > > > > _______________________________________________ > > > time-nuts mailing list -- time-nuts@febo.com > > > To unsubscribe, go to > > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > > > and follow the instructions there. > > > > > > > > -- > > --Eric > > _________________________________________ > > Eric Garner > > > > _______________________________________________ > > time-nuts mailing list -- time-nuts@febo.com > > To unsubscribe, go to > > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > > and follow the instructions there. > > _______________________________________________ > > time-nuts mailing list -- time-nuts@febo.com > > To unsubscribe, go to > > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > > and follow the instructions there. > > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to > https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > and follow the instructions there. > _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.