1 引言
Altera 开发了整套工具(包括SOPC Builder ,Nios Ⅱ集成设计环境和Quartus Ⅱ开发软件) 帮助用户加速硬件和软件的开发,实现完整的基于可编程逻辑的SOPC 解决方案。SOPC Builder 是在Altera FPGA 中实施IP 的关键工具。该系统级工具使用Altera 的MegaWizard 技术自动生成Avalon 的交换架构,将设计中的不同功能模块连接在一起。SOPC Builder 还会生成定制软件开发工具,根据需要为由Nios Ⅱ处理器控制的功能模块提供合适的软件头文件。Nios Ⅱ IDE 是Nios Ⅱ软核处理器的主要开发工具。他为软件开发提供了一个集成的设计开发环境,包括一个具有工程管理、源代码开发、基于J TAG 调试功能的图形用户界面( GUI) ,大大简化了大量复杂的NiosⅡ处理器设计。业内领先的Quartus Ⅱ软件为硬件开发提供了设计采集、综合、仿真和布局布线功能。Quartus Ⅱ软件是最具成本效益的FPGA 开发套件。
本VGA 输出显示实例采用Altera DE2 嵌入式系统开发板,实现了嵌入式VGA 彩条输出显示。
2 VGA 信号时序
图1 所示是计算机VGA(640 ×480 ,60 Hz) 图像格式的信号时序图, 其点时钟DCLK 为251175 MHz , 场频为59194 Hz。图中, Vsync 为场同步信号, 场周期TVsync 为161683 ms ,每场有525 行,其中480 行为有效显示行,45 行为场消隐期。场同步信号Vsync 每场有一个脉冲,该脉冲的低电平宽度twv为63μs (2 行) 。场消隐期包括场同步时间twv 、场消隐前肩tHV (13 行) 、场消隐后肩tVH (30 行) ,共45 行。
行周期THsync为31178μs ,每显示行包括800 点,其中640 点为有效显示区,160 点为行消隐期(非显示区) 。行同步信号Hsync 每行有一个脉冲,该脉冲的低电平宽度tWH为3181 μs (即96 个DCL K) ;行消隐期包括行同步时间tWH ,行消隐前肩tHC (19 个DCL K) 和行消隐后肩tCH(45 个DCL K) ,共160 个点时钟。复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域是低电平。
3 硬件设计与实现
3. 1 Nios Ⅱ嵌入式软核处理器简介
Nios Ⅱ嵌入式处理器是Altera 公司于2004 年6 月推出的第二代用于可编程逻辑器件的可配置的软核处理器,在CycloneII 器件下,性能最高可达56 DMIPS。Nios Ⅱ是基于哈佛结构的RISC 通用嵌入式处理器软核,能与用户逻辑相结合, 编程至Altera 的FPGA 中。处理器具有32 位指令集,32 位数据通道和可配置的指令以及数据缓冲。他特别为可编程逻辑进行了优化设计,也为可编程单芯片系统(SOPC) 设计了一套综合解决方案。Nios Ⅱ处理器系列包括3 种内核:高性能的快速内核(Nios Ⅱ/ f ) ;低成本经济型内核(Nios Ⅱ/ e) ;性能/ 成本折中的标准内核(Nios Ⅱ/ s) ,是前2 种的平衡。本系统采用经济型内核。
3. 2 系统的硬件平台
系统的硬件结构如图2 所示。
本系统的硬件平台主要是在terasic 公司的AlteraDE2 开发板上实现,选用Altera 的Cyclone Ⅱ版本的NiosⅡ开发套件,包括Nios Ⅱ处理器、标准外围设备库、集成了SOPC Builder 系统设计工具的Quartus Ⅱ开发软件等。
系统的主要组件有Nios Ⅱ的经济型内核、片内存储器、定时器、VGA 控制器、LCD 控制器等,都集成在一块Altera的Cyclone II FPGA 芯片上,使用SOPC Builder 来配置生成片上系统。SOPC Builder 自动产生每个模块的HDL 文件,同时自动产生一些必要的仲裁逻辑来协调系统中各部件的工作。
3. 3 V GA 时序信号的产生
系统中最重要的部分是VGA 时序的产生,是正常输出显示的关键,他包含在VGA 控制器中。VGA 控制器是用SOPC Builder 中的interface to user logic 生成的,首先用硬件描述语言定义一个时序输出和RGB 信号输出模块,点时钟251175 MHz 由开发板提供的27 MHz 的时钟经锁相环分频产生,锁相环是通过MegWizard 工具加入系统的。他实现了VGA 输出所需的点时钟、复合同步控制信号、复合消隐控制信号、行同步和场同步信号。同时,他完成了从寄存器内读取输出显示命令及彩条颜色值,并根据按键计数判断显示彩条的类型,包括横彩条、竖彩条及网格。其中点时钟、复合同步控制信号、复合消隐控制信号和RGB 数字信号输入给ADV7123 ,行同步、场同步和由ADV7123 转换输出的RGB 模拟信号输入给VGA显示器。另外,还要用硬件描述语言实现对寄存器的读写,以使VGA 控制器端口符合Avalon 接口规范。
VGA 时序信号产生模块包括行点数计数器HCont 、场点数计数器V Cont ,行点数计数器是800 进制计数器,场行数计数器是525 进制计数器,由图1 知行同步信号、场同步信号的电平只有2 种,分别在行同步时间和场同步时间为低电平,其余时间均为高电平,故可以忽略行/ 场消隐前肩、后肩状态而只考虑其输出电平的高低。
行计数器H Cont 对251175 MHz 的点时钟进行计数,当行计数器H Cont 的计数值小于96 时, 行同步信号Hsync 输出为低电平;当H Cont 的计数值达到96 后,行同步信号Hsync 输出为高电平;当H Cont 的计数值达到799 时,将H Cont 置0 ,同时使行同步信号Hsync 输出转换为高电平。场计数器V Cont 对H Cont 为0 值进行计数,当场计数器V Cont 的计数值小于2 时,场同步信号Vsync 输出为低电平;当场计数器V Cont 的计数值达到2 以后,场同步信号Vsync 输出为高电平; 当VCont 的计数值达到524 时,将V Cont 置0 ,同时使场同步信号Vsync 输出转换为低电平。
复合消隐控制信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域是低电平;复合同步控制信号在此系统中始终为0 。
3. 4 RGB 信号的数模转换
本系统采用ADV7123 实现由VGA 控制器输出的RGB 信号的数模转换。ADV7123 是一个3 路高速的在一个芯片上实现的数模转换器。他包含3 路高速的10 位视频D/ A 补偿输出转换器,标准TTL 输入接口和高阻模拟电流输出。ADV7123 有3 路分开的宽度为10 位输入端口,30 位象素数据在每个时钟周期上升沿送到器件,然后转换成模拟信号输出。ADV7123 还有附加的视频控制信号,复合同步控制信号SYNC 和复合消隐控制信号BLAN K,他们在点时钟CLOCK 的上升沿有效以保证象素数据流的同步。
图3 为ADV7123 的视频数据输入/ 输出时序图。
4 系统的软件设计与实现
系统的软件流程图如图4 所示。
在硬件设计中定义好一个3 位的控制寄存器和8 个10 位的颜色值寄存器,控制寄存器主要控制3 种颜色信号的使能,颜色值寄存器存储输出彩条的颜色值,每种彩条可以输出8 个不同颜色。在软件中定义一个三进制按键计数器。
系统软件主要是通过对片内寄存器的读写实现对VGA 的控制,包括颜色使能的控制、输出彩条的颜色的控制。
5 结语
本文提出了一种基于Nios Ⅱ嵌入式处理器软核的VGA 彩条输出显示系统实现方法。使用Altera 的Cy2clone II FPGA 控制VGA 时序,稳定可靠且具有开发周期短、成本低等特点。使用Nios Ⅱ处理器控制彩条输出方便,易于理解。
参考文献:
[1].VGA datasheethttp://www.dzsc.com/datasheet/VGA+_2568786.html.
[2].RISC datasheethttp://www.dzsc.com/datasheet/RISC+_1189725.html.
[3].ADV7123 datasheethttp://www.dzsc.com/datasheet/ADV7123+_125177.html.
[4].TTL datasheethttp://www.dzsc.com/datasheet/TTL+_1174409.html.