基于FPGA的SOC外部组件控制器IP的设计

2012-01-19 17:23:13来源: elecfans
     1 引言

  本文侧重于介绍IP 模块中组件控制器的设计和实现。一个基于FPGA 的LCD 控制器设计作为例子被介绍。这个组件控制器设计属于固核IP 设计,也就是软硬结合的方法。设计内容主要包括电路结构、VHDL 框架和仿真结果。该设计实现了面向可重配置SOC 的单指令驱动LCD 操作。

  2 SOC 组件与组件控制器

  SOC 组件是SOC 为实现某种操作功能所需要的器件或设备。这些组件可以是内部的也可以是外部的,如LCD、键盘、设备驱动器等是外部组件,电子转换器、变换器、放大器等则属于内部组件。无论是内部,还是外组件,其控制单元都要被设计在SOC 内部。作为一个系统的核心,SOC要完成运行、操作或控制功能,必须有相应的组件配合。而多数组件,尤其是外部组件在SOC 内都要有一个对应的控制器。所以,为了实现应用对象操作,SOC 要设计相当数量的组件控制器。组件控制器的设计,对SOC 而言就是一些IP 模块的设计。

  SOC 与外部组件的基本关系见图1。相对于外部组件而言,SOC 由微处理器核MP(microprocessor)和相关的控制器IP 构成。为了得到最优的控制效率,SOC 的MP 常常被设计成可重配置(reconfigurable)的MP[5]。这意味着用户可对MP 的一些配置进行修改和添加以适应应用系统的需要,如用户可以对MP 的指令系统进行重新配置,设计加入用户需要的专用指令。为了区别于一般的MP,图1 中的给出了SOC-MP 来代表用于SOC 的MP 核

  

 

  图1 SOC 与外部组件的基本关系

  SOC的组件控制器与专用指令配合可以实现一些复杂操作的单指令运行,从而大大提高了SOC应用系统的操作速度和运行效率[6]。这也正是嵌入式系统的专用设计特性和高效控制优势的体现。

  尽管SOC 的IP 核分为硬核、软核、固核,对于非专业集成电路设计的用户来说,多数采用基于FPGA 的设计方法。实际上也就是软硬结合的IP 固核设计。本文介绍的是一种用VHDL 硬件描述语言在FPGA 上设计SOC 外部组件控制器IP 的方法。

  3 LCD 控制器的设计

  液晶显示器 LCD(Liquid Crystal Display)是SOC 的一种外部组件,会经常被用到。为了实现SOC 对LCD 的高效管理,要设计一个LCD 控制器IP 模块。这个模块被命名为lcd_fct。外部组件LCD 与SOC 的关系与控制结构可参考图2。

  对照图1 可以看出,图2 中的lcd_fct 是外部组件控制器IP,它位于LCD 和MP 之间,通过数据(data)、地址线(address)、控制(control, write_e)和信号线(lcd_busy)等与MP 和LCD 建立联系。

  

 

  图2 外部组件LCD 的SOC 控制结构

  在这个设计中对LCD 控制器lcd_fct 的要求是:lcd_fct 接受来自MP 的指令,如初始化、清屏和显示等。lcd_fct 按照指令的要求产生一系列控制信号和相应的时序来控制LCD 模块完成相应的操作。实际上,lcd_fct 对LCD 模块的操控主要包括LCD 初始化、清屏、传送显示数据和地址。

  当lcd_fct 的输入信号reset 是低电平时,复位电路(Reset Circuit)开始工作,进行初始化操作、对标志和状态清零、设定相关常数等。

  时钟调节电路(Clock Regulator)主要为定时器提供具有高质量波形的时钟。为满足运行中不同时序的需要, lcd_fct 中设计了微秒定时器(μs Timer)和毫秒定时器(ms Timer)。定时的时间常数被放在时间常数寄存器(Time Constant Register)中。

  从MP 来的地址(addrin)和控制(write_e)信息被送到译码器(Decoder)。译码器根据不同的地址和控制信息产生相应的指令标志,如复位、清零等。并把指令标志送给控制电路(Control Circuit)。

  控制电路(Control Circuit)是lcd_fct 的核心。它控制数据输入寄存器(Data_in Register)、数据输出寄存器(Data_out Register)、状态寄存器(State Register)、控制寄存器(Control Register)和时间常数寄存器(Time Constant Register)。控制电路根据指令标志和时序来操作不同的寄存器,实现lcd_fct 的管理和运行。

  数据输入寄存器接受来自MP 的数据并根据需要送数据到数据输出寄存器。数据输出寄存器把数据通过数据线lcd_db 送到LCD 模块的数据总线上。这个数据既可能是要显示的数据,也可能是指令。

  控制寄存器产生操作LCD 的控制信号,如LCD 中选信号(lcd_e)、LCD 内部寄存器选择信号(lcd_rs)和LCD 读写信号(lcd_r_w)。

  状态寄存器在LCD 处于工作下,会产生LCD 繁忙信号(lcd_busy)。这意味着,LCD 此时不会接受其它指令。与其它信号不同,lcd_busy 是发送给MP 的。

  实际上lcd_fct 的运行操作主要是对各种控制、状态和数据信号进行管理。

[1] [2]

关键字:FPGA  SOC外部组件控制

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2012/0119/article_2839.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
SOC外部组件控制

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved