FPGA硬核IP动态重配置电路和接口电路的制作方法

未命名 10-19 阅读:114 评论:0

fpga硬核ip动态重配置电路和接口电路
技术领域
1.本发明涉及集成电路技术。


背景技术:

2.现场可编程门阵列fpga(field programmable gate array)作为集成电路一类通用芯片,兼具asic电路的高性能与软件编程的灵活性,在数字逻辑系统、通信系统、工业控制等领域得到了广泛的应用。目前主流fpga都采用了sram来存储配置数据。这种fpga可以进行多次配置,通过配置不同的数据,可以实现不同的功能。
3.目前fpga重配置有三种方式:
4.1、关断重配置,该方法是通过复位fpga或者对fpga重新上电后,通过fpga外部的配置接口进行fpga配置。
5.2、动态重配置,该方法是在fpga启动,用户设计正常工作后,通过fpga内部的配置控制模块提供的配置访问接口,进行全局动态重配置,该方法虽然可以实现动态重配置功能,但是对用户要求较高,用户除了需要对fpga配置数据流的帧结构有充分的了解,还需要清楚fpga底层配置点与配置数据流对应关系,该关系涉及到fpga芯片本身的底层信息,这些信息厂商往往不会提供给用户,用户很难通过该方式实现动态重配置功能。
6.3、局部动态重配置,该方法是在fpga启动,用户设计正常工作后,通过调用fpga内部硬核ip的动态重配置接口进行特定硬核ip的动态重配置。
[0007][0008]
先有技术存在1、配置时间较长;2、配置接口电路太复杂,不方便应用;3、扩展性较差等缺点。


技术实现要素:

[0009]
本发明所要解决的技术问题是,提供一种可灵活扩展的fpga硬核ip动态重配置接口电路,以及采用该接口电路的配置电路,能够根据不同硬核ip所需要的配置点数量进行灵活扩展。
[0010]
本发明解决所述技术问题采用的技术方案是,fpga硬核ip动态重配置接口电路,包括:
[0011]
drp接口信号缓存寄存器(201),用于寄存接口控制信号;
[0012]
输出反馈电路(202),用于反馈读写操作结果状态;
[0013]
读写使能控制电路(203),用于产生读写使能信号;
[0014]
比较器电路(204),用于根据sram阵列大小进行调整设置地址有效范围;
[0015]
地址译码电路(205),用于将输入的二进制地址转换成one hot编码信号;
[0016]
srma阵列写控制电路(206),用于对sram阵列进行写操作;
[0017]
srma阵列读控制电路(207),用于对sram阵列进行读操作;
[0018]
drp接口信号缓存寄存器(201)与读写使能控制电路(203)、比较器电路(204)、地
址译码电路(205)和srma阵列写控制电路(206)连接,比较器电路(204)与输出反馈电路(202)和读写使能控制电路(203)连接,地址译码电路(205)连接到srma阵列写控制电路(206)和srma阵列读控制电路(207),读写使能控制电路(203)连接到srma阵列写控制电路(206)。
[0019]
进一步的,
[0020]
drp接口信号缓存寄存器(201)包括:
[0021]
第一d触发器单元,其输入端接drp使能信号;
[0022]
第二d触发器单元,其输入端接drp读写控制信号;
[0023]
第三d触发器单元,其输入端作为动态重配置数据输入端口;
[0024]
第四d触发器单元,其输入端作为动态重配置地址输入端口;
[0025]
比较器电路(204)的一路输入接第四d触发器单元,另一路输入接过滤地址存储器。过滤地址存储器在图中未示出,与其连接的比较器的输入端也未示出,普通技术人员能够理解。
[0026]
第三d触发器单元中的d触发器数量由数据宽度决定,第四d触发器单元中的d触发器数量由地址宽度决定。
[0027]
输出反馈电路(202)包括:
[0028]
输出反馈反相器(2021),其输入端接比较器(204)的输出端;
[0029]
第一输出反馈选择器(2022),其第一输入端接输出反馈反相器,第二输入端接逻辑0,输出端作为读写错误标志输出端;
[0030]
第二输出反馈选择器(2023),其第一输入端接第一读写使能与门(2031)的输出端,第二输入端接逻辑1,输出端作为drp状态输出端。
[0031]
读写使能控制电路(203)包括:
[0032]
第一读写使能与门(2031),其第一输入端接fpga内部全局使能信号输入端,第二输入端接比较器(204)的输出端,第三输入端接第一d触发器单元的输出端;
[0033]
第一读写使能与门(2032),其第一输入端接第一读写使能与门(2031)的输出端,第二输入端通过反相器接第二d触发器的输出端;
[0034]
第三读写使能与门(2033),其第一输入端接第一读写使能与门(2031)的输出端,第二输入端接第二d触发器的输出端。
[0035]
srma阵列写控制电路(206)包括:
[0036]
第一写控制选择器(2061),其控制端接第三读写使能与门(2033)的输出端,第一输入端接第三d触发器单元输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的写入端口;
[0037]
第二写控制选择器(2062),其控制端接第三读写使能与门(2033)的输出端,第一输入端接地址译码电路(205)输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的写使能端口。
[0038]
srma阵列读控制电路(207)包括:
[0039]
第一读控制选择器(2071),其控制端接drp读使能信号端,第一输入端接地址译码电路输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的读使能端口;
[0040]
第二读控制选择器(2072),其控制端接接地址译码电路(205)输出端,输入端接输
出端接srma阵列电路(102)的读端口;
[0041]
第三读控制选择器(2073),其控制端接drp读使能信号端,第一输入端接第二读控制选择器(2072)输出端,第二输入端接逻辑0。
[0042]
本发明还提供一种fpga硬核ip动态重配置电路,包括sram阵列电路,sram阵列电路包括sram阵列和配置电路,还包括前述fpga硬核ip动态重配置接口电路,fpga硬核ip动态重配置接口电路通过sram读写控制电路和sram阵列连接。
[0043]
本发明的有益效果:
[0044]
(1)支持不同配置点大小需求的fpga硬核ip。本发明电路结构只需根据配置点大小和数据宽度需求修改相应参数即可。
[0045]
(2)实现硬核ip配置点的快速访问。直接访问硬核ip配置sram,高效且快速的进行修改。
[0046]
(3)电路结构简单,占用面积较小。本发明电路使用逻辑门和寄存器较少,逻辑比较简单,实现比较容易,电路面积也比较小,方便嵌入到fpga硬核ip中。
附图说明
[0047]
图1是本发明的fpga硬核ip动态重配置电路总体结构示意图。
[0048]
图2是fpga硬核ip动态重配置接口电路的结构示意图。
[0049]
图3是有效地址写时序图。
[0050]
图4是无效地址写时序图。
[0051]
图5是有效地址读时序图。
[0052]
图6是无效地址读时序图。
[0053]
图7是sram阵列电路原理图。
[0054]
图8是配置点读写阵列drp_shortword电路原理图。
[0055]
图9是sram读写控制电路原理图。
[0056]
图10是sram cell电路原理图。
具体实施方式
[0057]
现有技术中,fpga的配置是通过配置电路对sram阵列内的数据进行读写操作实现。本发明通过独立于配置电路的另一种数据通道对sram阵列进行数据操作,具体的说,由fpga硬核ip动态重配置接口电路经过sram读写控制电路对sram阵列进行读写,参见图1。以上为总体结构简介。
[0058]
参见图2,fpga硬核ip动态重配置接口电路包括:
[0059]
drp接口信号缓存寄存器(201),用于寄存接口控制信号;
[0060]
输出反馈电路(202),用于反馈读写操作结果状态;
[0061]
读写使能控制电路(203),用于产生读写使能信号;
[0062]
比较器电路(204),用于根据sram阵列大小进行调整设置地址有效范围;
[0063]
地址译码电路(205),用于将输入的二进制地址转换成one hot编码信号;
[0064]
srma阵列写控制电路(206),用于对sram阵列进行写操作;
[0065]
srma阵列读控制电路(207),用于对sram阵列进行读操作;
[0066]
drp接口信号缓存寄存器(201)与读写使能控制电路(203)、比较器电路(204)、地址译码电路(205)和srma阵列写控制电路(206)连接,比较器电路(204)与输出反馈电路(202)和读写使能控制电路(203)连接,地址译码电路(205)连接到srma阵列写控制电路(206)和srma阵列读控制电路(207),读写使能控制电路(203)连接到srma阵列写控制电路(206)。
[0067]
drp接口信号缓存寄存器(201)包括:
[0068]
第一d触发器单元,其输入端接drp使能信号;
[0069]
第二d触发器单元,其输入端接drp读写控制信号;
[0070]
第三d触发器单元,其输入端作为动态重配置数据输入端口;
[0071]
第四d触发器单元,其输入端作为动态重配置地址输入端口;
[0072]
比较器电路(204)的一路输入接第四d触发器单元,另一路输入接过滤地址存储器。第三d触发器单元中的d触发器数量由数据宽度决定,第四d触发器单元中的d触发器数量由地址宽度决定。
[0073]
输出反馈电路(202)包括:
[0074]
输出反馈反相器(2021),其输入端接比较器(204)的输出端;
[0075]
第一输出反馈选择器(2022),其第一输入端接输出反馈反相器,第二输入端接逻辑0,输出端作为读写错误标志输出端;
[0076]
第二输出反馈选择器(2023),其第一输入端接第一读写使能与门(2031)的输出信号drp_vaild信号,第二输入端接逻辑1,输出端作为drp状态输出端。
[0077]
读写使能控制电路(203)包括:
[0078]
第一读写使能与门(2031),其第一输入端接fpga内部全局使能信号输入端,第二输入端接比较器(204)的输出端,第三输入端接第一d触发器单元的输出端;
[0079]
第一读写使能与门(2032),其第一输入端接第一读写使能与门(2031)的输出端,第二输入端通过反相器接第二d触发器的输出端;
[0080]
第三读写使能与门(2033),其第一输入端接第一读写使能与门(2031)的输出信号drp_vaild,第二输入端接第二d触发器的输出端。
[0081]
srma阵列写控制电路(206)包括:
[0082]
第一写控制选择器(2061),其控制端接第三读写使能与门(2033)的输出端,第一输入端接第三d触发器单元输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的写入端口;
[0083]
第二写控制选择器(2062),其控制端接第三读写使能与门(2033)的输出端,第一输入端接地址译码电路(205)输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的写使能端口。
[0084]
srma阵列读控制电路(207)包括:
[0085]
第一读控制选择器(2071),其控制端接drp读使能信号端,第一输入端接地址译码电路输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的读使能端口;
[0086]
第二读控制选择器(2072),其控制端接接地址译码电路(205)输出端,输入端接输出端接srma阵列电路(102)的读端口;
[0087]
第三读控制选择器(2073),其控制端接drp读使能信号端,第一输入端接第二读控
制选择器(2072)输出端,第二输入端接逻辑0。
[0088]
参见图1、图2、图7和图8,fpga硬核ip动态重配置接口电路和sram阵列电路共同构成fpga硬核ip动态重配置电路。sram阵列电路包括sram读写控制电路和sram阵列,fpga硬核ip动态重配置接口电路通过sram读写控制电路和sram阵列连接。
[0089]
如图1所示,101为fpga硬核ip动态重配置接口电路,简称接口电路,该电路实现通用总线对sram阵列的读写控制与地址译码功能,102为sram阵列电路,包含sram阵列与sram读写控制电路。
[0090]
接口电路原理如图2所示。
[0091]
drp_clk为时钟信号,接入201中的各d触发器。
[0092]
drp_reset为异步复位信号,高有效,接入所有d触发器。
[0093]
drp_ready为握手信号,表示动态重配置读写操作完成。
[0094]
drp_en为电路使能信号,高有效。
[0095]
drp_we为读写控制,高为写,低为读。
[0096]
drp_datain为动态重配置数据输入端口。
[0097]
drp_addr为动态重配置点的地址。
[0098]
drp_dataout为动态重配置数据回读端口。
[0099]
drp_error为读写错误标志,高为读写错误,低为正常。
[0100]
drp_read_en为读使能标志,高为读使能。
[0101]
fpga_gen为fpga内部全局使能信号,在fpga正常启动后,该信号为长高。
[0102]
mc_write_sel为sram阵列中的mc_group写使能信号。
[0103]
write_ports为sram阵列写端口。
[0104]
mc_read_sel为sram阵列中的mc_group读使能信号。
[0105]
read_prots为sram阵列读端口。
[0106]
与drp_datair[dw-1:0]连接的d触发器单元由预定数量的d触发器构成,与drp_addr[aw-1:0]连接的d触发器单元由预定数量的d触发器构成,以上两个d触发器单元的输出是数组,这一点对于普通技术人员是可以理解的。
[0107]
电路接口时序共有4种情况,有效地址写时序,无效地址写时序,有效地址读时序,无效地址读时序。
[0108]
有效地址写时序如图3所示,无效地址写时序如图4所示,有效地址读时序如图5所示,无效地址读时序如图6所示。
[0109]
图中201为drp接口信号缓存寄存器,该电路功能是寄存接口控制信号,
[0110]
202为输出反馈电路,该电路功能是在(1)drp_addr写入的地址在有效地址范围内,正常输出drp_ready高,表示读写操作完成;(2)drp_addr写入的地址超出有效地址范围内,输出drp_error高,并输出drp_ready高,表示读写操作错误。
[0111]
203为读写使能控制电路,产生读写使能信号给206和207。
[0112]
204为比较器电路,该电路可根据sram阵列大小进行调整设置地址有效范围,如果输入地址在有效范围内,产生mc_sel信号高,反之保持mc_sel信号低。
[0113]
205为地址译码电路,该电路功能是将输入的二进制地址转换成one hot编码信号来使能sram阵列中唯一的mc_group(memory cell group)。
[0114]
206为srma阵列写控制电路,当输入地址在有效范围内,输出mc_write_sel信号写使能sram阵列中唯一的mc_group,并将输入的drp_datain信号驱动为所有的write_prots端口上,write_prot的数量n和位宽dw可根据sram阵列大小和结构灵活调整。
[0115]
207为srma阵列读控制电路,当输入地址在有效范围内,输出mc_read_sel信号读使能sram阵列中唯一的mc_group,并将sram阵列反馈的数据通过选择电路输出到drp_dataout端口上,read_prots的数量n和位宽dw同样可根据sram阵列大小和结构灵活调整。
[0116]
sram阵列电路原理参见图7~图10。
[0117]
sram阵列电路由若干mc_group(703)、sub_group(702)和
[0118]
drp_shortword(701)组成,703、702,701将配置点分成若干组,便于继承和扩展。mc_group(703)由j个sub_group(702)组成,sub_group(702)由k个drp_shortword(701)组成,drp_shortword(701)完成动态重配置的配置sram读写操作。mc_group全称memory cell group中文为存储单元区,k值取决于fpga架构中配置存储结构,可以为预设值。
[0119]
整个sram阵列的配置点地址容量为num
×j×
k,因此drp_addr的宽度aw应该满足aw为2
aw
》=num
×j×
k的整数。num,j,k这三个值,可根据fpga架构以及ip配置点数量等不同,设置成适合实际需求的值。整个sram阵列电路可动态重配置的配置点总量为配置点地址容量(num
×j×
k)乘以配置读写端口drp_datain/drp_dataout宽度dw,即num
×j×k×
dw。
[0120]
配置点读写阵列drp_shortword(703)电路如图8所示。配置点读写阵列drp_shortword(703)电路通过sram读写控制电路(802)实现将drp的一个配置点的值写入对应sram cell(801)中,以及读出该重配置点的值。一个sram读写控制电路(802)实现1bit配置点的读写控制,drp_shortword(703)中包含dw个sram读写控制电路(802)和dw个sram cell(801)。
[0121]
读写控制电路(802)如图9所示。一个配置点值在write_en使能的时候通过write_ports送至sram cell(801)的bl1和bl1n中,在read_en使能时将sram cell(801)中存储的配置点值传送至read_ports。
[0122]
write_en为高时,write_ports为1,与bl1n连接的传输门打开,将0传至bl1n,write_ports为0,与bl1连接的传输门打开,将0传至bl1,然后存入sram cell(801)中,完成重配置写操作;当read_en为高时,传输门打开,sram cell(801)中存储的值通过bl1n传入read_port,完成配置读操作。
[0123]
sram cell(801)电路原理图如图10所示。在fpga上电配置时,wl打开,配置点值从bl/bln端口存入sram cell,完成fpga配置,在fpga配置结束后,动态重配置通过bl1/bl1n将配置点值存入此sram cell中。
[0124]
本发明可实现动态重配置电路结构灵活扩展。可根据同硬核ip的实际需求,灵活扩展配置点地址,进而实现灵活扩展配置电路。
[0125]
实施例1
[0126]
如ip的配置点需求为2560,若sub_group内包8个drp_shortword(703),即k=8。一个drp_shortword(703)中可动态重配置的配置点数量为16,即dw=16。sub_group(704)的配置点容量为16
×
8=128;设置j=2,则mc_group(705)的配置点容量为128
×
2=256个;设置num=10,则整个sram阵列可动态重配置的配置点为256
×
10=2560个。此时,动态重配置
接口电路中
[0127]
write_ports_num/read_ports_num的num为10;drp_addr的宽度aw应该满足aw为2
aw
》=160(num
×j×
k=10
×2×
8=160)的整数,即aw大于等于8。
[0128]
实施例2
[0129]
如ip的配置点需求为2560,若sub_group内包8个drp_shortword(703),即k=8。一个drp_shortword(703)中可动态重配置的配置点数量为16,即dw=16。sub_group(704)的配置点容量为16
×
8=128;设置j=5,则mc_group(705)的配置点容量为128
×
5=640个;设置num=4,则整个sram阵列可动态重配置的配置点为640
×
4=2560个。此时,动态重配置接口电路中
[0130]
write_ports_num/read_ports_num的num为4;drp_addr的宽度aw应该满足aw为2
aw
》=160(num
×j×
k=4
×5×
8)的整数,即aw大于等于8。此用例可减少sram阵列读写端口数量。
[0131]
实施例3
[0132]
如ip的配置点需求为14080,若sub_group内包8个drp_shortword(703),即k=8。一个drp_shortword(703)中可动态重配置的配置点数量为32,即dw=32。sub_group(704)的配置点容量为32
×
8=256;设置j=11,则mc_group(705)的配置点容量为256
×
11=2816个;设置num=5,则整个sram阵列可动态重配置的配置点为2816
×
5=14080个。此时,动态重配置接口电路中
[0133]
write_ports_num/read_ports_num的num为5;drp_addr的宽度aw应该满足aw为2
aw
》=440(num
×j×
k=5
×
11
×
8=440)的整数,即aw大于等于9。此用例动态重配置接口电路中数据读写端口drp_datain/drp_dataout位宽与前两例相比扩大一倍,在相同时钟速度下,数据传输速率可提升一倍。

技术特征:
1.fpga硬核ip动态重配置接口电路,其特征在于,包括:drp接口信号缓存寄存器(201),用于寄存接口控制信号;输出反馈电路(202),用于反馈读写操作结果状态;读写使能控制电路(203),用于产生读写使能信号;比较器电路(204),用于根据sram阵列大小进行调整设置地址有效范围;地址译码电路(205),用于将输入的二进制地址转换成one hot编码信号;srma阵列写控制电路(206),用于对sram阵列进行写操作;srma阵列读控制电路(207),用于对sram阵列进行读操作;drp接口信号缓存寄存器(201)与读写使能控制电路(203)、比较器电路(204)、地址译码电路(205)和srma阵列写控制电路(206)连接,比较器电路(204)与输出反馈电路(202)和读写使能控制电路(203)连接,地址译码电路(205)连接到srma阵列写控制电路(206)和srma阵列读控制电路(207),读写使能控制电路(203)连接到srma阵列写控制电路(206)。2.如权利要求1所述的fpga硬核ip动态重配置接口电路,其特征在于,drp接口信号缓存寄存器(201)包括:第一d触发器单元,其输入端接drp使能信号;第二d触发器单元,其输入端接drp读写控制信号;第三d触发器单元,其输入端作为动态重配置数据输入端口;第四d触发器单元,其输入端作为动态重配置地址输入端口;比较器电路(204)的一路输入接第四d触发器单元,另一路输入接过滤地址存储器。3.如权利要求2所述的fpga硬核ip动态重配置接口电路,其特征在于,输出反馈电路(202)包括:输出反馈反相器(2021),其输入端接比较器(204)的输出端;第一输出反馈选择器(2022),其第一输入端接输出反馈反相器,第二输入端接逻辑0,输出端作为读写错误标志输出端;第二输出反馈选择器(2023),其第一输入端接第一读写使能与门(2031)的输出端,第二输入端接逻辑1,输出端作为drp状态输出端;读写使能控制电路(203)包括:第一读写使能与门(2031),其第一输入端接fpga内部全局使能信号输入端,第二输入端接比较器(204)的输出端,第三输入端接第一d触发器单元的输出端;第一读写使能与门(2032),其第一输入端接第一读写使能与门(2031)的输出端,第二输入端通过反相器接第二d触发器的输出端;第三读写使能与门(2033),其第一输入端接第一读写使能与门(2031)的输出端,第二输入端接第二d触发器的输出端。4.如权利要求3所述的fpga硬核ip动态重配置接口电路,其特征在于,srma阵列写控制电路(206)包括:第一写控制选择器(2061),其控制端接第三读写使能与门(2033)的输出端,第一输入端接第三d触发器单元输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的写入端口;第二写控制选择器(2062),其控制端接第三读写使能与门(2033)的输出端,第一输入
端接地址译码电路(205)输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的写使能端口。5.如权利要求4所述的fpga硬核ip动态重配置接口电路,其特征在于,srma阵列读控制电路(207)包括:第一读控制选择器(2071),其控制端接drp读使能信号端,第一输入端接地址译码电路输出端,第二输入端接逻辑0,输出端接srma阵列电路(102)的读使能端口;第二读控制选择器(2072),其控制端接接地址译码电路(205)输出端,输入端接输出端接srma阵列电路(102)的读端口;第三读控制选择器(2073),其控制端接drp读使能信号端,第一输入端接第二读控制选择器(2072)输出端,第二输入端接逻辑0。6.fpga硬核ip动态重配置电路,包括sram阵列电路,sram阵列电路包括sram阵列和配置电路,其特征在于,还包括权利要求1~6中任一项所述的fpga硬核ip动态重配置接口电路,fpga硬核ip动态重配置接口电路通过sram读写控制电路和sram阵列连接。

技术总结
FPGA硬核IP动态重配置接口电路,涉及集成电路技术,本发明包括:drp接口信号缓存寄存器(201),输出反馈电路(202),读写使能控制电路(203),比较器电路(204),地址译码电路(205),SRMA阵列写控制电路(206),SRMA阵列读控制电路(207)。本发明支持不同配置点大小需求的FPGA硬核IP。FPGA硬核IP。FPGA硬核IP。


技术研发人员:邢亚楠 陶琼 康暄 阙小茜 李显军 田征
受保护的技术使用者:成都华微电子科技股份有限公司
技术研发日:2023.07.03
技术公布日:2023/10/8
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