一种基于FPGA的流水线8051IP核的设计与实现_第1页
一种基于FPGA的流水线8051IP核的设计与实现_第2页
一种基于FPGA的流水线8051IP核的设计与实现_第3页
一种基于FPGA的流水线8051IP核的设计与实现_第4页
一种基于FPGA的流水线8051IP核的设计与实现_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    一种基于fpga的流水线8051ip核的设计与实现    王发栋杜慧玲史翔摘 要: 给出一种基于fpga的8051mcu的ip核设计方案,指令集与标准8051系列处理器完全兼容。采用译码执行两级流水结构,并通过了仿真与综合,理论速度较传统8051mcu有610倍的提升。针对cisc流水线设计的复杂性,提出了一种高效的实现方案,可以使执行结构近满状态运行,且简便有效地解决了传统流水线所必须面对的三种冲突。设计采用verilog hdl语言描述,并采用modelsimse 6.2进行功能和时序验证,将代码下载到xilinx公司的fpga上进行物理验证

2、,测试了一个led流水灯程序,结果表明软核达到了预期的效果。关键字: 8051微处理器; 流水线; fpga; 控制冒险: tn710?34 : a : 1004?373x(2014)05?0080?030 引 言自51单片机应用以来,对其进行功能改进和性能提升的芯片设计层出不穷。但由于其cisc的架构,对其流水线化始终局限于将cisc指令转换为可以在一周期内完成的类risc指令,然后使用risc指令流水作业的方式,这虽然可以让多条指令同时执行,但增加了译码结构的复杂程度,而且需要复杂的控制逻辑解决指令同时执行带来的传统流水线所必须面对的三种冲突。本文原创性地提出一种新的实现方案,该方案解决了

3、这三种冲突,且在fpga的平台下最大限度地做到填充执行结构,使得指令可以流畅运行。1 mcu结构与fpga平台本文设计的8051 ip核是与传统8051指令集兼容的mcu内核,不包含定时器等模块但通过总线预留接口。其结构如图1所示。(1)译码器。负责将读入的指令译成可供流水线执行结构执行的控制码,同时向其发送执行所需的地址和数据。它包含4个控制码队列,在译码过程中循环地向四个队列中写入当前指令的控制码,因此可以不必等待指令执行完毕再继续下一条指令的译码。(2)流水线执行结构。读取译码器发出的控制码并进行相应的操作。主要完成对地址单元的读写,数据总线的操作和pc的控制。(3)alu算术逻辑运算单

4、元。完成8位整数的四则运算和逻辑运算,同时内置了位寻址单元,具有位运算的功能。(4)256 b的ram单元。其中低128 b是连续的ram空间,高128 b是特殊功能寄存器sfr,被分散在各模块中。(5) 216 b的rom单元。指令存储空间,存储指令和表格。设计采用xilinx xcv300芯片,可以使用xilinx公司提供的blockram。它不消耗逻辑资源,且可以实现双通道读写,增大了内部总线的带宽。同时,该型可以使用xilinx提供的乘法器和除法器,有效地缩短了乘法和除法操作的时间。2 流水线设计及性能分析2.1 cisc指令流水化的控制码方案51单片机采用的是cisc架构,其指令长度

5、从13 b不等,指令执行周期也不固定,对其直接进行流水化控制逻辑复杂,难度较大。吸收传统cisc流水化实现方案的积极因素,针对fpga平台的特定结构,对其进行改进。总体思路是将其转换为可单周期执行的指令,称其为控制码,将它发送给流水执行部件,但不像传统流水线的方式去流水,而是进行单指令流水,即对指令a转换的指令a(0)-a(n)进行流水,在a指令的全部次级指令执行完毕前,不允许其他指令进入流水线。这样避免了流水线的结构冲突和数据冲突,对于控制冲突,由于pc在执行转移指令前不会改变,译码仍然是顺序译码,即相当于默认跳转不成功。若预测失败,则流水线暂停跳转后第一条指令的字节数个周期。在中断到来时,

6、自动生成保存当前pc的控制码,同时清空控制码队列并跳转到中断执行程序。2.2 与传统流水线方案的对比流水线思想的最终目的,实质上是尽量并行化地使用mcu的全部资源。因此这里提出两条观点:(1) 不完全流水线化的执行结构若能保证资源的充分使用,因其指令周期较流水化的指令周期短,故其整体效率与流畅的流水线相近。(2) 尽力避免流水线冲突使得指令运行流畅,不能流畅运行的流水线其效率可能低于无流水的执行结构。前面提到,与传统流水线不同,这里采取的方案是单指令流水,其实质是将译码和执行分开,让两者并行运行。当指令周期与所执行指令的平均字节数即译码周期相等时,流水线恰好可以无中断地运行。在fpga平台下,

