位置:51电子网 » 技术资料 » EDA/PLD

基于FPGA的八位RISC CPU的设计

发布时间:2008/5/28 0:00:00 访问次数:478

张杰

1 引 言

  随着数字通信和工业控制领域的高速发展,要求专用集成电路(asic)的功能越来越强,功耗越来越低,生产周期越来越短,这些都对芯片设计提出了巨大的挑战,传统的芯片设计方法已经不能适应复杂的应用需求了。soc(system on a chip)以其高集成度,低功耗等优点越来越受欢迎。开发人员不必从单个逻辑门开始去设计asic,而是应用己有ic芯片的功能模块,称为核(core),或知识产权(ip)宏单元进行快速设计,效率大为提高。cpu 的ip核是soc技术的核心,开发出具有自主知识产权的cpu ip核对我国在电子技术方面跟上世界先进的步伐,提高信息产业在世界上的核心竟争力有重大意义。

  精简指令集计算机risc(reduced instruction set computer)是针对复杂指令集计算机cisc(complex instruction set computer)提出的,具备如下特征1)一个有限的简单的指令集; 2)强调寄存器的使用或cpu配备大量的能用的寄存器;3)强调对指令流水线的使用。

  2 cpu ip核的组成

   尽管各种cpu的性能指标和结构细节不同,但所要完成的基本功能相同,从整体上可分为八个基本的部件:时钟发生器、指令寄存器、累加器、risc cpu算术逻辑运算单元、数据控制器、状态控制器、程序控制器、程序计数器、地址多路器。状态控制器负责控制每一个部件之间的相互操作关系,具体的结构和逻辑关系如图1所示。

  时钟发生器利用外部时钟信号,经过分频生成一系列时钟信号给cpu中的各个部件使用。为了保证分频后信号的跳变性能,在设计中采用了同步状态机的方法。

  指令寄存器在触发时钟clk1的正跳变触发下,将数据总线送来的指令存入寄存器中。数据总线分时复用传递数据和指令,由状态控制器的load_ir信号负责判别。load_ir信号通过使能信号ena口线输入到指令寄存器。复位后,指令寄存器被清为零。每条指令为两个字节16位,高3位是操作码,低13位是地址线。cpu的地址总线为是13位,位寻址空间为8k 字节。本设计的数据总线是8位,每条指令取两次,每次由变量state控制。

  累加器用于存放当前的运算结果,是双目运算中的一个数据来源。复位后,累加器的值为零。当累加器通过使能信号ena 口线收到来自cpu状态控制器load_acc 信号后,在clk1时钟正跳沿时就接收来自数据总线的数据。

  图1 cpu结构图

  算术逻辑运算单元根据输入的不同的操作码分别实现相应的加、与、异或、跳转等基本运算。

  数据控制器其作用是控制累加器的数据输出,由于数据总线是各种操作传送数据的公共通道,分时复用,有时传输指令,有时要传送数据。其余时候,数据总线应呈高阻态,以允许其他部件使用。所以,任何部件向总线上输出数据时,都需要一个控制信号的,而此控制信号的启、停则由cpu状态控制器输出的各信号控制决定。控制信号datactl_ena决定何时输出累加器中的数据。

  地址多路器用于输出的地址是pc(程序计数器)地址还是数据/端口地址。每个指令周期的前4个时钟周期用于从rom中读取指令,输出的应是pc地址,后4个时钟周期用于对ram或端口的读写,该地址由指令给出,地址的选择输出信号由时钟信号的8分频信号fecth提供。

  程序计数器用于提供指令地址,以便读取指令,指令按地址顺序存放在存储器中,有两种途径可形成指令地址,一是顺序执行程序的情况,二是执行jmp指令后,获得新的指令地址。

  状态机控制器接受复位信号rst,当rst有效时,能通过信号ena使其为0 ,输入到状态机中以停止状态机的工作。状态机是cpu 的控制核心,用于产生一系列的控制信号,启动或停止某些部件,cpu何时进行读指令来读写i/o端口及ram区等操作,都是由状态机来控制的。状态机的当前状态,由变量state记录,state的值就是当前这个指令周期中已经过的时钟数。指令周期是由8 个时钟组成,每个时钟都要完成固定的操作。

  3 系统时序

  risc cpu的复位和启动操作是通过rst引脚的信号触发执行的,当rst信号一进入高电平,risc cpu就会结束现行操作,并且只要rst停留在高电平状态,cpu就维持在复位状态,cpu各状态寄存器都设为无效状态。当信号rst回到低电平,接着到来的第一个fetch 上升沿将启动risc cpu开始工作,从rom的000处的开始读取指令并

执行相应的操作。

  读指令时序,每个指令的前3个时钟周期用于读指令,4~6周期读信号rd有效,第7 个周期读信号无效,第8个周期地址总线输出pc地址,为下一个指令作准备。

  写指令时序,每个指令的第3.5个时钟周期建立写地址,第四个周期输出数据,第5个时钟周期输出写信号,第6个时钟结束,第

