WO2010083716A1 - 一种实现可变符号率的方法和装置 - Google Patents

一种实现可变符号率的方法和装置 Download PDF

Info

Publication number
WO2010083716A1
WO2010083716A1 PCT/CN2009/076205 CN2009076205W WO2010083716A1 WO 2010083716 A1 WO2010083716 A1 WO 2010083716A1 CN 2009076205 W CN2009076205 W CN 2009076205W WO 2010083716 A1 WO2010083716 A1 WO 2010083716A1
Authority
WO
WIPO (PCT)
Prior art keywords
counter
output
module
clock
determining module
Prior art date
Application number
PCT/CN2009/076205
Other languages
English (en)
French (fr)
Inventor
罗威
Original Assignee
深圳市同洲电子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市同洲电子股份有限公司 filed Critical 深圳市同洲电子股份有限公司
Priority to US13/145,558 priority Critical patent/US8924449B2/en
Publication of WO2010083716A1 publication Critical patent/WO2010083716A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • G06F1/0321Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers
    • G06F1/0328Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator
    • G06F1/0335Waveform generators, i.e. devices for generating periodical functions of time, e.g. direct digital synthesizers in which the phase increment is adjustable, e.g. by using an adder-accumulator the phase increment itself being a composed function of two or more variables, e.g. frequency and phase

Definitions

  • the present invention relates to signal modulation techniques, and more particularly to a method and apparatus for implementing a variable symbol rate. Background technique
  • variable symbol rate adjustment The currently popular modulators on the market usually have a variable symbol rate adjustment function, and there is a direct relationship between the symbol rate and the clock frequency. Therefore, the current implementation of variable symbol rate adjustment is usually output through a clock-adjustable chip. The clock signal is changed to achieve the purpose of adjusting the symbol rate.
  • DDS Direct Digital Frequency Synthesis
  • CMOS Complementary Metal-Oxide-Semiconductor
  • FIG. 1 shows the block diagram of the circuit operation of the DDS chip.
  • the DDS uses a numerically controlled oscillator to generate a sine wave with controllable frequency and phase.
  • the DDS chip generally includes a frequency accumulator 110, a phase accumulator 120, an amplitude/phase conversion circuit 130, a digital to analog converter (DAC) 140, and a low pass filter (LPF) 150, wherein:
  • the frequency accumulator 110 is configured to perform an accumulation operation on the input signal (in FIG. 1 to generate a frequency control word X (also referred to as a phase step amount);
  • the phase accumulator 120 is further formed by cascading the N-bit full adder 121 and the N-bit accumulating register 122. As can be seen from FIG. 1, the phase accumulator 120 is a typical feedback circuit for the binary representation of the representative frequency.
  • the frequency control word X performs an accumulation operation to generate accumulated phase data Y, and is latched and outputted via the N-bit accumulation register 122;
  • the amplitude/phase conversion circuit 130 is essentially a waveform memory for performing a lookup table based on the accumulated phase data Y generated by the phase accumulator 120, and the data obtained by the lookup table is sent to the DAC 140 and sent to the LPF 150 via the DAC 140.
  • the DDS chip is connected to the reference clock fz.
  • the N-bit full adder 121 compares the frequency control word X with the accumulated phase data Y' generated by the previous period of the current clock cycle fed back by the N-bit accumulation register 122. Adding, the result of adding 4 bar is sent to the input end of the N-bit accumulation register 122;
  • the N-bit accumulation register 122 - feeds back the new accumulated phase data Y generated by the current clock cycle to the input of the N-bit full adder 121 so that the adder is under the clock of the next cycle of the current clock cycle.
  • the accumulated phase data Y is sent to the amplitude/phase conversion circuit 130 as a sample address value;
  • the amplitude/phase conversion circuit 130 searches for waveform data corresponding to the address value based on the sample address value, and outputs corresponding waveform data according to the waveform data.
  • the waveform data output by the amplitude/phase conversion circuit 130 is a digital signal, and the digital signal is converted into an analog signal by the DAC 140, and then the stray wave and the harmonic are filtered by the LPF 150 to obtain an output frequency of fs.
  • variable clock chip is costly and expensive.
  • the AD9910, AD9912 and other chips generally cost much more than other components in the modulator device.
  • the operating frequency band of the system clock chip is wide, the internal harmonics and stray waves that are difficult to filter out during the working process of the chip will greatly affect the working performance of the whole system. Summary of the invention
  • the present invention provides a method and apparatus for realizing a variable symbol rate, which is capable of realizing a variable symbol rate at a lower cost and having stable performance.
  • the trigger determines whether Nxf is greater than Mxfs. If it is greater, the counter M is incremented by 1 and a clock pulse is output; otherwise, it is further determined whether the value of the counter N is equal to fs-1;
  • the output clock pulse is used as the system clock, and the data to be output is controlled to set the symbol rate output.
  • the method includes:
  • i is a natural number, whether Nixf is greater than Mixfs entering the pipeline, and it is determined whether the Ni-pxf entering the pipeline at the ip rising edge of the input clock is greater than the judgment result of Mi-pxfs. ;
  • Ni-pxf is not greater than Mi-pxfs
  • it is further determined whether the value of the counter N is equal to fs-1; when N fs-1, the counter N is reset to 0, and waits for the next rise of the input clock. Edge; when ⁇ 3 ⁇ 4-1, increment the counter N by 1 and wait for the next rising edge of the input clock;
  • the output clock pulse is used as the system clock, and the data to be output is controlled to set the symbol rate output.
  • a first determining module configured to determine whether Nxf is greater than Mxfs on a rising edge of the input clock, and if the value is greater than, increment the counter M by one and notify the output pulse generating module; otherwise, notify the second determining module;
  • the symbol output module is configured to receive an output pulse of the output pulse generating module, and use the output pulse as a system clock to control the data to be output to set a symbol rate output.
  • the output symbol rate, fs is the frequency of the input clock, and p is the number of pipeline stages.
  • the device also includes:
  • the first determining module is configured to determine whether Nixf is greater than Mixfs is sent to the input end of the pipeline module on the ith rising edge of the input clock, and whether the Ni-pxf is greater than Mi- from the output end of the pipeline module.
  • the judgment result of pxfs, and the judgment result is that the ip rising edge of the input clock enters the input end of the pipeline module, i is a natural number; if the judgment result is that Ni-pxf is greater than Mi-pxfs, the second is notified a judging module, if the judgment result is that Ni-pxf is not greater than Mi-pxfs, notifying the third judging module;
  • the pipeline module is configured to receive, according to the i-th rising edge of the input clock, whether the Nixf is greater than Mixfs from the first determining module and start to judge, delaying the rising edge of the p input clocks, and determining the knot Returning to the first judgment module;
  • An output pulse generating module configured to generate an output pulse according to the notification of the second determining module and input the signal to the symbol output module;
  • the symbol output module is configured to receive an output pulse of the output pulse generating module, and use the output pulse as a system clock to control the data to be output to set a symbol rate output.
  • the method and apparatus for implementing a variable symbol rate in an embodiment of the present invention implements, by using FPGA programming, periodically outputting a fixed number of output pulses for a fixed length of time, and by using the A fixed number of output pulses are used as the system clock of the symbol output system, and the symbol output of the set symbol rate is realized, and the variable symbol rate output is further realized by modifying the set parameters of the FPGA, since the present invention is fixed frequency
  • the system clock implements a variable symbol rate output, so it is not subject to harmonics and spurious waves caused by the variable system clock, and the performance is stable;
  • FIG. 1 is a schematic diagram showing the working principle of a circuit of a DDS chip in the prior art.
  • FIG. 3 is a schematic flow chart of a method for implementing a variable symbol rate based on pipeline delay in an embodiment of the present invention.
  • FIG. 4 is a schematic structural diagram of a device for implementing a variable symbol rate according to an embodiment of the present invention.
  • FIG. 5 is a schematic diagram showing the structure of an apparatus for realizing a variable symbol rate based on pipeline delay in an embodiment of the present invention. detailed description
  • An embodiment of the present invention provides a method for implementing a variable symbol rate.
  • the specific implementation process of the method is as shown in FIG. 2, which includes:
  • Step 201 Determine whether Nxf is greater than Mxfs on the rising edge of the external input clock, and perform step 202 if (Nxf) > (Mxfs), otherwise perform step 203, where the initial value of the counter M is set. Is 1, the initial value of counter N is 0;
  • Step 202 The counter M is incremented by 1 and outputs a clock pulse, and step 203 is performed;
  • Step 203 It is determined whether the counter N is equal to fs-1, and if so, step 204 is performed, otherwise step 205 is performed;
  • Step 204 The counter N returns to 0, and returns to step 201;
  • Step 205 Determine whether the counter N is equal to 1, if yes, proceed to step 206, otherwise perform step 207;
  • Step 206 The counter M returns to 1 and outputs a clock pulse, and step 207 is performed;
  • Step 207 The counter N is incremented by 1, and the process returns to step 201.
  • fs (in KHz) is the clock frequency of the external input clock
  • f (in KHz) is the desired symbol rate
  • the clock signal of the external input clock can be a clock generating circuit composed of a normal crystal or a clock
  • fs is an integer multiple of f
  • N l
  • M returns to 1, but the value of M itself is 1, so the value of M is unchanged, and the output - a clock pulse; N is increased by 1;
  • N 13
  • M 2, available (Nxf) > (Mxfs), at this time M increases by 1, and outputs a clock pulse; N booster port 1;
  • N 19
  • M 3, available (Nxf) > (Mxfs), at this time M increases by 1, and outputs a clock pulse; N booster port 1;
  • N :20
  • M 4: Available (Nxf) ⁇ (Mxfs), N increases by 1;
  • the loop can be smoothly connected.
  • the output pulse with the frequency f is used as the system clock signal for controlling the symbol rate output, and the data output with the symbol rate f can be realized by using the method of symbol output by the fixed clock in the prior art, and the specific method is not More details.
  • fs is not an integer multiple of f
  • N 6
  • M l, available (Nxf) ⁇ (Mxfs), at which time M increases by 1, while outputting a clock pulse; N increases by 1
  • P3 ⁇ P7 are 5 input clock cycles
  • P8-P13 is 6 input clock cycles
  • P14 P18 is 5 input clock cycles
  • P19 P24 is 6 input clock cycles
  • P25 30 is 6 input clock cycles.
  • the frequency of the output pulse is not exactly equal to 5KHz, but varies within a certain range of about 5KHz; although the frequency of each output pulse changes irregularly, on a longer time scale - from P3 to P30, during the 28 rising edges of the input clock, the method provided by the present invention generates a total of 5 output pulses, and it is easy to understand that since P3 ⁇ P30 are one cycle, the subsequent 28 rising edges from P31 will The five output pulses are reproduced in the same manner as P3 to P30.
  • a fixed number of output pulses (in this case, 5 output pulses) are output for a fixed length of time (28 clock cycles in this example), and the variation in the time interval of the output pulses is compared to
  • the time interval of the output pulse is very small (in this example, the time interval of the output pulse is 5 clock cycles, the longest is 6 clock cycles, and the variation range is 1 clock cycle; Clock cycle At the time of the output pulse interval itself is very small),
  • "DVB-C variable symbol rate modulator Research and Design” (master's degree thesis of Zhejiang University, author: Lu Jun, March 2005) provides output in the case
  • the algorithm for implementing the symbol output as the system clock of the symbol output system is not described in detail herein. Those skilled in the art can refer to the description of the document for specific implementation.
  • the FPGA when the FPGA performs the determination whether the Nxf is greater than Mxfs, a multiplication operation is required.
  • a multiplication operation In an actual hardware circuit, as the system clock frequency is continuously increased, a multiplication operation is required. The time is often negligible compared to the period of the system clock, which often requires a period length of two or more system clocks.
  • the embodiment of the present invention needs to further add a pipeline algorithm to the multiplier to perform multiplication calculation, and the number of stages of the pipeline is an input clock required according to the multiplication operation. The number of cycles is selected, and the n-stage pipeline causes a delay of n input clock cycles (n is a positive integer).
  • the method for realizing the variable symbol rate provided by the present invention at this time has a specific implementation process
  • Step 301 On the ith rising edge of the external input clock, "N ⁇ f is greater than M 1 ⁇ fs" enters the pipeline to start judgment, and obtains whether the previous ip rising edge enters the pipeline "N ⁇ xf is greater than M ⁇ xfs If the result of the determination is "N ⁇ xf is greater than M ⁇ xfs", then step 302 is performed, otherwise step 307 is performed;
  • Ni and Mi respectively represent the values of the counters N and M at the current i-th rising edge time
  • p represents the pipeline count; since the p-stage pipeline causes the judgment result to be delayed by the output of the p clock rising edges, the ip rising edge enters The judgment condition of the pipeline outputs the judgment result on the i-th rising edge.
  • Step 302 Determine whether the current value of the counter Q is p, if yes, go to step 303, otherwise go to step 304;
  • Step 303 Return the counter Q to 0, and continue to step 307;
  • Step 304 further determining whether the current value of the counter Q is 0, if yes, executing step 306, otherwise performing step 305;
  • Step 305 increment the counter Q by 1, continue to step 307;
  • Step 306 increment the counters M and Q by 1, respectively, and output a clock pulse, continue to perform step 307;
  • Step 307 further determining whether the current value of the counter N is fs-1, if yes, executing step 308, otherwise performing step 309;
  • Step 308 Return the counter N to 0, return to step 301;
  • Step 309 further determining whether the current value of the counter N is 1 + p, and if so, executing step 310, otherwise performing step 311;
  • Step 311 The counter N is incremented by 1, and the process returns to step 301, waiting for the arrival of the next (i.e., i+1th) clock rising edge.
  • fs is not an integer multiple of f
  • the specific execution process is similar to the above example, and is not specifically exemplified. It should be pointed out that the number of stages of the added pipeline needs to ensure that the delay time generated by it cannot exceed the time when one output pulse is generated, otherwise an overflow will occur. In the above example, since an output pulse is generated every four clock rising edges, the delay time generated by the pipeline can be no longer than 4 input clock cycles, otherwise an overflow occurs and an error occurs, so in the above example , pipeline level The number can only be set to level 2 or level 3.
  • the embodiment of the present invention further provides a device for implementing a variable symbol rate.
  • N 0, f is a preset output symbol rate, fs is the frequency of the input clock, the device further includes: a first determining module 410, a second determining module 420, an output pulse generating module 430, and a symbol output module 440;
  • the first determining module 410 is configured to determine whether the Nxf is greater than Mxfs on the rising edge of the input clock, and if the value is greater than, the counter M is incremented by 1 and notified to the output pulse generating module 430, otherwise, the second determining module 420 is notified;
  • An output pulse generating module 430 configured to generate an output pulse according to the notification of the first determining module 410 and input to the symbol output module 440;
  • the symbol output module 440 is configured to receive an output pulse of the output pulse generating module 430, and use the output pulse as a system clock to control the data to be output to output a symbol rate.
  • the device may further include a third determining module 450;
  • the output pulse generating module 430 is further configured to generate an output pulse according to the notification of the second determining module 420 and input to the symbol output module 440;
  • the third determining module 450 is configured to determine whether N is equal to 1 according to the notification of the second determining module 420, and return the determination result to the second determining module 420.
  • the device has a composition as shown in FIG. 5.
  • the device further includes: a first determining module 510, a second determining module 520, a third determining module 530, a pipeline module 540, and an output pulse. a generating module 550 and a symbol output module 560;
  • the first determining module 510 is configured to: if the N ⁇ f is greater than the i-th rising edge of the input clock
  • the M ⁇ fs is sent to the input end of the pipeline module 540 to start the determination, and receives the determination result of whether N ⁇ xf is greater than M ⁇ xfs from the output end of the pipeline module 540, and the judgment result is the number of the input clock.
  • the ip rising edge enters the input end of the pipeline module 540, where i is a natural number; if the judgment result is that N ⁇ xf is greater than M ⁇ xfs, the second determining module 520 is notified, if the judgment result is N ⁇ xf is not greater than M 1-P xfs, then notifying the third determining module 530;
  • the pipeline module 540 is configured to receive, according to the ith rising edge of the input clock, whether the N ⁇ f is greater than M ⁇ fs from the first determining module 510 and start determining, delaying the rising edge of the p input clocks, and returning the determination result Giving a first judgment module 510;
  • the output pulse generating module 550 is configured to generate an output pulse according to the notification of the second determining module 520 and input to the symbol output module 560;
  • the symbol output module 560 is configured to receive an output pulse of the output pulse generating module 550, and use the output pulse as a system clock to control the data to be output to output a symbol rate.
  • the device may further include Fourth determining module 570;
  • the third determining module 530 is further configured to notify the fourth determining module when determining N ⁇ fs-1
  • the counter M is reset to 1, the output pulse generating module 550 is notified, and the counter N is incremented by 1; if the returned judgment result is N ⁇ l , directly increase the counter N by 1;
  • the output pulse generating module 550 is further configured to generate an output pulse according to the notification of the third determining module 530 and input to the symbol output module 560;
  • the fourth determining module 570 is configured to determine whether N is equal to 1 according to the notification of the third determining module 530, and return the determination result to the third determining module 530.
  • the method and apparatus for implementing variable symbol rate use FPGA hardware programming to periodically output a fixed number of output pulses for a fixed length of time, and by using the fixed number
  • the output pulse is used as the system clock of the symbol output system to realize the symbol output of the set symbol rate, and further realizes the variable symbol rate output by modifying the set parameters of the FPGA, since the present invention is implemented by a fixed frequency system clock.
  • the output of the variable symbol rate is therefore not disturbed by harmonics and spurious waves caused by the variable system clock, and the performance is stable; and, as it is easy to understand, the above is only a preferred embodiment of the present invention. It is not intended to limit the spirit and scope of the invention, and any equivalent changes or substitutions made by those skilled in the art are deemed to be within the scope of the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulation Of Pulses (AREA)

Description

一种实现可变符号率的方法和装置
本申请要求于 2009 年 1 月 21 日提交中国专利局、 申请号为 200910077514.6、 发明名称为 "一种实现可变符号率的方法和装置" 的中国专 利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明涉及信号调制技术, 尤其涉及一种实现可变符号率的方法和装置。 背景技术
当前市场上流行的调制器,通常都具有可变符号率的调节功能, 而符号率 和时钟频率存在着直接关系,因此当前实现可变符号率调节通常是通过一个时 钟可调的芯片来输出可变时钟信号, 从而达到调节符号率的目的。
目前市面上主流的能够实现时钟可调功能的芯片,均为釆用直接数字频率 合成技术(Direct Digital Frequency Synthesis, DDFS , —般简称为 DDS )的芯 片。 所述 DDS , 是从相位概念出发, 直接合成所需要波形的一种新的频率合 成技术。目前各大芯片制造厂商都相继推出釆用最新的互补型金属氧化物半导 体 ( Complementary Metal-Oxide- Semiconductor, CMOS )工艺生产的高性能、 多功能的 DDS芯片, 例如 Analog Devices公司的 AD9910、 AD9912等芯片, 都可以用于输出可变时钟信号。
图 1所示是 DDS芯片的电路工作原理框图, DDS以数控振荡器的方式, 产生频率、 相位可控制的正弦波。 所述 DDS芯片中一般包括频率累加器 110、 相位累加器 120、 幅度 /相位转换电路 130、 数模转换器(DAC ) 140和低通滤 波器(LPF ) 150 , 其中:
频率累加器 110 , 用于对输入信号 (图 1中 进行累加运算, 产生频率 控制字 X (也称为相位步进量);
相位累加器 120 , 进一步由 N位全加器 121和 N位累加寄存器 122级联 而成, 由图 1可见, 所述相位累加器 120是典型的反馈电路, 用于对代表频率 的 2进制频率控制字 X进行累加运算, 产生累加相位数据 Y, 并经由 N位累 加寄存器 122锁存后输出; 幅度 /相位转换电路 130 ,其实质是一个波形存储器,用于根据相位累加器 120产生的累加相位数据 Y进行查表, 将查表得到的数据送入 DAC140 , 并经 DAC140再送入 LPF150。
上述 DDS芯片的其具体工作过程如下:
DDS芯片连接有基准时钟 fz, 每来一个时钟脉冲, N位全加器 121将所 述频率控制字 X, 与 N位累加寄存器 122反馈的当前时钟周期的前一周期生 成的累加相位数据 Y'相加, 4巴相加后的结果送至 N位累加寄存器 122的输入 端;
N位累加寄存器 122—方面将当前时钟周期所产生的新的累加相位数据 Y 反馈到 N位全加器 121的输入端, 以使该加法器在当前时钟周期的下一周期 的时钟脉冲作用下, 继续与频率控制字 X相加; 另一方面将所述累加相位数 据 Y作为取样地址值送入幅度 /相位转换电路 130;
幅度 /相位转换电路 130根据所述取样地址值查找该地址值对应的波形数 据, 按照该波形数据输出相应的波形数据。
需要指出的是, 所述幅度 /相位转换电路 130输出的波形数据为数字信号, 该数字信号经过 DAC140转换为模拟信号,再由 LPF150滤除杂散波和谐波以 后,得到一个输出频率为 fs的正弦波, 且输出频率 fs由 fz、 X和 N共同决定, 即 fs=X*fz/2N, 其中 X<2N-1。
例如, 假定基准时钟 fz为 70MHz, 相位累加器 120为 16位累加器(即 N=16 ), 2进制频率控制字 X为 4096 , 则 4096χ70/216=4.375ΜΗζ。
由于基准时钟 fz—般固定, 因此, 在理论上, 通过设定相位累加器的位 数(即 N的值)和频率控制字 X的值, 就可以产生任一频率的输出。
然而,尽管时钟可调的芯片能够输出可变时钟信号,但同时也存在着明显 的缺点:
首先, 可变时钟的芯片成本较高、价格昂贵, 例如所述 AD9910、 AD9912 等芯片, 其单片价格一般大大超过调制器设备中的其他元件。
此外, 从应用角度, 输出符号率的调节范围越宽则通用性越好, 而输出符 号率的调节范围越宽, 相应的就需要调制器的系统时钟的频段越宽: 例如, 如 果某系统要求的输出符号率范围为 2Mbps~9Mbps, 且系统时钟频率与输出符 号率的对应关系为 20: 1 ,则相应需要系统时钟的可调范围为 40MHz~180MHz。 在实际的信号系统中, 当系统时钟芯片的工作频段较宽时, 该芯片内部在工作 过程中会产生难以滤除的谐波和杂散波,从而对整个系统的工作性能造成很大 影响。 发明内容
本发明提供一种实现可变符号率的方法和装置,能够以较低成本实现可变 符号率, 且性能稳定。
为达到上述目的, 本发明的技术方案具体是这样实现的:
一种实现可变符号率的方法, 预先设置计数器 M和 N, 且 M=l , N=0, f 为预先设定的输出符号率, fs为输入时钟的频率, 该方法包括:
在输入时钟的上升沿, 触发判断 Nxf是否大于 Mxfs, 如果大于, 将计数 器 M增加 1并输出一个时钟脉冲; 否则, 进一步判断计数器 N的值是否等于 fs-1 ;
当 N=fs-1 时, 将计数器 N 归 0, 并等待输入时钟的下一个上升沿; 当
N≠fs-1 , 则将计数器 N增加 1 , 等待输入时钟的下一个上升沿;
以输出的时钟脉冲为系统时钟, 控制待输出数据以设定符号率输出。
一种实现可变符号率的方法,预先设置计数器 M、 N和 Q,且 M=l , N=0, Q=0, f为预先设定的输出符号率, fs为输入时钟的频率, p为流水线级数, 该 方法包括:
在输入时钟的第 i个上升沿, i为自然数, Nixf是否大于 Mixfs进入流水 线进行判断,并得出所述输入时钟的第 i-p个上升沿进入流水线的 Ni-pxf是否 大于 Mi-pxfs的判断结果;
如果所述判断结果为 Ni-pxf大于 Mi-pxfs, 则在 Q=0时, 将计数器 M、 Q 增加 1 , 并输出一个时钟脉冲; 在 Q=p时, 将计数器 Q归 0; 而在 Q≠0且 Q≠p 时, 将计数器 Q增加 1 ;
如果所述判断结果为 Ni-pxf不大于 Mi-pxfs,则进一步判断计数器 N的值 是否等于 fs-1 ; 当 N=fs-1时, 将计数器 N归 0, 并等待输入时钟的下一个上 升沿; 当^^ ¾-1 , 则将计数器 N增加 1 , 等待输入时钟的下一个上升沿; 以输出的时钟脉冲为系统时钟, 控制待输出数据以设定符号率输出。
一种实现可变符号率的装置, 该装置包括计数器 M和 N, 且预先设定计 数器的初值为 M=l , N=0, f为预先设定的输出符号率, fs为输入时钟的频率, 该装置还包括:
第一判断模块, 用于在输入时钟的上升沿, 判断 Nxf是否大于 Mxfs, 如 果大于, 将计数器 M增加 1并通知输出脉冲产生模块, 否则, 通知第二判断 模块;
第二判断模块, 用于接收第一判断模块的通知, 判断计数器 N是否等于 fs-1 ; 当N=fs-l时, 将计数器 N归 0; 如果 N≠fs-1 , 则将计数器 N增加 1 ; 输出脉冲产生模块, 用于根据第一判断模块的通知, 生成一个输出脉冲并 输入到符号输出模块;
符号输出模块, 用于接收输出脉冲产生模块的输出脉冲, 将所述输出脉冲 作为系统时钟, 控制待输出数据以设定符号率输出。
一种实现可变符号率的装置, 该装置包括计数器 M、 N和 Q, 且预先设定 计数器 M、 N和 Q的初值为 M=l , N=0, Q=0, f为预先设定的输出符号率, fs为输入时钟的频率, p为流水线级数, 该装置还包括:
第一判断模块, 用于在输入时钟的第 i个上升沿, 将 Nixf是否大于 Mixfs 送入流水线模块的输入端开始进行判断, 并从所述流水线模块的输出端接收 Ni-pxf是否大于 Mi-pxfs的判断结果,且所述判断结果为所述输入时钟的第 i-p 个上升沿进入流水线模块的输入端, i为自然数; 如果所述判断结果为 Ni-pxf 大于 Mi-pxfs , 则通知第二判断模块, 如果所述判断结果为 Ni-pxf 不大于 Mi-pxfs, 则通知第三判断模块;
第二判断模块, 用于接收第一判断模块的通知, 进一步判断 Q是否等于 0 或 p, 若 Q=0, 则将计数器 M、 Q增加 1 , 并通知输出脉冲产生模块; 若0= , 则将计数器 Q归 0; 若 Q≠0且 Q≠p, 将计数器 Q增加 1 ;
第三判断模块, 用于进一步判断计数器 N的值是否等于 fs-1 ; 当 N=fs-1 时, 将计数器 N归 0; 当 N≠fs-1 , 则将计数器 N增加 1;
流水线模块, 用于在输入时钟的第 i个上升沿, 从第一判断模块接收 Nixf 是否大于 Mixfs并开始进行判断, 延迟 p个输入时钟的上升沿之后, 将判断结 果返回给第一判断模块;
输出脉冲产生模块, 用于根据第二判断模块的通知, 生成一个输出脉冲并 输入到符号输出模块;
符号输出模块, 用于接收输出脉冲产生模块的输出脉冲, 将所述输出脉冲 作为系统时钟, 控制待输出数据以设定符号率输出。
由上述的技术方案可见,本发明实施例的这种实现可变符号率的方法和装 置,利用 FPGA编程实现了周期性地在固定时间长度内输出固定个数的输出脉 冲, 并通过将所述固定个数的输出脉冲作为符号输出系统的系统时钟, 实现了 设定符号率的符号输出 ,并进一步通过修改 FPGA的设定参数实现了可变符号 率的输出, 由于本发明是通过固定频率的系统时钟实现了可变符号率的输出, 因此不会受到可变系统时钟带来的谐波和杂散波的干扰, 性能稳定; 同时, 由
附图说明
图 1为现有技术中 DDS芯片的电路工作原理示意图。 图 3为本发明实施例中基于流水线延迟的情况下,实现可变符号率的方法 的流程示意图。
图 4为本发明实施例中实现可变符号率的装置的组成结构示意图。
图 5为本发明实施例中基于流水线延迟的情况下,实现可变符号率的装置 的组成结构示意图。 具体实施方式
为使本发明的目的、技术方案及优点更加清楚,以下参照附图并举实施例, 对本发明进一步详细说明。
本发明实施例提供一种实现可变符号率的方法,该方法的具体实现流程如 图 2所示, 其中包括:
步骤 201 : 在外部输入时钟的上升沿,判断 Nxf是否大于 Mxfs, 若(Nxf ) > ( Mxfs )则执行步骤 202, 否则执行步骤 203 , 其中, 设定计数器 M的初值 为 1, 计数器 N的初值为 0;
步骤 202: 计数器 M增加 1并输出一个时钟脉冲, 执行步骤 203;
步骤 203: 判断计数器 N是否等于 fs-1, 若是, 则执行步骤 204, 否则执 行步骤 205;
步骤 204: 计数器 N归 0, 返回步骤 201;
步骤 205: 判断计数器 N是否等于 1, 如果是, 则执行步骤 206, 否则执 行步骤 207;
步骤 206: 计数器 M归 1并输出一个时钟脉冲, 执行步骤 207;
步骤 207: 计数器 N增加 1, 返回步骤 201。
容易理解, 以输出的时钟脉冲为系统时钟, 即可实现设定符号率的输出。 其中, fs (单位为 KHz )为所述外部输入时钟的时钟频率, f (单位为 KHz ) 为希望得到的符号率,该外部输入时钟的时钟信号可以由普通晶体或钟振构成 的时钟生成电路产生, 现有技术中已有多种实现方法, 此处不再展开说明。
此外, 对于所述步骤 201~207的执行过程, 需要说明的是, 由于上述方法 ^^于 FPGA硬件电路进行实现的, 因此, 本领域技术人员应当理解, 所述各 计数器的当前值在一个时钟上升沿触发的流程结束前保持不变。举例来说,设 当前为第 i个时钟上升沿触发的流程, 尽管步骤 202中所述计数器 M增加 1, 但在当前流程结束前, 步骤 202之后的执行过程中 M的值仍然保持不变。 计 数器 N同样如此, 此处一并说明, 后续则不再每次进行说明。
为了进一步展示上述步骤 201 207的执行过程,下面结合两种情况下的具 体实施例进行描述:
一、 fs为 f的整数倍;
如 fs=30KHz, f=5KHz;设定计数器 M和 N的初值为 Μ=1 , N=0;当 FPGA 开始工作后:
1)在外部输入时钟的第一个上升沿 (为简单起见, 下文中将输入时钟的 第 i个上升沿记为 Pi, i为正整数): N=0, M=l;
Nxf=0, Mxfs=30, 可得(Nxf) < (Mxfs), N增加 1;
2) P2: N=l, M=l, 可得(Nxf) < (Mxfs);
由于 N=l, M归 1, 但此时 M的值本身就是 1, 因此 M取值不变, 输出 -个时钟脉冲; N增加 1;
3) P3: N=2, M=l; 可得(Nxf) < (Mxfs), N增加 1:
8) P8: N=7, M=l, 可得(Nxf) > (Mxfs), 此时 M增加 1, 同时输出 -个时钟脉冲; N增加 1;
9) P9: N=8, M=2, 可得 (Nxf) < (Mxfs), N增加 1;
14) P14: N= 13, M=2, 可得 (Nxf) > (Mxfs), 此时 M增加 1, 同时输 出一个时钟脉冲; N增力口 1;
15 ) P15: N= 44, M=3: 可得 (Nxf) < (Mxfs), N增加 1;
20 ) P20: N= 19, M=3, 可得 (Nxf) > (Mxfs), 此时 M增加 1, 同时输 出一个时钟脉冲; N增力口 1;
21 ) P21: N= :20, M=4: 可得 (Nxf) < (Mxfs), N增加 1;
26 ) P26: N= ■25, M=4, 可得 (Nxf) > (Mxfs), 此时 M增加 1, 同时输 出一个时钟脉冲; N增力口 1;
27 ) P27: N= :26, M=5: 可得 (Nxf) < (Mxfs), N增力口 1;
30) P30: N=29, M=5, 可得( Nxf ) < ( Mxfs ), 此时判断N=fs-l, 步骤 204中 N归 0;
31 ) P31: N=0, M=5, 可得(Nxf) < (Mxfs), N增加 1;
32) P32: N=l, M=5, 可得(Nxf) < (Mxfs), 此时判断 N=l, 因此步 骤 M归 1 , 同时输出一个时钟脉冲; Ν增加 1;
33) Ρ33: Ν=2, M=l, 可得(Nxf) < (Mxfs), N增加 1;
可见, P33与 P3时刻, M、 N的取值以及执行流程完全相同, 并且, 继 续推导下去将容易得出, 从 P33开始, P34与 P4完全相同, P35与 P5完全相 同, 即所述 P3 P32为一个循环, 从 P33开始, 将继续重复该循环, 直到外界 中止所述 FPGA的执行。 需要说明的是, 本发明步骤 205〜步骤 206——即当 N=l时将计数器 M归 1, 其作用实质在于在 N=l时强制添加一个输出脉冲, 以保证输出脉冲的均匀 和后续的循环能够顺利进行衔接。 因为由上例可见, 从 P3开始, 本发明提供 的方法能够保证每 6个输入时钟就能够产生一个输出脉冲, 且所述 N=l时将 M归 1的机制保证了 P32完成后, 该流程能够顺利的返回 P3 (即 P33 ), 从而 使得该循环的初始状态 (P3)和最终状态 (P32) 能够准确的 ^奸接起来。
由上述示例可见, 从 P3开始, 输入时钟每经过六个上升沿, 将产生一个 输出脉冲, 且该输出脉冲的频率为 30/6=5KHz=f。 因此, 以该频率为 f的输出 脉冲作为控制符号率输出的系统时钟信号,通过釆用现有技术中由固定时钟进 行符号输出的方法, 即可实现符号率为 f的数据输出, 具体方法不再详述。
二、 fs不是 f的整数倍;
如 fs=28KHz, f=5KHz;设定计数器 M和 N的初值为 Μ=1 , N=0;当 FPGA 开始工作后:
1 ) PI: N=0, M=l;
Nxf=0, Mxfs=28, 可得(Nxf) < (Mxfs), N增加 1;
2) P2: N=l, M=l, 可得(Nxf) < (Mxfs);
由于 N=l, M归 1, 此时 M的值本身就是 1, 因此 M取值不变, 输出一 个时钟脉冲 N增加 1;
3) P3: N=2, M=l; 可得(Nxf) < (Mxfs), N增加 1;
7 ) P7: N=6, M=l, 可得(Nxf) < (Mxfs), 此时 M增加 1, 同时输出 一个时钟脉冲; N增加 1
8) P8: N=7, M=2, 可得(Nxf) > (Mxfs), N增加 1;
13 ) P13: N=12, M=2 , 可得(Nxf) > (Mxfs), 此时 M增加 1, 同时输 出一个时钟脉冲; N增加 1
14) P14: N=13, M=3 , 可得(Nxf) < (Mxfs), N增加 1;
18) P18: N=17, M=3, 可得( Nxf ) > ( Mxfs ), 此时 M增加 1, 同时输 出一个时钟脉冲; N增加 1;
19) P19: N=18, M=4, 可得 (Nxf) < (Mxfs), N增加 1;
24) P24: N=23, M=4, 可得(Nxf) > (Mxfs), 此时 M增加 1, 同时输 出一个时钟脉冲; N增加 1;
25 ) P25: N=24, M=5: 可得(Nxf) < (Mxfs), N增加 1
28 ) P28: N=27, M=5, 可得( Nxf ) < ( Mxfs ), 此时判断N=fs-l, N归
0;
29) P29: N=0, M=5, 可得(Nxf) < (Mxfs), N增加 1;
30) P30: N=l, M=5, 可得 (Nxf) < (Mxfs), 此时判断 N=l, 因此 M 归 1 , 同时输出一个时钟脉冲; N增加 1;
31) P31: N=2, M=l, 可得(Nxf) < (Mxfs), N增加 1;
可见, P31与 P3时刻, M、 N的取值以及执行流程完全相同, 并且, 继 续推导下去将容易得出, 从 P31开始, P32与 P4完全相同, P33与 P5完全相 同, 即所述 P3 P30为一个循环, 从 P31开始, 将继续重复该循环, 直到外界 中止所述 FPGA的执行。
同时, 考察上例中输出脉冲的频率可得, P3~P7 为 5 个输入时钟周期, P8-P13为 6个输入时钟周期, P14 P18为 5个输入时钟周期, P19 P24为 6 个输入时钟周期, 而 P25 30为 6个输入时钟周期。 显然, 此时输出脉冲的频 率并不精确的等于 5KHz, 而是在 5KHz左右的一定范围内变化; 虽然每个输 出脉冲的频率的变化并无规律, 但在更长的时间尺度上——从 P3到 P30, 在 输入时钟的 28个上升沿期间, 本发明提供的方法共产生 5个输出脉冲, 同时 容易理解, 由于 P3~P30为一个循环, 因此从 P31开始的后续 28个上升沿, 会按照与 P3~P30同样的方式重现所述的 5个输出脉冲。 对于这种周期性在固 定时间长度(本例中为 28个时钟周期) 内输出固定个数的输出脉冲 (本例中 为 5个输出脉冲), 且输出脉冲的时间间隔的变化幅度相比于输出脉冲的时间 间隔非常小的情况(本例中, 输出脉冲的时间间隔最短的为 5个时钟周期, 最 长的为 6个时钟周期, 变化幅度为 1个时钟周期; 而所述的 1个时钟周期相比 于输出脉冲的时间间隔本身非常小 ) ,《DVB-C可变符号率调制器研究与设计》 (浙江大学硕士学位论文, 作者: 吕骏, 2005年 3月)提供了将该情况下的 输出脉冲作为符号输出系统的系统时钟实现符号输出的算法,受篇幅所限此处 不再详细说明, 本领域技术人员可以参照所述文献的记载进行具体实现。
需要说明的是, 在本发明提供的方法中, 当 FPGA执行所述判断 Nxf是 否大于 Mxfs时, 需要进行乘法运算, 在实际的硬件电路中, 随着系统时钟频 率的不断提高,乘法运算所需要的时间相比于系统时钟的周期而言常常是不能 忽略不计的, 所述运算时间常常需要两个或更多个系统时钟的周期长度。根据 本领域技术人员的公知常识,在这种情况下, 本发明实施例需要进一步在所述 乘法器中添加流水线算法来进行乘法计算,流水线的级数则是根据所述乘法运 算需要的输入时钟的周期数进行选择的, n级流水线会造成 n个输入时钟周期 的延迟(n为正整数)。
容易理解,前文中的举例是在没有考虑流水线算法造成的延迟的情况下进 行的。 而在实际应用中, 则必须考虑到流水线算法的延迟。
相应地, 此时本发明提供的实现可变符号率的方法, 其具体实现流程如图
3所示, 为了便于叙述, 以下以一次时钟上升沿到来后的执行流程进行说明, 该方法具体包括:
步骤 301 : 在外部输入时钟的第 i个上升沿, "N^f是否大于M1χfs"进入流 水线开始进行判断, 并得到之前第 i-p个上升沿进入流水线的" N^xf是否大于 M^xfs"的判断结果; 如果判断结果为" N^xf大于 M^xfs", 则执行步骤 302 , 否则执行步骤 307;
其中, Ni、 Mi分别表示当前第 i个上升沿时刻的计数器 N和 M的值, p 表示流水线计数; 由于 p级流水线会导致判断结果延迟 p个时钟上升沿输出, 因此第 i-p个上升沿进入流水线的判断条件会在第 i个上升沿输出判断结果。
步骤 302: 判断计数器 Q的当前值是否为 p, 如果是, 则执行步骤 303 , 否则执行步骤 304;
步骤 303: 将计数器 Q归 0, 继续执行步骤 307;
步骤 304: 进一步判断计数器 Q的当前值是否为 0, 如果是, 则执行步骤 306, 否则执行步骤 305; 步骤 305: 将计数器 Q增加 1 , 继续执行步骤 307;
步骤 306: 将计数器 M和 Q分别增加 1, 并输出一个时钟脉冲, 继续执行 步骤 307;
步骤 307: 进一步判断计数器 N的当前值是否为 fs-1, 如果是, 则执行步 骤 308, 否则执行步骤 309;
步骤 308: 将计数器 N归 0, 返回步骤 301;
步骤 309: 进一步判断计数器 N的当前值是否为 1+p, 如果是, 则执行步 骤 310, 否则执行步骤 311;
步骤 310: 将计数器 M归 1, 并输出一个时钟脉冲, 继续执行步骤 311; 此处步骤 309 310的作用与前述步骤 205 206作用类似——即,当 N=l+p 时将计数器 M归 1, 同样是为了保证输出脉冲的均匀和后续的循环能够顺利 进行衔接。 由于步骤 205~206中在 N=l时将 M归 1时没有考虑流水线造成的 延迟, 因此当添加了 p级流水线之后,相应地需要将此次强制输出脉冲的输出 时刻向后顺延。
步骤 311: 计数器 N增加 1, 返回步骤 301, 等待下一个(即第 i+1个) 时钟上升沿的到来。
容易理解, 以输出的时钟脉冲为系统时钟, 即可实现设定符号率的输出。 为进一步展示上述步骤 301 311的执行过程,下面结合具体实施例进行详 细说明:
例如: fs=20KHz, f=5KHz, 假设此时所述乘法运算需要 2个输入时钟周 期才能完成, 则所述乘法器中需要添加 2级或以上的流水线, 不妨设流水线级 数为 2级。此时,预先设定计数器 M、 N和 Q的初值分别为 M=l, N=0, Q=0; 当 FPGA开始工作后:
1 ) PI: N=0, M=l, Q=0;
"0x5是否大于 1 χ20,,进入流水线进行判断, Ν增加 1;
2) Ρ2: N=l, M=l, Q=0;
"1x5是否大于 1 χ20,,进入流水线进行判断, Ν增加 1;
3 ) Ρ3: N=2, M=l, Q=0;
"2x5是否大于 1 χ20,,进入流水线进行判断, Ν增加 1; Pl时刻进入流水线进行判断的 "0x5是否大于 1x20"经过两个时钟脉冲的 延迟, 此时得出判断结果, 且所述判断结果为" 0x5不大于 1x20";
4) P4: N=3, M=l, Q=0;
"3x5是否大于 1 χ20,,进入流水线进行判断, Ν增加 1;
Ρ2时刻进入流水线进行判断的 "1x5是否大于 1x20"得出判断结果, 且所 述判断结果为 "1x5不大于 1x20"; 由于此时 Ν=3(即 N=l+P), 因此将 Μ归 1, 又由于此时 Μ的值本身就是 1 , 因此 Μ的值不变, 同时输出一个时钟脉冲;
5 ) Ρ5: N=4, M=l, Q=0;
"4 5是否大于 1 χ20"进入流水线进行判断, Ρ3时刻进入流水线进行判断 的" 2x5是否大于 1x20"得出判断结果, 且所述判断结果为" 2x5不大于 1x20", Ν增加 1;
6) Ρ6: N=5, M=l, Q=0;
"5 5是否大于 1 χ20"进入流水线进行判断, Ρ4时刻进入流水线进行判断 的" 3x5是否大于 1x20"得出判断结果, 且所述判断结果为" 3x5不大于 1x20", Ν增加 1;
7 ) Ρ7: N=6, M=l, Q=0;
"6 5是否大于 1 χ20"进入流水线进行判断, Ρ5时刻进入流水线进行判断 的" 4x5是否大于 1x20"得出判断结果, 且所述判断结果为" 4x5不大于 1x20";
8) Ρ8: N=7, M=l, Q=0;
"7 5是否大于 1 χ20"进入流水线进行判断, Ρ6时刻进入流水线进行判断 的" 5x5是否大于 1x20"得出判断结果,且所述判断结果为" 5x5大于 1x20"; 由 于此时 Q=0, 因此 M和 Q均增加 1, 并输出一个时钟月永冲, N增加 1;
9) P9: N=8, M=2, Q=l;
"8 5是否大于 2 χ20"进入流水线进行判断, Ρ7时刻进入流水线进行判断 的" 6x5是否大于 1x20"得出判断结果,且所述判断结果为" 6x5大于 1x20"; 由 于 Q=l, 因此 Q增加 1, M不变, 也不输出脉冲, N增加 1;
10) P10: N=9, M=2, Q=2;
"9 5是否大于 2 χ20"进入流水线进行判断, Ρ8时刻进入流水线进行判断 的" 7x5是否大于 1x20"得出判断结果,且所述判断结果为" 7x5大于 1x20"; 由 于 Q=2, 因此 Q归 0, M不变, 也不输出月永冲, N增加 1 ;
11 ) Pll : N=10, M=2, Q=0;
"10x5是否大于 2x20"进入流水线进行判断, P9时刻进入流水线进行判断 的" 8x5是否大于 2x20"得出判断结果, 且所述判断结果为" 8x5不大于 2x20", N增加 1;
12 ) P12: N=ll , M=2, Q=0;
"11 x5是否大于 2x20"进入流水线进行判断, P10时刻进入流水线进行判 断的" 9x5是否大于 2x20"得出判断结果, 且所述判断结果为" 9x5大于 2x20"; 由于此时 Q=0 , 因此 M和 Q均增加 1 , 并输出一个时钟脉冲, N增加 1;
16 ) P16: N=15, M=3 , Q=0;
"15x5是否大于 3x20"进入流水线进行判断, P14时刻进入流水线进行判 断的" 13x5是否大于 3x20"得出判断结果,且所述判断结果为" 13x5大于 3x20"; 由于此时 Q=0 , 因此 M和 Q均增加 1 , 并输出一个时钟脉冲, N增加 1;
19 ) P19: N=18, M=4, Q=0;
"18x5是否大于 4x20"进入流水线进行判断, P17时刻进入流水线进行判 断的" 16x5 是否大于 4x20"得出判断结果, 且所述判断结果为" 16x5 不大于 4χ20", N增加 1 ;
20 ) P20: N=19, M=4, Q=0;
"19x5是否大于 4x20"进入流水线进行判断, P18时刻进入流水线进行判 断的" 17x5是否大于 4x20"得出判断结果,且所述判断结果为" 17x5大于 4x20", 由于此时 Q=0 , 因此 M和 Q均增加 1 , 并输出一个时钟脉冲; 此外 , 由于此 时 N=19=fs-1 , 因此 N归 0;
21 ) P21 : N=0, M=5, Q=l ;
"0x5是否大于 5x20"进入流水线进行判断, P19时刻进入流水线进行判断 的" 18x5是否大于 4x20"得出判断结果, 且所述判断结果为" 18x5大于 4x20"; 由于 Q=l , 因此 Q增加 1 , M不变, 也不输出月永冲, N增加 1 ;
22 ) P22: N=l , M=5, Q=2; "1x5是否大于 5x20"进入流水线进行判断, P20时刻进入流水线进行判断 的" 19x5是否大于 4x20"得出判断结果, 且所述判断结果为" 19x5大于 4x20"; 由于 Q=2, 因此 Q归 0, M不变, 也不输出脉冲, N增加 1;
23 ) P23: N=2, M=5, Q=0;
"2x5是否大于 5x20"进入流水线进行判断, P21时刻进入流水线进行判断 的" 0x5是否大于 5x20"得出判断结果, 且所述判断结果为" 0x5不大于 5x20", N增加 1;
24) P24: N=3, M=5, Q=0;
"3x5是否大于 5x20"进入流水线进行判断, P22时刻进入流水线进行判断 的" 1x5是否大于 5x20"得出判断结果, 且所述判断结果为" 1x5不大于 5x20"; 由于此时 Ν=3 , 因此 M归 1 , 并输出一个时钟脉冲 , N增加 1;
25 ) P25: N=4, M=l, Q=0;
"4x5是否大于 1x20"进入流水线进行判断, P23时刻进入流水线进行判断 的" 2x5是否大于 5x20"得出判断结果, 且所述判断结果为" 2x5不大于 5x20", N增加 1;
40) P40: N=19, M=4, Q=0;
"19x5是否大于 4x20"进入流水线进行判断, P38时刻进入流水线进行判 断的" 17x5是否大于 4x20"得出判断结果,且所述判断结果为" 17x5大于 4x20", 由于此时 Q=0 , 因此 M和 Q均增加 1 , 并输出一个时钟脉冲; 此外 , 由于此 时 N=19=fs-1, 因此 N归 0; 可见, P21 P40为一个循环, P41~P60、 P61-P80及之后均按照 P21~P40 的流程不断重复。
对于 fs不是 f的整数倍的情况,具体执行过程与上例类似,不再具体举例。 需要指出的是, 所述添加的流水线的级数, 需要保证其产生的延迟时间不能超 过一个输出脉冲生成的时间, 否则就会产生溢出。 在上例中, 由于每 4个时钟 上升沿产生一个输出脉冲, 因此所述流水线所产生的延迟时间最长不能超过 4 个输入时钟周期, 否则就会产生溢出而发生错误, 从而在上例中, 流水线的级 数只能够设为 2级或 3级。
在前述方法的基础上, 本发明实施例还提供一种实现可变符号率的装置, 如图 4所示, 该装置包括计数器 M、 N, 且预先设定计数器的初值为 M=l , N=0, f 为预先设定的输出符号率, fs为输入时钟的频率, 该装置还包括: 第 一判断模块 410、 第二判断模块 420、 输出脉冲产生模块 430和符号输出模块 440;
第一判断模块 410, 用于在输入时钟的上升沿, 判断 Nxf是否大于 Mxfs, 如果大于, 将计数器 M增加 1并通知输出脉冲产生模块 430, 否则, 通知第 二判断模块 420;
第二判断模块 420, 用于接收第一判断模块 410的通知, 判断计数器 N是 否等于 fs-1 ; 当 N=fs-l时, 将计数器 N归 0; 如果 N≠fs-1 , 则将计数器 N增 加 1 ;
输出脉冲产生模块 430, 用于根据第一判断模块 410的通知, 生成一个输 出脉冲并输入到符号输出模块 440;
符号输出模块 440, 用于接收输出脉冲产生模块 430的输出脉冲, 将所述 输出脉冲作为系统时钟, 控制待输出数据以设定符号率输出。
根据前文方法部分的描述容易理解, 在 N达到 fs-1之前, 将能够实现每 隔一定的输入时钟上升沿输出一个输出脉冲,为了避免N=fs-l之后出现溢出, 所述第二判断模块 420, 进一步用于在判定 N=fs-1并将计数器 N归 0后, 将 计数器 M归 1。
或者, 为了使得输出脉冲均匀且输出脉冲能够持续输出, 且后续的循环与 第一个循环能够顺利衔接,与前述步骤 205~206中强制添加一个输出脉冲的原 理类似, 该装置中还可以进一步包括第三判断模块 450;
此时, 所述第二判断模块 420, 进一步用于在判定 N≠fs-1时, 通知第三判 断模块 450并接收第三判断模块 450返回的判断结果, 若返回的判断结果为 N=l , 则将计数器 M归 1 , 通知输出脉冲产生模块 430, 并将计数器 N增加 1 ; 若返回的判断结果为 N≠l , 则直接将计数器 N增加 1 ;
输出脉冲产生模块 430, 进一步用于根据第二判断模块 420的通知, 生成 一个输出脉冲并输入到符号输出模块 440; 所述第三判断模块 450, 用于根据第二判断模块 420的通知, 判断 N是否 等于 1 , 并将判断结果返回给第二判断模块 420。
容易理解, 图 4中所述的装置并没有考虑流水线造成的延迟, 而在实际应 用中, 则需要考虑到流水线的延迟带来的影响, 相应地, 此时本发明提供的实 现可变符号率的装置,其组成结构如图 5所示,该装置包括计数器 M、 N和 Q, 且预先设定计数器 M、 N和 Q的初值为 M=l , N=0, Q=0, f为预先设定的输 出符号率, fs为输入时钟的频率, p为流水线级数, 该装置还包括: 第一判断 模块 510、 第二判断模块 520、 第三判断模块 530、 流水线模块 540、 输出脉冲 产生模块 550和符号输出模块 560;
第一判断模块 510, 用于在输入时钟的第 i个上升沿, 将 N^f 是否大于
M^fs送入流水线模块 540的输入端开始进行判断, 并从所述流水线模块 540 的输出端接收 N^xf是否大于 M^xfs的判断结果, 且所述判断结果为所述输 入时钟的第 i-p个上升沿进入流水线模块 540的输入端, i为自然数; 如果所 述判断结果为 N^xf大于 M^xfs, 则通知第二判断模块 520, 如果所述判断结 果为 N^xf不大于 M1-Pxfs, 则通知第三判断模块 530;
第二判断模块 520, 用于接收第一判断模块 510的通知, 进一步判断 Q是 否等于 0或 p, 若 Q=0, 则将计数器 M、 Q增加 1 , 并通知输出脉冲产生模块 550; 若 Q=p, 则将计数器 Q归 0; 若 Q≠0且 Q≠p, 将计数器 Q增加 1 ;
第三判断模块 530,用于进一步判断计数器 N的值是否等于 fs-1 ;当 N=fs-1 时, 将计数器 N归 0; 当 N≠fs-1 , 则将计数器 N增加 1;
流水线模块 540, 用于在输入时钟的第 i个上升沿, 从第一判断模块 510 接收 N^f是否大于 M^fs并开始进行判断, 延迟 p个输入时钟的上升沿之后, 将判断结果返回给第一判断模块 510;
输出脉冲产生模块 550, 用于根据第二判断模块 520的通知, 生成一个输 出脉冲并输入到符号输出模块 560;
符号输出模块 560, 用于接收输出脉冲产生模块 550的输出脉冲, 将所述 输出脉冲作为系统时钟, 控制待输出数据以设定符号率输出。
在 N达到 fs-1之前, 将能够实现每隔一定的输入时钟上升沿输出一个输 出脉冲, 为了避免N=fs-l之后出现溢出, 所述第三判断模块 530, 进一步用于 在判定 N=fs-1并将计数器 N归 0后, 将计数器 M归 1。
或者, 为了使得输出脉冲均匀且输出脉冲能够持续输出, 且后续的循环与 第一个循环能够顺利衔接,与前述步骤 205~206中强制添加一个输出脉冲的原 理类似, 该装置中还可以进一步包括第四判断模块 570;
所述第三判断模块 530,进一步用于在判定 N≠fs-1时,通知第四判断模块
570并接收第四判断模块 570返回的判断结果, 若返回的判断结果为 N=l , 则 将计数器 M归 1 , 通知输出脉冲产生模块 550, 并将计数器 N增加 1 ; 若返回 的判断结果为 N≠l , 则直接将计数器 N增加 1 ;
输出脉冲产生模块 550, 进一步用于根据第三判断模块 530的通知, 生成 一个输出脉冲并输入到符号输出模块 560;
所述第四判断模块 570, 用于根据第三判断模块 530的通知, 判断 N是否 等于 1 , 并将判断结果返回给第三判断模块 530。
综上可见, 本发明实施例提供的实现可变符号率的方法和装置, 利用 FPGA硬件编程实现了周期性地在固定时间长度内输出固定个数的输出脉冲, 并通过将所述固定个数的输出脉冲作为符号输出系统的系统时钟,实现了设定 符号率的符号输出,并进一步通过修改 FPGA的设定参数实现了可变符号率的 输出, 由于本发明是通过固定频率的系统时钟实现了可变符号率的输出, 因此 不会受到可变系统时钟带来的谐波和杂散波的干扰, 性能稳定; 同时, 由于 容易理解, 以上所述仅为本发明的较佳实施例, 并非用于限定本发明的精神和 保护范围,任何熟悉本领域的技术人员所做出的等同变化或替换, 都应视为涵 盖在本发明的保护范围之内。

