• 首页 |  
  • 查询 |  
  • 供应 |  
  • 求购 |  
  • 资讯 |  
  • 产品中心 |  
  • 技术应用 |  
  • 商务中心 |  
  • IC供货商 |  
  • 下载中心 |  
  • 求职招聘 |  
  • 论坛 |  
  • 博客
  • 您所在的位置: 首页 > 产品中心 > 计算与控制 > 单片机MCU > 正文
    文章搜索:
    基于FPGA的微处理器内核设计与实现

    http://www.ic36.com 2007年5月18日10:18 来源:《电子技术应用》
    与传统投片实现ASIC相比,FPGA具有实现速度快、风险小、可编程、可随时更改升级等一系列优点,因而得到了越米越广泛的应用。MCS-51应用时间长、范围广,相关的软硬件资源丰富,因而往往在FPGA应用中嵌人MCS-51内核作为微控制器。但是传统MCS-51的指令效率太低,每个机器周期高达12时钟周期,因此必须对内核加以改进,提高指令执行速度和效率,才能更好地满足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所示。

    在编码实现方式上,本模块是一个大的父子两级状态机,父状态机为指令的类型,子状态机为每种指令的执行步骤。这样结构清晰,利于编程、查错及仿真。

    2.2 寄存器组(REGS_CTR)的设计

    本模块在CPU的控制下完成:程序地址的产生、高低128个寄存器的读写。程序计数器根据控制信号与来自寄存器组的数据产生相应的指令地址并送往ROM。在寄存器组的读写中,用读译码电路选择输出操作数据,写译码电路写入结果数据。这种结构可以在对一个寄存器写的同时读另一个寄存器。如图3所示,通用的数据总线可以取得任何一个寄存器的数据,各个专用寄存器也有各自的专用数据线输出。例如执行指令ADDA,DIRECT时,由于累加器ACC有专门的总线,只要给出相应的读控制信号就可以从通用数据总线上得到来自寄存器组的DIRECT数据,这样ALU在同一周期内就可以得到所需的两个操作数。

    2.3 看门狗(WT_DOG)的设计

    传统的MCS-51系列单片机为提高抗干扰能力通常使用外置看门狗或者采用软件陷阱的方式使系统复位。本内核增加了硬件看门狗及软件复位功能,通过新增加一个特殊功能寄存器(地址F8H)来控制是否启用看门狗或软件复位以及设置看门狗的喂狗时间。除非掉电或用程序重新设置,F8H寄存器的数值一直保存,这样避免了看门狗复位后其自身失效的问题。

    2.4 算术逻辑运算单元(ALU)的设计

    累加器在CPU发出的指令控制下,对来自ROM与REGS_CTR的数据完成相应的操作,包括算术运算(加减乘除)与逻辑运算(与或非)及BCD码调整。所有操作的结果在一个时钟周期内得出,在clkl上升沿到来后写入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的操作数,in-struction为指令的类别,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试验箱,它的核心芯片即FPGA使用的是Xilinx公司的Virtex-Ⅱxc2v1000-6 fg456,等效为100万门电路,如图6所示。平台上集成了一些常用的功能模块,其中的晶振为50MHz,超过了本内核综合后的最高频率,因而设计了一个5分频模块使时钟为10MHz。内核运行的测试程序和数据以事先机器代码的形式“固化”在一个程序模块内替代ROM,系统可以像ROM一样对其读取数据和程序。P0-3输出观察数据,检验程序是否正确执行。验证结果表明,内核能正确执行加载的程序并稳定运行在10MHz的频率上。

    为克服传统MCS-51单片机执行效率偏低的缺点,满足现在的FPGA对嵌入式软核速度较高的要求,重新设计了一个兼容MCS-51指令的嵌入式软核。该软核指令效率提高了12倍,同时增加了实用的功能:硬件看门狗和软件复位。内核通过FPGA验证具有一定的应用价值。


    (关键词):ASIC FPGA 处理器 内核

    IC型号速查
    [0]  [1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [A]  [B]  [C]  [D]  [E]  [F]  [G]  [H]
    [I]  [J]  [K]  [L]  [M]  [N]  [O]  [P]  [Q]  [R]  [S]  [T]  [U]  [V]  [W]  [X]  [Y]  [Z]
    相关链接
    价格低廉的Cyclone FPGA2006-6-14 13:12:26
    HDLC控制协议的FPGA设计与实现2006-6-19 9:02:21
    基于S3C2410的RTC模块应用设计 2006-6-19 11:45:49
    基于S3C2410的RTC模块应用设计 2006-6-19 15:17:52
    Tower半导体音频处理器有效改善小音箱低频响应2006-8-10 13:51:36
    NI推出LabVIEW 平台20周年纪念版本2006-8-14 11:40:39
    基于FPGA的FIR抽取滤波器设计2006-8-15 10:55:04
    Cypress时钟发生器支持新兴Cell处理器应用2006-8-15 10:29:56
     我来评两句
    查看最新评论〗 

    昵称:  匿名
    请您注意:
    ·遵守中华人民共和国的各项有关法律法规
    ·承担一切因您的行为而导致的法律责任
    ·本网留言板管理人员有权删除其管辖留言内容
    ·您在本网的留言,本网有权在网站内转载或引用
    ·参与本留言即表明您已经阅读并接受上述条款

    芯片之家  电子之家  电子元器件之家  半导体之家  微电子之家 
    ·免费发布紧急IC求购 ·到哪里找工厂求购 ·全球最好十个IC网站 ·我为什么选择IC36
    ·IC是怎样炼成的 ·想知道所有的IC封装吗 ·如何鉴别旧货刷新货 ·芯片的前缀代表什么
    ·IC行业的网站体验 ·元器件常见问题解答 ·这里居然可以实时洽谈 ·有问必有答
    ·IC行业之25颗钻石 ·IC代理商查询 ·十家最牛的公司 ·中国IC公司200强
    元器件之家  晶圆之家  集成电路之家  电子元件之家  模块之家  电子管之家
    ·舍我其谁的高级会员 ·IC36是怎样收费的 ·网站广告是如何占领的 ·IC之家的增值服务
    ·我该到哪里去找工作 ·到哪里去招人呢 ·今日芯片需求排行 ·还有我们没有的型号吗
    ·中国IC行业的害群之马 ·中国最优秀的IC供应商 ·国外的IC骗子公司 ·信誉良好的IC供货商
    ·谁是IC之家的明星 ·做我们的代理吧 ·免费注册 机不可失 ·广告热线 010-51653935
    热 点 专 题
    热 点 论 坛
    关于我们 | 增值服务 | 免责条款 | 收费标准 | 付款方式 | 广告服务 | 网站地图 | 联系我们 | 友情链接 | 网站代理
    MSN:ic36@hotmail.com  QQ:IC之家 在线咨询  联系电话:(010)51653935 传真:(010)51653936 客户服务:service@ic36.com
    Copyright © 2003-2006 IC36.COM IC之家 本网站中文域名:IC之家 芯片之家
    京ICP证060068号