0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用FPGA和CPLD技术实现8位RISC微处理器的设计并进行仿真分析

电子设计 来源:郭婷 作者:电子设计 2019-08-21 08:00 次阅读

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所示。

利用FPGA和CPLD技术实现8位RISC微处理器的设计并进行仿真分析

图1部分指令操作流程

关键模块的设计

RISC微处理器是一个复杂的数字逻辑电路,但其基本部件的逻辑并不复杂,可以把它分为时钟产生器、指令寄存器、累加器、算术逻辑单元、数据控制器、状态控制器、程序计数器、地址多路器等单元来考虑。在硬件验证时还需要建立一些如ROM/RAM和地址译码器等必要的外围器件。以下是几个关键模块的设计。

时钟产生器的设计

利用FPGA和CPLD技术实现8位RISC微处理器的设计并进行仿真分析

图2时钟产生器电路的设计

时钟产生器Pulse产生的电路如图2所示,计算机的协调动作需要时间标志,它用时序信号体现,时钟产生器正是产生这些时序信号的器件。图2中时钟产生器利用外来时钟信号clk产生一系列时钟信号clk1,fetch,aluclk等,并送往微处理器的其他部件。rst控制着微处理器的复位和启动操作,当rst一进入高电平,微处理器就结束现行操作,并且只要rst停留在高电平状态,微处理器就维持复位状态。rst回到低电平后在接着到来的fetch上升沿启动微处理器开始工作。

由于时钟产生器对微处理器各种操作实施时间上的控制,所以其性能好坏从根本上决定了整个微处理器的运行质量。本设计采用的同步状态机的设计方法,使得clk1,fetch,alu_clk在跳变时间同步性能上有显著提升,为整个系统性能的提高打下良好的基础。

状态控制器的设计

状态控制器的电路图如图3所示。从实现的途径看,RISC微处理器与一般的微处理器的不同之处在于,它的时序控制信号的形成部件是用硬布线逻辑实现而不是采用微程序控制。由于器件本身设计比较复杂,且对各个控制信号的时序有严格要求,所以其VHDL程序用有限状态机FSM来实现。

利用FPGA和CPLD技术实现8位RISC微处理器的设计并进行仿真分析

图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

casecurstateis

whenst0=》。..。..

whenst1=》。..。..

whenst2=》。..。..

whenst3=》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.。.

whenst5=》curstate《=st6;

if(opcode=addoropcode=annor

opcode=“xoooropcode”=lda)

then.。..。.

elsif(opcode=skzandzero=’1’)

then.。..。.

elsif(opcode=jmp)then.。..。.

elsif(opcode=sto)then.。..。.

else.。..。.

whenst6=》curstate《=st7;

if(opcode=sto)then.。..。.

elsif(opcode=addoropcode=ann

oropcode=xoooropcode=lda)

then.。..。.

else.。..。.

whenst7=》curstate《=st0;

if(opcode=skzandzero=’1’)then.。..。.

else.。..。.

whenothers=》。..。..

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上记录着指令的运行情况,同时也可看到空闲时其呈高阻状态。

利用FPGA和CPLD技术实现8位RISC微处理器的设计并进行仿真分析

图4微处理器各部件的结构

图5仿真波形

主要的程序如下:

地址机器代码汇编语言源程序

&

nbsp; 0011000000JMPL1;L1-》PC

0100000100

0410100000LDAR2;(0E)-》R2

0500001110

0610000000XORR1,R2;(R1)xor(R2)- 》(R1)

0700001111

0811000001STO;(R1)-》(0F)

0A00000000HLT;stop

0B00000000

0E00111100

0F00011000

微处理器的硬件实现

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

结束语

