新闻中心

EEPW首页>嵌入式系统>设计应用> M8051 IP软核的改进性设计及其在视频字符叠加器中的重应用

M8051 IP软核的改进性设计及其在视频字符叠加器中的重应用

——
作者: 时间:2006-07-03 来源: 收藏
摘要:介绍了系统芯片SOC的概念和M8051 IP软核的原理,给出了视频字符叠加器VAD——SOC中M8051 IP软核的作用,详细介绍了I2C主控制器模块的设计,给出了功能信真波形,最后对M8051 IP软核在视频字符叠加器中的重应用进行了深入研究。

关键词:系统芯片 微控制器 M8051 IP软核 视频字符叠加器

随着集成电路制造技术的快速发展,集成电路的规模不断扩大。这使得将复杂系统集成在单个芯片上成为可能,于是便出现了系统芯片SOC(System on a Chip)。传统芯片设计方法关注的是如何创建一个全新的设计并进行有效的验证;如今在SOC设计中,基于IP模块的功能组装正在逐渐替代传统的功能设计而成为主流设计方法。基于IP模块的SOC设计方法的基本思路是通过系统设计的应用层次,利用现有的IP资源,根据系统需求选用适当的IP模块,进行系统集成设计;基于IP模块的SOC设计方法是采用IP模块而不是采用基本逻辑或电路单元作为基础单元,即以功能组装代替功能设计。这就提高了设计者的设计能力。能够较快地完成设计,保证设计成功,以极低的价格满足市场需求。

M8051 IP软核是高性能的8位微控制器(MCU),它的每个机器周期只需要两个时钟周期而不是标准8051[1]软核的十二个周期,但是它的功能却与标准的8051软核兼容。这就使得M8051 IP软核在同样功耗的情况下运行速度比标准的8051软核提高六倍,也就是说,若在同样的运行速度下,M8051 IP软核的功耗仅仅是标准8051软核的六分之一。这对于现在的便携式数字产品或低功耗产品或低功耗产品来说是相当有竞争力的。

视频字符叠加器是一种在视频信号中叠加入字符或简单的图文信息,从而在屏幕的特定位置上与图像信号同时进行显示的设备[2]。视频字符叠加器VAD——SOC的结构如图1所示,具体包括以下几个IP模块:M8051 IP软核、I2C主控制器模块、存储器核和全彩色字符叠加处理器(FCA IP)等。其实现的功能是将片外或内置的叠加字符ROM(如E/E2PROM、双口RAM或Flash)中储存的字符信息转变为可叠加在视频信号上的信息,同时通过内部时序控制功能单元,调节叠加字符在监视器上的叠加位置、大小及其背景色和前景色等。

本文主要介绍M8051 IP软核的改进设计,对其进行有效的仿真和验证;并对M8051 IP软核在视频字符叠加器VAD_SOC中的重应用进行深入的研究。

图2

1 M8051 IP软核结构及其改进性设计

1.1 M8051 IP软核的结构

M8051 IP软核的功能结构框图如图2所示,主要由五部分组成。

(1)算术逻辑单元(ALU)部分:位算术逻辑单元、带进位的算术逻辑单元、8位的算术逻辑单元,操作数的选择、乘法/除法单元。

(2)数据存储与交换部分:内部数据存储器、内部专用寄存器及其复用、专用功能寄存器的复用、核级专用功能寄存器。

(3)状态机与程序存储部分:主状态机、程序计数器、程序计数器的运算单元。

(4)指令译码部分:部分指令、指令译码。

(5)外围设备部分:(I/O)端口寄存器、中断、定时器、计数器、通用串行口。

从图2可以看出,M8051 IP软核与传统8051单片机在组成部分及指令系统部分是兼容的,但功能上有些不同,所以,若要将M8051 IP软核集成视频字符叠加器VAD_SOC中,则需要进行一些简单的功能扩展和可复用设计。

1.2 I2C主控制器的RTL级实现

I2C总线是Philips公司提出的一种串行数据传输技术,通过数据线(SDA)和时钟线(SCL)两个总线即可完成全双工同步数据的发送和接收,在需要与外围器件进行低速通信时,I2C总线是个不错的选择。目前8051 IP软核是片上系统中用得比较多的微控制器核之一,但是其没有集成I2C总线,应用起来很不灵活。所以在设计片上系统时常常需要将I2C系统集成到8051 IP核中,以方便其与MCU的外围接口连接,扩展8051 IP核的功能。由于篇幅的限制,本文只对I2C主控制器模块进行简单研究。I2C主控制器模块是根据Philips公司的8xc552的I2C接口原理设计的。由于通常情况下单片机系统都作为主系统使用,一些功能是不需要的,所以图3只是本设计用到的I2C原始的功能结构简化框图。

