CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

姜老师带你设计CPU之9

已有 3391 次阅读 2014-8-5 05:49 |个人分类:计算机科普|系统分类:科普集锦| CPU设计

 

4.
计数器设计

计算机中的程序计数器和各种指针都属于计数器。计数器本质上是加减法运算器和寄存器的结合体。计数器最基本的是加1和减1功能,并且带有置数或清零功能。

4.1.  计数单元设计

一位数计数器叫计数单元,其结构如4‑1所示。计数单元由一位寄存器、加减法运算单元和两个二选一电路构成。

4‑1  计数单元结构

加减单元在此标注名称不同,ci是下进位,co是上进位,sub是加减法控制线,ab是输入二数,s是加减运算本位。一位寄存器使用clr低电位有效初始化。二选一电路如4‑2所示。k=1q=x;而k=0q=y。二选一电路封装起来是xz

 

4‑2  二选一电路

4‑1中连接两个二选一电路的作用是解决外部数据输入和内部数据加一或减一计算的处理。左面一个xz的控制端we=1,则选择外部输入数据d,只要右部xzsele=1,那么外部数据就会进入一位寄存器保存。否则,we=0sele=1,那么就是加减单元计算的结果保存在一位寄存器中。当在sele=0时,寄存器的q值反馈保持,前端计算的结果或外部数据都不能进入寄存器。初始化时,clr瞬间为0,使寄存器的初值为0,此后clr一直保持1状态。

4.2.  计数器设计

将计数单元的电路封装起来(见4‑3),起名叫jshdy。将4jshdy4‑3所示连接起来,就得到了一个4位的计数器。最低进位与sub连接,最低b端连接高电位vcc,保持值为1。其余b端都连在一起接地GND,保持0值。这样当sub=0时,加减法运算器的b端值是1ci=0,所以是做q[3..0]+0001;而当sub=1时,就是做q[3..0]-0001的计算。

4‑3  4位计数器设计

这个4位计数器的输入是d[3..0],输出是q[3..0],向上进位是co4位计数器的计数范围是015

4.3.  程序计数器

程序计数器要增量顺序选中程序存储器的地址,因而是只做加法的计数器。只要将4‑3sub端接地,也就是让它总为0,那么得到的就是一个程序计数器。

4.4.  堆栈与堆栈指针

堆栈是一段存储器,犹如往箱子里面放东西,后放进去的时间,需要先拿出来。如果堆栈与数据组织在同一存储器中,指示要存放数据位置的堆栈指针的初始值一般要最大,这样担当堆栈指针的计数器,4‑3的初始化线要连到寄存器的置位端。

 



https://blog.sciencenet.cn/blog-340399-817155.html

上一篇:姜老师带你设计CPU之8
下一篇:姜老师带你设计CPU之10
收藏 IP: 221.222.73.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 07:26

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部