当前位置:首页 > EDA > 电子设计自动化
[导读]基于FPGA和电子设计自动化技术,采用模块化设计的方法和VHDL语言,设计一个基于FPGA的RISC微处理器。

摘要:基于FPGA和电子设计自动化技术,采用模块化设计的方法和VHDL语言,设计一个基于FPGA的RISC微处理器。该微处理器主要由控制器、运算器和寄存器组成,具有指令控制、操作控制、时间控制和数据加工等基本功能,其指令长度为16位定长,采用立即寻址和直接寻址两种方式。仿真结果表明,基于FPGA的RISC微处理器的时钟频率为23.02MHz,且功能完全达到设计要求。
关键词:RISC微处理器;电子设计自动化;现场可编程门阵列;VHDL语言

    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数字系统设计的优越性,具有实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

舍弗勒以"专注驱动技术的科技公司"为主题亮相IAA MOBILITY 2025(B3馆B40展台) 合并纬湃科技后首次亮相IAA MOBILITY,展示拓展后的汽车产品组合 凭借在软件、...

关键字: 电气 软件 驱动技术 BSP

香港2025年 9月12日 /美通社/ -- 全球领先的互联网社区创建者 - 网龙网络控股有限公司 ("网龙"或"本公司",香港交易所股票代码:777)欣然宣布,其子公司My...

关键字: AI 远程控制 控制技术 BSP

深圳2025年9月11日 /美通社/ -- 2025 年 9 月 10 日,第 26 届中国国际光电博览会(简称 "CIOE 中国光博会")在深圳盛大开幕。本届展会吸引力再创新高,全球超3800家优质...

关键字: 自动化 光电 CIO BSP

天津2025年9月11日 /美通社/ -- 国际能源署(IEA)数据显示,2024 年全球数据中心电力消耗达 415 太瓦时,占全球总用电量的 1.5%,预计到 2030 年,这一数字将飙升至 945 太瓦时,近乎翻番,...

关键字: 模型 AI 数据中心 BSP

北京2025年9月11日 /美通社/ -- 国际9月11日上午,2025年中国国际服务贸易交易会(以下简称"服贸会")—体育赛事经济高质量发展大会现场,北京经济技术开发区工委委员、管委会副主...

关键字: 5G BSP GROUP MOTOR

柏林2025年9月9日 /美通社/ -- 2025年9月5日,纳斯达克上市公司优克联集团(NASDAQ: UCL)旗下全球互联品牌GlocalMe,正式亮相柏林国际消费电子展(IFA 2025),重磅推出融合企...

关键字: LOCAL LM BSP 移动网络

深圳2025年9月9日 /美通社/ -- PART 01活动背景 当技术的锋芒刺穿行业壁垒,万物互联的生态正重塑产业疆域。2025年,物联网产业迈入 "破界创造"与"共生进化" 的裂变时代——AI大模型消融感知边界,...

关键字: BSP 模型 微信 AIOT

"出海无界 商机无限"助力企业构建全球竞争力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由领先商业管理媒体世界经理人携手环球资源联合主办、深圳•前海出海e站通协办的...

关键字: 解码 供应链 AI BSP

柏林2025年9月9日 /美通社/ -- 柏林当地时间9月6日,在2025德国柏林国际电子消费品展览会(International Funkausstellung...

关键字: 扫地机器人 耳机 PEN BSP

武汉2025年9月9日 /美通社/ -- 7月24日,2025慧聪跨业品牌巡展——湖北•武汉站在武汉中南花园酒店隆重举办!本次巡展由慧聪安防网、慧聪物联网、慧聪音响灯光网、慧聪LED屏网、慧聪教育网联合主办,吸引了安防、...

关键字: AI 希捷 BSP 平板
关闭