Claims

权 利 要 求
1、 一种实现可变符号率的方法, 其特征在于, 预先设置计数器 M和 N, 且 M=l , N=0, f为预先设定的输出符号率, fs为输入时钟的频率, 该方法包 括:
在输入时钟的上升沿, 触发判断 Nxf是否大于 Mxfs, 如果大于, 将计数 器 M增加 1并输出一个时钟脉冲; 否则, 进一步判断计数器 N的值是否等于 fs-1 ;
当 N=fs-1 时, 将计数器 N 归 0, 并等待输入时钟的下一个上升沿; 当 N≠fs-1 , 则将计数器 N增加 1 , 等待输入时钟的下一个上升沿;
以输出的时钟脉冲为系统时钟, 控制待输出数据以设定符号率输出。
2、根据权利要求 1所述的方法,其特征在于, 所述将计数器 N归 0之后, 等待输入时钟的下一个上升沿之前, 该方法进一步包括: 将计数器 M归 1。
3、 根据权利要求 1所述的方法, 其特征在于, 所述判断出 N≠fs-1时, 在 将计数器 N增加 1之前, 该方法进一步包括:
判断 N是否等于 1 , 如果是, 则将计数器 M归 1 , 输出一个时钟脉冲并执 行所述将计数器 N增加 1的步骤; 否则, 直接执行所述将计数器 N增加 1的 步骤。
4、 一种实现可变符号率的方法, 其特征在于, 预先设置计数器M、 N和 Q, 且 M=l , N=0, Q=0, f为预先设定的输出符号率, fs为输入时钟的频率, p为流水线级数, 该方法包括:
在输入时钟的第 i个上升沿, i为自然数, N^f是否大于 M^fs进入流水 线进行判断, 并得出所述输入时钟的第 i-p个上升沿进入流水线的 N^xf是否 大于 M^xfs的判断结果;
如果所述判断结果为 N^xf 大于 M^xfs, 则在 Q=0时, 将计数器M、 Q 增加 1 , 并输出一个时钟脉冲; 在 Q=p时, 将计数器 Q归 0; 而在 Q≠0且 Q≠p 时, 将计数器 Q增加 1 ;
如果所述判断结果为 N^xf不大于 M^xfs, 则进一步判断计数器 N的值 是否等于 fs-1 ; 当 N=fs-1时, 将计数器 N归 0, 并等待输入时钟的下一个上 升沿; 当^^ ¾-1 , 则将计数器 N增加 1 , 等待输入时钟的下一个上升沿; 以输出的时钟脉冲为系统时钟, 控制待输出数据以设定符号率输出。
5、根据权利要求 4所述的方法,其特征在于, 所述将计数器 N归 0之后, 等待输入时钟的下一个上升沿之前, 该方法进一步包括: 将计数器 M归 1。
6、 根据权利要求 4所述的方法, 其特征在于, 所述判断出 N≠fs-1时, 在 将计数器 N增加 1之前, 该方法进一步包括:
判断 N是否等于 1+p, 如果是, 则将计数器 M归 1 , 输出一个时钟脉冲 并执行所述将计数器 N增加 1的步骤; 否则, 直接执行所述将计数器 N增加 1的步骤。
7、 一种实现可变符号率的装置,其特征在于,该装置包括计数器 M和 N, 且预先设定计数器的初值为 M=l , N=0, f为预先设定的输出符号率, fs为输 入时钟的频率, 该装置还包括:
第一判断模块, 用于在输入时钟的上升沿, 判断 Nxf是否大于 Mxfs, 如 果大于, 将计数器 M增加 1并通知输出脉冲产生模块, 否则, 通知第二判断 模块;
第二判断模块, 用于接收第一判断模块的通知, 判断计数器 N是否等于 fs-1 ; 当N=fs-l时, 将计数器 N归 0; 如果 N≠fs-1 , 则将计数器 N增加 1 ; 输出脉冲产生模块, 用于根据第一判断模块的通知, 生成一个输出脉冲并 输入到符号输出模块;
符号输出模块, 用于接收输出脉冲产生模块的输出脉冲, 将所述输出脉冲 作为系统时钟, 控制待输出数据以设定符号率输出。
8、 根据权利要求 7所述的装置, 其特征在于, 所述第二判断模块, 进一 步用于在判定 N=fs-1并将计数器 N归 0后, 将计数器 M归 1。
9、 根据权利要求 7所述的装置, 其特征在于, 该装置中进一步包括第三 判断模块;
所述第二判断模块, 进一步用于在判定 N≠fs-1 时, 通知第三判断模块并 接收第三判断模块返回的判断结果,若返回的判断结果为 N=l ,则将计数器 M 归 1,通知输出脉冲产生模块,并将计数器 N增加 1;若返回的判断结果为 N≠l, 则直接将计数器 N增加 1 ;
输出脉冲产生模块, 进一步用于根据第二判断模块的通知, 生成一个输出 脉冲并输入到符号输出模块;
所述第三判断模块, 用于根据第二判断模块的通知, 判断 N是否等于 1 , 并将判断结果返回给第二判断模块。
10、 一种实现可变符号率的装置, 其特征在于, 该装置包括计数器 M、 N 和 Q, 且预先设定计数器 M、 N和 Q的初值为 M=l , N=0, Q=0, f为预先设 定的输出符号率, fs为输入时钟的频率, p为流水线级数, 该装置还包括: 第一判断模块, 用于在输入时钟的第 i个上升沿, 将N1χf是否大于^>^ 送入流水线模块的输入端开始进行判断, 并从所述流水线模块的输出端接收 N^xf是否大于 M^xfs的判断结果, 且所述判断结果为所述输入时钟的第 i-p 个上升沿进入流水线模块的输入端, i 为自然数; 如果所述判断结果为 N^xf 大于 M^xfs,则通知第二判断模块,如果所述判断结果为 N^xf不大于 M^xfs, 则通知第三判断模块;
第二判断模块, 用于接收第一判断模块的通知, 进一步判断 Q是否等于 0 或 p, 若 Q=0, 则将计数器 M、 Q增加 1 , 并通知输出脉冲产生模块; 若0= , 则将计数器 Q归 0; 若 Q≠0且 Q≠p, 将计数器 Q增加 1 ;
第三判断模块, 用于进一步判断计数器 N的值是否等于 fs-1 ; 当 N=fs-1 时, 将计数器 N归 0; 当 N≠fs-1 , 则将计数器 N增加 1;
流水线模块, 用于在输入时钟的第 i个上升沿, 从第一判断模块接收 N^f 是否大于M1χfs并开始进行判断, 延迟 p个输入时钟的上升沿之后, 将判断结 果返回给第一判断模块;
输出脉冲产生模块, 用于根据第二判断模块的通知, 生成一个输出脉冲并 输入到符号输出模块;
符号输出模块, 用于接收输出脉冲产生模块的输出脉冲, 将所述输出脉冲 作为系统时钟, 控制待输出数据以设定符号率输出。
11、 根据权利要求 10所述的装置, 其特征在于, 所述第三判断模块, 进 一步用于在判定 N=fs-1并将计数器 N归 0后, 将计数器 M归 1。
12、 根据权利要求 10所述的装置, 其特征在于, 该装置中进一步包括第 四判断模块;
所述第三判断模块, 进一步用于在判定 N≠fs-1 时, 通知第四判断模块并 接收第四判断模块返回的判断结果,若返回的判断结果为 N=l ,则将计数器 M 归 1,通知输出脉冲产生模块,并将计数器 N增加 1;若返回的判断结果为 N≠l, 则直接将计数器 N增加 1 ;
输出脉冲产生模块, 进一步用于根据第三判断模块的通知, 生成一个输出 脉冲并输入到符号输出模块;
所述第四判断模块, 用于根据第三判断模块的通知, 判断 N是否等于 1 , 并将判断结果返回给第三判断模块。
PCT/CN2009/076205 2009-01-21 2009-12-29 一种实现可变符号率的方法和装置 WO2010083716A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/145,558 US8924449B2 (en) 2009-01-21 2009-12-29 Method and apparatus for implementing variable symbol rate

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200910077514.6 2009-01-21
CN 200910077514 CN101483439B (zh) 2009-01-21 2009-01-21 一种实现可变符号率的方法和装置