张杰

1 引 言

  随着数字通信和工业控制领域的高速发展,要求专用集成电路(asic)的功能越来越强,功耗越来越低,生产周期越来越短,这些都对芯片设计提出了巨大的挑战,传统的芯片设计方法已经不能适应复杂的应用需求了。soc(system on a chip)以其高集成度,低功耗等优点越来越受欢迎。开发人员不必从单个逻辑门开始去设计asic,而是应用己有ic芯片的功能模块,称为核(core),或知识产权(ip)宏单元进行快速设计,效率大为提高。cpu 的ip核是soc技术的核心,开发出具有自主知识产权的cpu ip核对我国在电子技术方面跟上世界先进的步伐,提高信息产业在世界上的核心竟争力有重大意义。

  精简指令集计算机risc(reduced instruction set computer)是针对复杂指令集计算机cisc(complex instruction set computer)提出的,具备如下特征1)一个有限的简单的指令集; 2)强调寄存器的使用或cpu配备大量的能用的寄存器;3)强调对指令流水线的使用。

  2 cpu ip核的组成

   尽管各种cpu的性能指标和结构细节不同,但所要完成的基本功能相同,从整体上可分为八个基本的部件:时钟发生器、指令寄存器、累加器、risc cpu算术逻辑运算单元、数据控制器、状态控制器、程序控制器、程序计数器、地址多路器。状态控制器负责控制每一个部件之间的相互操作关系,具体的结构和逻辑关系如图1所示。

  时钟发生器利用外部时钟信号,经过分频生成一系列时钟信号给cpu中的各个部件使用。为了保证分频后信号的跳变性能,在设计中采用了同步状态机的方法。

  指令寄存器在触发时钟clk1的正跳变触发下,将数据总线送来的指令存入寄存器中。数据总线分时复用传递数据和指令,由状态控制器的load_ir信号负责判别。load_ir信号通过使能信号ena口线输入到指令寄存器。复位后,指令寄存器被清为零。每条指令为两个字节16位,高3位是操作码,低13位是地址线。cpu的地址总线为是13位,位寻址空间为8k 字节。本设计的数据总线是8位,每条指令取两次,每次由变量state控制。

  累加器用于存放当前的运算结果,是双目运算中的一个数据来源。复位后,累加器的值为零。当累加器通过使能信号ena 口线收到来自cpu状态控制器load_acc 信号后,在clk1时钟正跳沿时就接收来自数据总线的数据。

  图1 cpu结构图

  算术逻辑运算单元根据输入的不同的操作码分别实现相应的加、与、异或、跳转等基本运算。

  数据控制器其作用是控制累加器的数据输出,由于数据总线是各种操作传送数据的公共通道,分时复用,有时传输指令,有时要传送数据。其余时候,数据总线应呈高阻态,以允许其他部件使用。所以,任何部件向总线上输出数据时,都需要一个控制信号的,而此控制信号的启、停则由cpu状态控制器输出的各信号控制决定。控制信号datactl_ena决定何时输出累加器中的数据。

  地址多路器用于输出的地址是pc(程序计数器)地址还是数据/端口地址。每个指令周期的前4个时钟周期用于从rom中读取指令,输出的应是pc地址,后4个时钟周期用于对ram或端口的读写,该地址由指令给出,地址的选择输出信号由时钟信号的8分频信号fecth提供。

  程序计数器用于提供指令地址,以便读取指令,指令按地址顺序存放在存储器中,有两种途径可形成指令地址,一是顺序执行程序的情况,二是执行jmp指令后,获得新的指令地址。

  状态机控制器接受复位信号rst,当rst有效时,能通过信号ena使其为0 ,输入到状态机中以停止状态机的工作。状态机是cpu 的控制核心,用于产生一系列的控制信号,启动或停止某些部件,cpu何时进行读指令来读写i/o端口及ram区等操作,都是由状态机来控制的。状态机的当前状态,由变量state记录,state的值就是当前这个指令周期中已经过的时钟数。指令周期是由8 个时钟组成,每个时钟都要完成固定的操作。

  3 系统时序

  risc cpu的复位和启动操作是通过rst引脚的信号触发执行的,当rst信号一进入高电平,risc cpu就会结束现行操作,并且只要rst停留在高电平状态,cpu就维持在复位状态,cpu各状态寄存器都设为无效状态。当信号rst回到低电平,接着到来的第一个fetch 上升沿将启动risc cpu开始工作,从rom的000处的开始读取指令并

执行相应的操作。

  读指令时序,每个指令的前3个时钟周期用于读指令,4~6周期读信号rd有效,第7 个周期读信号无效,第8个周期地址总线输出pc地址,为下一个指令作准备。

  写指令时序,每个指令的第3.5个时钟周期建立写地址,第四个周期输出数据,第5个时钟周期输出写信号,第6个时钟结束,第

相关IC型号

热门点击

 

推荐技术资料

声道前级设计特点
    与通常的Hi-Fi前级不同,EP9307-CRZ这台分... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!