一种用于星载高速调制器编码fpga中的dcm自动复位方法

文档序号:7515741阅读:298来源:国知局
专利名称:一种用于星载高速调制器编码fpga中的dcm自动复位方法
技术领域
本发明涉及一种用于星载高速调制器编码FPGA中的DCM自动复位设计技术。
背景技术
目前,星载高速调制器中的信道编码功能大多使用Xilinx公司FPGA来实现,其中时钟频率合成功能由FPGA中数字时钟管理模块(DCM)完成。考虑到卫星产品对可靠性的苛刻要求,在应用前需要确定DCM模块工作的稳定性。通过查阅Xilinx公司VertexII系列器件用户手册《Virtex-1I Platform FPGA UserGuide)) (UG002),当FPGA器件发生重配置、输入时钟抖动较大、或改变输入时钟频率等情况发生时,可能导致DCM失锁。而星载高速调制器在实际应用中,有工作速率切换的模式,即输入时钟频率发生变化,且变化值较大。根据手册要求,此时需要对DCM模块进行手动恢复。器件重新加电可以达到这一效果,但影响范围太大,手册中强烈推荐使用DCM复位信号“RST”对DCM进行复位来确保达到可靠的锁定状态。因此在星载高速调制器编码FPGA中,“RST”复位信号的应用对DCM模块是必要的。目前的设计方法有两种第一种通过总体设计保证调制器开机时输入时钟已稳定,设计保证在输入时钟频率切换后,发送复位信号确保锁定状态。这种思路属于被动模式,需要星载调制器的前级数据处理器、配电控制器共同配合来完成,以往的型号研制采用了这一方案。该方案的缺点是实现复杂,同时复位指令时按照事先约束好的时序发送,发送完毕是否有效复位无法判断,如出现异常则可能影响任务执行。第二种方法原理如下,如果DCM工作异常,则输出时钟异常,调制器输出调制谱将不能被地面正确解调,当判断地面调制器的锁定异常时,上注复位指令给星上,对调制器进行复位。这种思路属于主动模式,可以在DCM输出错误时做出识别,并主动复位,直到达到正常的状态。该方案的缺点是需要地面和星上共同配合,操作过程延迟大,同时由于需要上下行共同配合,提高了星务软件的复杂度。

发明内容
本发明的技术解决问题是克服现有技术的不足,提供一种用于星载高速调制器编码FPGA中的DCM自动复位方法,该方法实时性、可实现性及可靠性强。本发明的技术解决方案是一种用于星载高速调制器编码FPGA中的DCM自动复位方法,步骤如下(I)使用DCM模块的输入时钟clkin产生主计数器count,计数范围从O到T, count受到clkin的触发进行循环;(2)在主计数器count = O的时刻,使用DCM模块的输入时钟clkin产生时钟判读计数器count_test,并在count = O的时候对count_test进行清O,同时将复位信号rst置为O ;(3)主计数器count从I开始计数至count = tl,利用输入时钟clkin信号对倍频输出时钟信号clkout的频率进行判读;具体如下(3.1)将clkout进行N分频后进行M倍频,得到用于检测频率的分频时钟count_elk ;M ^ 32 ;(3. 2)输入时钟clkin对分频时钟count_clk进行判断,当分频时钟count_clk上升沿时,时钟判读计数器count_test加I,复位信号rst = O ;设n = tl/(N/M),η要求为两位数;(4)在 count = tl+1 时刻,当 count_test > MAX,或者 count_test < MIN,或者DCM锁定标志为低时,则表明DCM模块失锁,置复位信号rst = I,反之rst = O ;MAX = n+2,MIN = n-2 ;(5) count = tl+2至t2时刻,复位信号rst保持步骤(3)的设置;t2_tl > 4 ;(6) count = t2+l至T时刻,复位信号rst = O,下一循环从步骤(2)开始。所述的clkin判断count_clk上升沿出现的方法如下用clkin对count_clk进行2次延迟采样,当两次采样得到的 值分别为I和O时,即为c0unt_clk上升沿出现的时刻。本发明与现有技术相比有益效果为(I)本发明提出是在调制器编码FPGA内部定时、自动对DCM输出时钟的正确性进行判决,并根据需要发送复位指令进行复位。本思路也属于主动模式,不同之处是DCM工作状态的监测和复位指令的发送都在调制器编码FPGA内部完成,对前级设备没有特殊要求,实现方式可以在调制器编码FPGA内部增加一个VHDL预研描述的子程序模块,实时性、可实现性及可靠性三方面均有优势,而且产品通用性和可移植性更好。(2)本发明在增加了复位指令主动性的同时,并未给设备本身及系统带来过多的开销,只需要在FPGA自身的程序中增加一个模块,进行简单的参数设置即可满足不同应用条件,这使的星载高速调制器复杂的编码算法中不同频率的时钟变换更加可靠、方便。