Publications (1)

Publication Number Publication Date
WO2010083716A1 true WO2010083716A1 (zh) 2010-07-29

Family

ID=40880401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/076205 WO2010083716A1 (zh) 2009-01-21 2009-12-29 一种实现可变符号率的方法和装置

Country Status (4)

Country Link
US (1) US8924449B2 (zh)
CN (1) CN101483439B (zh)
HK (1) HK1133493A1 (zh)
WO (1) WO2010083716A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483439B (zh) 2009-01-21 2011-03-16 深圳市同洲电子股份有限公司 一种实现可变符号率的方法和装置
KR101682272B1 (ko) * 2014-01-27 2016-12-05 엘에스산전 주식회사 상승 에지 동작 시스템용 클럭 생성방법
CN103873016B (zh) * 2014-02-24 2016-09-21 北京遥测技术研究所 一种任意采样率变换数字重构滤波器系数设计方法
CN109714046B (zh) * 2019-03-05 2024-01-23 南华大学 可变相位累加器电路结构的全数字锁相环及锁相控制方法
CN111600604A (zh) * 2020-07-24 2020-08-28 山东北斗院物联科技有限公司 一种数字芯片外设时钟的产生方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1250295A (zh) * 1998-10-02 2000-04-12 汤姆森消费电子有限公司 分组传输速率转换系统中的输出符号率控制
CN1833349A (zh) * 2003-05-22 2006-09-13 电盛兰达株式会社 脉冲发生器
CN101483439A (zh) * 2009-01-21 2009-07-15 深圳市同洲电子股份有限公司 一种实现可变符号率的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103065B1 (en) * 1998-10-30 2006-09-05 Broadcom Corporation Data packet fragmentation in a cable modem system
US6961314B1 (en) * 1998-10-30 2005-11-01 Broadcom Corporation Burst receiver for cable modem system
US6888888B1 (en) * 2001-06-26 2005-05-03 Microsoft Corporation Simultaneous tuning of multiple channels using intermediate frequency sub-sampling

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1250295A (zh) * 1998-10-02 2000-04-12 汤姆森消费电子有限公司 分组传输速率转换系统中的输出符号率控制
CN1833349A (zh) * 2003-05-22 2006-09-13 电盛兰达株式会社 脉冲发生器
CN101483439A (zh) * 2009-01-21 2009-07-15 深圳市同洲电子股份有限公司 一种实现可变符号率的方法和装置

