基于FPGA的微处理器内核设计与实现

发布者:JoyfulHearted最新更新时间:2014-10-14 来源: eefocus关键字:FPGA  微处理器内核  看门狗  MCS-51 手机看文章 扫描二维码
随时随地手机看文章

    与传统投片实现ASIC相比[1],FPGA具有实现速度快、风险小、可编程、可随时更改升级等一系列优点,因而得到了越来越广泛的应用。MCS-51应用时间长、范围广,相关的软硬件资源丰富,因而往往在FPGA应用中嵌入MCS-51内核作为微控制器。但是传统MCS-51的指令效率太低,每个机器周期高达12时钟周期[2],因此必须对内核加以改进,提高指令执行速度和效率,才能更好地满足FPGA的应用。
    通过对传统MCS-51单片机指令时序和体系结构的分析,使用VHDL语言采用自顶向下的设计方法重新设计了一个高效的微控制器内核。改进了的体系结构,可以兼容MCS-51所有指令,每个机器周期只需1个时钟周期,同时增加了硬件看门狗和软件复位功能,提高了指令执行效率和抗干扰能力。
1 系统设计
1.1 模块划分
    本内核在划分和设计模块时,基于以下几条原则:
    (1)同步设计,提高系统稳定性和可移植性;(2)功能明确,功能接近的放在同一个模块内以减少模块的数量和模块之间的互连线,同时利于综合时的优化;(3)模块之间的接口时序预先定义好,并严格按定义的时序要求编写每个模块;(4)模块信号的输出采用寄存器输出的方式。这样可以提高系统的可靠性,一旦出错也容易确定问题所在。
    本内核由以下几个部分组成:中央控制单元(CPU),算术逻辑运算单元(ALU),寄存器组控制器(REGS_CTR),定时器/计数器(T/C),通用串行接口(UART),看门狗(WT_DOG),如图1所示。


1.2 提高速度的方法
    本内核采用以下几种办法来提高速度。
    (1)采用多数据通道:本内核取消了传统MCS-51系列单片机的单一总线,采用直连结构,各模块的数据传输使用单向专用数据线,尤其在数据交换频繁的ALU与REGS_CTR之间采用四条单向数据线相互连接,提高了数据传输的并行度,从而加快了数据的传输。
    (2)采用双相时钟:如图2所示。CLK时钟上升沿CPU发出控制信号,I/O端口采样外部信号即图1中流入REGS_CTR的数据或控制信号;CLK1时钟上升沿把数据写入寄存器中并把刷新后的数据或控制信号发出,即图1中虚箭头表示的数据流向。这样REGS_CTR的读写分别在两个时钟的上升沿,减少了一个时钟周期的等待,时钟频率提高了一倍。


    (3)采用寄存器组:FPGA内部有极为丰富的寄存器资源,本内核取消了传统的同一时间只能读或者写的RAM块,代之以可同时进行不同地址读写操作的寄存器组。一些特殊功能寄存器有专用总线输出,如图3所示。


    (4)提高时钟频率:对电路的关键路径进行了改造,以减少逻辑电路级数从而提高时钟频率。通过这些设计,保证了每个机器周期只需一个时钟周期,提高了指令执行效率,同时也提高系统的时钟频率。
1.3 兼容性方面的考虑
    MCS-51系列单片机有丰富的软硬件资源,为充分利用这些资源,在本内核设计时尽量考虑增强其兼容性。除机器周期变为原来的1/12以及新增加一个特殊功能寄存器(地址F8H)用于控制看门狗和软件复位外,其他没有变化。因而单个内核应用时,以前的程序可完全移植;在与外界通信时因机器周期与MCS-51单片机有差别可能需对一些程序作相应改动。这样可以使系统在提高性能的同时无需其他开销,便于推广使用。
2 功能模块的设计
2.1 中央控制器(CPU)的设计
    这是微控制器的核心,负责中断处理及指令执行。中断处理分为中断取样、中断高低优先级的判断及执行相应的处理过程。CPU对指令的执行分为四个阶段:取指-译码、执行、执行-回写、回写-预取指。指令执行流程如图4所示。[page]


    在编码实现方式上,本模块是一个大的父子两级状态机,父状态机为指令的类型,子状态机为每种指令的执行步骤。这样结构清晰,利于编程、查错及仿真。
