EDN China > 设计实例 > EDA工具与服务 > 正文
?

(多图) C8051微控制器IP软核的参数化设计

南通大学 蒋华 袁红林?? 2009年01月04日 ?? 收藏0

  1 引言

  SoC(System on Chip )的发展,对微控制器IP 核提出了可重利用的要求。目前,国外SUN Microsystem 公司的PicoJava Processor Core 和tensilica 公司的Xtensa Processor Core,能够在SoC 设计时对处理器IP 核合理地配置参数,提高了IP 核的重用性。在国内,中科院的“龙芯一号”微处理器IP 核,具有高度可配置性和仿真加密模型,用户可以根据应用的需要定制龙芯处理器IP 核。本文在分析了C8051 微控制器IP 软核的内部结构和指令系统的基础上,给出了参数化设计的具体实现方法,增强了IP 软核在SoC 应用中的可配置性和可重用性[1]。

  2 C8051 微控制器IP 软核的参数化设计

  2.1 IP 软核概述

  IP 核分为软核、固核和硬核。通常将功能经过验证的、可综合的、实现后电路结构总门数在5000 门以上的HDL 模型称为软核。与固核和硬核相比,软核处于具体实现手段和工艺尚未确定的逻辑设计阶段,具有最好的灵活性[2]。

  2.2 指令系统设计

  C8051 微控制器IP 软核的指令系统与标准的MCS-51 芯片相兼容,共有111 条指令,指令的执行过程划分为取指令、译码、执行和回写四个步骤。并把取指令和译码两个步骤合称为取指令过程;将执行和回写两个步骤合称为执行指令过程。
单字节单周期指令后面不跟操作数,一个周期可以完成, 流水过程如图2.1(a)所示。但标准的MCS-51 指令集中还有大量的单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令和三字节双周期指令, 寻址方式多种多样。例如乘法指令MUL AB 为单字节四周期指令,译码需要四个时钟周期完成,其二级的指令流水线如图2.1(b)所示。

二级的指令流水线

  2.3 参数化设计的实现

  与传统MCS-51 的结构不同,C8051 微控制器IP 软核内部结构的设计方案如下:

  (1)C8051 微控制器IP 软核采用独立的乘、除法模块来完成算术逻辑指令中的乘、除法运算,易于实现参数化设计,并能提高算术逻辑运算的效率。

  (2)在指令系统的实现上,通过采用硬布线逻辑直接产生控制信号的方式来简化指令译码器模块的设计。

  (3)从数据存储器(RAM )的容量、程序存储器(ROM)的容量、可取舍的并行输入/ 输出端口、是否产生UART 和定时/计数器模块,以及可重配置的乘法器等方面进行参数化的设计[4]。

  2.3.1 数据存储器的容量

  地址线的位宽决定着存储器容量的大小。为了实现数据存储器的参数化,可以将数据地址线的位宽定义为参数,用ram_width 表示。假设片内数据存储器位宽默认值为8 位,则容量为256 B ,可以将位宽用parameter 语句定义为:

  parameter ram_width = 7;

  现在将读操作和写操作的数据线位宽全部用参数ram_width 来定义,表示如下:

  input [ram_width:0] rd_addr,wr_addr,wr_data;

  这样定义的参数化的数据存储器模块,其中参数ram_width 的取值范围在7~9 之间,在调用时用defparam 语句来改写参数ram_width,便可以灵活地得到所需要的容量值在256B~1024B 之间的片内数据存储器。

  2.3.2 程序存储器的容量

  C8051 微控制器IP 软核中片内程序存储器与片内数据存储器的实现方法不同。标准MCS-51 单片机片内有4KB 的ROM ,容量十分有限。为了使片内ROM 的容量可配置,特别定义了一个参数int_rom_width 。假设片内程序存储器位宽值为16 位,则表示最大存储容量为64KB 。参数int_rom_width 定义方法为:

  parameter int_rom_width = 12;assign ea_int = | addr[15: int_rom_width];

  连续赋值语句表示在0000H~0FFFH 地址范围内(即前4KB 地址)执行片内ROM 中的程序,也就是说当输入ea_int 为低电平时执行的是片内ROM 中的程序。通过改变参数int_rom_width 的值,就会改变片内ROM 的容量。程序存储器模块中参数int_rom_width 的取值范围在12~15 之间,因此片内的程序存储器容量范围在4KB~32KB 之间。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

C8051? 微控制器? IP软核? 可配置性?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