带微处理器MCU可扩展的FPGA显示系统、方法及电子设备
技术领域
本发明涉及FPGA,尤其涉及一种带微处理器MCU可扩展的FPGA显示系统、方法及电子设备。
背景技术
FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)是一种具有丰富硬件资源和强大并行处理能力的可编程逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。随着多媒体设备,尤其是LCD(LiquidCrystal Display,液晶屏幕)和消费类电子设备的不断发展,消费者对屏幕显示的需求在不断的增加。随着显示屏幕的不断增大,对硬件系统的要求也在不断增加。MCU(Microcontroller Unit,微处理器)已经远远不能满足显示的需求。传统的做法是加入FPGA和外部存储器,使FPGA接受来自MCU的数据和指令不断的对外部存储器进行操作,以达到硬件加速驱动显示屏幕的作用。图1为现有技术中带MCU可扩展的FPGA视频显示方法。在图1中,FPGA中的MCU模块根据MCU发送的指令,将数据和相应的地址发送到外部存储控制器中,通过外部存储控制器将数据写入到外部存储器中,同时LCD模块产生显示地址和控制,使外部存储控制器将对应的数据从外部存储器中读出并输出到LCD显示屏中,完成显示过程。
但是通常这种带MCU的FPGA显示结构,对外部存储器带宽的利用率很低。为了保证显示正确,通常外部存储控制器会把来自MCU和LCD的地址请求做时分切换,例如:时刻一是MCU对外部存储器操作,时刻二是将数据从外部存储器读出作LCD显示,以此类推,这样的操作方式,均不是MCU和LCD屏幕对外部存储器进行连续的操作,是以“点”为单位交替的“点”式操作。因此这样会造成外部存储器输出地址的频繁大幅变化,导致FPGA设计时序紧张并且不能充分的利用外部存储器的带宽。此外,随着显示屏幕的增大,对带宽和时序的要求也会相应的增高,所以这样的设计方式不能满足大屏幕的显示输出。更重要的是不同分辨率的屏幕对输出的pclk(pixie clock,像素时钟)的要求不同,传统设计中的pclk通常来自系统时钟的不同分频,这样使设计移植到不同规格的显示屏时,改动会非常大,因此可移植性低。此外,当FPGA处理来自异步时钟域MCU的指令和数据时,通常存在一定的安全隐患。
发明内容
本发明的目的是提供一种带微处理器MCU可扩展的FPGA显示系统、方法及电子设备。
第一方面,本发明提供了一种带微处理器MCU可扩展的FPGA显示系统,将MCU的数据加载至外部存储器,同时基于显示屏的当前显示状态,将所述外部存储器中的数据读出以供显示屏显示,所述系统包括:
至少一个第一FIFO(First In First Out,先进先出存储器),用于接收MCU不同工作模式时的数据;
逻辑模块,用于计算所述数据的显示地址;
第二异步FIFO,用于按照显示屏的有效视频区域信号产生的有效地址读取外部存储器的数据LCD模块,根据显示屏的显示参数,将来自第二异步FIFO的数据驱动显示屏;
LCD地址生成器,根据显示屏的有效视频信号区域信号产生有效地址;
状态机控制器,在状态机的控制下,根据至少一个第一FIFO的请求,将至少一个第一FIFO中的数据按照显示地址输入到外部存储器;根据第二异步FIFO的请求,从外部存储器读出数据到第二异步FIFO。
第二方面,本发明提供了一种包括第一方面所述的系统和外部MCU、外部存储器和显示屏的电子设备。
第三方面,本发明提供了一种带微处理器MCU可扩展的FPGA显示方法,包括:
接收MCU在不同工作模式下的数据,将所述数据写入到至少一个第一FIFO中;
计算出所述数据的显示地址;
将至少一个第一FIFO中的数据按照显示地址输入到外部存储器;
根据第二异步FIFO的请求,从外部存储器读出数据到第二异步FIFO;其中,根据显示屏的有效视频区域信号产生有效地址,并且将有效地址对应的数据提供给异步FIFO;
根据显示屏的显示参数,LCD模块将来自第二异步FIFO的数据驱动显示屏。
本发明充分利用了FPGA的硬件资源和特性,使用户可以快速灵活的实现产品移植,提高了系统对外部存储器带宽的使用率,可以支持对不同分辨率甚至高清屏幕的输出。此外,该方法还能进一步减少传统设计中的安全隐患。
附图说明
图1为本发明现有技术带微处理器MCU的FPGA显示方法;
图2为本发明实施例一中带微处理器MCU的FPGA在FIFO为全异步时的结构图;
图3为本发明实施例二中带微处理器MCU的FPGA在FIFO为同步整形化和同步时的结构图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
FPGA处理异步MCU的指令和数据,可根据MCU的时钟情况使用第一FIFO为异步FIFO或第一FIFO为同步整形化加同步FIFO两种方式,消除设计的安全隐患。异步设计,即在FPGA设计中采用多个时钟设计。
实施例一
图2为本发明实施例中带MCU的FPGA在FIFO为全异步时的结构图。在图2中,本发明实施例在FIFO为全异步时的结构图包括:至少一个第一FIFO为异步FIFO、逻辑模块、第二异步FIFO、LCD模块、LCD地址生成器及状态机控制器。
带微处理器MCU可扩展的FPGA电子设备,包括上述各个模块以及MCU、外部存储器和显示屏。
具体地,状态机控制器在不同的状态中使FPGA对外部存储器进行不同的操作。状态机控制器需要控制的状态包括:空闲状态,即无操作;显示输出状态,根据第二异步FIFO的空、满状态将外部存储器中的数据读入以供显示输出,从而保证显示屏幕时刻有数据显示;其他状态,根据外部MCU的功能,产生相应功能的第一FIFO,根据对应的第一FIFO的空、满状态产生不同的请求,得到响应后将第一FIFO中的数据输出到外部存储器中。
显示方法的要求是必须时刻保证屏幕的输出,因此状态机控制器优先级最高的是第二异步FIFO的请求和响应,剩下的状态可以根据MCU的工作模式设置相应的优先级。
根据不同屏幕大小可配置显示输出模块,该显示输出模块包括LCD模块和LCD地址生成器,通过对LCD模块和LCD地址生成器的配置,可产生对应屏幕的不同参数。
通常这些参数包括:pclk,DE(Data Enable,数据有效),hsync(HorizontalSynchronsation,行同步)和vsync(Vertical Synchronsation,场同步)。
像素时钟控制第二异步FIFO读取外部存储器中数据的速率,使所述数据经LCD模块按序输出到显示屏。其中pclk可以通过FPGA器件中的PLL(Phase-Locked Loop,锁相环)灵活的产生。
hsync和vsync在LCD模块和LCD地址生成器模块中以参数的方式定义,行同步和场同步控制显示屏的有效视频信号区间,使LCD地址生成器生成有效视频信号的显示地址,只把有效信号显示数据存入到第二异步FIFO,最大限度提升系统效率使FPGA对外部存储器带宽的使用率达到最大化。
不同规格的屏幕对pclk的要求不同。因此对第二异步FIFO和LCD模块采用异步设计,即通过pclk驱动,当需要设计移植时,只需改变pclk的频率和输出参数(像素时钟的频率与显示屏的分辨率有关)即可完成方案移植,使该结构的可移植性得到了大大的加强,在MCU带时钟时,可以配置相应的第一FIFO操作,这样使得整个方法的可拓展移植性得到加强。通过这些显示参数的设置,从而方便方案的移植,可以将方案移植到不同显示参数的显示屏上。
需要说明的是,根据不同的处理数据需求,外部存储器也可以灵活的选择。例如:静态随机存储器Static Random Access Memory(SRAM),同步动态随机存储器SynchronousDynamic Access Memory(SDRAM),甚至双倍数据动态随机存储器Double Data Rate SDRAM(DDRSDRAM)均可被用来当做外部存储器;显示屏并不局限于LCD液晶屏,例如手机的OLED屏等,也可以作为显示屏。
实施例二
图3为本发明实施例二中带MCU的FPGA在FIFO为同步整形化和同步时的结构图。在图3中,MCU不带时钟,至少一个第一FIFO是同步整形化加同步FIFO,系统还包括至少两个寄存器,寄存器对MCU的数据进行同步整形化处理后,将所述数据写入到同步FIFO中。整形化是指将输入的信号根据系统时钟调整为脉冲信号。FPGA接收的信号先经过多个寄存器将从来自较慢的时钟域的控制信号和数据经行多次采样并进行逻辑组合,完成同步整形化,将数据发送到第一FIFO中。
以同步整形化和同步FIFO结构中采用该显示方法为例,外部MCU的模式分别有写单点、八点、填充和搬移。写单点模式为MCU每次操作时写一个点。写八点模式为MCU每次操作时连续写八个点。因为MCU不提供外部时钟,所以采用的是同步整形和同步FIFO的处理MCU发出的指令和数据。写点模式是把MCU发送的图片和文字的数据发送到不同的地址中,因此需要使用第一FIFO,等存储的第一FIFO写满时向状态机控制发出请求将第一FIFO中的数据全部写入到外部存储器中。填充模式是将同一个数据写到不同的地址中,因此可以不使用第一FIFO。对于搬移模式,FPGA接收MCU发出的源地址和目标地址,根据目标源地址,将外部存储器的数据读出,再根据目标地址将读出的数据写入到外部存储器中,从而实现搬移的过程。因此第一FIFO对于搬移模式是非常必要的,通过源地址可以从外部存储器的数据连续的写入到第一FIFO中,然后根据满信号连续的读出数据并根据目标地址写入外部存储器中。需要说明的是,上述三种模式在实施例2中也同样适用。
以显示屏的输出分辨率为800x600为例,外部存储器选择了两颗8Mbit512x16容量的存储器,工作频率在100MHz的SRAM。根据显示屏的数据手册设置pclk为40MHz和相应的DE,sync,vsync。经过CME-M5器件和Primace4.2实现后,该方法可以稳定的工作在90MHz。即以90MHZ的时钟对SRAM进行连续的读或写操作,使SRAM的利用率达到90%。
而对于传统的带MCU的FPGA显示方法,在相同的软件和器件下,系统可以工作在100MHz。但是MCU和LCD对SRAM进行时分切换的方式工作,所以FPGA对SRAM操作实际只有50MHz,即SRAM的利用率为50%。使用了本发明后,FPGA对SRAM利用率提升了80%,提升了FPGA对外部存储器带宽的利用率,减小了SRAM地址频繁的大范围切换,提升了FPGA设计的时序性,为支持更大分辨率屏幕的输出做准备。
对于高清标准的输出显示,例如:1280x1024和1920x1080,这些标准所需的pclk分别为108MHz和148.5MHz。这些时钟已经超过了SRAM的工作时钟,但是通过采用多路的(一般为两路或四路)低压差分信号Low Voltage Differential Signaling(LVDS)设计后,分别只需要54MHZ和74.25MHz(以两路为例)。所以本发明提出的新型显示方法可以拓展为高清方案来针对高清显示的输出,根据不同类型的微处理器MCU和外部存储器进行调节配置,能灵活快速的满足从普通屏到高清屏等各种分辨率屏幕的显示需求。
根据对来自外部MCU的工作模式(例如写点模式、搬移模式或填充模式)可以设置不同的状态(不同的状态包括全异步FIFO结构和同步整形化和同步FIFO结构时的状态),决定是否使用第一FIFO。状态机控制器可以根据相应第一FIFO的空、满状态对外部存储器进行整块连续的操作。和传统方法FPGA对外部存储器以“点”为单位的“点”式操作相比,通过带外部MCU可扩展的FPGA显示系统以FIFO为单位的对外部存储器进行“块”式的连续操作。从而提高了FPGA设计的时序能力、外部存储器的带宽利用率和系统效率。
此外,带MCU可扩展的FPGA显示方法能够减少传统带MCU的FPGA显示系统的安全隐患,在强大灵活性和高性能的同时,安全性也有保障。该方法根据不同MCU的时钟情况定义了两种方式:异步FIFO和同步整形加同步FIFO。如果MCU提供了外部时钟,则可以直接使用异步FIFO处理指令和数据;对没有提供时钟的MCU,必须要考虑接受外部时钟域的指令和数据的同步整形化的情况,因为FPGA中同步电路具备最稳定的工作状态。这两种方式保障了FPGA能更安全的处理各种不同的MCU操作情况。
综上所述,本发明提出的带MCU可扩展的FPGA显示系统、电子设备及显示方法,可以通过配置快速移植到各种MCU控制和不同显示屏幕的设备中,具有强大的灵活性,解决了传统显示方法中不易根据不同分辨率快速移植和对外部存储器使用率不高的问题,可以简便的拓展成支持高清显示的显示方法,因此具有广泛的应用前景。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。