完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
GPS守时程序如下:
LIBRARY ieee; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; USE ieee.std_logic_arith.all; ENtiTY RTL IS PORT (CLK :IN STD_LOGIC; PPS:IN STD_LOGIC; OBEYPPS:OUT STD_LOGIC ); END RTL; ARCHITECTURE BEHAVE OF RTL IS CONSTANT StandFreq: STD_LOGIC_VECTOR(26 DOWNTO 0):= "101111101011110000011111111";--- 100M-1 CONSTANT COUNT_ZERO: STD_LOGIC_VECTOR(26 DOWNTO 0) :="000000000000000000000000000"; CONSTANT StandPPSWidth:STD_LOGIC_VECTOR(26 DOWNTO 0):="001001100010010110100000000";---200MS SHARED VARIABLE COUNT_2S: STD_LOGIC_VECTOR(26 DOWNTO 0):="000000000000000000000000000"; SIGNAL CLR: STD_LOGIC; SIGNAL CLR1 : STD_LOGIC; SIGNAL SEC: STD_LOGIC:='0'; BEGIN PROCESS(CLK,PPS) BEGIN IF(CLK'EVENT AND CLK='1') then CLR<=PPS; CLR1<=CLR; END IF; END PROCESS; PROCESS(CLK)---generated the obey pps and win2,NormalPPSFlag BEGIN IF CLK'EVENT AND CLK='1' THEN IF CLR = '1' AND CLR1 = '0' THEN COUNT_2S := (OTHERS =>'0'); -------- 清零 END IF; IF COUNT_2S=COUNT_ZERO THEN SEC <='1'; ELSIF COUNT_2S =StandPPSWidth THEN SEC <='0'; END IF; IF COUNT_2S ELSE COUNT_2S:= (OTHERS =>'0'); -------- 清零 END IF; END IF; END PROCESS; OBEYPPS<=SEC; END BEHAVE; 程序实现的功能是:有pps的时候,pps实时校正SEC,没有PPS时,通过晶振自己守时产生SEC。晶振采用的是铷钟,很精确。 程序运行出现的状况:有PPS时SEC输出很准确,没有pps时,自己产生的SEC一直漂 ,一天有5Us的漂浮。 漂浮现象是:先慢慢右移,右移300ns后,大幅度左移,到刚才偏右位置。 为什么出现这种现象? |
|
相关推荐
1个回答
|
|
|
自身的晶振是有温漂的,不是程序的原因,晶振引起的
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
NVMe高速传输之摆脱XDMA设计50:主要功能测试结果与分析2 nvmePCIe高速存储
252 浏览 0 评论
NVMe高速传输之摆脱XDMA设计49:主要功能测试结果与分析1
1501 浏览 0 评论
907 浏览 0 评论
855 浏览 0 评论
658 浏览 0 评论
4427 浏览 63 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 09:24 , Processed in 0.995509 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1434