一种fpga嵌入式管理系统、设计方法及介质

文档序号:510400 发布日期:2021-05-28 浏览:4次 >En<

阅读说明:本技术 一种fpga嵌入式管理系统、设计方法及介质 (FPGA embedded management system, design method and medium ) 是由 陳正川 于 2021-02-10 设计创作,主要内容包括:本发明公开了一种FPGA嵌入式管理系统,应用于服务器,包括:FPGA单元、电源模组和显示模块;FPGA单元分别与所述电源模组和所述显示模块连接;电源模组用于供电所述服务器;显示模块用于显示所述服务器的状态;FPGA单元中设有CPU、控制模块和存储模块;CPU用于读取并执行所述存储模块中代码;控制模块用于控制电源模组和显示模块;存储模块用于存储所述代码以及所述CPU产生的数据;通过上述方式,本发明能够充分利用FPGA内部资源,达到利用率最大化,进而节省零件成本,CPU易于实现基于Console Port的复杂控制及显示选单,且设计不会额外占用LE资源。(The invention discloses an FPGA embedded management system, which is applied to a server and comprises the following components: the system comprises an FPGA unit, a power supply module and a display module; the FPGA unit is respectively connected with the power supply module and the display module; the power supply module is used for supplying power to the server; the display module is used for displaying the state of the server; the FPGA unit is provided with a CPU, a control module and a storage module; the CPU is used for reading and executing the codes in the storage module; the control module is used for controlling the power supply module and the display module; the storage module is used for storing the codes and the data generated by the CPU; through the mode, the FPGA internal resource can be fully utilized, the utilization rate is maximized, the part cost is further saved, the CPU is easy to realize the Console Port-based complex control and display menu, and the LE resource is not additionally occupied by the design.)

一种FPGA嵌入式管理系统、设计方法及介质

技术领域

本发明涉及系统设计领域,特别是涉及一种FPGA嵌入式管理系统、设计方法及介质。

背景技术

FPGA或CPLD在服务器及存储器应用中,经常用于系统及电源管理,其中包含电源时序控制、组合逻辑应用、与其他主动元件如:BMC、PCH、CPU等电子元器件沟通、周边信号控制或收集、风扇控制等。

目前的FPGA或CPLD在此类应用的设计都是使用硬件的方式来实现的(即使用元件内部的LE资源),但是由于内部的LE资源较少,并且FPGA设计的目标一直是以尽可能少的资源占用率实现系统能达到的最高性能。导致较为复杂的管理难以实现,如:支持复杂选单及命令的Console Port、集中管理方案等;而FPGA或CPLD内部除了LE外,还拥有许多其他相对较少用到的资源如:Block RAM、Flash Memory等在系统管理以及电源管理中未有应用,导致会产生资源浪费。

发明内容

本发明主要解决是现有FPGA中内部LE资源较少,无法实现复杂的管理功能的问题。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种FPGA嵌入式管理系统,应用于服务器,包括:FPGA单元、电源模组和显示模块;

所述FPGA单元分别与所述电源模组和所述显示模块连接;

所述电源模组用于供电所述服务器;

所述显示模块用于显示所述服务器的状态;

所述FPGA单元中设有CPU、控制模块和存储模块;

所述CPU用于读取并执行所述存储模块中程序;

所述控制模块用于控制所述电源模组和所述显示模块;

所述存储模块用于存储所述程序以及所述CPU产生的数据。

作为本发明一种FPGA嵌入式管理系统的进一步改进,所述电源模组还用于当所述电源模组正常开启时,发送第一电源信号至所述控制模块;

所述电源模组中包含若干电源。

作为本发明一种FPGA嵌入式管理系统的进一步改进,所述控制模块包括端口控制模块、电源模组控制模块和显示控制模块;

所述FPGA单元通过所述端口控制模块与所述服务器连接;

所述电源模组控制模块与所述电源模组连接,所述电源模组控制模块设有若干输出接口和若干输入接口;

所述电源模组控制模块通过所述输出接口发送第二电源信号至所述电源模组,通过所述第二电源信号控制所述电源模组;

所述显示控制模块通过输出输入引脚控制所述显示模块。

作为本发明一种FPGA嵌入式管理系统的进一步改进,所述电源模组控制模块还用于控制所述服务器中部件的上电顺序,用于控制若干所述电源的延迟时间,用于监控所述电源模组是否正常开启。

作为本发明一种FPGA嵌入式管理系统的进一步改进,所述存储模块包括随机存储模块和变量存储模块;

所述随机存储模块用于存储所述CPU产生的数据,且断电时所述随机存储模块中数据清除;

所述变量存储模块用于存储功能程序、硬件烧录文件以及所述服务器的参数,且断电时所述变量存储模块中数据不清除。

作为本发明一种FPGA嵌入式管理系统的进一步改进,所述FPGA单元中的所述CPU、控制模块和存储模块通过并列传输协议进行通信。

本发明进一步提供根据上述所述的一种FPGA嵌入式管理系统的设计方法,包括以下步骤:

建立控制模块和存储模块,设置所述控制模块和所述存储模块的起始地址,通过所述起始地址设计驱动文件;

