一种基于FPGA的在线下载电路转让专利

申请号 : CN201711472327.9

文献号 : CN108182073B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王黎明王兴兴贾红程显志陈维新韦嶔

申请人 : 西安智多晶微电子有限公司

摘要 :

本发明公开了一种基于FPGA的在线下载电路,包括:数据解串模块,用于对以第一时钟频率串行输入的数据流进行解串;数据对齐模块,连接所述数据解串模块,用于将解串后的数据转换为第一位宽的并行数据;数据传输缓存模块,连接所述数据对齐模块,用于存储所述第一位宽的并行数据;指令处理模块,连接所述数据对齐模块,用于当判断所述并行数据为第一指令时,执行第一操作,或当判断所述并行数据为第二指令时,执行第二操作;数据流驱动模块,连接所述数据传输缓存模块和所述指令处理模块,用于根据所述第二操作控制所述数据传输缓存模块以第二时钟频率输出并行数据到内存中。本发明的基于FPGA的在线下载电路提高了数据处理效率,缩短FPGA配置时间。

权利要求 :

1.一种基于FPGA的在线下载电路,其特征在于,包括:数据解串模块,用于对以第一时钟频率串行输入的数据流进行解串;

数据对齐模块,连接所述数据解串模块,用于将解串后的数据转换为第一位宽的并行数据;

数据传输缓存模块,连接所述数据对齐模块,用于存储所述第一位宽的并行数据;

指令处理模块,连接所述数据对齐模块,用于当判断所述并行数据为第一指令时,执行第一操作,或当判断所述并行数据为第二指令时,执行第二操作;

时钟分频模块,连接所述数据传输缓存模块,用于根据所述数据传输缓存模块输出的第二位宽的并行数据对应将所述第一时钟频率调整为第二时钟频率,并且数据传输缓存模块还用于将所述第一位宽的并行数据转换为第二位宽的并行数据;

数据流驱动模块,连接所述数据传输缓存模块和所述指令处理模块,用于根据所述第二操作控制所述数据传输缓存模块以第二时钟频率输出并行数据到内存中;

还包括头侦测模块,连接所述数据对齐模块,用于判断所述串行输入的数据流帧头数据正确时,控制所述数据对齐模块将所述并行数据输出到所述数据传输缓存模块;所述头侦测模块还用于当判断所述串行输入的数据流帧头数据错误时,控制所述数据解串模块停止解串,以及若解串已经完成但尚未对齐完成,则控制对齐模块停止对齐,若对齐完成,则控制对齐模块不输出数据到数据传输缓存模块,其中,所述数据对齐模块和所述数据解串模块并行处理;

还包括数据校验模块,所述数据校验模块连接所述数据传输缓存模块,用于判断数据输出错误时,停止执行所述第二操作;

第一指令为不需要执行读取数据传输缓存模块的操作;第二指令为需要执行读取数据传输缓存模块的操作。

2.根据权利要求1所述的基于FPGA的在线下载电路,其特征在于,所述指令处理模块包括:寄存器缓存单元、控制寄存器;

所述寄存器缓存单元连接所述数据对齐模块和所述控制寄存器,用于存储所述并行数据,判断所述并行数据为第一指令时,控制所述控制寄存器执行所述第一操作。

3.根据权利要求2所述的基于FPGA的在线下载电路,其特征在于,所述指令处理模块还包括:指令译码单元、逻辑控制单元、控制状态机;

所述寄存器缓存单元连接指令译码单元,用于判断所述并行数据为第二指令时,将所述并行数据发送到所述指令译码单元;

所述指令译码单元连接所述控制状态机,用于对所述并行数据译码后,将译码结果发送到所述控制状态机;

所述控制状态机连接所述逻辑控制单元,用于根据所述译码结果发送对应的状态信号到所述逻辑控制单元;

所述逻辑控制单元连接所述数据流驱动模块,用于根据所述状态信号控制所述数据流驱动模块执行所述第二操作。

4.一种基于FPGA的在线下载电路配置方法,其特征在于,包括以下步骤:S1、对以第一时钟频率串行输入的数据流进行解串;

S2、将解串后的数据转换为第一位宽的并行数据;

将所述第一位宽的并行数据转换为第二位宽的并行数据;

