关键字 |
寄存器传输级,精简指令集计算机(RISC),超高速集成电路(VHSIC)硬件描述语言,算术逻辑单元(ALU),现场可编程门阵列(FPGA)。 |
LITEARTURE调查 |
自可编程逻辑技术得到高度发展以来。基于FPGA的处理器在实验室中实现是可行的。现在有几种软处理器内核可用,如Xilinx、Pico Blaze、Altera Nios。但是这些处理器核心被提供为黑盒子或黑匣子单元,在这种情况下,用户无法监控内部信号和操作过程,也无法修改原始结构。fpga尤其导致了高级描述语言(如VHDL或Verilog)的设计开发,这使得设计人员可以在RTL级别构思设计,而无需参考最终技术或用于最终实现的供应商 |
VHDL是一种高效的编程语言,可以用动态硬件描述语言对复杂的数字系统进行建模和开发。作者在[2]中提出了一种基于VHDL的快速原型方法,利用商业CAD工具对计算机系统进行仿真、综合和实现。在b[3]中介绍了使用VHDL来设计和实现一个CPU结构。在16位CPU[4]的设计实现中,作者获得了最小的时钟周期为31.46ns,在本文提出的设计架构下,时钟周期从仿真结果中可以看出大大缩短,从而可以实现快速处理。 |
介绍 |
该语言的要求是在20世纪80年代首次产生的,在美国政府的超高速集成电路(VHSIC)项目的标题下,为了提高电子技术,设计过程和采购,以及许多先进IC工艺技术的发展。从系统到逻辑门,任何硬件设计都可以用它在不同抽象层次上的操作来描述。在这个层次结构的每个级别上,总体输入和输出保持不变,但在详细的原理图的帮助下,不同部分的功能变得更加清晰 |
与软件版本相比,集成电路设计需要进行更复杂的计算,而且耗时较长。采用传统方法开发所需规格的微处理器等设计,将导致机器周期缩短、数据总线尺寸变化、成本降低和所有编号系统的实现。该系统实施后,主要问题是如何对其进行整合和优化。现场可编程门阵列(FPGA)技术和硬件描述语言(HDL)消除了这些问题。软件接口以及芯片设计和规划器降低了复杂性,提高了计算的便利性。 |
采用本文提出的设计方案,将64kb存储器与CPU接口,获得了最小的时延、时钟周期、路径时延。所提出的设计已经在一些与内存相关的操作(加载、存储、移动和分支)的应用程序中进行了测试。 |
技术工作准备 |
在系统的设计中,提出了多种工具。在本例中,微处理器使用目标和更广泛方面形式的综合操作进行砌块。图1所示。展示了需要实现的论文设计的组织结构: |
a)系统概述 |
本论文的设计由独立的模块来表示。其中主要的重点是操作设计,软件设计和硬件设计。 |
操作概述 |
操作视图处理微处理器可以执行的各种操作。CPU(中央处理器)是计算机的“大脑”。它由数据路径、控制路径和存储单元等部分组成。在每个时钟周期,需要控制单元自动产生控制信号以操作数据路径。它是基于有限状态机的概念。处理器的控制单元基本上通过三个主要步骤进行循环,通常称为指令周期,即获取指令、解码指令和执行指令。第二部分涉及算术逻辑单元,它执行算术计算,如加、减、乘、除、增、减和逻辑函数,如与、或、异或、左移、右移等[7]。 |
软件概述 |
与系统中使用的VHDL软件接口,降低了系统的复杂性,并提供了系统的图形化展示。当用于系统设计时,VHDL的优势在于它允许在综合工具将设计转换为实际硬件(门和线)之前描述(建模)和验证(模拟)所需系统的行为。这样不仅可以进行编译,还可以产生波形结果。为了执行任何逻辑电路设计的编译和仿真,很少使用复杂的计算机辅助设计(CAD)工具,如Alteras II和Xilinx web pack。 |
硬件概述 |
微处理器的基本构建模块如图3所示。该模型实例化组件cpu和mem,并指定连接组件所需的信号,如下图所示。 |
组件内存是一种存储设备,包含CPU要执行的指令和数据。组件cpu是cpu器件的RTL实现,通过仿真验证其正确性并综合实现设计。它包括时钟信号、复位有效内存地址(VMA)、地址寄存器、就绪信号和操作所需的数据。最后一点是,当VHDL模型[11]被转换成映射到可编程逻辑设备(如CPLD或FPGA)上的“门和线”时,它就是实际的硬件配置,而不是像在某种形式的处理器芯片上那样“执行”VHDL代码。 |
指令寄存器用于存储从内存中取出的指令。程序计数器保存当前指令的内存地址。执行完一条指令后,程序计数器移动到下一条指令。如果有分支指令,程序计数器将加载下一条指令的地址。然后,控制单元将程序计数器的值复制到地址寄存器中,地址寄存器在地址总线中给出新的地址。将数据存储到存储器中的过程称为写,从存储器中检索数据或操作码的过程称为读。 |
实验结果 |
利用Xilinx软件(Version 9.1)对该处理器的VHDL代码进行了合成和仿真。给出了综合和仿真结果,并利用Xilinx ISE 9.1软件对代码进行了测试和校核。仿真结果与理论结果进行了比较。在模拟开始之前,指令和数据被写入并加载到内存中。具有内存的处理器进行算术和逻辑操作测试。当VHDL代码完全合成后,代码被加载到Spartan FPGA设备[8]。 |
此状态根据状态机建模执行,因为顺序流程将信号current_state设置为状态值reset1。这是CPU复位序列的第一个状态,它开始使CPU准备好执行指令的过程。如果复位信号不为“1”并且时钟信号有上升沿,则组合过程产生的下一个状态信号被复制到信号current _state中。这是状态机从一种状态推进到另一种状态的方法。复位信号被设置为除“1”以外的值后,状态机处于复位状态。移动进一步的控制传递到状态复位2,复位3,复位4,复位5,最后到复位6,取决于从存储器的就绪信号的值,要么留在reset6或写入存储器数据值注册InstrReg,并进入状态执行。 |
此时,状态机已经将CPU的状态重置为已知状态,并将第一条指令加载到寄存器InstrReg中。从这一点开始,状态机根据遇到的指令改变状态。 |
在上图中,执行加载指令。在这条指令的帮助下,数据从外部存储器加载到微处理器。加载指令可以是即时的,其中要加载的数据是指令的一部分。加载指令以状态机方式执行,其中当前状态从负载1开始,在负载6结束。 |
在上图中,执行了存储指令。在这条指令的帮助下,数据从微处理器加载到外部存储器中。 |
在此执行中,将数据与定义的值进行比较,如果条件为真,则控制跳转到定义的标签(地址),如果条件为假,则执行下一条指令。 |
分析报告 |
以下分析报告是使用Xilinx ise 9.2i进行合成和地图报告得到的: |
该图显示了微处理器在整个操作执行过程中各模块的最大延时操作。 |
我们知道,扇出是输出可以安全连接的同类型门的最大输入数量。逻辑门输出的扇出是它可以馈电或连接的门的输入数量。输出的最大风扇输出量衡量其负载驱动能力。 |
合成报告包括切片总数、LUT、输入、输出块和缓冲区。附近地区:逻辑单元由查找表、触发器和与相邻单元的连接组成。LUT使用组合逻辑来实现一个4 i/p表达式。 |
片:一个逻辑片由两个逻辑单元组成。一个可配置的逻辑块由4个片组成。这种组合体系结构在最终系统中有很多好处,比如提高了逻辑执行的性能。 |
结论 |
在CPU中增加了一些额外的功能,如复加法,复乘法和其他逻辑运算等。可以添加一些其他模块,如定时器,计数器,中断,这可以增强处理器的功能。因为这个处理器是16位的,所以它能够访问16kb的外部内存。可以同时访问更多数量的输入输出设备。 |
表格一览 |
|
表1 |
|
|
数字一览 |
|
|
|
|
|
图1 |
图2 |
图3 |
图4 |
图5 |
|
|
|
|
|
图6 |
图7 |
图8 |
图9 |
图10 |
|
|
参考文献 |
- Jurado-Carmona, f.j., Tombs, J., Aguirre, m.a., Torralba, A.,“一个完全流水线的ARM兼容微处理器核心的实现”,第十七章
- 利用综合、仿真和硬件仿真实现流水线RISC计算机系统原型”。亚特兰大,乔治亚州。
- 张志刚,“基于VHDL的计算机建模与设计”,硕士论文。315- 326,波士顿,马萨诸塞州。
- ManoranjanPradhan,“自测试16位处理器的仿真与验证”,国际计算机应用学报(0975 - 8887)卷20 - No.1, pp.42-45, 2011年4月。
- Davidson, J.“可重构微处理器的FPGA实现”,IEEE自定义集成电路会议,1993,pp. 3.2.1- 3.2.4
- Sueyoshi, T., Kuga, M.和Shibamura, H.,“KITE微处理器和计算机科学的CAE”,日本系统与计算机,Vol. 33, No. 8, 2002, pp.64-74。
- 帕斯特,j.s.,冈萨雷斯,I,洛佩兹,J,阿里巴斯,F。“基于fpga的微处理器原型的远程调试实验室”,IEEE高级学习技术国际会议论文集(ICALT ' 04),2004。
- 陈志强,“FPGA算法处理器的VHDL设计”,计算机工程与信息化,2007。
- Allen Dewey,“用VHDL分析和设计数字系统”,PWS出版公司,1997。
- Spartan-II 2.5 FPGA系列数据表。2003。Xilinx, ds001-2 (v2.2)。
- 张维军。2001。VHDL教程,通过实例学习。
|