支持多片SPIFlash访问的FPGA启动配置方法与流程
未命名
08-23
阅读:98
评论:0
支持多片spi flash访问的fpga启动配置方法
技术领域
1.本发明属于fpga(field programmable gate array,现场可编程门阵列)芯片设计技术领域,具体涉及一种支持多片spi flash访问的fpga启动配置方法。
背景技术:
2.fpga作为专用集成电路领域中的一种半定制电路,其不仅解决了半定制电路的不足,还克服了原有可编程器件门电路数据有限的缺点。fpga根据不同功能应用生成不同的配置数据流文件流文件;通过加载配置数据流文件实现对fpga的启动配置,进而fpga实现用户目标功能。
3.对于超大容量规模的fpga,其fpga的配置数据流文件流占用存储容量较大,甚至达128mbit以上;而对于用单片大容量spi(serial peripheral interface,串行外设接口)flash实现对fpga的启动配置,其成本较高,同时单片spi flash最大线宽为4bit,数据传输速率有限,使得fpga的启动配置时间较长。
技术实现要素:
4.为了解决现有技术中存在的上述问题,本发明提供了一种支持多片spi flash访问的fpga启动配置方法。本发明要解决的技术问题通过以下技术方案实现:本发明实施例提供了一种支持多片spi flash访问的fpga启动配置方法,应用于包括多片spi flash与一片主fpga的启动配置系统;其中,所述多片spi flash包括一片主spi flash;所述主fpga采用的是master spi模式;对应方法包括:所述主fpga启动上电,并向所述主spi flash发送包括数据位宽配置地址的第一回读数据请求;所述主spi flash接收所述第一回读数据请求,并从所述第一回读数据请求中解析出所述数据位宽配置地址,从所述数据位宽配置地址中读取数据位宽模式,并向所述主fpga发送包括数据位宽模式的第一回读数据响应;所述主fpga接收所述第一回读数据响应,并从所述第一回读数据响应中解析出所述数据位宽模式,若解析失败,则再次向所述主spi flash发送所述第一回读数据请求,若解析成功,则修改多片spi flash与主fpga的数据线连接方式,并向所述主spi flash发送包括联接模式配置地址的第二回读数据请求;所述主spi flash接收所述第二回读数据请求,并从所述第二回读数据请求中解析出所述联接模式配置地址,从所述联接模式配置地址中读取系统联接方式,并向所述主fpga发送包括系统联接模式的第二回读数据响应;其中,所述系统联接方式包括:所述多片spi flash与所述主fpga级联,或者,所述多片spi flash与所述主fpga并联;所述主fpga接收所述第二回读数据响应,并从所述第二回读数据响应中解析出系统联接模式,若解析失败,则再次向所述主spi flash发送包括联接模式配置地址的第二回
读数据请求,若解析成功,则根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置。
5.在本发明的一个实施例中,所述多片spi flash与所述主fpga并联时,所述多片spi flash还包括:一片从spi flash。
6.在本发明的一个实施例中,根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置的过程,包括:当所述多片spi flash与所述主fpga并联时,所述主fpga根据接收的所述第一回读数据响应中解析出的所述数据位宽模式,将启动配置系统中多片spi flash的数据线合并为一条数据总线,同时向每一片spi flash发送包括该片spi flash的数据存储地址的第三回读数据请求;每一片spi flash接收所述第三回读数据请求,并从所述第三回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址中读取对应的配置数据流文件,同时向所述主fpga发送包括该配置数据流文件的第三回读数据响应;所述主fpga接收每一片spi flash发来的第三回读数据响应,并从该第三回读数据响应中解析出该片spi flash读取的配置数据流文件;根据每一片spi flash读取的配置数据流文件实现多片spi flash对所述主fpga的启动配置。
7.在本发明的一个实施例中,所述多片spi flash与所述主fpga级联时,所述多片spi flash还包括:不多于5片的从spi flash。
8.在本发明的一个实施例中,根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置的过程,包括:当所述多片spi flash与所述主fpga级联时,所述主fpga根据接收的所述第一回读数据响应中解析出的所述数据位宽模式,将启动配置系统中多片spi flash的数据线更改为共用同一条数据总线,并确定多片spi flash访问顺序,按spi flash的访问顺序依次向每一片spi flash发送包括该片spi flash的数据存储地址的第四回读数据请求;每一片spi flash接收所述第四回读数据请求,并从所述第四回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址读取对应的配置数据流文件,并依次向所述主fpga发送包括该配置数据流文件的第四回读数据响应;所述主fpga接收每一片spi flash发来的第四回读数据响应,并从该第四回读数据响应中解析出该片spi flash读取的配置数据流文件;根据每一片spi flash读取的配置数据流文件实现多片spi flash对所述主fpga的启动配置。
9.在本发明的一个实施例中,所述启动配置系统还包括:至少一片从fpga;根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置,包括:根据所述系统联接方式执行所述多片spi flash对所述主fpga和所有从fpga的启动配置。
10.在本发明的一个实施例中,所述多片spi flash与所述主fpga级联时,所述多片spi flash还包括:至少一片从spi flash;其中,与所述主fpga以级联方式连接的所有从spi flash和所有从fpga的总片数不多于6。
11.在本发明的一个实施例中,根据所述系统联接方式执行所述多片spi flash对所
述主fpga和所有从fpga的启动配置的过程,包括:当所述多片spi flash与所述主fpga级联时,所述主fpga根据接收的所述第一回读数据响应中解析出的所述数据位宽模式,将启动配置系统中多片spi flash的数据线更改为共用同一条数据总线,并确定每一片spi flash访问顺序,按spi flash的访问顺序依次向每一片spi flash发送包括该片spi flash的数据存储地址的第五回读数据请求;每一片spi flash接收所述第五回读数据请求,并从所述第五回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址读取主fpga对应的第一配置数据流文件,并依次向所述主fpga发送包括该第一配置数据流文件的第五回读数据响应;所述主fpga接收每一片spi flash发来的第五回读数据响应,并从该第五回读数据响应中解析出该片spi flash读取的第一配置数据流文件,根据每一片spi flash读取的第一配置数据流文件实现多片spi flash对所述主fpga的启动配置;所述主fpga确定每一片从fpga的访问顺序,按fpga的访问顺序依次执行上述所述主fpga的启动配置过程以解析出每一片从fpga对应的第二配置数据流文件,并依次向所述从fpga发送包括每一片spi flash读取的第二配置数据流文件的配置数据流文件请求;所述从fpga接收所述配置数据流文件请求,并从所述配置数据流文件请求中解析出每一片spi flash读取的第二配置数据流文件,根据每一片spi flash读取的第二配置数据流文件实现多片spi flash对所述从fpga的启动配置。
12.在本发明的一个实施例中,当所述主fpga再次向所述主spi flash发送所述第一回读数据请求后,若依然解析失败,则将所述主fpga连接的所述主spi flash的所有信号均输出固定电平,此时所述主fpga或所有从fpga的启动配置失败。
13.在本发明的一个实施例中,当所述主fpga再次向所述主spi flash发送所述第二回读数据请求后,若依然解析失败,则将所述主fpga连接的所述主spi flash的所有信号均输出固定电平,此时所述主fpga或所有从fpga的启动配置失败。
14.本发明的有益效果:本发明提出的支持多片spi flash访问的fpga启动配置方法,是针对现有fpga启动配置方法存在配置时间长、成本较高的问题,提出的一种成本低且可以快速实现fpga启动配置方法,具体地:本发明实施例应用于包括多片spi flash与一片主fpga级联或并联的启动配置系统中,在启动配置系统中,按照级联方式或并联方式对多片spi flash与主fpga接口的连接情况重新进行了定义,而在启动配置过程中,进一步提出了符合本发明重新定义的接口连接情况对应的启动配置流程,配置过程中首先通过读取主spi flash上存储的数据位宽模式以修改多片spi flash与主fpga的数据线连接方式,然后通过读取主spi flash上存储的系统联接方式以采用与系统联接方式对应的配置策略执行多片spi flash对主fpga的启动配置。
15.以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
16.图1是本发明实施例提供的一种支持多片spi flash访问的fpga启动配置方法的流程示意图;图2是本发明实施例提供的系统联接方式为并联方式时,主fpga与主spi flash、
从spi flash的接口连接示意图;图3是本发明实施例提供的系统联接方式为并联方式时,多片spi flash对主fpga的启动配置过程示意图;图4是本发明实施例提供的一种系统联接方式为级联方式时,主fpga与主spi flash、从spi flash的接口连接示意图;图5是本发明实施例提供的另一种系统联接方式为级联方式时,主fpga与主spi flash、从spi flash的接口连接示意图;图6是本发明实施例提供的系统联接方式为级联方式时,多片spi flash对主fpga的启动配置过程示意图;图7是本发明实施例提供的另一种支持多片spi flash访问的fpga启动配置方法的流程示意图;图8是本发明实施例提供的系统联接方式为级联方式时,主fpga与主spi flash、从spi flash、从fpga的接口连接示意图;图9是本发明实施例提供的系统联接方式为级联方式时,多片spi flash对主fpga、从fpga的启动配置过程示意图。
具体实施方式
17.下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
18.为了解决现有fpga配置存在的配置时间长、成本较高的问题,请参见图1,本发明实施例提供了一种支持多片spi flash访问的fpga启动配置方法,应用于包括多片spi flash与一片主fpga的启动配置系统;多片spi flash与主fpga为级联方式或并联方式;多片spi flash包括一片主spi flash,每一片spi flash预先分配了存储配置数据流文件的数据存储地址,及该数据存储地址对应存储的配置数据流文件;主fpga采用的是master(主) spi模式,master spi模式支持x1、x2、x4三种数据位宽模式,x1表示1bit数据位宽,x2表示2bit数据位宽,x4表示4bit数据位宽;该方法包括:s10、主fpga启动上电,并向主spi flash发送包括数据位宽配置地址的第一回读数据请求。
19.本发明实施例中,按照spi协议规定,主fpga启动上电后,默认初始使用x1数据位宽模式向主spi flash发送第一回读数据请求,第一回读数据请求的目的是判断主fpga与每一片spi flash之间使用的数据位宽模式是否发生改变,若发生改变则主fpga与每一片spi flash之间将使用最新的数据位宽模式进行数据传输。
20.主fpga与主spi flash预先约定了数据位宽模式的存储地址,即数据位宽配置地址。主fpga启动上电后,需要将该数据位宽配置地址发送给主spi flash,以在主spi flash上读取主fpga与每一片spi flash之间使用的数据位宽模式。
21.s20、主spi flash接收第一回读数据请求,并从第一回读数据请求中解析出数据位宽配置地址,从数据位宽配置地址中读取数据位宽模式,并向主fpga发送包括数据位宽模式的第一回读数据响应。
22.本发明实施例中,主spi flash上预先存储有数据位宽配置地址对应的数据位宽
模式,当主spi flash接收到主fpga发送的第一回读数据请求后,会从预先约定的数据位宽配置地址中读取数据位宽模式,并把读取的数据位宽模式通过第一回读数据响应发送于主fpga。
23.s30、主fpga接收第一回读数据响应,并从第一回读数据响应中解析出数据位宽模式,若解析失败,则再次向主spi flash发送第一回读数据请求,若解析成功,则向主spi flash发送包括联接模式配置地址的第二回读数据请求。
24.本发明实施例中,在主fpga上,判断从第一回读数据响应中解析出数据位宽模式与默认初始的数据位宽模式是否一致,若一致,则主fpga与每一片spi flash之间仍然使用默认初始的数据位宽模式进行数据传输,若不一致,则主fpga与每一片spi flash之间修改为使用最新解析出的数据位宽模式进行数据传输。
25.而在主fpga上解析第一回读数据响应过程中,若解析失败,则再次向主spi flash发送第一回读数据请求,重新请求主spi flash发送数据位宽配置地址中存储的数据位宽模式,流程如上s10~s20,在此不再赘述;若解析成功,则向主spi flash发送包括联接模式配置地址的第二回读数据请求,第二回读数据请求的目的是判断主fpga与每一片spi flash之间的系统联接方式,主fpga与主spi flash还预先约定了存储系统联接方式的存储地址,即联接模式配置地址,以后续在主spi flash上从联接模式配置地址中读取系统联接方式,用于在主fpga按读取的系统联接方式进行后续操作。
26.s40、主spi flash接收第二回读数据请求,并从第二回读数据请求中解析出联接模式配置地址,从联接模式配置地址中读取系统联接方式,并向主fpga发送包括系统联接模式的第二回读数据响应;其中,系统联接方式包括:多片spi flash与主fpga级联,或者,多片spi flash与主fpga并联。
27.本发明实施例中,主spi flash上预先存储有联接模式配置地址对应存储的系统联接方式,当主spi flash接收到主fpga发送的第二回读数据请求后,会从预先约定的联接模式配置地址中读取系统联接方式,并把读取的系统联接方式通过第二回读数据响应发送于主fpga。
28.s50、主fpga接收第二回读数据响应,并从第二回读数据响应中解析出系统联接模式,若解析失败,则再次向主spi flash发送包括联接模式配置地址的第二回读数据请求,若解析成功,则根据系统联接方式执行多片spi flash对主fpga的启动配置。
29.本发明实施例中,在主fpga上解析第二回读数据响应过程中,若解析失败,则再次向主spi flash发送第二回读数据请求,重新请求主spi flash发送联接模式配置地址中存储的系统联接方式,流程如s40~50,在此不再赘述;若解析成功,则根据系统联接方式执行多片spi flash对主fpga的启动配置,具体地:在本发明实施例中,如图2所示,系统联接方式为并联方式时,即多片spi flash与主fpga并联时,多片spi flash还包括:一片从spi flash。利用现有spi flash和fpga接口,在系统联接方式为并联方式时重新定义接口连接情况,比如图2示意了重新定义的主fpga与每一片spi flash的接口连接情况,可见在并联方式下,主fpga的低位数据接口data[0]、data[1]、data[2]、data[3]分别与主spi flash的数据接口d0、d1、d2、d3连接,主fpga的高位数据接口data[4]_cs2、data[5]_cs3、data[6]_cs4、data[7]_cs5与从spi flash的数据接口d0、d1、d2、d3连接,主fpga的时钟接口spi_clk与主spi flash、从spi flash的时钟接
口spi_clk连接,主fpga的片选接口spi_cs0、spi_cs1分别与主spi flash、从spi flash的片选接口cs连接。对应图2所示的系统联接方式,执行多片spi flash对主fpga的启动配置过程如图3所示,包括:s501、当多片spi flash与主fpga并联时,主fpga根据接收的第一回读数据响应中解析出的数据位宽模式,将启动配置系统中多片spi flash的数据线合并为一条数据总线,同时向每一片spi flash发送包括该片spi flash的数据存储地址的第三回读数据请求。
[0030]
在本发明实施例中,在主fpga上根据从第一回读数据响应中解析出的数据位宽模式,将多片spi flash的数据线合并为一条数据总线,实现总线拓宽,比如图2所示主spi flash、从spi flash与主fpga的并联方式,若解析出的数据位宽模式为x4,则合并后的数据总线支持的数据位宽,即主spi flash、从spi flash支持的数据位宽模式由原来的x4变为了。同时,主spi flash、从spi flash与主fpga是并联方式,主fpga可以同时访问主spi flash、从spi flash,则同时向每一片spi flash发送第三回读数据请求,第三回读数据请求中携带的每一片spi flash的数据存储地址也是预先与主fpga约定好的。
[0031]
s502、每一片spi flash接收第三回读数据请求,并从第三回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址中读取对应的配置数据流文件,同时向主fpga发送包括该配置数据流文件的第三回读数据响应。
[0032]
本发明实施例中,每一片spi flash(主spi flash、从spi flash)上均预先分配存储有其数据存储地址对应的配置数据流文件,主spi flash存储有数据位宽模式,从spi flash在与数据位宽模式存储的相同地址位置处包含一个同步码,匹配后开始读取存储在从spi flash的配置数据流文件,从spi flash取出的配置数据流文件作为高位数据,主spi flash读取的数据作为低位数据。每一片spi flash接收到主fpga发送的第三回读数据请求后,同时从各自的数据存储地址中读取预先存储的配置数据流文件,并把各自读取的配置数据流文件通过第三回读数据响应发送于主fpga。
[0033]
s503、主fpga接收每一片spi flash发来的第三回读数据响应,并从该第三回读数据响应中解析出该片spi flash读取的配置数据流文件;根据每一片spi flash读取的配置数据流文件实现多片spi flash对主fpga的启动配置。
[0034]
在发明实施例中,在主fpga上解析每一片spi flash发送的第三回读数据响应中携带的配置数据流文件,并根据解析出的配置数据流文件按预先的高位数据、低位数据存储形式进行数据整合以实现多片spi flash对主fpga的启动配置。
[0035]
进一步地,在本发明实施例中,如图4、图5所示,系统联接方式为级联方式时,即多片spi flash与主fpga级联时,多片spi flash还包括:不多于5片的从spi flash。利用现有spi flash和fpga接口,在系统联接方式为级联方式时重新定义接口连接情况,图4示意了重新定义的1片主spi flash、1片从spi flash与主fpga的接口连接情况,图5示意了重新定义的1片主spi flash、5片从spi flash与主fpga的接口连接情况,以图5为例,可见在串联方式下,主fpga的低位数据接口data[0]、data[1]、data[2]、data[3]分别与主spi flash、所有从spi flash的数据接口d0、d1、d2、d3连接,主fpga的时钟接口spi_clk与主spi flash、所有从spi flash的时钟接口spi_clk连接,主fpga的片选接口spi_cs0、spi_cs1,以及主fpga的高位数据接口data[4]_cs2、data[5]_cs3、data[6]_cs4、data[7]_cs5分别与主spi flash、所有从spi flash的片选接口cs连接。对应图4、图5所示的系统联接方式,执行
多片spi flash对主fpga的启动配置过程如图6所示,包括:s50_1、当多片spi flash与主fpga级联时,主fpga根据接收的第一回读数据响应中解析出的数据位宽模式,将启动配置系统中多片spi flash的数据线更改为共用同一条数据总线,并确定多片spi flash访问顺序,按spi flash的访问顺序依次向每一片spi flash发送包括该片spi flash的数据存储地址的第四回读数据请求。
[0036]
在本发明实施例中,类似s501,在主fpga上根据从第二回读数据响应中解析出的数据位宽模式,将多片spi flash的数据线更改为共用同一条数据总线,比如图3所示主spi flash、从spi flash与主fpga的级联方式,若解析出的数据位宽为x4,则多片spi flash的数据线均更改数据位宽为x4。
[0037]
同时,对于系统联接方式为级联方式时,主fpga确定访问的所有spi flash的数量及顺序,在同一时刻主fpga只能访问启动配置系统中一片spi flash,本发明实施例中将高位数据信号data[4]_cs2、data[5]_cs3、data[6]_cs4、data[7]_cs5复用为片选信号,既可实现级联拓展,又不会增加新的端口,最大可进行6片spi flash级联如图5所示,可满足对fpga上电启动时间宽裕的需求,且也可满足成本要求严格的需求。
[0038]
s50_2、每一片spi flash接收第四回读数据请求,并从第四回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址读取对应的配置数据流文件,并依次向主fpga发送包括该配置数据流文件的第四回读数据响应。
[0039]
在本发明实施例中,类似s502,每一片spi flash上均预先分配存储有其数据存储地址对应的配置数据流文件,主spi flash包含数据位宽模式,从spi flash在与数据位宽模式存储的相同地址位置处包含一个同步码,匹配后开始读取存储在从spi flash的配置数据流文件,从spi flash取出的配置数据流文件作为高位数据,主spi flash读取的数据作为低位数据。每一片spi flash依次接收到主fpga发送的第四回读数据请求后,分别从各自的数据存储地址中读取预先存储的配置数据流文件,并把各自读取的配置数据流文件通过第四回读数据响应依次发送于主fpga。
[0040]
s50_3、主fpga接收每一片spi flash发来的第四回读数据响应,并从该第四回读数据响应中解析出该片spi flash读取的配置数据流文件;根据每一片spi flash读取的配置数据流文件实现多片spi flash对主fpga的启动配置。
[0041]
在发明实施例中,类似s503,与s503不同的是,s503中主fpga是同时接收每一片spi flash读取的配置数据流文件,s50_3中主fpga是依次接收每一片spi flash读取的配置数据流文件,并根据所有spi flash读取的配置数据流文件按预先的高位数据、低位数据存储形式进行数据整合以实现多片spi flash对主fpga的启动配置。
[0042]
进一步地,在本发明实施例中,启动配置系统还包括:至少一片从fpga;根据系统联接方式执行多片spi flash对主fpga的启动配置,包括:根据系统联接方式执行多片spi flash对主fpga和所有从fpga的启动配置,即请参见图7,本发明实施例提供的支持多片spi flash访问的fpga启动配置方法,还包括s60、主fpga接收第二回读数据响应,并从第二回读数据响应中解析出系统联接模式,若解析失败,则再次向主spi flash发送包括联接模式配置地址的第二回读数据请求,若解析成功,则根据系统联接方式执行多片spi flash对主fpga和所有从fpga的启动配置。可见,本发明实施例可以实现多片spi flash对多片fpga的启动配置。具体地:
在本发明实施例中,如图8所示,系统联接方式为级联方式,多片spi flash还包括:至少一片从spi flash;与主fpga以级联方式连接的所有从spi flash和所有从fpga的总片数不多于6。图8示意了重新定义的1片主spi flash、3片从spi flash、2片从fpga与主fpga的接口连接情况,通过4片spi flash 实现对3片fpga的启动配置,图8中主fpga的低位数据接口data[0]、data[1]、data[2]、data[3]分别与主spi flash、所有从spi flash的数据接口d0、d1、d2、d3,以及所有从fpga的数据接口data[0]、data[1]、data[2]、data[3]连接,主fpga的时钟接口spi_clk与主spi flash、所有从spi flash、所有从fpga的时钟接口spi_clk连接,主fpga的片选接口spi_cs0、spi_cs1,以及主fpga的高位数据接口data[4]_cs2、data[5]_cs3分别与主spi flash、所有从spi flash的片选接口cs连接,主fpga的高位数据接口data[6]_cs4、data[7]_cs5分别与所有从fpga的片选接口spi_cs0连接。对应图8所示的系统联接方式,执行多片spi flash对主fpga和所有从fpga的启动配置过程如图9所示,包括:s601、当多片spi flash与主fpga级联时,主fpga根据接收的第一回读数据响应中解析出的数据位宽模式,将启动配置系统中多片spi flash的数据线更改为共用同一条数据总线,并确定每一片spi flash访问顺序,按spi flash的访问顺序依次向每一片spi flash发送包括该片spi flash的数据存储地址的第五回读数据请求。
[0043]
在本发明实施例中,类似s50_1,在此不再赘述。
[0044]
s602、每一片spi flash接收第五回读数据请求,并从第五回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址读取主fpga对应的第一配置数据流文件,并依次向主fpga发送包括该第一配置数据流文件的第五回读数据响应。
[0045]
在本发明实施例中,类似s50_2,在此不再赘述。
[0046]
s603、主fpga接收第五回读数据响应,并从第五回读数据响应中解析出每一片spi flash读取的第一配置数据流文件,根据每一片spi flash读取的第一配置数据流文件实现多片spi flash对主fpga的启动配置。
[0047]
在本发明实施例中,类似s50_3,在此不再赘述,完成多片spi flash对主fpga的启动配置。
[0048]
s604、主fpga确定每一片从fpga的访问顺序,按fpga的访问顺序依次执行上述主fpga的启动配置过程以解析出每一片从fpga对应的第二配置数据流文件,并依次向从fpga发送包括每一片spi flash读取的第二配置数据流文件的配置数据流文件请求。
[0049]
在本发明实施例中,完成主fpga启动配置后,主fpga再次确定配置从fpga的数量及顺序,以及配置从fpga时对应访问的所有spi flash的数量及顺序,在主fpga上按照流程s601~s603,从每一片spi flash中读取从fpga配置需要的第二配置数据流文件,并将读取的第二配置数据流文件发送于对应的从fpga。
[0050]
s605、从fpga接收配置数据流文件请求,并从配置数据流文件请求中解析出每一片spi flash读取的第二配置数据流文件,根据每一片spi flash读取的第二配置数据流文件实现多片spi flash对从fpga的启动配置。
[0051]
在本发明实施例中,类似s50_3,在此不再赘述,完成多片spi flash对每一片从fpga的启动配置。
[0052]
进一步地,针对s30解析失败的情况,本发明实施例提供的支持多片spi flash访
问的fpga启动配置方法,还包括:当主fpga再次向主spi flash发送第一回读数据请求后,若依然解析失败,则将主fpga连接的主spi flash的所有信号均输出固定电平,此时主fpga或所有从fpga的启动配置失败。这里,对于两次均无法正确解析出数据位宽模式的情况,本发明实施例给出了应对处理方案:将主fpga连接的主spi flash的所有信号均输出固定电平,并判定主fpga或所有从fpga的启动配置失败。
[0053]
进一步地,针对s50解析失败的情况,本发明实施例提供的支持多片spi flash访问的fpga启动配置方法,还包括:当主fpga再次向主spi flash发送第二回读数据请求后,若依然解析失败,则将主fpga连接的主spi flash的所有信号均输出固定电平,此时主fpga或所有从fpga的启动配置失败。这里,对于两次均无法正确解析出系统联接方式的情况,本发明实施例给出了应对处理方案:将主fpga连接的主spi flash的所有信号均输出固定电平,并判定主fpga或所有从fpga的启动配置失败。
[0054]
综上所述,本发明实施例提供的支持多片spi flash访问的fpga启动配置方法,是针对现有fpga启动配置方法存在配置时间长、成本较高的问题,提出的一种成本低且可以快速实现fpga启动配置方法,具体地:本发明实施例应用于包括多片spi flash与一片主fpga级联或并联的启动配置系统中,在启动配置系统中,按照级联方式或并联方式对多片spi flash与主fpga接口的连接情况重新进行了定义,而在启动配置过程中,进一步提出了符合本发明实施例重新定义的接口连接情况对应的启动配置流程,配置过程中首先通过读取主spi flash上存储的数据位宽模式以修改多片spi flash与主fpga的数据线连接方式,然后通过读取主spi flash上存储的系统联接方式以采用与系统联接方式对应的配置策略执行多片spi flash对主fpga的启动配置。
[0055]
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0056]
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看说明书及其附图,可理解并实现所述公开实施例的其他变化。在说明书中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。相互不同的实施例中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0057]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
技术特征:
1.一种支持多片spi flash访问的fpga启动配置方法,其特征在于,应用于包括多片spi flash与一片主fpga的启动配置系统;其中,所述多片spi flash包括一片主spi flash;所述主fpga采用的是master spi模式;对应方法包括:所述主fpga启动上电,并向所述主spi flash发送包括数据位宽配置地址的第一回读数据请求;所述主spi flash接收所述第一回读数据请求,并从所述第一回读数据请求中解析出所述数据位宽配置地址,从所述数据位宽配置地址中读取数据位宽模式,并向所述主fpga发送包括数据位宽模式的第一回读数据响应;所述主fpga接收所述第一回读数据响应,并从所述第一回读数据响应中解析出所述数据位宽模式,若解析失败,则再次向所述主spi flash发送所述第一回读数据请求,若解析成功,则修改多片spi flash与主fpga的数据线连接方式,并向所述主spi flash发送包括联接模式配置地址的第二回读数据请求;所述主spi flash接收所述第二回读数据请求,并从所述第二回读数据请求中解析出所述联接模式配置地址,从所述联接模式配置地址中读取系统联接方式,并向所述主fpga发送包括系统联接模式的第二回读数据响应;其中,所述系统联接方式包括:所述多片spi flash与所述主fpga级联,或者,所述多片spi flash与所述主fpga并联;所述主fpga接收所述第二回读数据响应,并从所述第二回读数据响应中解析出系统联接模式,若解析失败,则再次向所述主spi flash发送包括联接模式配置地址的第二回读数据请求,若解析成功,则根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置。2.根据权利要求1所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,所述多片spi flash与所述主fpga并联时,所述多片spi flash还包括:一片从spi flash。3.根据权利要求2所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置的过程,包括:当所述多片spi flash与所述主fpga并联时,所述主fpga根据接收的所述第一回读数据响应中解析出的所述数据位宽模式,将启动配置系统中多片spi flash的数据线合并为一条数据总线,同时向每一片spi flash发送包括该片spi flash的数据存储地址的第三回读数据请求;每一片spi flash接收所述第三回读数据请求,并从所述第三回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址中读取对应的配置数据流文件,同时向所述主fpga发送包括该配置数据流文件的第三回读数据响应;所述主fpga接收每一片spi flash发来的第三回读数据响应,并从该第三回读数据响应中解析出该片spi flash读取的配置数据流文件;根据每一片spi flash读取的配置数据流文件实现多片spi flash对所述主fpga的启动配置。4.根据权利要求1所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,所述多片spi flash与所述主fpga级联时,所述多片spi flash还包括:不多于5片的从spi flash。5.根据权利要求4所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,
根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置的过程,包括:当所述多片spi flash与所述主fpga级联时,所述主fpga根据接收的所述第一回读数据响应中解析出的所述数据位宽模式,将启动配置系统中多片spi flash的数据线更改为共用同一条数据总线,并确定多片spi flash访问顺序,按spi flash的访问顺序依次向每一片spi flash发送包括该片spi flash的数据存储地址的第四回读数据请求;每一片spi flash接收所述第四回读数据请求,并从所述第四回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址读取对应的配置数据流文件,并依次向所述主fpga发送包括该配置数据流文件的第四回读数据响应;所述主fpga接收每一片spi flash发来的第四回读数据响应,并从该第四回读数据响应中解析出该片spi flash读取的配置数据流文件;根据每一片spi flash读取的配置数据流文件实现多片spi flash对所述主fpga的启动配置。6.根据权利要求1所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,所述启动配置系统还包括:至少一片从fpga;根据所述系统联接方式执行所述多片spi flash对所述主fpga的启动配置,包括:根据所述系统联接方式执行所述多片spi flash对所述主fpga和所有从fpga的启动配置。7.根据权利要求6所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,所述多片spi flash与所述主fpga级联时,所述多片spi flash还包括:至少一片从spi flash;其中,与所述主fpga以级联方式连接的所有从spi flash和所有从fpga的总片数不多于6。8.根据权利要求7所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,根据所述系统联接方式执行所述多片spi flash对所述主fpga和所有从fpga的启动配置的过程,包括:当所述多片spi flash与所述主fpga级联时,所述主fpga根据接收的所述第一回读数据响应中解析出的所述数据位宽模式,将启动配置系统中多片spi flash的数据线更改为共用同一条数据总线,并确定每一片spi flash访问顺序,按spi flash的访问顺序依次向每一片spi flash发送包括该片spi flash的数据存储地址的第五回读数据请求;每一片spi flash接收所述第五回读数据请求,并从所述第五回读数据请求中解析出该片spi flash的数据存储地址,从该数据存储地址读取主fpga对应的第一配置数据流文件,并依次向所述主fpga发送包括该第一配置数据流文件的第五回读数据响应;所述主fpga接收每一片spi flash发来的第五回读数据响应,并从该第五回读数据响应中解析出该片spi flash读取的第一配置数据流文件,根据每一片spi flash读取的第一配置数据流文件实现多片spi flash对所述主fpga的启动配置;所述主fpga确定每一片从fpga的访问顺序,按fpga的访问顺序依次执行上述所述主fpga的启动配置过程以解析出每一片从fpga对应的第二配置数据流文件,并依次向所述从fpga发送包括每一片spi flash读取的第二配置数据流文件的配置数据流文件请求;所述从fpga接收所述配置数据流文件请求,并从所述配置数据流文件请求中解析出每一片spi flash读取的第二配置数据流文件,根据每一片spi flash读取的第二配置数据流
文件实现多片spi flash对所述从fpga的启动配置。9.根据权利要求1或6所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,当所述主fpga再次向所述主spi flash发送所述第一回读数据请求后,若依然解析失败,则将所述主fpga连接的所述主spi flash的所有信号均输出固定电平,此时所述主fpga或所有从fpga的启动配置失败。10.根据权利要求1或6所述的支持多片spi flash访问的fpga启动配置方法,其特征在于,当所述主fpga再次向所述主spi flash发送所述第二回读数据请求后,若依然解析失败,则将所述主fpga连接的所述主spi flash的所有信号均输出固定电平,此时所述主fpga或所有从fpga的启动配置失败。
技术总结
本发明公开了一种支持多片SPI Flash访问的FPGA启动配置方法,包括:主FPGA上电,向主SPI Flash发送第一回读数据请求;主SPI Flash接收并从第一回读数据请求中读取数据位宽模式,向主FPGA发送第一回读数据响应;主FPGA接收并从第一回读数据响应中解析数据位宽模式,向主SPI Flash发送第二回读数据请求;主SPI Flash接收并从第二回读数据请求中读取系统联接方式,向主FPGA发送第二回读数据响应;主FPGA接收并从第二回读数据响应中解析系统联接方式,根据系统联接方式执行多片SPI Flash对主FPGA的启动配置。本发明实现了低成本且快速的FPGA启动配置。速的FPGA启动配置。速的FPGA启动配置。
技术研发人员:王黎明 唐友见 贾弘翊 韦嶔 张红荣
受保护的技术使用者:西安智多晶微电子有限公司
技术研发日:2023.07.21
技术公布日:2023/8/21
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