图1为DCM模块接口图;图2为本发明自动复位流程图。
具体实施例方式下面结合附图对本发明做详细说明。首先介绍本发明的原理本发明的关键是确定识别出DCM失锁的关键因素,以及合理有效的发出复位信号。从DCM模块的接口图中可以看出,它有一个名为“LOCKED”的输出信号,Xilinx 用户手册《Virtex-1I Platform FPGA User Guide)) (UG002)该信号的定义为“当激活的所有DCM电路锁定时变为高”(见图1)。而在实际应用中我们发现,DCM模块的锁定信号并不能可靠的反应DCM的输出状态,在某些情况下可能出现锁定信号为高,而DCM模块工作不正常d的情况。也就是说,不能单独依赖“LOCKED”信号来判断DCM的锁定状态。从实际角度出发,最直接的判断DCM锁定正确性的方法即判断出输出信号的频率,这就需要一个参考时钟,在不增加产品复杂度的情况下,最好的办法就是使用输入时钟作为参考信号,原因如下>只有输入时钟正常或最终处于正常状态的情况下,我们所做的这些工作才是有意义的,因此假定输入时钟是正常的;>输入时钟和输出时钟的关系是确定的(倍频次数确定),因此当切换输入时钟速率时,复位机制电路不需要再做适应性修改;鉴于输出频率和输入频率可能非常接近,而且往往高于输入频率,因此在判决前需要按照事先设定的因子先对输出时钟进行分频,得到一个比较低的频率再进行计数判决。使用输入时钟产生的计数器对DCM倍频模块的锁定标志位和倍频输出信号的频率进行监控,如果发现锁定标志变低或输出时钟频率超出范围则产生复位脉冲对DCM模块复位。复位信号为高电平有效。根据以上设计原理,以M倍频为例(M最高为32,可以是任意两个小于32的自然数组成的分数),自复位信号rst的产生方法如图2所示。在图2的流程图中,定义DCM模块的输入时钟信号为clkin,倍频输出时钟信号为clkout,复位信号rst,锁定 标志信号LOCKED。整个自动复位过程可以分为6个步骤 步骤 I使用输入时钟clkin产生主计数器count,范围从O到T,受到clkin的触发进行循环。针对背景应用中超过几十兆频率的时钟信号,建议T可以选择100000。 步骤 2步骤2的执行时间为主计数器count = O的时刻。使用输入时钟clkin产生时钟判读计数器count_test,并在count = O的时候对count_test进行清O,同时将复位信号rst置为O。 步骤 3步骤3的执行时间为主计数器count = I tl的时刻。步骤3中使用clkin信号对倍频输出时钟信号clkout的频率进行判读。首先将clkout进行N分频,得到一个相对于clkin较低的频率,假定倍频次数M为2,则可以选择N为1024,此时得到用于检测频率的分频时钟count_clk = clkout/1024=clkin * 2/1024 = clkin/512。接下来对count_clk信号的频率进行判读。步骤3的执行时间为count = I tl的时刻,如果clkout频率正确,则这段时间中count_clk共有tl/(N/M) = tl/512个周期,而每当count_clk出现一个上升沿时,时钟判读计数器count_test加I,这里可以取tl =8192,则步骤3结束时,count_test将停留在8192/512 = 16。步骤3的参数选择主要是考虑不同时钟之间的比例关系,参数选取的原则就是count_clk应当是clkin的几百分之一(1000分之一至500分之一),而最终应保证count_test在步骤3结束时至少是2位数。使用clkin判断count_clk上升沿出现的方法如下用clkin对count_clk进行2次延迟采样,当两次采样得到的值分别为I和O时,即为c0unt_clk上升沿出现的时刻。
步骤 4步骤4的执行时间为主计数器count = tl+1的时刻。步骤4中,将根据前面分析的结论,从LOCKED信号的电平和clkout的频率两个因素对DCM模块的工作状态进行判断。当LOCKED信号变低或countjest信号未停留在正确位置,则认为DCM工作异常。因此步骤4的重点就是要识别出以上两种情况,并决定是否发送复位信号。对于count_test信号,这里需要给出MAX和MIN两个容错边界,这是因为clkin对court_clk的异步采样可能出现误差。以上面步骤中选取的参数为例,count_test在此时应当停留在16,我们选取MAX和MIN分别为18和14,则当count_test高于18或小于14时,我们认为输出频率错误。当count_test大于MAX或小于MIN,或DCM锁定标志为低,则DCM失锁,复位信号rst 置’ I’,反之 rst 置’ O’。 步骤 5步骤5的执行时间为主计数器count = tl+2 t2的时刻。

