一种基于CPLD_FPGA的版本显示系统和方法转让专利

申请号 : CN201710887050.X

文献号 : CN107632843A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 季冬冬

申请人 : 郑州云海信息技术有限公司

摘要 :

本发明公开一种基于CPLD_FPGA的版本显示方法,涉及服务器CPLD/FPGA技术领域,通过Verilog硬件描述语言设计,并在代码顶层例化,根据实际需求给定LED数目参数及阶段版本输入信息;将CPLD/FPGA输出的LED控制信号接至LED控制LED的亮灭;具体通过FSM设计LED分时显示阶段版本信息;LED数目通过参数化方式声明输入输出端口,使得不同设计中LED数目要求不同时,也无需修改代码而可以直接应用例化。本发明在不增加额外的LED以及CPLD/FPGA芯片的前提下,能够同时显示阶段信息与版本信息,降低了硬件成本;同时解决了由于LED数目不一致带来的移植性问题,增加代码的移植能力。

权利要求 :

1.一种基于CPLD_FPGA的版本显示方法,其特征在于, 通过Verilog硬件描述语言设计,并在代码顶层例化,根据实际需求给定LED数目参数及阶段版本输入信息;将CPLD/FPGA输出的LED控制信号接至LED控制LED的亮灭;

具体实现流程包括:

步骤一,给定LED个数和阶段版本信息;

步骤二,通过FSM设计LED分时显示阶段版本信息;

步骤三,LED数目通过参数化方式声明输入输出端口。

2.根据权利要求1所述一种基于CPLD_FPGA的版本显示方法,其特征在于,所述步骤二,采用FSM设计,FSM采用Gray码设计;即第一个状态时空闲状态,然后过一段时间后,自动跳入阶段显示状态,再经过一段时间后所有LED熄灭跳转到下一个状态,最后进入版本显示状态,并显示版本信息;如此,在运行时一直循环在阶段信息与版本信息交替显示状态。

3.根据权利要求2所述一种基于CPLD_FPGA的版本显示方法,其特征在于,所述步骤三,在声明时使用参数化方式,即通过#parameter LED_Width=…声明LED数目,然后期望阶段版本输入信号的位宽通过已声明的LED_Width进行定义,同时LED输出端口的位宽也使用LED_Width进行定义。

4.根据权利要求3所述一种基于CPLD_FPGA的版本显示方法,其特征在于,还包括对基于CPLD_FPGA的版本显示验证的步骤。

5.根据权利要求4所述一种基于CPLD_FPGA的版本显示方法,其特征在于,所述对基于CPLD_FPGA的版本显示验证的步骤:通过ModelSim进行了功能仿真;得到仿真结果为:LED控制信号在阶段信息与版本信息间循环。

6.一种基于CPLD_FPGA的版本显示方法,其特征在于,通过Verilog硬件描述语言设计,在代码顶层例化该版本显示系统;根据实际需求给定LED数目参数及阶段版本输入信息; CPLD/FPGA输出的LED控制信号连接LED来控制LED的亮灭;

包括:信息模块,用于给定LED个数和阶段版本信息;

分时显示模块,通过FSM分时显示阶段与版本信息;

参数化模块,用于对分时显示模块的接口带宽采用参数化方式。

7.根据权利要求6所述一种基于CPLD_FPGA的版本显示系统,其特征在于,所述分时显示模块,采用FSM设计,FSM采用Gray码设计,即第一个状态时空闲状态;然后经过一段时间后,自动跳入阶段显示状态;再经过一段时间后所有LED熄灭并跳转到下一个状态,最后进入版本显示状态,并显示版本信息;在运行时,一直循环在阶段信息与版本信息交替显示状态。

8.根据权利要求7所述一种基于CPLD_FPGA的版本显示系统,其特征在于,所述参数化模块,在分时显示模块声明处使用参数化方式,即通过 # parameter LED_Width=…声明LED个数,然后期望阶段版本输入信号的的位宽通过已声明的 LED_Width进行定义,同时LED输出端口的位宽也使用 LED_Width进行定义。

9.根据权利要求8所述一种基于CPLD_FPGA的版本显示系统,其特征在于,还包括对验证模块。

10.根据权利要求9所述一种基于CPLD_FPGA的版本显示系统,其特征在于,所述验证模块:通过ModelSim进行了功能仿真;得到仿真结果为:LED控制信号在阶段信息与版本信息间循环。

说明书 :

一种基于CPLD_FPGA的版本显示系统和方法

技术领域

[0001] 本发明涉及服务器CPLD/FPGA技术领域,具体的说是一种基于CPLD_FPGA的版本显示系统和方法。

背景技术

[0002] 在服务器中,通常通过CPLD/FPGA进行整个服务器的上、下电时序控制,LED亮灭控制及通信控制等,为方便设计者与测试者明确服务器所处的阶段信息与版本信息,通常通过专门LED进行显示。
[0003] 服务器上通过LED来显示服务器所处的阶段信息与版本信息时,一般预留3个或4个LED,阶段一般分为EVT、DVT、PVT与MP,版本由所处的阶段因设计更新又往往包含多个版本,因此LED无法同时显示阶段信息与版本信息。其中,EVT(Engineering Verification Test)是工程验证测试阶段,DVT(Design Verification Test)是设计验证测试阶段,PVT(Pilot-run Verification Test)是小批量过程验证测试阶段,MP(Mass-Production)是量产阶段。
[0004] 在现有设计中通常牺牲信息资源,只显示版本信息,这是一种折中设计,如要要同时显示阶段信息与版本信息就要增加LED个数,意味着使用更多的硬件成本与板卡面积,这在高密度的板卡设计中通常是不允许的。同时,根据项目需求不同,显示阶段信息与版本信息的LED通常也不同,通常为3个或4个LED,在不同设计中,通常修改Verilog代码来满足不同的设计需求,降低了代码的移植性。
[0005] CPLD/FPGA是一款半定制的专用集成电路,具有可编程、可擦除、易于验证、集成度高及硬件资源丰富等系列优点,在前期开发验证及应用控制领域得到越来越广泛的应用。基于上述优点,通过CPLD/FPGA实现低层电路设计进而实现控制逻辑得到越来越广泛应用。

发明内容

[0006] 本发明针对目前技术发展的需求和不足之处,提供一种基于CPLD_FPGA的版本显示系统和方法。
[0007] 本发明所述一种基于CPLD_FPGA的版本显示系统和方法,解决上述技术问题采用的技术方案如下:一种基于CPLD_FPGA的版本显示方法,通过Verilog硬件描述语言设计,并在代码顶层例化,根据实际需求给定LED数目参数及阶段版本输入信息;将CPLD/FPGA输出的LED控制信号接至LED控制LED的亮灭;具体实现流程包括:
步骤一,给定LED个数和阶段版本信息;
步骤二,通过FSM设计LED分时显示阶段版本信息,不需要额外增加LED数目;
步骤三,LED数目通过参数化方式声明输入输出端口。
[0008] 进一步,步骤二,采用FSM设计,FSM采用Gray码设计;即第一个状态时空闲状态,然后过一段时间后,自动跳入阶段显示状态,再经过一段时间后所有LED熄灭跳转到下一个状态,最后进入版本显示状态,并显示版本信息;如此,在运行时一直循环在阶段信息与版本信息交替显示状态。
[0009] 进一步,步骤三,在声明时使用参数化方式,即通过#parameter LED_Width=…声明LED数目,然后期望阶段版本输入信号的位宽通过已声明的LED_Width进行定义,同时LED输出端口的位宽也使用LED_Width进行定义。
[0010] 进一步,所述基于CPLD_FPGA的版本显示方法,还包括对基于CPLD_FPGA的版本显示验证的步骤。
[0011] 进一步,所述对基于CPLD_FPGA的版本显示验证的步骤:通过ModelSim进行了功能仿真;得到仿真结果为:LED控制信号在阶段信息与版本信息间循环。
[0012] 一种基于CPLD_FPGA的版本显示系统,通过Verilog硬件描述语言设计,在代码顶层例化该版本显示系统;根据实际需求给定LED数目参数及阶段版本输入信息; CPLD/FPGA输出的LED控制信号连接LED来控制LED的亮灭;系统架构包括:
信息模块,用于给定LED个数和阶段版本信息;
分时显示模块,通过FSM分时显示阶段与版本信息,不需要额外增加LED数目;
参数化模块,用于对分时显示模块的接口带宽采用参数化方式,使得不同设计中LED数目要求不同时,也无需修改代码而可以直接应用例化。
[0013] 进一步,所述分时显示模块,采用FSM设计,FSM采用Gray码设计,即第一个状态时空闲状态;然后经过一段时间后,自动跳入阶段显示状态;再经过一段时间后所有LED熄灭并跳转到下一个状态,最后进入版本显示状态,并显示版本信息;在运行时,一直循环在阶段信息与版本信息交替显示状态。
[0014] 进一步,所述参数化模块,在分时显示模块声明处使用参数化方式,即通过 # parameter LED_Width=…声明LED个数,然后期望阶段版本输入信号的的位宽通过已声明的 LED_Width进行定义,同时LED输出端口的位宽也使用 LED_Width进行定义。
[0015] 进一步,所述基于CPLD_FPGA的版本显示系统,还包括对验证模块。
[0016] 进一步,所述验证模块:通过ModelSim进行了功能仿真;得到仿真结果为:LED控制信号在阶段信息与版本信息间循环。
[0017] 本发明所述一种基于CPLD_FPGA的版本显示系统和方法,与现有技术相比具有的有益效果是:本发明在不增加额外的LED以及CPLD/FPGA芯片的前提下,能够同时显示阶段信息与版本信息,降低了硬件成本;同时解决了由于LED数目不一致带来的移植性问题,使得不同设计中LED数目不同时,无需修改代码也可直接应用例化,增加代码的移植能力。

附图说明

[0018] 为了更清楚的说明本发明实施例或现有技术中的技术内容,下面对本发明实施例或现有技术中所需要的附图做简单介绍。显而易见的,下面所描述附图仅仅是本发明的一部分实施例,对于本领域技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,但均在本发明的保护范围之内。
[0019] 附图1为LED分时显示阶段版本信息的示意图。

具体实施方式

[0020] 为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清查、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下获得的所有实施例,都在本发明的保护范围之内。
[0021] 实施例1:本实施例提出一种基于CPLD_FPGA的版本显示方法,通过Verilog硬件描述语言设计,并在代码顶层例化,根据实际需求给定LED数目参数及阶段版本输入信息;将CPLD/FPGA输出的LED控制信号接至LED阴极,LED阳极接Vcc,控制LED的亮灭。
[0022] 该基于CPLD_FPGA的版本显示方法,如附图1所示,具体实现流程包括:步骤一,给定LED个数和阶段版本信息;
步骤二,LED分时显示阶段版本信息;
具体的,通过FSM分时显示阶段与版本信息,这样解决了同时显示阶段与版本信息对LED数目要求多,增加硬件成本与PCB面积增大的矛盾,不需要额外增加LED数目;
步骤三,LED数目通过参数化方式声明输入输出端口;
具体的,LED数目通过参数化方式声明输入输出端口,实现一改全改,增加了基于CPLD_FPGA阶段版本显示在不同项目中的移植能力。
[0023] 本实施例还提出了一种基于CPLD_FPGA的版本显示系统,其技术方案与实施例1所述版本显示方法可以相互参照,通过Verilog硬件描述语言设计,在代码顶层例化该版本显示系统,根据实际需求给定LED数目参数及阶段版本输入信息;将CPLD/FPGA输出的LED控制信号接至LED阴极,LED阳极接Vcc,控制LED的亮灭。
[0024] 该基于CPLD_FPGA的版本显示系统,系统架构包括:信息模块,用于给定LED个数和阶段版本信息;
分时显示模块,用于分阶段交替显示阶段版本信息;通过FSM分时显示阶段与版本信息,不需要额外增加LED数目;
参数化模块,用于对分时显示模块的接口带宽采用参数化方式,使得不同设计中LED数目要求不同时,也无需修改代码而可以直接应用例化,增加了代码的移植能力。
[0025] 本实施例版本显示系统,在已有CPLD/FPGA基础上,对服务器LED阶段版本显示的方案进行了变更,通过FSM实现阶段版本信息分时显示,分阶段交替显示阶段信息与版本信息,解决了需要增加LED数目显示所有信息的问题,不需要额外增加LED也能够实现所有信息显示,不会造成硬件成本的增加;同时,对分时显示模块的接口带宽采用参数化设计方法,增加代码的移植能力,使得不同设计中, LED数目不同时,无需修改代码也可直接应用例化。
[0026] 实施例2:本实施例提出的一种基于CPLD_FPGA的版本显示方法,在实施例1的基础上,增加了LED分时显示阶段版本信息的一种具体技术,以及LED数目采用参数化方式的一种具体技术,进一步完善了所述版本显示方法的具体实现技术内容,使得其更具有实用性和可实施性。
[0027] 本实施例所述基于CPLD_FPGA的版本显示方法,具体实现流程包括:步骤一,给定LED个数和阶段版本信息;
步骤二,LED分时显示阶段版本信息;
具体的,采用FSM设计,即第一个状态时空闲状态,然后过一段时间(比如1s)后,自动跳入阶段显示状态,再经过一段时间(比如1s)后所有LED熄灭跳转到下一个状态,最后进入版本显示状态,并显示版本信息;如此在运行时一直循环在阶段信息与版本信息交替显示状态。
[0028] 进一步,为了提高FSM状态跳转时的可靠性,FSM采用Gray码设计,保证状态跳转时只有一位状态位发生变化。
[0029] 步骤三,LED数目通过参数化方式声明输入输出端口;具体的,在声明时使用参数化方式,即通过#(parameter LED_Width=…)声明LED数目,然后期望阶段版本输入信号的位宽通过已声明的LED_Width进行定义,同时LED输出端口的位宽也使用LED_Width进行定义;这样保证了在不同项目中只需根据实际LED需求更改#(parameter LED_Width=…)的数值即可。
[0030] 本实施例还提出了一种基于CPLD_FPGA的版本显示系统,其技术方案与实施例2版本显示方法可以相互参照,包括:信息模块,用于给定LED个数和阶段版本信息;
分时显示模块,用于分阶段交替显示阶段版本信息;
具体的,分时显示模块采用FSM设计,即第一个状态时空闲状态;然后经过一段时间(比如1s)后,自动跳入阶段显示状态;再经过一段时间(比如1s)后所有LED熄灭并跳转到下一个状态,最后进入版本显示状态,并显示版本信息;在运行时,一直循环在阶段信息与版本信息交替显示状态。
[0031] 进一步,为了提高FSM状态跳转时的可靠性,FSM采用Gray码设计,保证状态跳转时只有一位状态位发生变化。
[0032] 参数化模块,用于对分时显示模块的接口带宽采用参数化方式;具体的,在分时显示模块声明处使用参数化方式,即通过 #(parameter LED_Width=…)声明LED个数,然后期望阶段版本输入信号的的位宽通过已声明的 LED_Width进行定义,同时LED输出端口的位宽也使用 LED_Width进行定义。这样就保证了在不同项目中只需根据实际LED要求更改 #(parameter LED_Width=…)的数值即可。
[0033] 实施例3:本实施例提出的一种基于CPLD_FPGA的版本显示方法,在实施例2的基础上,增加了对基于CPLD_FPGA的版本显示验证的步骤,能够验证该版本显示方法的正确性,具体过程如下:
通过ModelSim进行了功能仿真;例如,设定LED数目为4,阶段信息是0011,版本信息是
0101,具体数值代表的含义由架构师定义;得到仿真结果为:LED控制信号在阶段信息与版本信息间循环,即在0011—0101—0000不同数值间循环,每个阶段周期可以自行定义,比如
1s。通过上述验证过程,能够说明该版本显示方法采用LED交替显示阶段版本信息,不需增加额外的硬件结构,降低了硬件成本。
[0034] 本实施例还提供了一种基于CPLD_FPGA的版本显示系统,其技术方案与实施例3可以相互参照,增加了验证模块,用来验证该版本显示系统设计目的的正确性;该验证模块具体内容包括:通过ModelSim进行了功能仿真;例如,设定LED数目为4,阶段信息是0011,版本信息是
0101,具体数值代表的含义由架构师定义;得到仿真结果为:LED控制信号在0011—0101—
0000不同数值间循环,每个阶段周期可以自行定义,比如1s。
[0035] 以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容,并不用于限制本发明的保护范围,本发明的技术方案不限制于上述具体实施方式内。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。