《1 引言》

1 引言

微控制器 (MCU, micro control unit) 是嵌入式系统的核心, 广泛应用于各个领域。8位MCU IP核具有很高的通用性和灵活性, 可以嵌入到不同的集成电路中, 大大简化设计难度, 缩短设计周期, 降低设计成本。笔者设计的8位MCU IP核采用哈佛结构, 内部单元可简化为时序控制和数据通道两部分, 与Microchip公司PIC16C57完全兼容 [1]。控制部分产生MCU的工作时钟, 为数据通道提供控制信号, 是IP核的指挥中心;数据通道部分通过控制信号具体实现MCU IP核的指令功能, 是影响MCU性能, 如面积、运行速度、功耗等因素的关键。

《2 控制部分设计》

2 控制部分设计

《2.1 时序设计》

2.1 时序设计

笔者设计的MCU IP核系统时钟clk采用20 MHz, 由时钟分频模块产生四相不重叠工作时钟, 分别为clk1, clk2, clk3, clk4, 如图1所示。每条指令的执行过程都可以看作是固定微操作的依次组合, 笔者在设计过程中把这些基本的微操作依次分配到以工作时钟划分的时间轴中去, 形成MCU的整体时序, 如图2所示。

《图1 四相不重叠工作时钟》

图1 四相不重叠工作时钟

Fig.1 4_Phase non_overlapping clocks

《图2 整体时序设计》

图2 整体时序设计

Fig.2 Design of total timing

《2.2 译码控制单元设计》

2.2 译码控制单元设计

指令译码单元从指令寄存器 (IR) 中读取指令, 完成对当前执行指令的辨认, 通过分析产生一系列的控制信号。该部分主要包括寄存器模块设计和译码模块设计。

指令寄存器 (IR) 采用两级结构、两个12位的寄存器进行设计, 以满足系统两级流水线结构的要求, 其结构如图3所示。其中romdata[11∶0]数据取自程序存贮器, 经两级寄存后, 输出指令数据inst[11∶0]到译码模块。

《图3 指令寄存器结构》

图3 指令寄存器结构

Fig.3 Structure of IR

指令译码模块在实现上通常有两种方式:随机逻辑译码和结构化译码。笔者设计的该款MCU, 由于采用RISC指令集, 共33条指令, 指令少且规则, 故采用随机逻辑译码, 又称为硬布线译码 [2]。该译码电路由纯组合逻辑组成, 运算速度快, 面积小, 并对当前指令集专门优化。定义译码输出信号decodes[13∶0], 分别由数据通道源操作数选择信号、ALU运算单元选择信号、寄存器写使能信号、位操作标志信号位连接而成。对于特殊的指令OPTION, WDT, SLEEP进行了特殊处理, 由简单的门电路直接进行译码, 如图4所示, 其中option-we, clk-sleep, wdt-clr分别为三条特殊指令的译码输出信号。

《图4 特殊指令的译码》

图4 特殊指令的译码

Fig.4 Decoder of special instraction

《3 数据通道部分设计》

3 数据通道部分设计

《3.1 数据通道结构》

3.1 数据通道结构

该款MCU IP核的数据通道部分主要包括数据寄存器、专用寄存器、ALU运算单元等几个数据通道单元。笔者在设计过程中, 使用特定的数据通道模型, 通过一条双向数据总线, 对各数据通道单元进行读写设计。其结构如图5所示。此模型可以是多层的, 每个通道组元还可再分为多个子通道组元。模型中双向数据总线充当每个单元源总线及目的总线双重功能, 分别由特定的三态门和多路选择器两种电路结构实现读写操作。

《图5 数据通道结构》

图5 数据通道结构

Fig.5 Sstructure of data path

《3.2 设计实现》

3.2 设计实现

以特殊的数据通道单元ALU为例介绍数据通道部分的设计。ALU是MCU的运算单元, 包括加、减、与、或、异或、非、左移、右移、半字节交换9种运算。笔者设计的ALU采用低功耗设计。通过复用加、减运算单元, 将ALU模块分为8个运算单元, 构成8个子数据通道。在每条指令的执行周期, 由控制信号aluop[3∶0]负责子通道选择, 8个子数据通道始终只有一条处于选通工作状态, 大大降低芯片的动态功耗 [3]。表1为笔者对两种ALU的设计方案, 选用中芯国际0.35 μm综合库, 全局工作电压3 V, 使用Synopsys公司DC综合并进行功耗分析的对比结果。

表1 ALU不同设计方案功耗分析对比

Table 1 Power contrast for different ALU designs

 


设计方案
cell内部功
耗/μW (%)
net开关功
耗/μW (%)
动态功耗
/μW

低功耗
48.877 2 (52) 41.913 2 (48) 87.790 5

一般
232.344 5 (73) 87.593 5 (27) 319.938 0

 

《4 结论》

4 结论

所设计的MCU IP核工作时序清晰, 体现了自顶向下 (top-down) 的设计方法。控制译码单元采用硬布线译码, 特殊指令特殊处理, 简化了设计;数据通道部分使用特定层次化数据通道模型设计, 结构规整, 设计规范。在设计过程中, 笔者使用Synopsys公司VCS和 DC对该款MCU IP核分别进行仿真和综合, 并进行了功耗分析。综合分析结果得出, 该款MCU IP核总体功耗约在49.598 0 mW, 实现了低功耗设计, 适用于集成到大规模系统中。

《参考文献》

参考文献

[1] pic16c5x.pdf[EB/OL].Microchip Technology Inc, 1998

[2] 钟旭恒, 高明伦.基于数据通道指令流程图的硬布线控制电路设计[J].微电子学与计算机, 2001, (5) :8~11

[3] 罗文, 杨波.寄存器传输级低功耗设计方法[J].小型微型机算机系统, 2004, (7) :1207~1211