|||
计算机中的程序计数器和各种指针都属于计数器。计数器本质上是加减法运算器和寄存器的结合体。计数器最基本的是加1和减1功能,并且带有置数或清零功能。
4.1. 计数单元设计一位数计数器叫计数单元,其结构如图4‑1所示。计数单元由一位寄存器、加减法运算单元和两个二选一电路构成。
图4‑1 计数单元结构
加减单元在此标注名称不同,ci是下进位,co是上进位,sub是加减法控制线,a、b是输入二数,s是加减运算本位。一位寄存器使用clr低电位有效初始化。二选一电路如图4‑2所示。k=1则q=x;而k=0则q=y。二选一电路封装起来是xz。
图4‑2 二选一电路
图4‑1中连接两个二选一电路的作用是解决外部数据输入和内部数据加一或减一计算的处理。左面一个xz的控制端we=1,则选择外部输入数据d,只要右部xz的sele=1,那么外部数据就会进入一位寄存器保存。否则,we=0且sele=1,那么就是加减单元计算的结果保存在一位寄存器中。当在sele=0时,寄存器的q值反馈保持,前端计算的结果或外部数据都不能进入寄存器。初始化时,clr瞬间为0,使寄存器的初值为0,此后clr一直保持1状态。
4.2. 计数器设计将计数单元的电路封装起来(见图4‑3),起名叫jshdy。将4个jshdy如图4‑3所示连接起来,就得到了一个4位的计数器。最低进位与sub连接,最低b端连接高电位vcc,保持值为1。其余b端都连在一起接地GND,保持0值。这样当sub=0时,加减法运算器的b端值是1,ci=0,所以是做q[3..0]+0001;而当sub=1时,就是做q[3..0]-0001的计算。
图4‑3 4位计数器设计
这个4位计数器的输入是d[3..0],输出是q[3..0],向上进位是co。4位计数器的计数范围是0~15。
4.3. 程序计数器程序计数器要增量顺序选中程序存储器的地址,因而是只做加法的计数器。只要将图4‑3的sub端接地,也就是让它总为0,那么得到的就是一个程序计数器。
4.4. 堆栈与堆栈指针堆栈是一段存储器,犹如往箱子里面放东西,后放进去的时间,需要先拿出来。如果堆栈与数据组织在同一存储器中,指示要存放数据位置的堆栈指针的初始值一般要最大,这样担当堆栈指针的计数器,图4‑3的初始化线要连到寄存器的置位端。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-21 23:04
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社