设定控制模块和存储模块的参数;

进行硬件合成,通过FPGA中逻辑单元合成所述控制模块和所述存储模块;

生成硬件烧录文件和设计功能程序;

编译所述功能程序,并生成格式文件,将所述硬件烧录文件和所述格式文件烧录至所述存储模块中。

优选的,所述设定控制模块和存储模块的参数的步骤进一步包括:通过开发软件或硬件描述语言设定所述存储模块的存储空间,设定CPU中输入输出引脚的数量,设定所述控制模块中端口控制模块的波特率。

优选的,所述硬件烧录文件中的信息包括:所述FPGA中的所述控制模块和所述存储模块的位置以及所述FPGA中走线的布局。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现所述的一种FPGA嵌入式管理系统的方法的步骤。

本发明的有益效果是:

1、本发明所述的FPGA嵌入式管理系统,能够充分利用FPGA内部资源,达到利用率最大化,进而节省零件成本,CPU易于实现基于Console Port的复杂控制及显示选单,且设计不会额外占用LE资源。

2、本发明所述的FPGA嵌入式管理系统的设计方法,通过设置每个模块的起始地址,并通过起始地址进行通信,方便执行,提升了效率,并且将复杂的功能写入变量存储模块中,不会额外占用LE资源并且能够实现复杂的功能。

3、本发明所述的计算机可读存储介质,通过使用编程语言进行控制,方便每个任务进行管理,提高了效率。

附图说明

为了更清楚地说明本发明

具体实施方式

或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例1所述的FPGA嵌入式管理系统架构示意图;

图2是本发明实施例1所述的FPGA嵌入式管理系统中控制模块和显示模块架构示意图;

图3是本发明实施例2所述的FPGA嵌入式管理系统的设计方法示意图;

图4是本发明实施例2所述的FPGA嵌入式管理系统的设计方法中程序流程图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

需要说明的是,在本发明的描述中

CPU(Central Processing Unit)是中央处理器;

BMC(Baseboard management controller)执行服务器远端管理控制器,是基板管理控制器;

FPGA(Field Programmable Gate Array)是现场可编程逻辑门阵列;

CPLD(Complex Programmable Logic Device)是复杂可编程逻辑器件,用来实现各种运算和组合逻辑;

