• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 一种带Cache的嵌入式CPU的设计与实现

一种带Cache的嵌入式CPU的设计与实现

录入:edatop.com     点击:

3.3 数据前推技术的设计

对于数据竞争的检测,通过比较连续3条指令的寄存器标号,把本条指令的rs和rt及前面2条指令的操作数结果寄存器分别进行比较,比较器的输出信号传递到EXE阶段用于选择ALU操作数的来源。

而对于LOAD指令发生的数据相关,必须等到MEM阶段完成之后才能得到有效的数据,因此发生数据相关的下一条指令,只能通过延迟一个周期才能利用数据前置技术,如果配合MIPS编译器,通过使用延迟槽技术可以解决LOAD类型的数据相关。

3.4 指令cache的实现

系统实现了一个容量为2 KB指令Cache,每个Cache行为16 B数据,这样可以利用存储器的16 B的突发式传送。采用2路组相联方式,支持通写(Write Through)模式。由同步SRAM实现。

数据Cache由控制模块、命中与缺失比较模块、访问内存模块、替换模块、输出模块组成。其中控制模块是整个Cache的主控部件,它控制存储器和cache协调工作:当执行单元有取指请求时,以指令的物理地址作为索引看是否命中,如果不命中则控制逻辑启动访存逻辑到内存中去取指,当指令取回时控制逻辑启动替换逻辑对指令Cache进行替换并将指令输出;如果命中,则将指令输出。

使用VHDL来设计和实现上述各关键模块。综合后的接口信号图如图2所示。

\

对关键模块和其他模块进行融合,最后得到的CPU流水线结构图如3所示。

\

4 系统的仿真与验证

使用VHDL实现对各功能模块的设计,并完成功能仿真后,将设计的控制单元和数据通路的各模块进行合并,形成一个完整的嵌入式RISC CPU核,进行系统级仿真。基于系统实现的指令集编写了一个简单的测试程序。

add    $5.$0,$0

addi   $7,$0,1

sw    $7,10($5)

lw    $8,10($5)

将指令码写入指令存储器的仿真文件,测试程序运行得到的仿真波形图如图4所示。

\

每个时钟周期为10 ns,第一个时钟周期T1从10 ns处开始,根据仿真波形可以看出,在T5周期,指令sw $7,10($5)处于EXE阶段,第二条指令addi $7,$0,1处于MEM阶段,需要进行数据前推,Forward_2的值为"10",通过对测试结果分析可以看出,数据前推成功。通过分析仿真波形图中各个输出信号的波形,根据程序的运行过程,可以判断信号波形正确,达到设计要求。

本文给出了流水线CPU的关键模块的VHDL实现,经过逻辑综合和仿真,仿真结果表明在时序上设计的嵌入式CPU很好地满足了流水线的要求。生成位流数据文件对FPGA进行器件编程,FPGA芯片可以在50 MHz的时钟频率下稳定的运行。

来源:维库开发网

上一篇:一种可实现快速响应的V/I电路的设计方法
下一篇:基于FPGA的模式可变的卫星数据存储器纠错系统

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图