CN100388255C - 一种接口转换模块和对fpga进行配置的方法 - Google Patents
一种接口转换模块和对fpga进行配置的方法 Download PDFInfo
- Publication number
- CN100388255C CN100388255C CNB2004100649757A CN200410064975A CN100388255C CN 100388255 C CN100388255 C CN 100388255C CN B2004100649757 A CNB2004100649757 A CN B2004100649757A CN 200410064975 A CN200410064975 A CN 200410064975A CN 100388255 C CN100388255 C CN 100388255C
- Authority
- CN
- China
- Prior art keywords
- configuration
- fpga
- conversion module
- interface conversion
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
- 238000006243 chemical reaction Methods 0.000 title claims description 38
- 238000000034 method Methods 0.000 title claims description 25
- 238000010586 diagram Methods 0.000 description 7
- 230000007704 transition Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Logic Circuits (AREA)
- Bus Control (AREA)
Abstract
一种接口转换模块和对FPGA进行配置的方法,接口转换模块包括LPC总线接口部分、命令寄存器、数据寄存器、状态寄存器和FPGA配置时序生成部分;对FPGA进行配置的方法包括:处理器经过LPC总线发启动配置命令给接口转换模块生成FPGA下载的初始化时序并进行初始化;通过LPC总线送配置数据给接口转换模块生成FPGA下载时序,将数据下载到FPGA中;通过LPC总线发配置结束命令给接口转换模块生成相应配置结束时序;或者接口转换模块在数据配置完成以后,自动完成相应配置结束时序。本发明可以提高FPGA配置速度和可靠性;使用标准的LPC总线做为接口,模块兼容性很好,还可以提高硬件系统设计的灵活性。
Description
技术领域
本发明涉及一种对FPGA进行配置的方法,更具体的说,是在电路板上通过LPC(LowPin count低针数)总线对FPGA(field programmable gates array现场可编程门阵列)进行配置的方法。
背景技术
为了方便产品的现场升级和减少用于配置FPGA的专用PROM(ProgrammableRead-Only Memory可编程序的只读存储器)芯片成本,很多产品都要求电路板上FPGA能够通过CPU(处理器)进行在线配置。
在通常情况下,一般是把处理器的I/O(输入输出)管脚和FPGA的串行配置管脚直接相连,通过软件模拟FPGA的配置时序对FPGA进行配置。
但是在以Intel的X86架构为处理器平台的产品中,处理器并没有通用的I/O管脚可以和FPGA相连,虽然可以通过桥片的I/O和FPGA相连,并通过软件控制桥片的I/O模拟配置时序对FPGA进行下载,但是这样不仅占用桥片的I/O资源,灵活性差(因为需要桥片的固定I/O管脚),通用性不好(因为不同桥片的I/O定义不一定一样),而且配置速度慢,软件的复杂度增加,可靠性降低。
针对目前FPGA在线加载方法的不足,可以采用通用的总线接口来代替桥片的固定I/O管脚来对FPGA进行配置。现在大多数的桥片都有LPC总线接口,用来代替ISA(Industry Standard Architecture工业标准结构)接口,LPC总线需要的信号线比ISA大大减少,只需要6根信号线。
发明内容:
本发明要解决的问题,是提供一种通过LPC总线对FPGA进行配置的接口转换模块,并提供用该接口转换模块通过LPC总线对FPGA进行配置的方法。
本发明中的接口转换模块,包括LPC总线接口部分、命令寄存器、数据寄存器、状态寄存器和FPGA配置时序生成部分;所述LPC总线接口部分完成LPC总线读写寄存器组的时序;所述数据寄存器暂存一个字节的FPGA配置数据;所述命令寄存器控制由处理器通过LPC总线写入的操作命令;所述状态寄存器用来查询该接口转换模块工作状态;所述FPGA配置时序生成部分完成串行配置时序,将数据寄存器中的配置数据转换成串行配置数据流下载到FPGA中。
本发明中的对FPGA进行配置的方法,包括:
处理器经过LPC总线发启动配置命令给接口转换模块,接口转换模块接收到启动命令,开始生成FPGA下载的初始化时序并对FPGA进行初始化;若初始化时序已经完成,可以跳过这一步;
处理器通过LPC总线送配置数据给接口转换模块,接口转换模块接收到配置数据后,生成FPGA下载时序,将配置数据下载到FPGA中;配置数据的过程中,每次配置一个字节的数据;
处理器通过LPC总线发配置结束命令给接口转换模块,接口转换模块接收到配置结束命令后,开始生成FPGA配置过程所需要的配置结束时序;或者接口转换模块在数据配置完成以后,自动完成FPGA配置过程所需要的配置结束时序。
在本方法中,在初始化、配置数据和配置结束的每一步骤后,都有检测程序,检测对应的操作是否成功;前一操作成功才进行下一操作。检测程序是否成功是通过读接口转换模块中的状态寄存器来实现的。
与现有技术相比:1、由于软件不再需要模拟FPGA的配置时序,大大提高了FPGA配置速度和可靠性;2、使用标准的LPC总线做为接口,模块兼容性很好,采用这种方法设计的软件和硬件可以使用在带LPC总线的各种型号的处理器系统中,提高了硬件系统设计的灵活性。
附图说明:
图1为本发明应用环境的系统架构框图;
图2为本发明中的接口转换模块内部结构框图;
图3为LPC接口部分状态机转换图;
图4为FPGA配置时序生成部分状态机转换图;
图5为本发明中的方法流程图。
具体实施方式:
下面结合附图对技术方案的实施作进一步的详细描述:
如图1所示,本发明的应用环境系统结构框图,该系统包括:
处理器小系统101,可以包括处理器、内存、桥片和BIOS等,是一个可以运行程序的独立的处理器系统,可以运行操作系统和本发明中的配置程序。
接口转换模块102,本模块作为一个LPC总线装置挂在LPC总线上,完成LPC总线到FPGA串行配置的时序转换功能,处理器通过本模块来完成对FPGA的在线配置。该硬件模块内部结构框图如图2所示,主要包括LPC总线接口部分201、寄存器组(202-204)和FPGA配置时序生成部分205。LPC总线接口部分主要完成LPC总线读写寄存器组的时序;数据寄存器203暂存一个字节的FPGA配置数据;FPGA配置时序生成部分完成串行配置时序,将数据寄存器中的配置数据转换成串行配置数据流下载到FPGA103中;命令寄存器202和状态寄存器204主要提供给软件一个控制和检测此模块状态的接口。
接口转换模块102内部各部分工作原理和流程说明如下:
接口转换模块102内部LPC总线接口部分201设计的状态机流程图如图3所示。状态机开始处于起始状态301,检测到帧同步信号以后进入下一个状态获得交易类型302,接下来的几个周期获取地址303,如果地址正确,并且是写交易,那么就从LPC总线上接收数据307,然后经过总线同步308和驱动转换309以后,交易完成。如果是读交易,那么经过总线驱动转换304和总线同步305以后,送状态寄存器数据到LPC总线上306,然后经过总线驱动转换309后,总线交易完成。
接口转换模块102内部命令寄存器202详细说明举例,如下表所示:
表一
状态 | 意义 |
状态1 | 启动FPGA配置(告诉模块进行FPGA配置初始化) |
状态2 | 配置数据结束(告诉模块所有的配置数据都已经传输完毕,模块开始监测FPGA侧配置完成信号) |
其他 | 未定义 |
接口转换模块102内部状态寄存器204详细说明举例,如下表所示:
表二
状态 | 意义 |
状态1 | 初始化错误(没有监测到nstatus) |
状态2 | 初始化成功(表示初始化成功,告诉软件可以开始送数据了) |
状态3 | 字节配置过程中出现位错误 |
状态4 | 一个字节数据传输完成(告诉软件可以送下一个字节的数据了)。 |
状态5 | 配置成功 |
状态6 | 配置失败 |
状态7 | 模块正在监测配置完成信号(供查询用,非必要) |
状态8 | 模块正在进行字节数据配置过程(供查询用,非必要) |
其他 | 未定义 |
接口转换模块102内部FPGA配置时序生成部分205状态机图如图4所示。FPGA配置接口以从串配置(Passive Serial Configration)接口为例。状态机开始处于起始状态401,接收到启动命令后,进入初始化配置402,完成初始化时序,检测FPGA初始化状态是否成功403并写相应的状态寄存器404;然后开始数据配置,包括接收配置数据406、生成数据配置时序407和检测配置完成状态408;如果所有的数据配置完成405,延时相应的时间409,检测FPGA配置完成信号410,如果检测到配置完成信号,配置过程成功。
本发明通过接口转换模块102配置FPGA的方法流程图如图5所示(命令寄存器202和状态寄存器204的具体编码以及对应含义见表一和表二):
步骤1:首先向命令寄存器202写入启动命令。
步骤2:延时一段时间后读模块状态寄存器204,判断初始化状态。如果初始化错误,进入错误处理程序,配置失败。
步骤3:如果初始化成功,则往数据寄存器203中写入配置数据。
步骤4:读模块状态寄器204,判断在这个字节数据配置过程中有没有位错误。如果有位错误,进入错误处理程序,配置失败。
步骤5:如果没有位错误,继续往数据寄存器203中写入下一个数据;如此反复,直到所有数据配置完毕。
步骤6:向命令寄存器202写入配置数据结束命令。
步骤7:延时一段时间后读模块状态寄存器204,判断配置完成状态。如果配置失败,进入配置错误处理程序,配置失败。
步骤8:如果状态寄存器204的状态为配置成功,则表示FPGA配置成功,整个配置过程结束。
Claims (5)
1.一种接口转换模块,其特征在于,包括低针数总线接口部分(201)、命令寄存器(202)、数据寄存器(203)、状态寄存器(204)和FPGA配置时序生成部分(205);所述低针数总线接口部分完成低针数总线读写寄存器组的时序;所述数据寄存器(203)暂存一个字节的FPGA配置数据;所述命令寄存器(202)控制由处理器通过低针数总线写入的操作命令;所述状态寄存器(204)用来查询该接口转换模块工作状态;所述FPGA配置时序生成部分(205)完成串行配置时序,将数据寄存器中的配置数据转换成串行配置数据流下载到FPGA中。
2.一种如权利要求1所述的接口转换模块对FPGA进行配置的方法,包括:
2.1处理器经过低针数总线发启动配置命令给接口转换模块,接口转换模块接收到启动命令,开始生成FPGA下载的初始化时序并对所述FPGA进行初始化;
2.2处理器通过低针数总线送配置数据给接口转换模块,接口转换模块接收到所述配置数据后,生成FPGA下载时序,将所述配置数据下载到FPGA中;
2.3处理器通过低针数总线发配置结束命令给接口转换模块,接口转换模块接收到配置结束命令后,开始生成FPGA配置过程所需要的配置结束时序;或者接口转换模块在数据配置完成以后,自动完成FPGA配置过程所需要的配置结束时序。
3.权利要求2所述的对FPGA进行配置的方法,其特征在于,在初始化、配置数据和配置结束的每一步骤后,都有检测程序,检测对应的操作是否成功;前一操作成功才进行下一操作。
4.权利要求3所述的对FPGA进行配置的方法,其特征在于,检测程序检测对应的操作是否成功是通过读接口转换模块中的状态寄存器来实现的。
5.权利要求2所述的对FPGA进行配置的方法,其特征在于,配置数据的过程中,处理器每次发送一个字节的配置数据数据给所述接口转换模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100649757A CN100388255C (zh) | 2004-10-10 | 2004-10-10 | 一种接口转换模块和对fpga进行配置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100649757A CN100388255C (zh) | 2004-10-10 | 2004-10-10 | 一种接口转换模块和对fpga进行配置的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1758232A CN1758232A (zh) | 2006-04-12 |
CN100388255C true CN100388255C (zh) | 2008-05-14 |
Family
ID=36703618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100649757A Expired - Lifetime CN100388255C (zh) | 2004-10-10 | 2004-10-10 | 一种接口转换模块和对fpga进行配置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100388255C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI453596B (zh) * | 2008-10-23 | 2014-09-21 | Micro Star Int Co Ltd | 輸出bios偵錯碼的裝置與方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655825B (zh) * | 2008-08-19 | 2011-01-19 | 研祥智能科技股份有限公司 | 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 |
CN101515312B (zh) * | 2008-12-03 | 2012-07-18 | 复旦大学 | 一种fpga逻辑单元模型及其通用装箱算法 |
CN102202431B (zh) * | 2010-03-25 | 2015-11-25 | 中兴通讯股份有限公司 | 增加3g通讯模块与应用处理器接口灵活性的装置和方法 |
CN101808027B (zh) * | 2010-03-31 | 2011-11-23 | 哈尔滨工业大学 | 适用于多种端口的数据接收存储转发装置 |
CN102141967B (zh) * | 2010-11-02 | 2013-04-24 | 华为技术有限公司 | 总线时序参数配置方法和装置 |
CN102880574B (zh) * | 2011-07-11 | 2015-01-07 | 航天信息股份有限公司 | 利用gpio模拟低速并行接口的方法 |
CN102799561A (zh) * | 2012-06-18 | 2012-11-28 | 龙芯中科技术有限公司 | 嵌入式可重构数据处理方法、装置及系统 |
CN105068962A (zh) * | 2015-07-23 | 2015-11-18 | 上海斐讯数据通信技术有限公司 | I2c控制器访问方法及系统 |
CN106445579A (zh) * | 2016-08-29 | 2017-02-22 | 安徽皖通邮电股份有限公司 | 一种通用x86服务器子卡固件烧结的方法和装置 |
CN109710562A (zh) * | 2018-11-06 | 2019-05-03 | 电子科技大学 | 一种基于selectmap的可配置且高速的fpga配置电路及实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119189A (en) * | 1997-09-24 | 2000-09-12 | Intel Corporation | Bus master transactions on a low pin count bus |
US6204687B1 (en) * | 1999-08-13 | 2001-03-20 | Xilinx, Inc. | Method and structure for configuring FPGAS |
WO2003034199A2 (en) * | 2001-10-16 | 2003-04-24 | Leopard Logic, Inc. | Interface architecture for embedded field programmable gate array cores |
CN1414488A (zh) * | 2002-11-12 | 2003-04-30 | 威盛电子股份有限公司 | 具有管理外围i/0控制装置功能的系统 |
US20030093607A1 (en) * | 2001-11-09 | 2003-05-15 | Main Kevin K. | Low pin count (LPC) I/O bridge |
-
2004
- 2004-10-10 CN CNB2004100649757A patent/CN100388255C/zh not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119189A (en) * | 1997-09-24 | 2000-09-12 | Intel Corporation | Bus master transactions on a low pin count bus |
US6204687B1 (en) * | 1999-08-13 | 2001-03-20 | Xilinx, Inc. | Method and structure for configuring FPGAS |
WO2003034199A2 (en) * | 2001-10-16 | 2003-04-24 | Leopard Logic, Inc. | Interface architecture for embedded field programmable gate array cores |
US20030093607A1 (en) * | 2001-11-09 | 2003-05-15 | Main Kevin K. | Low pin count (LPC) I/O bridge |
CN1414488A (zh) * | 2002-11-12 | 2003-04-30 | 威盛电子股份有限公司 | 具有管理外围i/0控制装置功能的系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI453596B (zh) * | 2008-10-23 | 2014-09-21 | Micro Star Int Co Ltd | 輸出bios偵錯碼的裝置與方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1758232A (zh) | 2006-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110634530B (zh) | 芯片的测试系统和测试方法 | |
CN101420328B (zh) | 远程升级现场可编程门阵列的系统、接口卡及方法 | |
CN101770417B (zh) | 基于jtag的硬件故障注入系统及故障注入方法 | |
CN100388255C (zh) | 一种接口转换模块和对fpga进行配置的方法 | |
CN107656856A (zh) | 一种基于cpld的系统状态显示方法及装置 | |
US8732526B1 (en) | Single-wire data interface for programming, debugging and testing a programmable element | |
CN114333962A (zh) | 闪存芯片的测试方法、装置、系统、电子设备及存储介质 | |
CN102043747B (zh) | Jtag下载方式下fpga逻辑代码的下载方法 | |
CN106681877B (zh) | 芯片调试系统及方法与系统芯片 | |
CN109885905B (zh) | 一种提高数字电路功能验证效率的验证系统 | |
CN104200846B (zh) | 一种嵌入式prom测试系统及实现方法 | |
CN107632910A (zh) | 一种测试方法和装置 | |
CN112882876A (zh) | 一种pld器件远程调试和配置系统 | |
US20060212768A1 (en) | Verification circuitry for master-slave system | |
CN103713977A (zh) | 一种微处理器ip核比较验证的实现方法 | |
CN106847344B (zh) | 基于断言的存储器控制器接口时序参数化验证系统 | |
CN109117299B (zh) | 服务器的侦错装置及其侦错方法 | |
CN202257547U (zh) | 一种龙芯cpu平台中显卡测试的装置 | |
CN105183954B (zh) | 一种基于pxi的串行总线健康监测平台 | |
CN112162879A (zh) | 一种实时多核dsp软件的日志系统 | |
CN100399752C (zh) | 数字通信信号处理单板的测试系统及其方法 | |
CN101206606A (zh) | 监控输入/输出端口数据的方法 | |
JP2004101203A (ja) | ロジックlsiの不良解析システム及び不良解析方法 | |
CN112798942A (zh) | 一种芯片批量测试方法和系统 | |
CN112445659B (zh) | 一种多协议高速serdes测试实现方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20080514 |
|
CX01 | Expiry of patent term |