Also Published As

Publication number Publication date
HK1133493A1 (en) 2010-03-26
US20110280355A1 (en) 2011-11-17
CN101483439A (zh) 2009-07-15
US8924449B2 (en) 2014-12-30
CN101483439B (zh) 2011-03-16

Similar Documents

Publication Publication Date Title
WO2010083716A1 (zh) 一种实现可变符号率的方法和装置
TWI223505B (en) Circuit and method to spread spectrum by using phase modulation technique
TW201133248A (en) Bus interface and clock frequency control method of bus interface
TWI322376B (en) Random data generator igital frequency jittering circuit with random data generator and methods thereof
JP5722356B2 (ja) 低電力非同期カウンタ及び方法
CN107276470B (zh) 基于fpga的三相混合式步进电机控制器软核
WO2020119360A1 (zh) 一种pwm生成电路、处理电路及芯片
US11469670B2 (en) Methods and apparatus to improve power converter on-time generation
JPH05259839A (ja) 改善されたパルス幅分解能を有する波形を発生するデータ処理システムおよびその方法
US7151399B2 (en) System and method for generating multiple clock signals
US20190129464A1 (en) I3c clock generator
JP4111932B2 (ja) クロック分周器とそのトリガ信号発生回路
CN113890548B (zh) 用于信号上变频的装置及现场可编程门阵列
CN109547028B (zh) 数模转换装置、电子乐器、信息处理装置及数模转换方法
CN101217277A (zh) 非整数除频器以及可产生非整数时脉信号的锁相回路
JP4757065B2 (ja) スペクトラム拡散クロック制御装置及びスペクトラム拡散クロック発生装置
JP4850660B2 (ja) 信号発生装置
US8686756B2 (en) Time-to-digital converter and digital-controlled clock generator and all-digital clock generator
CN104980130B (zh) 基于fpga 的oserdes2的改变方波上升时间的方法
US5436628A (en) Programmable frequency timing generator with phase adjust
CN107800429B (zh) 一种具有外触发同步功能的信号发生器及信号产生方法
CN110061735B (zh) 小数分频电路及采用该电路的接口时钟分频电路
US8922260B2 (en) Method and apparatus for a programmable frequency divider
Venkataramana et al. ASIC Implementation of Universal Asynchronous Receiver and Transmitter using 45nm Technology
TWI495269B (zh) 用於訊號處理的連續逼近式乘除法電路及其訊號處理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09838683

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13145558

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09838683

Country of ref document: EP

Kind code of ref document: A1