欢迎来到天天文库
浏览记录
ID:7190008
大小:31.40 KB
页数:6页
时间:2018-02-07
《基于自顶向下方法的cpu的 veriloghdl描述》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于自顶向下方法的CPU的VerilogHDL描述 (1.内蒙古科技信息研究所;2.内蒙古大学计算机学院,内蒙古呼和浩特010000) 摘要:文章阐述了八位简单功能CPU的设计过程,其中包括指令集的设计、功能模块的设计,并且给出了每条指令的执行过程。最后用VerilogHDL硬件描述语言对该CPU进行了描述——用MaxPlusⅡ工具进行了代码设计。 关键词:八位CPU设计;VerilogHDL描述;指令集;功能部件 中图分类号:TP334.7文献标识码:A文章编号:1007—6921(XX)16—0201—01
2、 简单的CPU作为数字系统,其设计一般有三种设计方法:自底向上、自顶向下和并行设计方法。①自底向上设计的主要思想是将复杂的系统逐层进行功能块划分和描述功能块的拓扑连接,直到用底层模块或部件来描述。②自顶向下则是从系统的需求出发,逐步将设计内容细化。③并行设计运用自底向上和自顶向下设计方法,它要求设计者开始就考虑产品在整个生命周期的所有因素,包括质量、成本、进度计划和用户需求等。自底向上和并行设计方法有许多的弊端,而自顶向下的方法便于系统级划分和项目的管理,减少了不少不必要的麻烦,提高了设计的成功率。自顶向下的设计方法具体实施时,首
3、先从系统设计入手,进行功能划分和需求分析,给出功能部件的划分。 1指令集设计 指令集是计算机硬件和软件的接口,它直接影响着CPU的结构。一个完整的计算机指令应该能够有效地执行算术操作、逻辑操作、数据存取操作以及程序控制分支操作等。指令应该包含三个部分:操作码、目的操作数地址和源操作数地址。 八位CPU指令集按功能分为算术运算指令、逻辑指令、数据传送指令、比较指令、访存指令、跳转指令、I/O指令和测试指令。 2八位CPU架构设计 八位CPU采用集中式的控制单元,取来的指令经过译码产生控制信号给其他模块使指令运行
4、。文章主要介绍八位CPU的功能模块划分和指令运行的过程。 2.1功能模块的划分 八位CPU由控制器、运算器、指令寄存器、程序计数器、地址寄存器、数据寄存器、启停模块和四个通用寄存器组成。 2.2指令的执行过程 八位CPU共有17条指令。一条指令执行时:①CPU根据指令地址从存储器中读出指令来,传送到指令寄存器,指令寄存器再传给控制器。②控制器根据操作码进行译码,产生相应的控制信号。③执行指令。本文中的八位CPU最多需要六个周期T1~T6执行完一条指令。 3八位CPU的VerilogHDL描述 八位CPU由控
5、制器、运算器、指令寄存器、程序计数器、地址寄存器、数据寄存器、启停模块和四个通用寄存器组成。 3.1运算器 运算器有四个控制信号,分别是ENALU、LEFT、LOADA和LOADB。需要输入操作码opcode[3∶0]决定具体操作。算术左移和算术右移指令的前四位机器码是一样的,不能用opcode[3∶0]来决定进行什么操作,所以在控制器对指令译码的时候如果是左移操作要产生LEFT信号给运算器。LOADA和LOADB是装操作数的信号。 3.2控制器 控制器从指令寄存器读指令进行译码并产生相应的控制信号。SZ是来自运算器
6、的状态位Z,C是状态位C。CLK来自输入,ENACK来自启停模块。Reset输出复位信号给其他部件。JWR是给通用寄存器的寄存器写信号。IO决定是否选外设端口。MEM信号用于选择存储器,WR是写操作信号。RD是读操作信号。LOADA和LOADB送给运算器,作为装入操作数的信号。ENIR使能指令寄存器,ENALU是运算器使能,LEFT作为左移操作控制信号发给运算器,INC作为程序计数器自动加一控制信号。如果需要跳转的话发PCALU给程序计数器,这样把运算器把PC+offset的结果作为程序计数器的值来输入。FETCH是地址存储器。ENP接
7、地址寄存器,地址寄存器输入来自寄存器的数据时用ENP信号。DREN使能数据寄存器。DRIN接数据寄存器的同名引脚,从存储器那里读数据时用这信号。ENA1和ENA2作为通用寄存器的多路选择的使能信号,用来选择源操作数和目的操作数。RS[1:0]源寄存器地址码。送给通用寄存器的多路器1。RED[1:0]目的寄存器地址码。送给通用寄存器的多路器2。 设计控制器的时采用了有限状态机的方法。总结上文描述的指令执行过程及本节的功能模块的设计可以推出每一条指令在每一个状态产生的控制信号了。 4结语 本文主要探讨了用VerilogHD
8、L语言设计一个八位CPU的过程,介绍了指令集的设计、功能部件的划分、VerilogHDL语言描述和功能仿真。在设计过程中使用了Altera公司的MuxplusII开发环境。 本文以17条指令的设计为
此文档下载收益归作者所有