步骤5中,将rst信号(在tl+Ι时刻的值)在tl+2 t2的范围内进行了保持,以得到足够的复位脉冲宽度。复位信号脉冲宽度要求大于3个时钟周期,这里选择一个较大的值,例如t2选50000,保证足够的余量。 步骤 6步骤6的执行时间为主计数器count = t2+l T的时刻。步骤6中,rst置’O’,一直到计数器count计到T,作为复位动作的执行等待时间。Xilinx公司手册中对DCM复位后到锁定状态所需时间的描述,要求数千个时钟周期,这里选择一个较大的值,例如50000,保证足够的余量。综上,DCM复位机制一个判断周期共为T个时钟(clkin)周期,以50MHz的输入时钟为例,假定T选取100000,一个判断周期仅需要2ms,复位延迟非常小。程序设计中提取出M,MAX, MIN三个可变自选参数,作为模块的调节因子,通过适当取值即可适应不同频率的需求,在编码程序中直接调用该模块即可。本发明未详细说明部分属于本领域技术人员公知常识。
权利要求
1.一种用于星载高速调制器编码FPGA中的DCM自动复位方法,其特征在于步骤如下 (1)使用DCM模块的输入时钟clkin产生主计数器count,计数范围从O到T,count受到clkin的触发进行循环; (2)在主计数器count= O的时刻,使用DCM模块的输入时钟clkin产生时钟判读计数器count_test,并在count = O的时候对count_test进行清O,同时将复位信号rst置为O ; (3)主计数器count从I开始计数至count= tl,利用输入时钟clkin信号对倍频输出时钟信号clkout的频率进判读;具体如下 (3.1)将clkout进行N分频后进行M倍频,得到用于检测频率的分频时钟count_clk ;M ^ 32 ; (3. 2)输入时钟clkin对分频时钟count_clk进行判断,当分频时钟count_clk上升沿时,时钟判读计数器count_test加I,复位信号rst = O ; 设n = tl/ (N/M),η要求为两位数;(4)在count = tl+1 时刻,当 count_test > MAX,或者 count_test < MIN,或者 DCM 锁定标志为低时,则表明DCM模块失锁,置复位信号rst = 1,反之rst = O ;MAX = n+2,MIN=n_2 ; (5)count = tl+2至t2时刻,复位信号rst保持步骤(3)的设置;t2_tl > 4 ; (6)count = t2+l至T时刻,复位信号rst = O,下一循环从步骤(2)开始。
2.根据权利要求1所述的一种用于星载高速调制器编码FPGA中的DCM自动复位方法,其特征在于所述的clkin判断count_clk上升沿出现的方法如下用clkin对count_clk进行2次延迟采样,当两次采样得到的值分别为I和O时,即为c0unt_clk上升沿出现的时刻。
全文摘要
一种用于星载高速调制器编码FPGA中的DCM自动复位方法,(1)使用DCM模块的输入时钟clkin产生主计数器count,计数范围从0到T,count受到clkin的触发进行循环;(2)在count=0的时刻,使用DCM模块的输入时钟clkin产生时钟判读计数器count_test,并在count=0的时候对count_test进行清0,同时将复位信号rst置为0;(3)主计数器count从1开始计数至t1,利用输入时钟clkin信号对倍频输出时钟信号clkout的频率进行判读;(4)在count=t1+1时刻,当count_test>MAX,或者count_test<MIN,或者DCM锁定标志为低时,则表明DCM模块失锁,置复位信号rst=1,反之rst=0;(5)count=t1+2至t2时刻,复位信号rst保持;(6)count=t2+1至T时刻,复位信号rst=0。
文档编号H03K17/22GK103051310SQ20121026445
公开日2013年4月17日 申请日期2012年7月27日 优先权日2012年7月27日
发明者张伟, 王加强, 张建华, 徐常志, 常鸿 申请人:西安空间无线电技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1