根据第二位宽的并行数据对应将所述第一时钟频率调整为第二时钟频率;

S3、当判断所述并行数据为写数据指令时,执行第一操作,或当判断所述并行数据为读数据指令时,执行第二操作;

S4、根据所述第二操作,以第二时钟频率输出第二位宽的并行数据到内存中;

其中,第一指令为不需要执行读取数据传输缓存模块的操作;第二指令为需要执行读取数据传输缓存模块的操作,并且,判断所述串行输入的数据流帧头数据正确时,将所述并行数据输出到所述数据传输缓存模块;当判断所述串行输入的数据流帧头数据错误时,停止解串,以及若解串已经完成但尚未对齐完成,则停止对齐,若对齐完成,则不输出数据到数据传输缓存模块,其中,所述解串和所述对齐操作并行处理。

说明书 :

一种基于FPGA的在线下载电路

技术领域

[0001] 本发明属于FPGA技术领域,具体涉及一种基于FPGA的在线下载电路。

背景技术

[0002] FPGA(Field Programmable Gate Array现场可编程门阵列)是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑
模块CLB(Configurable Logic Block)、输出输入模IOB(Input Output Block)和内部连线
(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户
的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件
一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了
定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
[0003] 然而,现有FPGA在线下载配置方式中,FPGA串行配置接口工作速率不够高,对于大容量或者超大容量FPGA配置过程需要成百微秒甚至到毫秒才能完成配置,配置效率低,影
响芯片工作效率。

发明内容

[0004] 为了解决现有技术中存在的上述问题,本发明提供了一种基于FPGA的在线下载电路。
[0005] 本发明的一个实施例提供了一种基于FPGA的在线下载电路,包括:
[0006] 数据解串模块,用于对以第一时钟频率串行输入的数据流进行解串;
[0007] 数据对齐模块,连接所述数据解串模块,用于将解串后的数据转换为第一位宽的并行数据;
[0008] 数据传输缓存模块,连接所述数据对齐模块,用于存储所述第一位宽的并行数据;
[0009] 指令处理模块,连接所述数据对齐模块,用于当判断所述并行数据为第一指令时,执行第一操作,或当判断所述并行数据为第二指令时,执行第二操作;
[0010] 数据流驱动模块,连接所述数据传输缓存模块和所述指令处理模块,用于根据所述第二操作控制所述数据传输缓存模块以第二时钟频率输出并行数据到内存中。
[0011] 在本发明的一个实施例中,还包括头侦测模块,连接所述数据对齐模块,用于判断所述串行输入的数据流帧头数据正确时,控制所述数据对齐模块将所述并行数据输出到所
述数据传输缓存模块。
[0012] 本发明的一个实施例中,所述头侦测模块还用于当判断所述串行输入的数据流帧头数据错误时,控制所述数据解串模块停止解串。
[0013] 本发明的一个实施例中,所述指令处理模块包括:寄存器缓存单元、控制寄存器;
[0014] 所述寄存器缓存单元连接所述数据对齐模块和所述控制寄存器,用于存储所述并行数据,判断所述并行数据为第一指令时,控制所述控制寄存器执行所述第一操作。
[0015] 本发明的一个实施例中,所述指令处理模块还包括:指令译码单元、逻辑控制单元、控制状态机;
[0016] 所述寄存器缓存单元连接指令译码单元,用于判断所述并行数据为第二指令时,将所述并行数据发送到所述指令译码单元;
[0017] 所述指令译码单元连接所述控制状态机,用于对所述并行数据译码后,将译码结果发送到所述控制状态机;
[0018] 所述控制状态机连接所述逻辑控制单元,用于根据所述译码结果发送对应的状态信号到所述逻辑控制单元;
[0019] 所述逻辑控制单元连接所述数据流驱动模块,用于根据所述状态信号控制所述数据流驱动模块执行所述第二操作。
[0020] 本发明的一个实施例中,数据传输缓存模块还用于将所述第一位宽的并行数据转换为第二位宽的并行数据;
[0021] 本发明的一个实施例中,还包括时钟分频模块,连接所述数据传输缓存模块,用于根据所述数据传输缓存模块输出的第二位宽的并行数据对应将所述第一时钟频率调整为
第二时钟频率。
[0022] 本发明的一个实施例中,还包括数据校验模块,所述数据校验模块连接所述数据传输缓存模块,用于判断数据输出错误时,停止执行所述第二操作。
[0023] 本发明同时提供了一种基于FPGA的在线下载电路配置方法,包括以下步骤:
[0024] S1、对以第一时钟频率串行输入的数据流进行解串;
[0025] S2、将解串后的数据转换为第一位宽的并行数据;
[0026] S3、当判断所述并行数据为写数据指令时,执行第一操作,或当判断所述并行数据为读数据指令时,执行第二操作;
[0027] S4、根据所述第二操作,以第二时钟频率输出第二位宽的并行数据到内存中。
[0028] 本发明的一个实施例中,当判断所述串行输入的数据流帧头数据错误时,控制步骤S2停止执行。
[0029] 本发明的有益效果:
[0030] 1、本发明的基于FPGA的在线下载电路,通过调整输出数据的时钟频率和数据位宽,使得可以接受外部接口更高频率的时钟和数据,从而改变数据流的吞吐量,根据实际需
求提高或减少数据流的吞吐速率。
[0031] 2、本发明的基于FPGA的在线下载电路,在数据进行解串、对齐的同时,能够并行进行数据流帧头的序列的侦测,当侦测完成后,就能够将解串、对齐后的数据进行输出,提高
了数据处理效率。
[0032] 3、本发明的基于FPGA的在线下载电路,通过将数据输出位宽控制与数据输出速率控制相结合,既保证了对外部速率对更大频率范围内的支持,同时又降低了内部时钟因频
率过高而引起的数据传输错误,在保证数据正确传输的前提下,尽可能大的提高数据传输
效率,缩短FPGA配置时间。

附图说明

[0033] 图1为本发明实施例提供的一种基于FPGA的在线下载电路模块框图;
[0034] 图2为本发明实施例提供的另一种基于FPGA的在线下载电路模块框图;
[0035] 图3为本发明实施例提供的另一种基于FPGA的在线下载电路模块框图;
[0036] 图4是本发明实施例提供的另一种基于FPGA的在线下载配置方法流程图。

具体实施方式

[0037] 下面结合具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范
围。
[0038] 实施例一
[0039] 请参见图1,图1为本发明实施例提供的一种基于FPGA的在线下载电路模块框图,包括:
[0040] 数据解串模块1,用于对以第一时钟频率串行输入的数据流进行解串;
[0041] 数据对齐模块2,连接所述数据解串模块1,用于将解串后的数据转换为第一位宽的并行数据;
[0042] 数据传输缓存模块3,连接所述数据对齐模块2,用于存储所述第一位宽的并行数据;
[0043] 指令处理模块4,连接所述数据对齐模块2,用于当判断所述并行数据为第一指令时,执行第一操作,或当判断所述并行数据为第二指令时,执行第二操作;
[0044] 数据传输缓存模块5,连接所述数据传输缓存模块3和所述指令处理模块4,用于根据所述第二操作控制所述数据传输缓存模块3以第二时钟频率输出并行数据到内存中。
[0045] 输入到数据解串模块1解串模块中的数据都是以串行方式输入的串行数据,因此在将串行数据转换为并行数据时需要对数据进行解串,在数据输入时,其时钟信号参考的
是外部的时钟信号cclk同步配置时钟,外部时钟频率一般都是固定的数值,例如是6MHz,可
以认为是本实施例中的第一时钟频率,在一次配置中不能随时改变,否则会给内部配置带
来一定的影响。
[0046] 数据对齐模块2将解串后的数据转换为并行数据,在这个步骤中,由于使用了外部的cclk时钟,因此并行数据的位宽一般也是固定的,例如为8位,可以认为是本实施例中的
第一位宽。由于外部参考时钟的限制,导致数据在进行读写时,不能有效的控制读写策略,
造成FGPA运行效率较低。
[0047] 数据对齐模块2将解串后的数据转换为并行数据后,同时将该数据发送到数据传输缓存模块3和指令处理模块4,数据传输缓存模块3对数据内容进行存储,而指令处理模块
4根据数据中的控制字段进行处理产生对应的控制信号。
[0048] 这就使得控制逻辑与数据逻辑并行运算,不需要等待控制逻辑完成之后才开始进行数据逻辑的操作,提高了运算效率。
[0049] 具体的,指令处理模块4首先进行控制指令的判断,第一指令可以是不需要执行读取数据传输缓存模块3的操作,即不需要对缓存器中数据进行操作的指令。例如第一指令可
以是写控制寄存器42操作指令,当寄存器缓存中的数据是写控制寄存器42操作指令时,控
制寄存器42会被更新,完成时钟选择的操作。第二指令可以是需要执行读取数据传输缓存
模块3的操作,例如,初始化地址指令init_address、编程递增指令prog_incr、回读校验递
增指令verify_incr、回读控制寄存器指令verify_cntrl、地址移位指令address_shift、数
据移位指令data_shift、编程结束指令prog_done、空指令noop、编程控制寄存器指令prog_
cntrl等指令,则会进行指令译码,进而使状态机进行不同状态的跳转,状态跳转输出到逻
辑控制单元44,进而按照要求输出读fifo(First Input First Output,先入先出队列)总
线宽度选择信号、地址移位使能信号、数据移位使能信号,读数据缓存FIFO中的数据被读出
送入数据传输缓存模块5,经该模块送至内部配置RAM(Random‑Access Memory,随机存取存
储器)中。
[0050] 本发明的基于FPGA的在线下载电路,通过调整输出数据的时钟频率,使得数据输出速率得到控制,从而改变数据流的吞吐量,根据实际需求提高或减少数据流的吞吐速率。
[0051] 实施例二
[0052] 请参看图2,图2为本发明实施例提供的另一种基于FPGA的在线下载电路模块框图,本实施例包括实施一中的内容,还包括头侦测模块6,连接所述数据对齐模块2,用于判
断所述串行输入的数据流帧头数据正确时,控制所述数据对齐模块2将所述并行数据输出
到所述数据传输缓存模块3。
[0053] 在本实施例中,输入的数据流同时进入头侦测模块6和解串模块,并同时进行处理。
[0054] 本发明的一个实施例中,所述头侦测模块6还用于当判断所述串行输入的数据流帧头数据错误时,控制所述数据解串模块1停止解串。
[0055] 例如,在t1时刻,头侦测模块6读取数据流的帧头,并进行判断,且解串模块对数据流进行解串,解串完成后再通过对齐模块进行串转并处理。
[0056] 在t2时刻,当判断帧头存在,且帧头数据正确时,向对齐模块发送信号,控制所述数据对齐模块2将所述并行数据输出到所述数据传输缓存模块3。而在此时,对齐模块已经
完成了串转并处理,当接收到控制信号后,即可直接输出数据到数据传输缓存模块3。
[0057] 或者在t1时刻,头侦测模块6读取数据流的帧头,并进行判断,且解串模块对数据流进行解串,解串完成后再通过对齐模块进行串转并处理。
[0058] 在t3时刻,头侦测模块6判断所述串行输入的数据流帧头数据错误时或者判断帧头不存在时,根据情况,若此时解串还未完成,则控制所述数据解串模块1停止解串,若解串
已经完成但尚未对齐完成,则控制对齐模块停止对齐,若对齐完成,则控制对齐模块不输出
数据到数据传输缓存模块3。
[0059] 由于本发明的上述配置,在t1时刻将同一数据并行分配到两路处理单元并行处理,使得整个系统时间利用率提高,相比现有技术中,先侦测后解串的方式,本发明的基于
FPGA的在线下载电路,在数据进行解串、对齐的同时,并行进行数据流帧头的序列的侦测,
当侦测完成后,就能够将解串、对齐后的数据进行输出,提高了数据处理效率。
[0060] 实施例三
[0061] 请参见图3,图3为本发明实施例提供的另一种基于FPGA的在线下载电路模块框图,本实施例包括实施例一或二中的内容。
[0062] 所述指令处理模块4包括:寄存器缓存单元41、控制寄存器42;
[0063] 所述寄存器缓存单元41连接所述数据对齐模块2和所述控制寄存器42,用于存储所述并行数据,判断所述并行数据为第一指令时,控制所述控制寄存器42执行所述第一操
作。
[0064] 本发明的一个实施例中,所述指令处理模块4还包括:指令译码单元43、逻辑控制单元44、控制状态机45;
[0065] 所述寄存器缓存单元41连接指令译码单元43,用于判断所述并行数据为第二指令时,将所述并行数据发送到所述指令译码单元43;
[0066] 所述指令译码单元43连接所述控制状态机45,用于对所述并行数据译码后,将译码结果发送到所述控制状态机45;
[0067] 所述控制状态机45连接所述逻辑控制单元44,用于根据所述译码结果发送对应的状态信号到所述逻辑控制单元44;
[0068] 所述逻辑控制单元44连接所述数据传输缓存模块5,用于根据所述状态信号控制所述数据传输缓存模块5执行所述第二操作。
[0069] 本发明的一个实施例中,数据传输缓存模块3还用于将所述第一位宽的并行数据转换为第二位宽的并行数据;
[0070] 本发明的一个实施例中,还包括时钟分频模块7,连接所述数据传输缓存模块3,用于根据所述数据传输缓存模块3输出的第二位宽的并行数据对应将所述第一时钟频率调整
为第二时钟频率。
[0071] 在将数据输出到RAM中时,如果继续使用外部时钟信号作为参考的话,可能因为频率过高而对电路时序带来影响,或因为频率过低而降低配置速率。本发明的方案可以根据
实际情况通过编写控制寄存器值将不可配的外部时钟转换为可配的内部时钟,根据数据传
输要求对应更改时序而提高传输速率、增强系统可靠性。例如,时钟分频模块7对外部时钟
信号进行二分频、四分频、六分频等操作,将分频后的时钟信号输入到数据传输缓存模块3
中,以改变数据传输,对外部时钟信号分频后的时钟信号可以认为是第二时钟频率,最终根
据所述第二操作控制所述数据传输缓存模块3以第二时钟频率输出并行数据到内存中。
[0072] 而在时钟分频之后,如果单单只改变时钟频率而不对应改变数据位宽,则会影响数据传输的可靠性,为了使时钟频率与数据位宽相匹配,本发明还通过数据传输缓存模块3
将所述第一位宽的并行数据转换为第二位宽的并行数据,数据位宽的选择通过编写控制寄
存器实现。例如,当第一位宽的并行数据为8位宽并行数据时,第二位宽的并行数据可以为4
位、8位、16为、32位、64位等不同位宽的并行数据,具体位宽调整根据时钟频率的选择不同
而确定。保证对外部速率对更大频率范围内的支持,同时又降低了内部时钟因频率过高所
带来电路时序挑战。
[0073] 本发明的基于FPGA的在线下载电路,通过将数据输出位宽控制与数据输出速率控制相结合,既保证了对外部速率对更大频率范围内的支持,同时又降低了内部时钟因频率
过高而引起的数据传输错误,在保证数据正确传输的前提下,尽可能大的提高数据传输效
率,缩短FPGA配置时间。
[0074] 本发明的一个实施例中,还包括数据校验模块8,所述数据校验模块8连接所述数据传输缓存模块3,用于判断数据传输正确性,输出错误时,停止执行所述第二操作。
[0075] 对读出的数据进行数据校验,若发生数据校验失败则触发错误中断,结束本次操作,不再接收数据。本发明在在电路中加入据校验模块,保证了传输数据的可靠性;降低了
因串行配置速率提高或时钟分频所引起的数据错误造成芯片及系统工作风险。
[0076] 实施例四
[0077] 请参见图4,图4是本发明实施例提供的另一种基于FPGA的在线下载配置方法流程图,包括以下步骤:
[0078] S1、对以第一时钟频率串行输入的数据流进行解串;
[0079] S2、将解串后的数据转换为第一位宽的并行数据;
[0080] S3、当判断所述并行数据为写数据指令时,执行第一操作,或当判断所述并行数据为读数据指令时,执行第二操作;
[0081] S4、根据所述第二操作,以第二时钟频率输出第二位宽的并行数据到内存中。
[0082] 本发明的一个实施例中,当判断所述串行输入的数据流帧头数据错误时,控制步骤S2停止执行。
[0083] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。