LE((Logic Element)为逻辑单元的最小单位,用于完成用户逻辑的最小单元;

PCH(Platform Controller Hub)是平台控制器;

Console Port是配置端口,是一种接口类型;

Block RAM是块随机存储器,主要应用于构造数据高速缓冲存储器、深的FIFO和缓冲器等;

Flash Memory是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器;主要用于一般性数据存储,以及在计算机与其他数字产品间交换传输数据。

ELF(Executable and Linkable Format)是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。

Avalon总线是一种协议较为简单的片内总线;

Avalon Interface是Intel定义的并列传输协议;

UART(Universal Asynchronous Receiver/Transmitter)是通用异步收发传输器,它将要传输的资料在串行通信与并行通信之间加以转换,作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通信接口的连接上。

Power Enable为使能输入信号,每组电源都会有Enable的输入信号,用来开启或关闭电源。

Power Good信号为当电源启动完毕,达到正常状态输出的信号。

从电源接通到电源输出稳定的电压需要一定的时间,为了避免不正常的电压损害电路,电源首先会自行检查输出电压是否正常,如正常,则输出一个PowerGood的信号给核心部件使其启动。

底层驱动是程序以访问底层硬件的形式实现人机交互,驱动程序和应用程序之间需要实现相应的信息交互,一方面,应用程序通过对驱动程序发送相应的指令,实现硬件控制的动作指令,另一方面,驱动程序将硬件读写的状态、从硬件上获得的数据传送给应用程序,实现应用程序与驱动程序间的交互。

AUX是辅助电源,它的作用是让系统实现挂起模式,在显卡停止工作之时提供较小的电流让它能够迅速恢复工作状态;

DDR=Double Data Rate双倍速率,在本实施例中指代服务器中的内存。

FIFO(First Input First Output)简单说就是指先进先出存储器。

实施例1

本发明实施例提供一种FPGA嵌入式管理系统,应用于服务器,请参阅图1和图2,硬件层面,包括:FPGA单元、电源模组和显示模块;

电源模组用于供电服务器;

FPGA单元分别与电源模组和显示模块连接;

FPGA单元中设有端口控制模块、随机存储模块、电源模组控制模块、CPU、变量存储模块和显示控制模块;

FPGA中所有模块通过一根总线连接,通过模块之间不同的地址进行通信;

具体为FPGA单元内部模块之间通过并列传输协议进行互相通信;

端口控制模块对外连接的接口为UART接口,FPGA单元通过UART接口与服务器连接;

电源模组控制模块对外的接口设有若干输入接口和若干输出接口,输入接口与电源模组连接,通过输入接口向电源模组发送Power Enable的输入信号,用来开启或关闭电源模组,当电源模组正确开启时,电源模组通过输出接口向电源模组控制模块发送PowerGood信号;

电源模组控制模块用于控制电源模组,且控制电源模组的数量可根据需求更改;

若干输出与输出接口是因为在服务器的应用会有十几组的电源,例如3.3VAUX、2.5VAUX、1.5VAUX、5V总电源、2.5V总电源、1.8V总电源、DDR电源、BMC电源、CPU电源等。电源模组控制模块会依照系统需求去控制服务器中部件的上电的顺序,并控制电源间的延迟时间。也会监控个电源是否正常开启(即Power Good是否等于1);

显示控制模块用于通过并列传输协议以及输入输出引脚控制显示模块进行显示特定的状态;

显示模块会根据系统在不同情境显示对应的内容,例如:

上电开机阶段,显示模块显示上电的进度。

上电完成后,显示模块显示上电的状态。

发生电源异常,显示模块显示异常类别,方便Debug。

远程更新,显示模块显示更新进度。

以上显示特定的状态在本发明中是使用C语言设计,并存于FPGA的变量存储器当中。

随机存储模块为FPGA内部自带的硬件,其中随机存储模块的存储器的内存大小取决于FPGA的软件需求,在FPGA单元内部通过并列传输协议进行通信;

随机存储模块用于存储数据,主要用于存储CPU产生的临时资料,并且CPU产生的临时资料断电丢失;

通过C语言进行固件设计进行改变随机存储模块的RAM大小,当在C语言中设置大量的全域变数时,RAM的空间需求就会很大,若在C语言中设置雨布变数,则在随机存储模块中可重复进行使用其内部的RAM,达到节省RAM需求量的效果;

变量存储模块为FPGA内部自带的硬件用于存储通过C语言进行FPGA固件设计的代码,以及服务器的参数,并且断电不清除数据。

服务器的参数包含许多,例如:

1、各个电源模组之间的延迟使能时间;

2、错误反馈日志;

端口控制模块、随机存储模块、电源模组控制模块、变量存储模块和显示控制模块是FPGA中LE通过C语言进行FPGA固件设计实现的。

实施例2

本发明实施例还提供一种FPGA嵌入式管理系统的设计方法,请参阅图3,包括以下步骤:

S100,建立系统中各个模块以及连接关系,根据连接关系设定管理系统中各个模块的起始地址,通过起始地址设计底层驱动文件;

CPU与系统中各个模块沟通都是通过各个模块的起始地址进行沟通,所以系统中的各个模块都需要有独立,且不重复的地址;所以需要对系统中的各个模块设置自己的起始地址;

例如,在FPGA中设置了一个1024byte的FIFO,并且设置这个FIFO的起始地址,例如起始地址为0x00008000,那么这个FIFO的地址为0x00008000-0x000083FF,并且这段地址也不能让其他的模块使用;所以其他模块的起始地址为0x00008400;

这个地址可以直接使用硬件描述语言设置在Verilog或VHDL文件中;

本实施例中主要描述FPGA的架构的设计方法,若有其他新增的模块,只要把新的模块拉进来,设置模块占用的地址,使用驱动程序将各模块的地址列于文件中,设计对应的API,C语言便可直接调用。

S300,进行参数设定,进行FPGA中模块的参数设定,例如,设定随机存储模块和变量存储模块的存储空间大小,CPU的GPIO引脚的数量;端口控制模块的波特率等;其中的参数设定可以分为两种,第一种,调用厂商配置的IP地址,可直接在开发模块的软件中设定,第二种为通过硬件描述语言自行设计的模块,直接在Verilog中进行参数设定;

参数设定完成后,进行硬件合成,将各个模块通过FPGA中的LE进行合成,合成后进行Timing closure时序收敛,通过开发软件设计各个模块在FPGA中的位置,以及FPGA中的走线设计,最后将上述设计放入文件中生成硬件烧录文件。

硬件烧录文件中不包含固件设计的代码。

S300,请参阅图4,进行FPGA固件设计的代码:通过C语言设计包含管理选单、电源时序控制以及各项功能任务的程序,功能任务可根据不同的需求而有所增减。

具体步骤如下:

S401,初始化各个模块,进行等待100μs,然后打印初始化信息;按照顺序运转电源模组;

S402,判断电源模组是否输出Power Good信号,若未输出,则关闭所有电源,并打印错误信息,若输出Power Good信号,则打印主菜单;

S403,是否选择主菜单中的任务,若选择,则执行任务;若不选择,则继续回到主菜单任务;

不同的功能任务包括电源上电程序、端口控制模块显示及输入识别、电源延迟的时间功能设定、显示控制、随机存储模块和变量存储模块数据的存取等。

S400,设置CPU中读取C语言代码的起始位置,设置CPU从变量存储模块中读取代码的起始位置,变量存储模块中存储C语言进行FPGA固件设计的代码,必须将CPU读取的代码的位置指向起始位置,这样CPU执行时就会从该代码的初始位置进行执行;

S500,将C语言设计的程序进行编译,生成ELF文件,并将硬件烧录文件以及ELF文件烧录至变量存储模块,设计完成。

基于与前述实施例中方法同样的发明构思,本说明书实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述公开的一种FPGA嵌入式管理系统的设计方法的步骤。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种处理系统以及一种片上系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!