基于IP软核的计算机组成原理实验设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于IP软核的计算机组成原理实验设计
陈家祯;郑子华;叶锋;连桂仁;许力
【摘要】提出一种基于IP软核和EDA工具软件的计算机组成原理开放式硬件实验设计方法.基本IP核由控制器IP核功能模块组、数据通路IP核功能模块组和时序电路IP核功能模块组构成,可以根据不同的实验目的灵活构建基于IP核的功能电路,并给出双总线结构模型机设计过程及仿真测试结果.通过硬件设计过程的参与有效地培养了学生的工程实践动手能力和创新设计能力.
【期刊名称】《实验室科学》
【年(卷),期】2018(021)002
【总页数】6页(P41-46)
【关键词】IP软核;EDA技术;计算机组成原理;开放式实验平台
【作者】陈家祯;郑子华;叶锋;连桂仁;许力
【作者单位】福建师范大学数学与信息学院,福建福州 350007;福建师范大学数学与信息学院,福建福州 350007;福建师范大学数学与信息学院,福建福州 350007;福建师范大学数学与信息学院,福建福州 350007;福建师范大学数学与信息学院,福建福州 350007
【正文语种】中文
【中图分类】TP302
“计算机组成原理”是高校计算机及电子信息类专业的一门重要专业基础课,课程
以单机系统为对象阐述硬件组成与工作原理,为了能够更好地理解课程内容,需要设立相应的实验项目作支撑[1-3]。
目前,一般院校的实验项目设置以硬件实
验箱平台为主,如清华大学科教仪器厂的TEC-8、TEC-9等计算机组成原理实
验箱平台,学生的实验任务一般是基于实验箱平台上固定的数据通路完成验证性及局部扩展性实验,对于从硬件的角度对系统功能的进一步扩展及创新性探索尝试不易实现,无法真正参与到计算机各功能部件及整机系统的设计中。
而功能部件的组成及信息传输通路的连接设计,是正确理解计算机工作原理的一项重要内容,将功能部件及信息传输通路的设计工作交给学生参与,对深层次理解计算机系统的硬件组成及工作原理进而提升创新设计能力是非常有益的[4-5]。
集成电路技术的发展,EDA技术在现代电子设计中获得广泛应用,借助EDA工具平台和硬件描述语言可以快速搭建系统,经简单综合和布局并烧录至可编程芯片FPGA或CPLD测试,是现代IC设计验证的技术主流[6-7]。
在 EDA 设计领
域 IP(Intellectual Property)核被广泛应用,IP核指知识产权核,是具有特定
功能且经过反复验证的电路模块,根据IP核的不同实现层次可分为软核、硬核和
固核三大类[8]。
IP软核指用硬件描述语言描述的电路功能模块,灵活性高、可移植性强,在EDA工具平台上可以方便地进行测试、修改、复制、粘贴、删除等,在基本IP软核的基础上进行设计可以极大提高系统设计效率。
考虑到“计算机组
成原理”课程之前,学生已经在“数字电路”课程中了解了基本单元电路如寄存器、加法器、计数器、存储器等基本概念,因此,计算机组成原理课程实验可建立在前导课程基础上,即将前导课程中的基本单元电路以IP核的形式应用于计算机组成
原理课程的实验项目设计中。
这样既充分利用了前导课程的设计成果,又避免了从最基本电路模块重新开始设计的重复性实验,使得学生能够在有限的实验课时中更高效地完成实验任务。
本文针对目前基于固定信息传输通路硬件实验箱平台所存在的局限性,提出一种基
于基本IP核功能模块及EDA工具软件的计算机组成原理实验设计方法。
学生可以在开放式的硬件设计平台上,根据不同的实验目的灵活选择或设计相应IP核,并
根据工作原理建立IP核模块之间的信息传输通路以构成更高复杂度的功能部件,
所构建的功能部件可以打包为新的IP核供更高一级电路调用。
以IP核电路模块为基础,学生可以实现计算机各功能部件及整机系统的设计与测试。
1 模型机基本IP核电路结构
根据模型机的结构,实验设计所需要的基本IP核由数据通路IP核功能模块组、控制器IP核功能模块组和时序电路IP核功能模块组组成,如图1所示。
其中用于构建各功能模块组的子功能模块以IP软核的形式提供,IP软核以硬件描述语言描述为主。
IP软核可修改或进行电路功能扩展以适应所设计功能部件的要求。
作为系
统控制部件的控制器与作为执行部件的数据通路之间的信号连接,可根据指令执行过程中控制部件对执行部件的驱动关系,由学生在理解计算机硬件工作原理的基础上,在EDA工具平台上自主设计连接、仿真测试以及最终的芯片编程下载。
图1 模型机IP核电路结构
其中数据通路IP核功能模块组包含计算机执行部件所需的基本IP核单元模块,包括算术逻辑单元(ALU)IP核、通用寄存器组IP核、暂存器IP核、存储器IP核、存储器地址寄存器IP核、存储器数据寄存器IP核、三态门电路IP核等。
控制器可以采用硬布线或微程序控制方式产生控制信号,相比于硬布线方式,微程序控制器将操作控制信号以微指令方式编码,存放在控制存储器中,在设计及硬件功能扩充维护方面更加灵活方便。
微程序控制器IP核功能模块组由程序计数器(PC)IP核、指令寄存器(IR)IP核、控制存储器IP核、微指令寄存器IP核、
地址转移逻辑IP核等组成。
2 以IP核为基础的实验项目设计
根据计算机的硬件组成并体现循序渐进的实验设计思想,将计算机组成原理的实验
项目分解为运算器组成、存储器组成、数据通路组成、微程序控制器组成及模型机整机电路实验。
实验项目中所涉及到的IP核电路模块如表1所示。
表1 实验项目与所用到的基本IP核模块1.运算器组成算术逻辑单元(ALU)IP 核、通用寄存器组IP核、暂存器IP核、三态门电路IP核等2.存储器组成存储器IP核、存储器地址寄存器IP核、存储器数据寄存器IP核等3.数据通路组成运算
器功能部件与存储器功能部件(实验项目1和2的组合)4.微程序控制器组成时
序电路IP核、程序计数器(PC)IP核、指令寄存器IP核、控制存储器IP核、微指令寄存器IP核、地址转移逻辑IP核等5.模型机整机实验以上模块的组合
3 一种基于IP核的双总线结构模型机设计
下面以一个8位模型机为例说明以IP核电路为基础的硬件系统设计过程。
规定指
令字长为8位,指令的基本格式为:操作码(4位)|目的操作数地址(2位)|源操作数地址(2位),操作数采用寄存器直接寻址和寄存器间接寻址方式。
模型机的指令系统如表2所示,包含8条基本指令,分别实现数据传送类、数据运算类,数据存储及程序控制等功能。
表2 模型机指令系统加法 ADD Rd,Rs Rd +Rs→Rd 0000 RdRs减法 SUB Rd,Rs Rd -Rs→Rd 0001 RdRs逻辑与 AND Rd,Rs Rd &Rs→Rd 0010 RdRs传
送 MOV Rd,Rs Rs→Rd 0011 RdRs取数 LAD Rd,[Rs][Rs]→Rd 0100 RdRs存数 STO Rs,[Rd]Rd→[Rs]0101 RdRs输出OUT Rs Rs→DBUS 0110∗∗Rs条件转移 JC R1 若C=1,则R1→PC 011101∗∗
3.1 一种双总线结构模型机数据通路
根据所要实现的指令系统功能,选择或设计相应IP核电路模块并构建一种双总线
结构模型机整机电路,如图2所示。
模型机由时序电路、数据通路和控制器三大
功能模块组组成,控制器通过操作控制信号实施对数据通路的控制操作,为便于不同架构模型机的尝试与改进,采用微程序控制[9-10]方式,当数据通路改变时
只需控制存储器电路的少量变动即可快速适应整机电路的变化。
各IP核模块通过
控制信号实现与总线之间的信息发送与接收,借助A总线和B总线,控制和数据
信息可以在模型机各功能模块之间正常有序流动。
图2 一种基于IP核的双总线模型机结构
基于该电路,分析指令系统中各条指令的指令周期流程图,并根据指令执行过程中所需要的操作控制信号设计微指令。
采用水平型微指令格式,由微操作码和微地址码字段组成,微指令格式定义如图3所示。
微操作码部分与数据通路的操作控制
信号相对应,其中微命令{35..20}属运算器数据通路操作控制信号;{19..10}属存储器操作控制信号;{9..6}是判别测试位,用断定方式产生下一条微指令地址;{5..0}是微地址码字段。
图3 微指令格式
下面以ADD指令为例,说明指令在图2模型机中的信息流动过程。
根据图2模型机数据通路,ADD R3,R0,(指令二进制编码:00001100,功能:R3与R0寄存器内容相加,结果送R3)指令的指令周期流程图及对应的微指令如图4所示。
流程图中Rd=R3,Rs=R0。
在 EDA 工具软件[11-12]平台 QUARTUS 上用基本IP核模块分别构建运算
器和存储器数据通路功能模块组,再根据执行部件功能模块组所需的操作控制信号设计微程序控制器功能模块组,模型机顶层文件的RTL电路如图5所示。
图4 指令周期流程图与对应的微指令
图5 QUARTUS平台上的模型机RTL电路图
首先利用控制台指令将05H和04H分别写入R0和R3寄存器,微指令控制下ADD指令的执行过程如图6所示。
图6中,uA[5..0]表示控制单元地址,控存01,02,03单元所对应的三条微指令实现取指,当三条微指令执行完毕,指令寄存器输出端口IRout[7..0]输出与程序计数器PC(PC设为00H)内容相对应的
机器指令0CH(00001100B),经译码识别出ADD指令,转入ADD指令执行周期的微程序入口地址(20H),微地址20H(微指令018000021H,所对应的操作控制信号 Alu_func=”000",LDDR1=1,LDDR2=1)和 21H 所对应的微指令(020900000H,所对应的操作控制信号 Aluout=1,G=1,Rdin=1)实现指令执行功能,即实现((R3)+(R0)→R3),当指令执行完毕,R3寄存器的内容被修改为09H,此时B总线BBUS[7..0]为09H;切换操作控制开关至011状态,可以用微指令查看四个寄存器的内容,06控存单元的微指令
AC0000000H实现输出R2和R3寄存器的内容,寄存器号由rq指示,可以看到此时寄存器R3(通过BB[7..0]端口输出)的内容为09H,说明在微程序控制器的控制下指令得以正确执行。
图6 微指令控制下ADD指令的执行过程仿真波形图
3.2 一种取指周期改进的模型机数据通路
以IP核为基础的电路结构修改扩充方便,新的电路模型可以快速获得。
图7是为了提高取指速度而将存放数据与存放指令的存储器分开后的改进型双总线结构模型机。
图7中数据存储器U7用于数据存储与读写;指令存储器U10用于指令存储与读取;图8是改进后模型机RTL电路,可以看出数据存储器和指令存储器分别对应不同的信息传输通路,改善了取指周期。
图7 一种基于IP核的双总线模型机改进结构
图8 改进后模型机RTL电路
针对图7模型机电路结构,适应电路结构的改变,微指令格式改进如图9所示。
其中{35..20}是与运算器数据通路有关的操作控制信号;{19..15}是与数据存储器数据通路有关的操作控制信号;{14..10}是与指令存储器数据通路有关的操作控制信号;{9..6}是判别测试字段;{5..0}是微地址码字段。
图9 微指令格式定义
ADD指令周期流程图改进如图10所示,由于在程序计数器与用于存储机器指令
的指令存储器之间建立了专用信息传输路径,只要两个机器周期即可实现指令的取指过程,与图2的模型机电路结构相比,可以减少一个机器周期,从而具有更高
的指令执行效率。
指令执行仿真结果如图11所示。
图10 指令周期流程图
首先利用控制台指令将06H写入R0寄存器;03H写入R3寄存器;当启动指令
执行时,操作控制开关处000工作状态,只需用控存01,02单元所对应的两条
微指令即可完成从指令存储器取指,从输出端口IRout[7..0]可以看到此时取出
与程序计数器PC(PC设为00H)内容相对应的机器指令0CH(00001100B),而微地址20H和21H所对应的微指令实现指令执行功能,即((R3)+(R0)
→R3),当指令执行完毕,R3寄存器的内容被修改为09H,此时B总线BBUS [7..0]为09H;切换操作控制开关信号为011,用微指令查看四个寄存器的内容,可以看到此时寄存器R3(通过BB[7..0]端口输出)的内容为09H,说明指令在改进后的电路中仍可正确执行。
在仿真测试成功的基础上再将以上设计下载到
FP⁃GA/CPLD芯片即得到模型机的芯片级实现。
图11 微指令控制下ADD指令的执行过程仿真波形图
因此,基于IP核和EDA工具平台,学生可以灵活尝试或改进计算机硬件系统的各种结构,从而真正从设计的层次上理解计算机系统的硬件组成和工作原理,主观能动性得到充分发挥,并为计算机硬件结构的进一步深入设计打下良好基础。
4 结语
提出一种基于IP软核架构的开放式计算机组成原理实验设计方法,可以通过IP核电路模块的合理调用与连接、或进行功能扩展,探索尝试不同的计算机硬件结构与信息传输通路设计;在IP核模块基础上所构建的系统可通过仿真或综合适配后下
载至可编程芯片进行功能验证,从多角度展现信息传输的基本过程;前导课程的设
计成果可以得到有效充分利用,实现各门课程知识的融会贯通,通过设计过程的参与,有效地培养了学生动手实践能力与创新设计能力。
参考文献(References):
[1]张磊,郑榕,田军峰.计算机组成原理理论实验教学无缝结合的新方法[J].实验室研究与探索,2013(5):168-172.
[2]唐朔飞,刘旭东,王诚,等.“计算机组成原理”课程教学实施方案[J].中国大学教学,2010(11):42-45.
[3]张雯雰,肖娟,刘华艳,等.计算机组成原理虚拟实验系统的设计与实现[J].实验室研究与探索,2014(5):62-66.
[4]王建新,张丽媛,盛羽,等.基于组件的计算机组成原理虚拟实验室的设计与实现[J].系统仿真学报,2008(9):2469-2474.
[5]汤书森,马义德.现代计算机组成原理课程特点与实验教学新模式探索[J].高等理科教育,2012(1):146-149.
[6]戚梅,张鹏.EDA技术在《计算机组成原理》实验教学中的应用[J].电子设计工程,2011(17):1-3.
[7]李丽萍,盛琳阳.基于EDA技术的计算机组成原理实验课开放性教学模式研究[J].计算机教育,2010(10):55-57.
[8]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2013:1-24. [9]白中英,戴志涛.计算机组成原理[M].5版.北京:科学出版社,2013:139-165.
[10]潘松,潘明.现代计算机组成原理[M].北京:科学出版社,2007:173-182.
[11]李丽萍,盛琳阳.基于EDA技术的计算机组成原理实验课开放性教学模式研究[J].计算机教育,2010(10):55-57.
[12]徐爱萍,张玉萍,涂国庆.基于VHDL之CPU设计与实践[J].实验室研究与探索,2014(5):120-124.。