2.2 寄存器组(REGS_CTR)的设计
    本模块在CPU的控制下完成:程序地址的产生、高低128个寄存器的读写。程序计数器根据控制信号与来自寄存器组的数据产生相应的指令地址并送往ROM。在寄存器组的读写中,用读译码电路选择输出操作数据,写译码电路写入结果数据。这种结构可以在对一个寄存器写的同时读另一个寄存器。如图3所示,通用的数据总线可以取得任何一个寄存器的数据,各个专用寄存器也有各自的专用数据线输出。例如执行指令 ADD A,DIRECT时,由于累加器ACC有专门的总线,只要给出相应的读控制信号就可以从通用数据总线上得到来自寄存器组的DIRECT数据,这样ALU在同一周期内就可以得到所需的两个操作数。
2.3 看门狗(WT_DOG)的设计
    传统的MCS-51系列单片机为提高抗干扰能力通常使用外置看门狗或者采用软件陷阱的方式使系统复位。本内核增加了硬件看门狗及软件复位功能,通过新增加一个特殊功能寄存器(地址F8H)来控制是否启用看门狗或软件复位以及设置看门狗的喂狗时间。除非掉电或用程序重新设置,F8H寄存器的数值一直保存,这样避免了看门狗复位后其自身失效的问题。
2.4 算术逻辑运算单元(ALU)的设计
    累加器在CPU发出的指令控制下,对来自ROM与REGS_CTR的数据完成相应的操作,包括算术运算(加减乘除)与逻辑运算(与或非)及BCD码调整。所有操作的结果在一个时钟周期内得出,在clk1上升沿到来后写入REGS_CTR。
2.5 串行模块及定时/计数器的设计
    串行模块和定时/计数器的工作模式与传统的MCS-51系列单片机相同。定时/计数器一个时钟周期计数一次,与传统MCS-51单片机一个机器周期计数一次效果等同。在与外界用串行端口通信时机器周期有差别。
3 仿真、综合优化及实现
3.1 仿真
    为了保证内核正确地工作,必须对电路做充分的仿真以保证设计的正确性。系统设计完成后用ModelSim Se PLUS 6.0D对电路进行了功能仿真,对组合逻辑模块(如ALU)采用了穷举测试向量的方法予以功能仿真,对于时序模块如CPU,先测试能否正确执行中断及每一条指令,再测试随机指令及随机中断。仿真结果表明,内核能满足设计的要求。ALU的仿真结果如图5所示。
其中rom_data、acc、regs_data为ALU的操作数,instruction为指令的类别,alu_rslta、alu_rsltb为ALU的操作结果的高、低字节。由图5可见,在输入操作数和进位溢位标志位不变的情况下,不同的指令都能输出相对应的正确结果。ALU操作结果的数据予以锁存,直到下一个指令或数据到来时才改变。在保持指令不变的情况下改变输入数据和进位溢位标志位也能得到正确的结果。


3.2 综合优化
    为了尽可能提高时钟频率,必须降低关键路径的延时。由于ALU所有的操作都要在一个周期内完成,因而操作所需的最长时间也是时钟周期的最小值。综合分析后发现操作时间最长的是除法运算,采用普通移位相减除法器所需时间为39ns,如果采用并行除法器后则只需23ns,从而显著提高了时钟频率。内核综合后消耗的LUT为4500个。