7、通过对控制码的优化设计,将指令的平均周期控制在两个时钟周期,与51指令集的平均字节数相同,符合提出的理论。同时,在译码器中设置了4个控制码队列,保证了在字节?周期数不匹配时能够有足够的空间进行自动的调节。3 流水线体系结构(1) 控制码定义对其指令行为进行分析,给出译码器发送给流水线执行结构的控制码定义。控制码共19位,其中前3位是控制流水线执行器读取源地址、目的地址及操作数的。第49位控制a通道的寻址和数据读写,第1015位控制b通道的寻址和数据读写。第16、17位控制将立即数发送到a或b通道上,第18、19位控制alu模块读取a或b通道上的数据。(2) 地址、立即数与其他信息指令执行需要的

8、地址、立即数信息由译码器发送给流水线执行器,流水线执行器根据控制码决定是否读入信息。其中立即数和目的地址两个字节也可以存放控制转移类指令所需的pc地址和偏移地址。(3) alu控制码定义了一组控制码,发送到alu控制其执行相关的运算操作。由于alu运算通常在指令执行的后期,为缩短指令执行周期,采用了提前发送,内部缓存的延迟方式达到同步。(4) 双通道下的指令时序设计特点 前面已经提到,设计所采用的fpga有双通道的blockram,将两个通道分别称为a通道和b通道,双通道增加了系统内部总线的带宽,也给数据通路的设计带来了很大的方便。例如对于数据传送类指令,可以在上升沿从a通道读出数据,在下降沿

9、向b通道中写入,使得指令在一个时钟周期内完成。这也是除指令流水化执行以外,提高设计性能的一个重要因素。4 流水线的实现与冲突的解决流水线结构存在着三种冒险,即结构冒险、控制冒险和数据冒险。结构冒险指不同的指令在同一时间对同一硬件资源提出了使用的申请,从而产生了冲突;控制冒险发生在控制转移类指令所需的条件是流水线中尚未得到的结果,因此必须等待该结果得出后才能执行;数据冒险则主要指“未写先读”,即后面的指令所需的源操作数是前面指令的目的操作数,因此产生了错误。在本设计中,由于采用单指令流水方案,因此避免了结构冒险和数据冒险。对于控制冒险,译码器的预测策略是总是认为跳转不成功,即不改变pc,继续译码

10、。若预测成功,则流水线无停滞地执行;若预测失败,则译码器首先清空全部控制码队列,然后再进行新的译码,流水线将阻塞新的程序段第一条指令的字节数个周期。5 设计仿真与综合结果6 结 语本文针对8051的cisc指令集和fpga平台的特点,提出了一种新的cisc流水化执行方案,实现了51指令的流水化执行并解决了流水化所要面对的三种冒险。设计代码采用verilog?hdl编写,仿真测试和综合的结果表明,该设计逻辑正确,系统参数达到了要求。参考文献1 atmel. at89c51 8?bit microcontroller with 2k bytes flash m. usa: atmel, 2008.

11、2 尚笠,葛元庆,周润德.80c51微处理器嵌入式内核的设计研究j.微电子学,2000,30(1):28?30.3 patterson d a, hennessy j l.计算机组成与设计?软件硬件接口m.郑纬民,译.2版.北京:机械工业出版社,2012.4 xilinx. dual?port block memory core v6.3 eb/ol. 2005?08?31. http:/5 thimmannagari c m r. cpu design: answers to frequently asked questions m. usa: springer, 2005.6 李亚民.计算

12、机组成原理与系统结构m.北京:清华大学出版社,1999.7 周宁宁,刘胜.基于fpga技术的cpu的设计与实现j.南京邮电学院学报,2003,23(1):77?79.8 孟现元,钱伟康.fpga嵌入式系统设计m.北京:电子工业出版社,2007.9 倪继利,陈曦,李辉.cpu源代码分析与芯片设计及linux移植m.北京:电子工业出版社,2007.10 simic j, teran s. 8051 core specification db/ol.(2001?09?25)2013?01?21. http: /. 前面已经提到,设计所采用的fpga有双通道的bloc

