16位微控制器的设计与实现
读取下一条指令。其流程如图5所示。
2.4 指令译码过程
在MCU设计过程中,首先完成对各条指令的指令分析工作,确定每个周期该做的动作,然后各部件依据指令分析表进行相关的指令译码(RAM控制器只译RAM要做的动作,ALU只译ALU要做的动作)。过程描述如下:在预取操作码时,CU单元对操作码进行译码确定指令的字节长度(nr_bytes)和指令周期数(nr_cycles)。然后CU依据指令字节长度(nr_bytes)取操作数,其他部件依据指令和当前指令周期(curcycle)执行相应的指令操作。表1为加法指令分析表,下面以加法指令的译码过程来说明整个译码流程:
1)加法指令 ADD OPl OP2(将OPl+0P2结果写入OPl中);其目标码格式为:ADD OP2 OPl,其中OPl和OP2均为操作数地址。
2)0周期 实际指上一条指令的最后一个时钟周期,此周期codefetche取指信号有效,IPU单元将指令送入CU单元确定了指令周期和指令长度。
3)l周期 取操作数信号datafetche有效,op2(地址)进来,被送入RAM地址线,发读信号(从RAM寄存器阵列取操作数2)。
4)2周期 操作数2被取入,并存入ALU中的a寄存器;此周期取操作数信号datafetche有效,opl(地址)进来,被送入RAM地址线,发读信号。
5)3周期 操作数l被取入,并存入ALU中的b寄存器;加法器立刻进行a+b运算。
6)4周期 将加法结果放到RAM数据线上,地址线=opl,发写信号。将加法结果写回到opl中,并依据结果对PSW进行处理。
7)5周期 无动作,用于写回操作的过程。
3 验证结果
3.1 仿真验证
芯片的功能与结构设计,只是设计流程的一部分,为保证最终设计成功,必须对其全面仿真与功能验证。对MCU的测试方法如下:1)功能模块的单元测试,验证模块的功能正确性,包括接口时序等。2)系统集成测试,首先编写简单的机器码测试向量进行初步调试:然后使用编译器写汇编程序,编译成二进制机器码进行程序功能测试。在集成测试中,编写汇编测试程序,用编译器编译成机器码,在Cadenee NC下运行这些测试程序进行仿真测试。对每条指令均测试了其各种寻址方式,且测试程序自动向DEBUG寄存器写测试结果,以方便调试。经过复杂的测试和不断修正,验证结果显示MCU指令执行的正确性。
3.2 FPGA验证
使用的FPGA器件是StraTIxⅡ型号为EP1S40F780C7。综合结果显示:A8096使用3 565个LE(Logic Element)。时序分析结果:A8096可以运行在49.93 MHz的时钟频率下。A8096占用FPGA资源分布情况如图6所示。
4 结论
本设计中,采用RISC技术中的硬布线控制逻辑,有利于减少MCU面积、降低功耗以及提高MCU执行效率,FPGA实现表明其只占用了3 565个LE单元,工作时钟可达50 MHz。同时该MCU具有很强的扩展性与实用性,应用领域广泛,可方便与定时器、串行通讯接口(I2C)、串行外围接口(SPI)、模数(A/D)转换器等外围功能单元组成各种嵌入式系统,完全具备实际应用价值。
- 中国MCU市场前景持续看好(04-02)
- 32位比拼应用 64位核再添新军(12-21)
- 微控制器市场的发展(05-17)
- ST推出全新32位Cortex?4微控制器(09-14)
- 32位微控制器是未来汽车微控制器的趋势(04-25)
- 大联大品佳集团推出基于NXP LPC541XX系列的完整可穿戴设备应用开发平台(05-19)