本文基于FPGA的微处理器具备了RISC微处理器的基本功能,而且其容易优化升级。该微处理器不仅可作为一个模块用于片上系统的设计,而且也充分展示了使用FPGA和VHDL进行EDA数字系统设计的优越性,具有实用价值。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21302

    浏览量

    593101
  • cpld
    +关注

    关注

    32

    文章

    1243

    浏览量

    168278
  • 微处理器
    +关注

    关注

    11

    文章

    2128

    浏览量

    81397
收藏 人收藏

    评论

    相关推荐

    ARM微处理器应用开发技术详解与实例分析

    ARM微处理器应用开发技术详解与实例分析
    发表于 08-16 20:19

    处理器微处理器系统

    是32微处理器;Intel采用了IA-64架构的处理器、PowerPC 970是64位处理器;类似地,还有更加古老的8
    发表于 02-07 11:41

    摩托罗拉MPC 8XX微处理器仿真分析解决方案

    摩托罗拉MPC 8XX微处理器仿真分析解决方案
    发表于 04-25 16:34

    你怎么看8、16、32及64嵌入式处理器

    嵌入式系统以各种类型的嵌入式处理器为核心,而随着技术的发展,对于嵌入式处理器的性能及功耗的要求愈加严苛。目前,嵌入式处理器分为8
    发表于 07-05 07:52

    基于AVR 8微处理器的FSPLC微处理器SOC设计

    两个方面的内容:IP核生成和IP核复用。文中采用IP核复用方法和SOC技术基于AVR 8微处理器AT90S1200IP Core设计专用PLC微处
    发表于 07-26 06:19

    基于80C186XL16嵌入式微处理器CPLD解决方案

    80C186XL16嵌入式微处理器是Intel公司在嵌入式微处理器市场的上导产品之一,已广泛应用于电脑终端、程控交换和工控等领域。在该嵌入式微处理器片内,集成有DRAM RCU单元,
    发表于 07-29 07:54

    怎么利用FPGACPLD数字逻辑实现ADC?

    数字系统的设计人员擅长在其印制电路板上用FPGACPLD将各种处理器、存储和标准的功能元件粘合在一起来实现数字设计。除了这些数字功能之外
    发表于 08-19 06:15

    8AVR微处理器ATmega16L电子资料

    概述:ATmega16L单片机是一款高性能、低功耗的8AVR微处理器,具有先进的RISC结构,内部有大容量的ROM、RAM、Flash和EEPROM,集成4通道PWM,SPI串行外设
    发表于 04-08 06:22

    FPGA技术如何用VHDL语言实现8RISC微处理器

    设计RISC微处理器需要遵循哪些原则?基于FPGA技术用VHDL语言实现8
    发表于 04-13 06:11

    求一种基于FPGA微处理器的IP的设计方法

    本文根据FPGA的结构特点,围绕在FPGA上设计实现微处理器软核设计方法进行探讨,研究了片上
    发表于 04-29 06:38

    基于FPGA的八微处理器的IP软核设计方案

    RISC CPU设计是一个从抽象到具体的过程,本文根据FPGA的结构特点,围绕在FPGA上设计实现
    发表于 07-11 08:00

    ARM、DSP、FPGA技术特点和区别是什么

    ARM、DSP、FPGA技术特点和区别是什么?ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的
    发表于 07-19 06:36

    ARM微处理器介绍

    ARM(Advanced RISC Machines),既可认为是一个公司的名字,也可认为是对一类微处理器的统称。中文名ARM嵌入式外文名Advanced RISC Machines属 于一类
    发表于 09-09 07:29

    ARM处理器设计RISC介绍(上)

    RISC指令集的简单性也使得流水线的实现更加有效,CISC处理器即使有,也只允许极少的连续指令间的重叠。单周期执行。CISC处理器执行一条指令一般需要多个时钟周期。CISC
    发表于 04-24 09:57

    ARM处理器设计RISC介绍(下)

    速度大为提高。RISC技术极大地简化了流水线的设计,使流水线技术更容易实现,以较低的成本实现了较高的性能。高时钟频率和单周期执行。在20世纪
    发表于 04-24 10:02