1.2.1 I2C主控制器的端口源代码模式[3]

I2C主控制器端口源代码模式下:

module i2c_top (slsfrdi,si,sda,scl,regresult,source_addr,

destine_addr, sfr_write, rmw, internal_reset, pclk_en, pclk);

output[7:0] slsfrdi;

output scl,si;

inout sda;

input[7:0] regresult;

input[7:0]source_addr;

input[7:0]destine_addr;

input sfrwe,rmw,internal_reset;

input pclk,pclk_en;

……

endmodule

图5

1.2.2 I2C主控制器与M8051 IP软核的接口

I2C主控制器的数据端口(SDA)是双向端口,利用串行数据线SDA传输数据,所以不使用总线时必须关闭三态门的输出控制端,即sda_oen为“0”;另一方面,数据可以通过引脚直接进入模块内部,但必须设置输出控制端为“1”,即sda_oen为“1”。I2C主控制器与M8051 IP软核的接口如图4所示。

1.2.3 I2C主控制器的软件仿真与结果

在I2C主控制器设计过程中,主要用Modelsim SE PLUS5.6、QUARTUS2.0等软件作为前端的仿真工具并针对I2C主控制器的主接收和主发送两个状态机的不同激励条件,编写测试代码进行测试。电路仿真时序波形图如图5和图6所示。

2 M8051 IP软核在视频字符叠加器VAD_SOC中的重应用

M8051 IP软核在视频字符叠加器VAD_SOC中的重应用的结构如图1所示。它的主要任务是从程序存储器中读出指令代码,经编译执行后,向周围的相应模块提供操作命令和地址、数据总线值,完成一个复杂的状态机及对其它模块的部分控制功能,协同其它模块共同工作,实现将字库中的字符取出放到全彩色字符叠加处理器上进行显示。工作流程如下:

(1)将要显示的字符从PC机的键盘输入,经串行口RS-232的接口写入到字库中。

(2)从程序存储器中读出指令代码,经编译执行后,向周围的相应模块提供操作命令和地址、数据总线值。

(3)继续执行代码,从字库中读入要显示的字节数据,并将它存放在SFR(专用寄存器)中。

(4)继续执行代码,将专用寄存器中的数据传送到双口RAM中进行缓存。

(5)通过对控制模块的控制,实现数据读取、地址生成,并按时空拓扑划分的形式进行行、列地址及数据信号的选择。

图6

(6)最后,将选择出的信号通过三通接口加到视频信号中进行显示。

基于以上考虑,本系统中M8051 IP核具有一定的专用性,是针对具体的VAD_SOC系统而设计的,因此不需完全拘泥于标准的MCU的所有特点,只需设计出满足VAD_SOC系统要求的嵌入式M8051 IP核即可。

2.1 视频字符叠加器VAD_SOC的设计及功能仿真

2.1.1 设计流程

第一步:生成VAD_SOC顶层初始网表。在四个模块开发之后,只需开发用于集成的网表,即可用于模块之间的连接。

第二步:处理VAD_SOC顶层中四个模块的时序预算,此时每个模块建立一个“黑盒”时序模型。

第三步:改进VAD_SOC顶层布线,在模块实现的同时解决顶层的信号完整性问题。此外,还要考虑前两步中不需涉及的电源问题,其中包括模拟模块和I/O模块问题。同时模块层的实现也在此步进行,通过采用物理综合方法来确保模块层的时序收敛。VAD_SOC顶层设计和四个模块实现之间是同步进行的。

图7

第四步:用模块的实际尺寸修改VAD_SOC顶层描述,这一步需用Aristo的IC Wizard处理,大约需要2~3小时。

2.1.2 视频字符叠加器VAD_SOC的仿真波形

视频字符叠加器VAD_SOC的功能仿真是在NC_Verilog下进行的,图7显示了两个场同步周期的字符叠加信号的仿真波形图。

建立在IP模块功能组装基础上的片上系统设计,使设计方法从电路设计转向系统设计,设计重心从逻辑综合、门级布局布线、后模拟转向系统级模拟、软硬件联合仿真、以及若干个IP模块组合在一起的物理设计。为了对各模块特别是IP模块进行有效的测试,还必须在模块中加入可测性设计;同时,在验证方法上要采用数字电路和模拟电路在一起的混合信号验证、软硬件协同验证以及并行验证等多种方法。经过试验可知,M8051 IP核在视频字符叠加器VAD_SOC中实现了所需的基本功能,并且仿真主频率可以达到33MHz。




评论


相关推荐

技术专区

关闭