一种用于相干解调的fpga时序优化方法

文档序号:10570171阅读:892来源:国知局
一种用于相干解调的fpga时序优化方法
【专利摘要】本发明公开了一种用于相干解调的FPGA时序优化方法。所述FPGA时序优化方法包括对FPGA进行流水线设计;判断是否存在总延时超过延时阈值δ的路径;判断目标路径中逻辑延时与布线延时的比值k是否大于等于延时比例阈值ε;将所述目标路径对应算法模块中的算法设置为穷举法,并将该算法模块所有可能的计算结果存储于只读存储器中;重新设置FPGA的最大扇出直至所有路径总延时的最大值小于等于延时阈值δ。本发明通过逻辑优化的方法,从而解决了有反馈或者迭代运算而不能使用流水线设计进行优化的问题,该方法将所有可能的计算结果存储于只读存储器中,从而采用穷举法减少了路径中的逻辑级数,提高了FPGA的实时处理频率。
【专利说明】
一种用于相干解调的FPGA时序优化方法
技术领域
[0001] 本发明属于现场可编程门阵列(FPGA)和信号实时解调领域,更具体地,涉及一种 用于相干解调的FPGA时序优化方法。
【背景技术】
[0002] 采用高级调制格式和相干接收方式提升光纤通信系统传输容量,已成为主流技术 方案之一。在相干接收过程中信号不可避免地会受到损伤,包括色散、偏振模色散、频率偏 移以及相位噪声等。现有技术的相干接收机数字信号处理框图如图1所示,该系统包括光混 频器、平衡探测器、ADC以及FPGA,其中光混频器的输出端连接平衡探测器的输入端,平衡探 测器的输出端连接ADC的输入端,ADC的输出端连接FPGA。用于数字信号处理的FPGA单元又 包括串并转换、色散补偿、偏振解复用、频偏补偿以及相位噪声补偿等功能模块,其中串并 转换输出端连接色散补偿输入端,色散补偿输出端连接偏振解复用输入端,偏振解复用输 出端连接频偏补偿输入端,频偏补偿输出端连接相位噪声补偿输入端。输入的光信号经过 光混频器,平衡探测器后得到模拟I,Q信号,然后经过ADC采样得到数字信号,通过串并转换 将高速串行信号转换成低速并行信号,该信号的解调(色散补偿、偏振解复用、频偏补偿、相 位噪声补偿)放在FPGA中进行。由于现场可编程门阵列(FPGA)具有较强的吞吐能力和较灵 活的性质,通常采用FPGA作为相干解调系统设计的平台。
[0003] FPGA对信号进行实时解调时,会面临硬件处理速率的"瓶颈",从而导致实时算法 的实现进程受阻。而FPGA的并行处理以及对FPGA进行时序优化,能够解决这个问题。基于 FPGA的数字信号处理系统的开发流程如图2所示,包含:器件选型、设计输入、功能仿真、综 合、优化、实现与布局布线、码流生成以及码流下载等几部分。器件选型是指根据系统的复 杂度以及所需要FPGA的实时处理频率、资源、成本等进行评估,选择合适的FPGA型号;设计 输入是指将所需要的算法以软件开发形式进行设计开发;功能仿真是指对用户设计的电路 进行功能验证,仿真的结果以文件和波形进行输出;综合是指将高级层次的描述转化为低 级层次的描述;优化是指对FPGA进行流水线设计、逻辑优化或布线优化以满足实时处理频 率的需求;随后进行实现与布局布线、码流生成以及码流下载则完成了 FPGA的设计。
[0004] 其中,优化的好坏会影响FPGA的实时处理频率。然而,现有技术的FPGA算法模块中 采用了大量的现场计算法(按照某种算法的流程设计电路,该电路用于对输入信号进行运 算,输出运算后的结果),该方法实现后路径中的逻辑级数较多,逻辑延时较长,导致FPGA实 现实时算法时的运行效率不高。例如Amado,S.B.等2014年发表在SPIE上的文章 "Clock and carrier recovery in high-speed coherent optical communication systems"("高速 相干光通信系统中实现时钟和载波恢复"),由于该方法未采取有效途径对FPGA进行逻辑优 化以及布线优化,仅能实现1.25Gb/s QPSK信号的相干解调。

【发明内容】

[0005] 针对现有技术的以上缺陷和改进需求,本发明提供了一种用于相干解调的FPGA时 序优化方法,其目的在于通过流水线设计、逻辑优化以及布线优化,提高FPGA的实时处理频 率,从而实现更高速率信号的解调。
[0006] 按照本发明的一个方面,提供了一种用于相干解调的FPGA时序优化方法,包括以 下步骤:
[0007] S1.对FPGA进行流水线设计;
[0008] S2.判断是否存在总延时超过延时阈值S的路径,若是,则选取该路径作为目标路 径,并进入步骤S3,若否,则时序优化结束,其中,所述总延时由逻辑延时和布线延时组成;
[0009] S3.判断目标路径中逻辑延时与布线延时的比值k是否大于等于延时比例阈值e, 若是,则进入步骤S4,若否,则进入S5;
[001 0] S4.将所述目标路径对应算法模块中的算法设置为穷举法,并将该算法模块所有 可能的计算结果存储于只读存储器中,重新综合布线,返回步骤S2;
[0011] S5.重新设置FPGA的最大扇出直至所有路径总延时的最大值小于等于延时阈值S, 重新综合布线,返回步骤S2。
[0012] 优选地,所述延时比例阈值e为1:4~2: 3。
[0013]优选地,所述步骤S5具体为:
[0014] S51.令i = 1,ki为当前的最大扇出,Ai是最大扇出为ki时,对应所有路径总延时的 最大值;
[0015] S52.令ki+1=[ki/2],重新综合布线,其中,ki+1为重新设置的最大扇出,[?]表示 向下取整;
[0016] S53.若Ai+1< S,则返回步骤S2,否贝lj i = i+1,返回步骤S52。
[0017] 优选地,所述S1具体为:判断总体电路中是否存在反馈回路或者迭代运算,是则保 持不变,否则选取总体电路中的组合逻辑电路,并在所述组合逻辑电路中相邻的逻辑电路 之间设置寄存器,用于储存前一级的逻辑电路的计算结果。
[0018] 优选地,所述延时阈值s < 1 /f,f为FPGA的实时处理频率。
[0019] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,通过流水线设计、 逻辑延时以及布线延时的优化,提高FPGA实时处理频率,能够取得下列有益效果:
[0020] 1、将该算法模块所有可能的计算结果存储于只读存储器中,采用穷举法减少了路 径中的逻辑级数,从而解决了因为有反馈或者迭代运算而不能通过流水线设计进行优化的 问题,提高了FPGA的实时处理频率;
[0021] 2、通过限制FPGA的最大扇出,从而解决了因扇出过大影响FPGA布线稳定性导致布 线延时较大的问题,使得器件负载减少,提高了FPGA的实时处理频率;
[0022] 3、通过逻辑延时与布线延时的比值判断当前FPGA需要优先采用哪一步骤进行优 化,从而选取更有效率的技术手段,提高了优化的效果;
[0023] 4、采用了流水线设计的方法,在组合逻辑电路中相邻的逻辑电路之间设置寄存 器,将复杂逻辑功能操作分成多个周期完成,提高了数据的吞吐量,从而提高了 FPGA的实时 处理频率。
【附图说明】
[0024]图1是相干接收机数字信号处理框图;
[0025] 图2是FPGA的开发流程图;
[0026] 图3是本发明FPGA时序优化方法流程图;
[0027]图4是未使用流水线不意图;
[0028]图5是米用流水线不意图;
[0029] 图6是本发明实施例1提供的频偏补偿算法中多级复数相乘未使用流水线示意图;
[0030] 图7是本发明实施例1提供的频偏补偿算法中多级复数相乘使用流水线示意图; [0031 ]图8是本发明实施例1提供的现场计算法视图;
[0032]图9是本发明实施例1提供的穷举法设计视图;
[0033 ]图10是本发明实施例1提供的扇出为26时硬件实现电路;
[0034]图11是本发明实施例1提供的扇出为13时硬件实现电路。
【具体实施方式】
[0035]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要 彼此之间未构成冲突就可以相互组合。
[0036]在FPGA的设计开发和综合布线完成后,FPGA的实时处理频率受路径的总延时影 响,每个路径的总延时由逻辑延时和布线延时组成。本发明提供了一种用于相干解调的 FPGA时序优化方法,以降低路径的逻辑延时和布线延时,如图3所示,包括以下步骤:
[0037] S1 ?流水线设计
[0038]判断总体电路中是否存在反馈回路或者迭代运算,是则保持不变,否则选取总体 电路中的组合逻辑电路,并在所述组合逻辑电路中相邻的逻辑电路之间设置寄存器,用于 储存前一级的逻辑电路的计算结果;
[0039]该方法缩短了在一个周期内信号通过总体电路的时间,从而使FPGA的实时处理信 号频率得以提高。如图4是未采用流水线设计的一个总体电路示意图,可以看出数据经过两 个逻辑电路(逻辑电路1,逻辑电路2,且每个逻辑电路的延时为a)需要2a,则在一个时钟 (CLK)周期内通过该总体电路的延时为2a。图5是采用流水线的一个总体电路示意图,在每 个分级(逻辑电路1,逻辑电路2)中间插入寄存器,则在第一个时钟周期经过逻辑电路1,下 一个时钟周期经过逻辑电路2,则在一个时钟周期内通过该总体电路延时为a。采用流水线 设计减少了总体电路的处理延时,从而提高了FPGA的实时处理频率。
[0040] S2.判断是否存在总延时超过延时阈值S的路径,是则选取该路径作为目标路径, 进入步骤S3,否则时序优化结束;
[0041] S3.采用流水线的条件是整个数据处理是单流向的,即总体电路中没有反馈回路 或者迭代运算,否则不能采用流水线设计的方案进行优化。当目标路径的总延时超过延时 阈值S (S < 1 /f,f为FPGA的实时处理频率),并且该路径中逻辑延时与布线延时的比值k大于 延时比例阈值e,e为1:4~2:3,其综合出来电路逻辑级数可能为数十级以上,需要对目标路 径进行逻辑优化;
[0042] S4 ?逻辑优化
[0043] 将目标路径对应算法模块中的算法设置为穷举法,即将该算法模块所有可能的计 算结果存储于只读存储器中,穷举法计算时,只需要从输入信号的值映射只读存储器中相 应计算结果的地址,再取出其对应的计算结果,从而减少了逻辑级数。重新综合布线后,各 路径的延时会有所改变,此时返回S2,重新进行检验;
[0044] 例如,如果原本算法模块的算法的公式为y = x4,其中x为输入信号,x=l、2、3、4或 5,7为输出信号,要获得7首先需要计算出1\1 = 12,再将12\12 = 7获得7。如果将该算法模 块中的算法设置为穷举法,仅需将可能获得的结果1、16、81、256、625储存于只读存储器中, 当进行信号处理时,直接根据输入信号X,可一步取出对应结果。
[0045] S5.布线优化
[0046] 布线延时与扇出关系密切,扇出(Fanout)指模块直接连接驱动的下级模块的个 数,多扇出通常指的是单个节点驱动多个下级逻辑器件。如果扇出数值达到数十以上,此时 会影响FPGA布线的稳定性,直接表现为布线延时较大,不利于时序收敛;
[0047] 上述方案中,使用综合工具可以限制最大扇出,超过最大扇出值后综合工具将自 动地对寄存器复制,从而实现布线优化。
[0048] 重新设置FPGA的最大扇出直至所有路径总延时的最大值小于等于延时阈值5,重 新综合布线后,各路径的延时会有所改变,此时返回S2,重新进行检验。该方法具体为: [0049] S51.令i = 1,ki为当前的最大扇出,Ai是最大扇出为ki时,对应所有路径总延时的 最大值;
[0050] S52 ?令ki+1 = [ki/2],重新综合布线;
[0051 ] S53 ?若Ai+1< S,则进入下一步,否则i = i+1,返回步骤S52。
[0052] 实施例1
[0053] 本实施例中采用FPGA对lOGBaud QPSK信号进行相干解调(包括频偏补偿和相位噪 声补偿),在FPGA的开发过程中采用32路并行处理,则FPGA的实时信号处理频率应达到10G/ 32 = 312.5MHz (此时阈值S为3.2ns)以上,则本实施例的时序优化方法包括以下步骤:
[0054] S1 ?流水线设计:
[0055] 判断总体电路中是否存在反馈回路或者迭代运算。如图6是本实施例提供的QPSK 信号频偏补偿和相位噪声补偿算法中的多级复数相乘的总体电路,该总体电路包括3个逻 辑电路(即3个复数乘法器DSP48单元),该组合逻辑电路不存在反馈回路或者迭代运算,可 采用流水线设计的方法进行优化。可看出,优化前每一级逻辑电路的复数乘法延迟为a,一 个时钟周期内通过该总体电路延时为3a。
[0056] 在相邻逻辑电路之间插入寄存器,将上述总体电路分成了 3级。图7为本实施例的 总体电路使用上述方法进行优化后的示意图,可看出每两个相邻逻辑电路之间增加一个寄 存器用来存储前一级的逻辑电路的处理结果,一个时钟周期内通过该总体电路延时为a。 [0057]采用流水线设计能减小三个复数乘法器组成组合逻辑电路产生的较大延时,使复 杂的逻辑操作分步完成,从而提高了 FPGA的实时处理频率。
[0058] S2.判断是否存在总延时超过延时阈值S的路径,由于本实施例FPGA实时信号处理 频率f应达到312.5MHz以上,延时阈值S必须小于等于1/f (即3.2ns)。优化前的总延时为 5.038ns,则先找出该总延时对应的目标路径的详细信息,此时该目标路径对应Unwrap模 块,如表1所示:
[0059] 表lUnwrap模块的延时路径详细信息
[0062] S3.该目标路径中逻辑延时与布线延时的比值k~0.75,由于该目标路径的k超过 了 2:3,则需要进行逻辑优化。
[0063] S4.图8为本实施例提供的现场计算法设计Unwrap模块优化前的逻辑结构图,可知 采用现场计算法电路组合逻辑级数为14级,导致FPGA逻辑延时偏大。将所述目标路径 (Unwrap模块)对应的算法模块中的算法设置为穷举法,即将该算法模块所有可能的计算结 果存储于只读存储器中。图8为根据上述方法优化后的Unwrap模块示意图,当该模块进行实 时信号处理时,输入信号的值映射只读存储器中相应的地址,再从该地址取出计算结果,穷 举法可以减少算法模块对应的逻辑级数。图9中我们可以看到优化后组合逻辑内部的逻辑 级数大大减少,从14级减少至3级,由于逻辑延时与逻辑级数成正比,因此可知逻辑延时明 显减小。
[0064]在逻辑优化后,此处需要重新综合布线,并判断是否仍存在总延时超过延时阈值S 的路径。此时,仍有总延时为3.547ns的路径,如表2所示,由于3.547ns多S,且该路径对应的 逻辑延时与布线延时的比值k = 0.08,因此需要进行下一步,即布线优化。
[0065] 表2延时具体信息表
[0067] S4.从表2可以看出,FPGA当前的最大扇出为500,而高扇出是导致布线延时过大的 主要原因,可通过减小扇出实现布线优化。如图10是扇出限制为26时硬件实现电路,可看出 寄存器1需要驱动负载1、负载2…负载26(即基本逻辑电路单元),其驱动的负载多而导致布 线延迟。当限制最大扇出后(将扇出限制为13,则某信号驱动器件不超过13个),图11是扇出 为13时硬件实现电路,可看出其增加一个寄存器2使负载分成两部分,寄存器1驱动负载为 负载1、负载2…负载13,寄存器2驱动负载为负载14、负载15…负载26,每个寄存器驱动的负 载数目的减少使得布线延迟降低,从而提高了 FPGA的实时处理频率。
[0068]表3是本实施例提供的QPSK信号频偏补偿和相位噪声补偿算法设计中最大扇出与 布线延迟的关系,当扇出减小时,该寄存器驱动负载数目减小,其布线延时也相应减小, FPGA的实时处理频率得到提高。由表中数据可知随着扇出的减小,其布线延时也随之减小。 [0069]表3最大扇出与布线延时
[0071] 在具体操作上,可通过每次将最大扇出值减半,并观察所有路径的总延时的最大 值的变化,例如:
[0072] S51.令i = l,ki为当前的最大扇出,Ai是最大扇出为ki时,对应所有路径总延时的 最大值;
[0073] S52 ?令ki+1 = [ki/2],重新综合布线;
[0074] S53 ?若Ai+1< S,则进入下一步,否则i = i+1,返回步骤S52。
[0075] 表4为本实施例进行流水线设计、逻辑优化以及限制最大扇出后,当前最大扇出与 时序约束以及运行频率关系,可知通过本发明方法对FPGA进行时序优化显著的提高了FPGA 的实时处理频率,此时该FPGA的所有路径的总延时均小于延时阈值,则时序优化结束。
[0076] 表4当前扇出大小与时序约束以及运行频率关系
[0078]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以 限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含 在本发明的保护范围之内。
【主权项】
1. 一种用于相干解调的FPGA时序优化方法,其特征在于,包括以下步骤:51. 对FPGA进行流水线设计;52. 判断是否存在总延时超过延时阈值δ的路径,若是,则选取该路径作为目标路径,并 进入步骤S3,若否,则时序优化结束,其中,所述总延时由逻辑延时和布线延时组成;53. 判断目标路径中逻辑延时与布线延时的比值k是否大于等于延时比例阈值ε,若是, 则进入步骤S4,若否,则进入S5;54. 将所述目标路径对应算法模块中的算法设置为穷举法,并将该算法模块所有可能 的计算结果存储于只读存储器中,返回步骤S2;55. 重新设置FPGA的最大扇出直至所有路径总延时的最大值小于等于延时阈值δ,返回 步骤S2。2. 如权利要求1所述的FPGA时序优化方法,其特征在于,所述Sl具体为:判断总体电路 中是否存在反馈回路或者迭代运算,是则保持不变,否则选取总体电路中的组合逻辑电路, 并在所述组合逻辑电路中相邻的逻辑电路之间设置寄存器。3. 如权利要求1所述的FPGA时序优化方法,其特征在于,所述延时比例阈值ε为1:4~2: 3〇4. 如权利要求1所述的FPGA时序优化方法,其特征在于,所述步骤S5具体为:551. 令i = l,ki为当前的最大扇出,Ai是最大扇出为ki时对应所有路径总延时的最大 值;552. 令ki+1=[ki/2],重新综合布线,其中,ki+1为重新设置的最大扇出,[·]表示向下取 整;553. 若Ai+1<δ,则返回步骤S2,否则i = i+Ι,返回步骤S52。5. 如权利要求1所述的FPGA时序优化方法,其特征在于,所述延时阈值1/f,f为FPGA 的实时处理频率。
【文档编号】G06F17/50GK105930609SQ201610289224
【公开日】2016年9月7日
【申请日】2016年5月4日
【发明人】柯昌剑, 夏文娟, 阳坚, 崔晟, 李佳敏, 刘德明
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1