3.3 实现
    本内核的全部工作都在ISE7.1开发环境下完成。其中,仿真用的是ModelSim Se PLUS 6.0D,综合用的软件是Synplify Pro 8.0。验证采用的平台是CREAT-SOPC1000X试验箱[3],它的核心芯片即FPGA使用的是Xilinx公司的Virtex-Ⅱ xc2v1000 -6 fg456,等效为100万门电路,如图6所示。平台上集成了一些常用的功能模块,其中的晶振为50MHz,超过了本内核综合后的最高频率,因而设计了一个5分频模块使时钟为10MHz。内核运行的测试程序和数据以事先机器代码的形式“固化”在一个程序模块内替代ROM,系统可以像ROM一样对其读取数据和程序。P0-3输出观察数据,检验程序是否正确执行。验证结果表明,内核能正确执行加载的程序并稳定运行在10MHz的频率上。


    为克服传统MCS-51单片机执行效率偏低的缺点,满足现在的FPGA对嵌入式软核速度较高的要求,重新设计了一个兼容MCS-51指令的嵌入式软核。该软核指令效率提高了12倍,同时增加了实用的功能:硬件看门狗和软件复位。内核通过FPGA验证具有一定的应用价值。
参考文献
[1] 韩俊刚.论ASIC与FPGA之争.计算机工程,2004,30(8):10-11.
[2] 杨忠煌等.单芯片8051实务与应用.第一版.北京:中国水利水电出版社,2001.
[3] CREATE-SOPC 1000X试验指导书.www.hncreate.com.

关键字:FPGA  微处理器内核  看门狗  MCS-51 引用地址:基于FPGA的微处理器内核设计与实现

上一篇:基于单片机的车载超级电容测试系统设计与实现
下一篇:单片机数控多路直流稳压电源

推荐阅读最新更新时间:2024-03-16 13:42

采用单片机和FPGA设计的延时调节模块
系统结构框图如图1。其硬件结构比较简单,主要由单片机P89C51RD、RS-232/TTL接口电路MAX232和可编程逻辑器件FPGA三部分组成。单片机P89C51RD2是上位PC机和FPGA的连接纽带,它通过并口发送数据给FPGA,另一边通过RS-232/TTL接口芯片与PC机进行串行通讯;PC机主要功能是实现延时调整的可视化操作;FPGA是延时调整处理的硬件实现,单片机将PC送过来的延时调整参数输入FPGA,FPGA在单片机的控制下对信号进行延迟处理,最后送入相应传输通道。某些系统使用现场存在较强的电磁干扰,模块的设计考虑信号隔离问题,故对串行接口进行了电气隔离,强化了PC机和模块通讯的安全系数。 延时模块正
[单片机]
采用单片机和<font color='red'>FPGA</font>设计的延时调节模块
基于FPGA的SOPC的几个概念
1、SOC(System On Chip)   a):片上系统,单片上集成系统级、多元化的大功能模块,构成一个能够处理各种信息的集成系统 b):集成了许多功能模块的微处理器核的单芯片电路系统。   c):可以大大缩小系统所占的面积,提高系统的性能和健壮性。   d):已嵌入式系统为核心,集软硬于一体,并追求最高的集成度,是电子系统设计发展的必然趋势和最终目标。   e):由硬件和软件协同完成   2、SOPC(System On a Programmable Chip)   a):片上可编程系统,是Altera公司提出来的一种灵活的,高效的SOC解决方案,它将处理器、存储器(ROM、RAM等)、总线和总线控制器、I
[嵌入式]
九寨沟、新疆地震突如其来,地震仪到底发展到啥程度了?
这两天,想必大伙一定被两则地震消息给刷屏了,一个是08月08日21时19分发生在四川阿坝州九寨沟县发生7.0级地震;另一个是8月9日7时27分,在新疆博尔塔拉州精河县发生 6.6级地震。有网友疑问,为什么 地震仪 不能提前预测并大幅度减少伤亡呢?地震仪的技术到底发展到什么程度了?   今天的《 方案馆 》,与非小编就和大伙说一说关于地震仪的故事。   发展史 说到地震仪,不知道大伙是不是和小编一样,“张衡”两个字瞬间跳到眼前。张衡是我国东汉时代的科学家在公元132年就制成了世界上最早的“地震仪”,准确的说是 地动仪 。此仪器据说能判定地震发生的方位,那个没有电子仪器的年代,这玩意当真有用吗?     地动仪的核心部件就是一个青
[嵌入式]
LabVIEW FPGA和软件设计射频仪器简介
    概览 无线设备的数量、通信标准的多样性,以及调制方案的复杂度,每一年都在不断增加。而随着每一代新技术的诞生,由于使用传统技术测试无线设备,需要大量更复杂的测试设备,其成本也在不断提高。 使用虚拟(软件)仪器与模块化I/O相结合是一种最小化硬件成本并减少测试时间的方法。软件设计仪器的新方法使得射频测试工程师无需凭借自定义或特殊标准的仪器,就能以多个数量级的幅度减少测试时间。 阅读此文可以帮助您了解如何使用NI LabVIEW FPGA来设计和自定义您的射频仪器,以及通过软件设计的仪器能为您的测试系统所带来的好处。 软件设计仪器简介 多年来,测试工程师一直在运用诸如LabVIEW的软件包来实现自定义射频测量
[嵌入式]
XScale PXA270在Linux下的FPGA设备驱动
引言 Intel公司推出的XScale采用ARM V5TE结构,是Strong ARM的升级换代产品。XScale PXA270处理器最高主频可达到624M赫兹,加入了Wireless MMX、Intel SpeedStep等新技术,以其高性能、低功耗、多功能等特点在信息家电、工业控制等领域得到了广泛的应用。在嵌入式控制中,“微处理器+FPGA”是一种常用的解决方案,FPGA(现场可编程门阵列)有编程方便、集成度高、速度快等特点,电子设计人员可以通过硬件编程的方法来实现FPGA芯片各种功能的开发,在我们的一个数控平台的研究项目中,采用XScale PXA270作为主CPU,并对其进行FPGA扩展,使其具有插补、电机驱动、信号处
[应用]
89S51看门狗功能的使用方法如下
89S51看门狗功能的使用方法如下: 在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激 活看门狗。 Org 0000 Ljmp begin Begin: Mov 0A6H,#01EH ;先送1E Mov 0A6H,#0E1H ;后送E1 ;在程序初始化中激活看门狗。 …… …… For: …… Mov 0A6H,#01EH ;先送1E Mov 0A6H,#0E1H ;后送E1 ;喂狗指令 …… Ljmp for 在C语言中要增加一个声明语句。 在AT89X51.h声明文件中增加一行 sfr WDTRST = 0xA6; Main() { WDTRST=0x1E; WDTRST
[单片机]
MCS-51系列单片机并行P0口的特性及操作
一、P0口特性: P0口为三态双向I/O口。对于内部有程序存贮器的单片机基本系统(如定制的8051),P0口可以作为输入/输出口使用,直接连外部的输入/输出设备;也可以作为系统扩展的地址/数据总线口。对于内部没有程序存贮器的单片机(如8031),P0口只能作为地址/数据总线口使用。   1、P0口的输出驱动器中也有一个多路电子开关。输出驱动器转接至口锁动器的Q端时,P0口作为双向I/O口使用。      这时,CPU发来的控制信号为低 电平 ,使输出驱动 电路 的上拉场效应管T1截止。P0口的锁存器为“1”时,输出驱动器中的两个场效应管均截止,引脚浮空;由于P0口输出电路是漏极开路的电路,必须外接10kΩ拉高 电
[单片机]
<font color='red'>MCS-51</font>系列单片机并行P0口的特性及操作
Microchip推出集成微型FPGA的PIC16 微控制器,售价不到 50 美分
编译自EEJOURNAL Microchip 现在提供一款基于闪存的微控制器,集成可编程逻辑块,其售价不到50美分。 Microchip PIC16F13145 系列的九个新产品,与其他型号16F系列采用相同的 8 位 RISC 微处理器架构,但它们还集成了一个新的可编程逻辑块,称为可配置逻辑块 (CLB)。 PIC16F13145 微控制器系列中的器件采用 8、14 和 20 引脚封装,具有 3.5 至 14 KB 闪存和 256 至 1024 字节 RAM。 Microchip PIC1613145 微控制器系列的九个成员具有相同的内部架构,但具有不同数量的 RAM 和闪存,并提供不同的封装,具体取决于您应用的 I/O
[单片机]
Microchip推出集成微型<font color='red'>FPGA</font>的PIC16 微控制器,售价不到 50 美分
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved