您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

采用FPGA VHDL实现23MHz RISC微处理器

发布日期:2011-06-02

  fpga与微处理器   fpga实现串口   基于fpga的fft实现   多媒体处理fpga实现   fpga实现流水灯 
fpga实现fft   fpga实现   无线通信fpga实现   fpga 实现adm485   fpga实现fft代码

     基于FPGA和电子计划主动化技能,采取模块化计划的要领和VHDL语言,计划一个基于FPGA的RISC微处理惩罚器。该微处理惩罚器重要由控制器、运算器和寄存器构成,具有指令控制、操纵控制、时间控制和数据加工等根本成果,其指令长度为16位定长,采取立即寻址和直接寻址两种方法。仿真结果表明,基于FPGA的RISC微处理惩罚器的时钟频率为23.02MHz,且成果完全到达计划请求。

     20世纪80年代初鼓起的RISC技能不停是谋略机生长的主流,RISC微处理惩罚器的一些根本理论则是谋略机范畴的紧张底子知识,但详细实现仍有难度。电子计划主动化(Electronic Design Automation,简称EDA)是当代电子计划的内核技能。

     利用EDA技能举行电子体系计划的重要目标是完成专用集成电路(ASIC)的计划,而现场可编程门阵列(FPGA)和巨大可编程逻辑器件(CPLD)是实现这一途径的主流器件。现场可编程通用门阵列(Field Program mableGateArray,简称FPGA)的内部具有丰富的可编程资源。FPGA外部连接很少、电路大略、便于控制。FPGA如今已达千万门标记(10million-gatemark),速率可达200~400MHz。本文先容了一种基于FPGA技能用VHDL(VHSICHardw are Description Language)语言实现的8位RISC微处理惩罚器,并给出了仿真综合结果。

     微处理惩罚器成果、构成及指令集

     本文计划的RISC微处理惩罚器依照了RISC呆板的一样平常原则:指令条数少而高效、指令长度牢固、寻址方法不高出两种、大量采取寄存器、为进步指令实行速率、指令的表明采取硬联线控制等等。

     RISC微处理惩罚器的成果和构成
   

      微处理惩罚器是整个谋略机体系的内核,它具有如下根本成果:指令控制、操纵控制、时间控制、数据加工。本文计划的微处理惩罚器重要由控制器、运算器和寄存器构成,还包括步伐计数器、译码器等一些其他的须要逻辑部件。控制器是颁布下令的“决定计划机构”,即完成和谐和指挥整个谋略机体系的操纵。相对付控制器而言,运算器担当控制器的下令而举行举措,即运算器所举行的全部操纵都是由控制器发出的控制信号来指挥的,以是它是实行部件。存储器是影象配置,存储单位长度是8位,用来存放步伐和数据。

     微处理惩罚器的指令集
   

     微处理惩罚器的指令长度为16位定长,每条指令占两个存储单位,寻址方法仅有立即寻址、直接寻址两种。该RISC微处理惩罚器选取了利用频度较高的8种指令LDA、STO、JMP、ADD、AND、XOR、SKZ、HLT等。指令操纵码占用指令字的高4位,预留了空间,便于以后指令集的扩展。指令周期是由8个时钟构成,每个时钟都要完成牢固的操纵。部分典范指令的操纵流程图如图1所示。

 


    图1 部分指令操纵流程

     关键模块的计划
   

     RISC微处理惩罚器是一个巨大的数字逻辑电路,但其根本部件的逻辑并不巨大,可以把它分为时钟孕育产生器、指令寄存器、累加器、算术逻辑单位、数据控制器、状态控制器、步伐计数器、地点多路器等单位来思量。在硬件验证时还必要创建一些如ROM/RAM和地点译码器等须要的外围器件。以下是几个关键模块的计划。

     时钟孕育产生器的计划

 


    图2 时钟孕育产生器电路的计划

     时钟孕育产生器Pulse孕育产生的电路如图2所示,谋略机的协更改作必要时间标记,它用时序信号表现,时钟孕育产生器正是孕育产生这些时序信号的器件。图2中时钟孕育产生器利用外来时钟信号clk孕育产生一系列时钟信号clk1,fetch,aluclk等,并送往微处理惩罚器的其他部件。rst控制着微处理惩罚器的复位和启动操纵,当rst一进入高电平,微处理惩罚器就结束现行操纵,并且只要rst停顿在高电平状态,微处理惩罚器就维持复位状态。rst回到低电平后在接着到来的fetch上升沿启动微处理惩罚器开始事变。

     由于时钟孕育产生器对微处理惩罚器种种操纵实行时间上的控制,以是其性能优劣从底子上决定了整个微处理惩罚器的运行质量。本计划采取的同步状态机的计划要领,使得clk1,fetch,alu_clk在跳变时间同步性能上有明显提拔,为整个体系性能的进步打下精良的底子。

  状态控制器的计划
   

     状态控制器的电路图如图3所示。从实现的途径看,RISC微处理惩罚器与一样平常的微处理惩罚器的差别之处在于,它的时序控制信号的形成部件是用硬布线逻辑实现而不是采取微步伐控制。由于器件本身计划比较巨大,且对各个控制信号的时序有严格请求,以是其VHDL步伐用有限状态机FSM来实现。

 


    图3 状态控制器电路

     布局体步伐如下:
     architecturertlofstatctlis
     typemystateis(st0,st1,st2,st3,st4,st5,st6,st7);
     signalcurstate:mystate;
     begin
     process(clk1,ena)
     begin
     iffallingedge(clk1) then
     if(ena=’0’)then
       curstate<=st0; incpc<=’0’; 
     load_acc<=’0’; loadpc<=’0’; 
     rd<=’0’; wr<=’0’; loadir<=’0’; 
     datactlena<=’0’; halt<=’0’;
      else
       case curstate is
        when st0 =>......
        when st1 =>......
        when st2 =>......
        when st3 =>cur_state<=st4;
          if(opcode=hlt)then......
              else......
         whenst4=>curstate<=st5;
        if(opcode=jmp)then......
        elsif(opcode=addoropcode=ann
    oropcode=xoooropcode=lda)then
        elsif(opcode=sto)then...else...
        when st5 =>curstate<=st6;
        if(opcode=addoropcode=annor
     opcode=xoooropcode=lda) 
     then......
        elsif(opcode=skzandzero=’1’)
     then......
        elsif(opcode=jmp) then......
        elsif(opcode=sto) then......
        else......
        when st6 =>curstate<=st7;
        if(opcode=sto)then......
       elsif(opcode=addoropcode=ann
     oropcode=xoooropcode=lda) 
     then......
        else......
       when st7 =>curstate<=st0;
       if(opcode=skzandzero=’1’)then......
        else......
       when others=>......
        endcase;
        endif;
      endif;
      endprocess;
     endrtl;

     算术逻辑单位ALU的计划
   

     ALU是绝大多数指令必须颠末的单位,全部的运算都在算术逻辑单位ALU举行。ALU担当指令寄存器IR送来的4位指令操纵码,根据差别的指令,ALU在信号alu_clk的正跳变沿触发下完成种种算术逻辑运算。微处理惩罚器各部件布局如图4所示。

     软件综合与仿真和硬件实现

     微处理惩罚器的软件综合与仿真
   

     该微处理惩罚器计划共有11个根本模块,除前文阐发的3个模块外,另有指令寄存器IR、累加器ACC、步伐计数器PC、大略的存储器ROM/RAM、地点多路器ADDR等模块。全部的模块采取Quartus4.2单独综合,并调试通过,且都天生有单独的*.bsf文件,末了创建一个顶层文件top.bdf,把全部根本模块的bsf文件连接成如图4的情势。做完顶层计划后,采取Quartus4.2举行综合与仿真。体系仿真的部分结果如图5所示,从图5可以看出,存放在存储器差别地点中的2个操纵数3CH(00111100)和18H(00011000)相异或时,结果24H(00100100)在信号wr的上升沿触发下存入存储器中。我们可明白地看到每条指令都是在一个指令周期中完成。数据总线data上记录着指令的运行环境,同时也可看到空闲时其呈高阻状态。

 


    图4 微处理惩罚器各部件的布局

 


    图5 仿真波形

    重要的步伐如下:
    地点 呆板代码 汇编语言源步伐
     00 11000000 JMP L1 ;L1->PC
     01 00000100
     04 10100000 LDA R2 ;(0E)->R2
     05 00001110
     06 10000000 XORR1,R2;(R1)xor(R2)- >(R1)
     07 00001111
     08 11000001 STO   ;(R1)->(0F)
     0A 00000000 HLT   ;stop
     0B 00000000
     0E 00111100
     0F 00011000

     微处理惩罚器的硬件实现
   

     基于FPGA的RISC微处理惩罚器的终极硬件验证在杭州康芯公司生产的GW48EDA体系上举行。前面的仿真结果确认无误后,选用GW48EDA体系的电路模式No.5,查阅此体系的引脚比较表锁定各引脚,之后需重新编译一次,以便把引脚锁定信息编译进编程下载文件。末了把编译好的top.sof文件对目标器件FPGA下载,得到餍足计划请求的芯片。本计划的载体选用Altera公司的Cyclone系列FPGA器件EP1C6Q240C6,硬件验证结果表明,该RISC微处理惩罚器时钟频率为23.02MHz,其成果完全到达计划请求。

     结束语

     本文基于FPGA的微处理惩罚用具备了RISC微处理惩罚器的根本成果,并且其容易优化升级。该微处理惩罚器不但可作为一个模块用于片上体系的计划,并且也充分展示了利用FPGA和VHDL举行EDA数字体系计划的良好性,具有实用代价。