一种可编程逻辑器件配置文件在线更新装置的制作方法

文档序号:6329926阅读:348来源:国知局
专利名称:一种可编程逻辑器件配置文件在线更新装置的制作方法
技术领域
本发明属于配置文件更新技术领域,更为具体地讲,涉及一种可编程逻辑器件配置文件在线更新装置。
背景技术
可编程逻辑器件有两种主要类型现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD),其规模大,结构复杂,属于大规模集成电路范围,是一种用户根据自身特定需求而自行构造逻辑功能的数字集成电路。可编程逻辑器件的传统配置方法一般是借助集成开发软件,生成相应的目标文件,通过专用下载电缆完成目标芯片,即可编程逻辑器件的编程。通常这种配置方式都需要专门的配置插件和开发软件的支持,而通过这些方法进行可编程逻辑器件的配置一般比较复杂,操作起来很不方便。

发明内容
本发明的目的在于克服现有技术的不足,提供一种配置简单、操作方便的可编程逻辑器件配置文件在线更新装置。为实现上述发明目的,本发明可编程逻辑器件配置文件在线更新装置,包括上位机,上位机中包含程序封装模块和数据发送模块;程序封装模块用于将开发环境默认产生的可编程逻辑器件更新配置文件按照标准测试与编程语言(STAPL)标准的要求组合封装为.jbc格式的文件;数据发送模块用于将程序封装模块组合封装的文件,即.jbc文件通过以太网控制芯片转换为网络信号并发送到网线上;一微处理器和程序存储器,微处理器中包括数据接收缓冲模块、程序解析模块和 GPIO(General Purpose Input Output,通用输入 / 输出)模拟 JTAG(Joint Test Action Group,联合测试行为组织)模块;数据接收缓冲模块用于接收网线上从上位机传来的.jbc文件,并完成数据校验功能以确保传输无误,将其存到程序存储器里;程序解析模块用于获取存到程序存储器里的.jbc文件,并使用内部的Jam STAPL Byte-Code Player解析程序将该.jbc文件中包含的配置信息解析为JTAG标准的数据流;GPIO模拟JTAG模块使用微处理器的4个GPIO引脚连接到可编程逻辑器件的标准 JTAG接口,并使用这4个引脚作为配置可编程逻辑器件的JTAG信号线;GPIO模拟JTAG模块首先接收由程序解析模块传递来的JTAG标准数据流,从中获取相对应的JTAG电平信息,并根据电平信息调用驱动程序,控制微处理器中GPIO引脚的输出电平,微处理器引脚的电平输出需满足JTAG的时序要求,可编程逻辑器件根据此电平信息实现配置文件的在线更新。本发明的发明目的是这样实现的在上位机中,程序封装模块提取由开发环境默认生成的可编程逻辑器件的更新配置文件,即.pof为后缀的配置文件,并将其转化为Jam STAPL Byte-Code Player解析程序中需要的STAPL标准输入文件,即.jbc文件;数据发送模块将.jbc文件转换为网络信号并发送到网线上;这样便完成了上位机对可编程逻辑器件配置文件的生成、封装和发送的工作。在本发明可编程逻辑器件配置文件在线更新装置中,使用微处理器控制数据接收缓冲模块接收来自网线的.jbc文件,并对文件进行校验以确保在传输过程中没有出现信息丢失,并将该文件保存到程序存储器中;程序解析模块提取数据存储器中.jbc文件中的可编程逻辑器件配置信息,并通过程序解析模块内部的Jam STAPL Byte-Code Player程序将可编程逻辑器件的配置信息转换成JTAG数据流,并将该JTAG数据流传递给GPIO模拟 JTAG模块。GPIO模拟JTAG模块使用微处理器的4个GPIO连接到可编程逻辑器件的标准JTAG 接口,并使用这4个GPIO 口作为配置的可编程逻辑器件的JTAG信号线;GPIO模拟JTAG模块首先接收由程序解析模块传递来的JTAG标准数据流,并从中获取相对应的JTAG电平信息,并根据电平信息调用驱动程序,控制微处理器中GPIO引脚的输出电平,微处理器引脚的电平输出需满足JTAG的时序要求,可编程逻辑器件根据此电平信息实现配置文件的在线更新。JTAG标准包含4个必须的信号,分别是TMS、TDI、TDO和TCK ;TMS信号为输出信号,用于控制JTAG的状态机的转换;TDI信号同样为输出信号,是JTAG扫描链数据输入的接口,所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的,TDO信号是从JTAG扫描链返回的器件反馈信号,TCK为JTAG输入输出数据流的时钟信号控制信号, TMS、TDI和TDO信号的输入输出功能都是由TCK信号进行直接控制的;TMS、TDI的信号需要在TCK时钟信号的下降沿锁存并输出到JTAG扫描链,而TDO反馈信号是在TCK时钟信号的上升沿有效;GPIO模拟JTAG模块实现的关键在于微处理器的GPIO引脚输出信号的输出需要满足JTAG配置的时序要求;本发明具有以下优点1、使用微处理器的GPIO作为标准的JTAG接口,并通过驱动程序模拟标准JTAG的配置时序,只用到了 4个普通的微处理器的GPI0,硬件电路十分简单,跟传统可编程逻辑器件的配置方法相比,成本降低很多。2、使用Jam STAPL Player对输入的可编程逻辑器件的配置文件进行解析,配置文件使用的是标准测试与编程语言(STAPL)语言,专门应用于描述可编程逻辑器件的配置文件,使配置文件具有通用性,独立于可编程逻辑器件的生产厂商,可以应用于多种可编程逻辑器件的配置工作,而不只是局限于一种可编程逻辑器件的配置。本发明可编程逻辑器件配置文件在线更新装置以微处理器为核心,使用微处理器的普通GPIO和可编程逻辑器件的JTAG引脚连接,以软件方式实现了可编程逻辑器件配置文件的更新,硬件成本低,配置过程简单、操作方便,更新速度快,可以应用于多种可编程逻辑器件的芯片。


图1是本发明可编程逻辑器件配置文件在线更新装置一种具体实施方式
原理框图;图2是Jam Player对可编程逻辑器件进行配置的原理图;图3是GPIO模拟JTAG模块的时序图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例图1是本发明可编程逻辑器件配置文件在线更新装置一种具体实施方式
原理框图。如图1所示,在本实施例中,简易单总线接口转换电路,包括上位机中包含程序封装模块101和数据发送模块102,本装置的软件开发平台为 QUARTUS II开发环境。程序封装模块101将QUARTUS II开发环境默认编译产生的可编程逻辑器件配置文件,即.Pof文件按照标准测试与编程语言(STAPL)标准的要求组合封装为.jbc格式的文件;数据发送模块102将程序封装模块组合封装的文件,即.jbc文件转化为网络电平信号,通过以太网控制芯片对其进行转换处理,并最终输出到网线上;微处理器采用ARM9系列主流微处理器。ARM9微处理器中包含有数据接收缓冲模块201、程序解析模块202、GPIO模拟JTAG模块203 ;由ARM9微处理器控制数据接收缓冲模块201接收来自网线的.jbc文件,并对文件进行校验以确保在传输过程中没有出现信息丢失,并将该文件保存到数据存储器3中;程序解析模块202提取数据存储器中.jbc文件包含的可编程逻辑器件配置信息,并通过程序解析模块202内部的Jam STAPL Byte-Code Player程序将可编程逻辑器件的配置信息转换成JTAG数据流,并通过GPIO模拟JTAG模块 203接收包含JTAG数据流的可编程逻辑器件的配置信息,获取该配置信息中相对应的JTAG 电平信息,最后通过系统中的Linux驱动程序,控制ARM9微处理器的引脚输出电平,将该 JTAG电平信号通过ARM9微处理器的4个GPIO 口传递给可编程逻辑器件4,并同时从ARM9 微处理器的引脚状态中获取从可编程逻辑器件4中获取反馈信息,这样便完成了对配制文件的接收、解析和配置的工作,实现了对可编程逻辑器件4的配置和功能更新,在不使用专门配置插件的前提下,对可编程逻辑器件的配置文件进更新,提高工作效率。在本实施例中,由Altera公司的开发环境Quartus II开发环境编译生成.pof的配置文件,通过程序封装模块101转换为.jbc格式的配置文件,并作为输入送往数据发送模块102。所述ARM微处理器采用Samsung公司的型号为S3C2440A的ARM9芯片。该芯片包含丰富的片上设备,并集成有一个内存管理单元(MMU),支持多种嵌入式操作系统。所述程序存储器为一片容量为256MB的K9F2G08U0A芯片,与ARM9微处理器相连。在本装置中需要完成的开发工作包括1、基于S3C2440A处理器的嵌入式Linux操作系统移植包括引导启动程序 u-boot、嵌入式Linux系统内核、yaffs2文件系统和以太网控制器驱动的移植。U_boot、Linux内核和yaffs2文件系统均储存于程序存储器中;2、为了实现可编程逻辑器件配置文件的在线更新,需要将Altera公司的Jam STAPL Byte-Code Player移植到本装置中的Linux系统中;3、由于Jam STAPL Byte-Code Player运行在嵌入式Linux操作系统中,没法直接访问ARM9芯片的GPIO引脚寄存器,也无法直接操作引脚的输入输出功能。因此需要为用于JTAG接口的GPIO引脚编写基于Linux的驱动程序,将这些引脚封装为Jam Player可以读写的字符设备。图2是Jam Player对可编程逻辑器件进行配置的原理图。在嵌入式Linux的环境中,使用JTAG接口配置可编程逻辑器件,必须使用标准测试与编程语言(Standard Test And Programming Language, STAPL)标准。STAPL 是一种专门用于描述可编程逻辑设备配置文件的编程语言,标准由EIA/JEDEC组织制定。使用STAPL 描述的配置文件具有通用性,独立于可编程逻辑器件生产厂商。在本实施例中,如图2所示,程序解析模块202为Jam解析器,使用Jam STAPL进行配置包含两个部分Jam Player和Jam配置文件。Jam Player运行在微处理器中,读取 Jam配置文件并解析配置文件中表达的内容,在JTAG接口 401上产生用于配置的二进制数据流并读取反馈数据。本实施例中,所述可编程逻辑器件4为ALTERA公司MAX II系列芯片EPM1270,Jam Player使用的是ALTERA公司2. 2版本的Jam STAPL Byte-Code Player,这个版本的Jam 编译器支持Wind0WS、D0S和UNIX这三种平台的代码,所使用的Jam配置文件格式为.jbc。 在本实施例中,应用平台为嵌入式Linux,因此必须根据平台进行相应的定制和移植。使用Jam Player配置EPM1270的命令为” PROGRAM”,其包含的子操作有D0_ BLANK_CHECK、D0_VERIFY、D0_SECURE、D0_DISABLE_ISP_CLAMP、D0_BYPASS_CFM、D0_BYPASS_ UFM、D0_REAL_TIME_ISP、D0_READ_USERC0DE、D0_INIT_C0NFIGURATI0N,其中每个子操作都由几个相应的命令组成。Jam Player首先对.jbc文件中包含的内容进行分析,根据配置的命令提取其中包含的子操作,依次将所包含的子操作转化为STAPL的标准指令,并将该STAPL的标准指令转化为EPM1270配置所需要的JTAG数据流信息,然后将JTAG数据流信息通过10接口函数输出到EPM1270的JTAG接口上。EPM1270接收到JTAG数据流后,根据指令的内容,对内部的配置单元(CFM)和用户单元(UFM)逐一编程,并将反馈信息通过TDO接口返回到ARM9的 GPIO中,Jam Player通过比较之前的JTAG数据流和EPM1270的反馈信息对配置的过程进行判断和控制,并输出当前的状态信息。当.jbc文件中所有包含的子操作中的指令都被执行完毕后,EPM1270配置更新完毕。图3为GPIO模拟JTAG模块的时序图。JTAG标准包含4个必须的信号,分别是TMS、TDI、TDO和TCK ;TMS信号为输出信号,用于控制JTAG的状态机的转换;TDI信号同样为输出信号,是JTAG扫描链数据输入的接口,所有要输入到特定寄存器的数据都是通过TDI接口按位串行输入的,TDO信号是从 JTAG扫描链返回的器件反馈信号,TCK为JTAG输入输出数据流的时钟信号控制信号,TMS、 TDI和TDO信号的输入输出功能都是通过TCK信号直接控制的;TMS、TDI的信号需要在TCK 时钟信号的下降沿锁存并输出到JTAG扫描链,而TDO反馈信号是在TCK时钟信号的上升沿有效;GPIO模拟JTAG模块203实现的关键在于ARM9微处理器的GPIO引脚GPB5 8输出信号的输出需要满足JTAG配置的时序要求;tJCP为TCK时钟周期,必须大于55. 5ns,tJCH为TCK的高电平时间,必须大于20ns, tJCL为TCK的低电平时间,必须大于20ns,tJPSU是JTAG的端口建立时间,需要大于8ns,tJPH 是JTAG端口的保持时间,需要大于10ns,tJPZX时间表示在TCK信号有效后,TDO信号从高阻到有效时间的间隔不得超过15ns,时间表示在TCK信号有效后,TDO信号的转换时间最高不得超过15ns,tJPXZ时间表示在TCK信号有效后,TDO信号的保持时间最高不得超过15ns,由于本装置中使用的操作系统为嵌入式Linux,在应用程序中无法直接对ARM9处理的引脚进行操作,通过编写Linux驱动程序控制ARM处理器引脚的输入输出功能,并使用精确定时的功能控制输入输出的时序,用于控制ARM9处理器GPIO 口的输入输出,使其达到 EPM1270配置所要求的时序,以此完成EPM1270配置文件的更新。尽管上面对本发明说明性的具体实施方式
进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式
的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
权利要求
1.一种可编程逻辑器件配置文件在线更新装置,其特征在于,包括 上位机,上位机中包含程序封装模块和数据发送模块;程序封装模块用于将开发环境默认产生的可编程逻辑器件更新配置文件按照标准测试与编程语言(STAPL)标准的要求组合封装为.jbc格式的文件;数据发送模块用于将程序封装模块组合封装的文件,即.jbc文件通过以太网控制芯片转换为网络信号并发送到网线上;微处理器和程序存储器,微处理器中包括数据接收缓冲模块、程序解析模块和GPIO模拟JTAG模块;数据接收缓冲模块用于接收网线上从上位机传来的.jbc文件,并完成数据校验功能以确保传输无误,将其存到程序存储器里;程序解析模块用于获取存到程序存储器里的.jbc文件,并使用内部的JamSTAPL Byte-Code Player解析程序将该.jbc文件中包含的配置信息解析为JTAG标准的数据流; GPIO模拟JTAG模块使用微处理器的4个GPIO引脚连接到可编程逻辑器件的标准JTAG 接口,并使用这4个引脚作为配置可编程逻辑器件的JTAG信号线;GPIO模拟JTAG模块首先接收由程序解析模块传递来的JTAG标准数据流,从中获取相对应的JTAG电平信息,并根据电平信息调用驱动程序,控制微处理器中GPIO引脚的输出电平,微处理器引脚的电平输出需满足JTAG的时序要求,可编程逻辑器件根据此电平信息实现配置文件的在线更新。
2.根据权利要求1所述的可编程逻辑器件配置文件在线更新装置,其特征在于,所述的微处理器为ARM9芯片,并在其中移植嵌入式Linux操作系统包括引导启动程序 u-boot、嵌入式Linux系统内核、yaffs2文件系统和以太网控制器驱动的移植,其中引导启动程序U-boot、入式Linux系统内核、yaffs2文件系统均储存于程序存储器中;将Jam STAPL Byte-Code Player移植到Linux操作系统中;并为用于JTAG接口的GPIO 引脚编写基于Linux的驱动程序,将这些引脚封装为Jam Player可以读写的字符设备。
全文摘要
本发明公开了一种可编程逻辑器件配置文件在线更新装置,在上位机中,程序封装模块提取更新配置文件并将其转化为Jam STAPL Byte-Code Player解析程序中需要的STAPL标准输入文件;数据发送模块将其转换为网络信号并发送到网线上。然后数据接收缓冲模块接收来自网线的.jbc文件,对文件进行校验并保存到程序存储器中;程序解析模块提取数据存储器中.jbc文件中的可编程逻辑器件配置信息,并通过程序解析模块内部的Jam STAPL Byte-Code Player程序将可编程逻辑器件的配置信息转换成JTAG数据流,并传递给GPIO模拟JTAG模块。由于使用微处理器的GPIO作为标准的JTAG接口,并通过驱动程序模拟标准JTAG的配置时序,只用到了4个普通的微处理器的GPIO,硬件电路十分简单,跟传统可编程逻辑器件的配置方法相比,成本降低很多。
文档编号G05B19/05GK102436385SQ20111036194
公开日2012年5月2日 申请日期2011年11月15日 优先权日2011年11月15日
发明者师奕兵, 张伟, 李焱骏, 王志刚, 高文辉 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1