13、kram,将两个通道分别称为a通道和b通道,双通道增加了系统内部总线的带宽,也给数据通路的设计带来了很大的方便。例如对于数据传送类指令,可以在上升沿从a通道读出数据,在下降沿向b通道中写入,使得指令在一个时钟周期内完成。这也是除指令流水化执行以外,提高设计性能的一个重要因素。4 流水线的实现与冲突的解决流水线结构存在着三种冒险,即结构冒险、控制冒险和数据冒险。结构冒险指不同的指令在同一时间对同一硬件资源提出了使用的申请,从而产生了冲突;控制冒险发生在控制转移类指令所需的条件是流水线中尚未得到的结果,因此必须等待该结果得出后才能执行;数据冒险则主要指“未写先读”,即后面的指令所需的源操作数是前面

14、指令的目的操作数,因此产生了错误。在本设计中,由于采用单指令流水方案,因此避免了结构冒险和数据冒险。对于控制冒险,译码器的预测策略是总是认为跳转不成功,即不改变pc,继续译码。若预测成功,则流水线无停滞地执行;若预测失败,则译码器首先清空全部控制码队列,然后再进行新的译码,流水线将阻塞新的程序段第一条指令的字节数个周期。5 设计仿真与综合结果6 结 语本文针对8051的cisc指令集和fpga平台的特点,提出了一种新的cisc流水化执行方案,实现了51指令的流水化执行并解决了流水化所要面对的三种冒险。设计代码采用verilog?hdl编写,仿真测试和综合的结果表明,该设计逻辑正确,系统参数达到

15、了要求。参考文献1 atmel. at89c51 8?bit microcontroller with 2k bytes flash m. usa: atmel, 2008.2 尚笠,葛元庆,周润德.80c51微处理器嵌入式内核的设计研究j.微电子学,2000,30(1):28?30.3 patterson d a, hennessy j l.计算机组成与设计?软件硬件接口m.郑纬民,译.2版.北京:机械工业出版社,2012.4 xilinx. dual?port block memory core v6.3 eb/ol. 2005?08?31. http:/5 thimmannagari c

16、 m r. cpu design: answers to frequently asked questions m. usa: springer, 2005.6 李亚民.计算机组成原理与系统结构m.北京:清华大学出版社,1999.7 周宁宁,刘胜.基于fpga技术的cpu的设计与实现j.南京邮电学院学报,2003,23(1):77?79.8 孟现元,钱伟康.fpga嵌入式系统设计m.北京:电子工业出版社,2007.9 倪继利,陈曦,李辉.cpu源代码分析与芯片设计及linux移植m.北京:电子工业出版社,2007.10 simic j, teran s. 8051 core specifica

17、tion db/ol.(2001?09?25)2013?01?21. http: /. 前面已经提到,设计所采用的fpga有双通道的blockram,将两个通道分别称为a通道和b通道,双通道增加了系统内部总线的带宽,也给数据通路的设计带来了很大的方便。例如对于数据传送类指令,可以在上升沿从a通道读出数据,在下降沿向b通道中写入,使得指令在一个时钟周期内完成。这也是除指令流水化执行以外,提高设计性能的一个重要因素。4 流水线的实现与冲突的解决流水线结构存在着三种冒险,即结构冒险、控制冒险和数据冒险。结构冒险指不同的指令在同一时间对同一硬件资源提出了使用的申请,从

18、而产生了冲突;控制冒险发生在控制转移类指令所需的条件是流水线中尚未得到的结果,因此必须等待该结果得出后才能执行;数据冒险则主要指“未写先读”,即后面的指令所需的源操作数是前面指令的目的操作数,因此产生了错误。在本设计中,由于采用单指令流水方案,因此避免了结构冒险和数据冒险。对于控制冒险,译码器的预测策略是总是认为跳转不成功,即不改变pc,继续译码。若预测成功,则流水线无停滞地执行;若预测失败,则译码器首先清空全部控制码队列,然后再进行新的译码,流水线将阻塞新的程序段第一条指令的字节数个周期。5 设计仿真与综合结果6 结 语本文针对8051的cisc指令集和fpga平台的特点,提出了一种新的cisc流水化执行方案,实现了51指令的流水化执行并解决了流水化所要面对的三种冒险。设计代码采用verilog?hdl编写,仿真测试和综合的结果表明,该设计逻辑正确,系统参数达到了要求。参考文献1 atmel. at89c51 8?bit microcontroller with 2k by

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论