当前位置:文档之家› CMOS异步十进制可逆计数器的优化设计

CMOS异步十进制可逆计数器的优化设计

Keywords:asynchronousmetricationreversiblecountersimulation IChighspeedcounterterritory
目录
一引论1
1.1课题的来源及意义1
1.2计数器简介1
1.3 CMOS集成电路的性能及特点2
二异步十进制可逆计数器原理与设计4
11
10
逻辑表达式
00
1
0
1Hale Waihona Puke 1=011
1
1
1
11
1
1
1
1
10
1
1
1
1
Q1Q0
Q3Q2
00
01
11
10
逻辑表达式
00
1
0
1
1
=
01
1
1
1
1
11
1
0
0
1
10
1
0
0
1
Q1Q0
Q3Q2
00
01
11
10
逻辑表达式
00
1
0
0
1
=
01
1
1
0
1
11
1
1
1
1
10
1
0
0
1
Q1Q0
Q3Q2
00
01
11
10
逻辑表达式
00
1
题目:基于李码的模9递减计数器
CMOS异步十进制可逆计数器的设计与优化
摘要
详细论述了一个CMOS异步十进制可逆计数器的原理和设计过程,以及仿真结果。本电路的逻辑部分通过软件MAXPLUS2设计仿真验证正确后,再通过集成电路设计软件CANDENCE在给定的0.5μmCMOS工艺下,设计出一个高速计数器,具有加法和减法计数的功能,并且可以一键切换,该电路同时具有一键清零的功能。该设计更加简化可逆十进制的逻辑,可以省去更多电路,对于设计更为复杂的集成电路可以直接使用,提供了方便。通过实验得出了NMOS和PMOS的最优化宽长比,当MOS管为最优宽长比时,通过波形分析,得出上升时间为3.5 ns,下降时间为2.5 ns,从而提高了该计数器的计数频率,该计数器的最高频率为166MHz,并通过优化设计,提高了电路工作的稳定性。附录是异步十进制可逆计数器的SPICE语言的程序。
2.1异步可逆计数器是由异步加法计数器和异步减法计数器的组合4
2.2异步十进制计数器的设计难点4
2.3选择时钟脉冲的原则4
2.4异步十进制加法计数器4
2.5异步减法十进制计数器5
2.6异步十进制可逆计数器7
三CANDENCE概述10
3.1CANDENCE集成电路设计软件简介10
3.2CANDENCE工具设计流程图10
由上表可知,本发明的制约竞争计数码的显著特点是对计数方式加以约束,每次计数只允许1bit发生变化(零竞争),从根本上限制了多位同时变化有可能带来的数据的不确定性。此制约竞争码的B2、B3序列可以从B0、B1序列移位得到,且B0的低8位01111111取反后就是其对应的高8位10000000,B1的低8位00011100取反后就是其对应的高8位11100011,B0、B1、B2、B3构成的编码具有固定的顺序关系,适合运用循环移位特征序列的方式来实现计数,由B0、B1序列的低8位构造了两组特征序列,并由特征序列得到完整编码。本编码特征序列表示为B0=01111111,B1=00011100,8位特征序列从左到右分别按照第0位到第7位的从低位到高位的排列。复位后,B0=01111111,B1=00011100,对应计数码0,若需要递增计数,则经倒相器循环左移5次后,B0=11110000,B1=10011100,则取反B1[4]=0,取反B0[4]=1,取B1[0]=1,取B0[0]=1,构成制约竞争计数码0111,对应于计数码5。若再要递增计数一次,则经倒相器循环左移1次后,B0=111000000,B1=00111000,则取反B1[4]=0,取反B0[4]=1,取B1[0]=0,取B0[0]=1,构成制约竞争计数码0101,对应于计数码6。复位后,对应计数码0,若需要递减计数,则循环右移5次后,B0=00000001,B1=00011000,则取反B1[4]=0,取反B0[4]=1,取B1[0]=0,取B0[0]=0,构成制约竞争计数码0100,对应于计数码B。若再要递减计数一次,则循环右移1次后,B0=00000000,B1=10001100,则取反B1[4]=0,取反B0[4]=1,取B1[0]=1,取B0[0]=0,构成制约竞争计数码0110,对应于计数码A。
如下图:
1.2.2李码的编码原理
首先构造一组制约竞争编码,其次根据计数码的特点,构造其特征序列,以此可以简化电路的设计,所以,一种制约竞争计数码,从高位到低位的排列为bit3 bit2 bit1 bit0,构成十六进制数0~F的循环计数,从0~F的bit0序列为[bit0]={0111,1111,1000,0000}(以下简称B0),bit1序列为[bit1]={0001,1100,1110,0011}(以下简称B1),bit2序列由bit0按0~F顺序循环下移4位构成[bit2]={0000,0111,1111,1000}(以下简称B2),bit3序列由bit1按0~F顺序循环下移4位构成[bit3]={0011,0001,1100,1110}(以下简称B3)。制约竞争计数码与8421码的比较如下表所示:
现输出值
下一个输出值
现需输入值
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
2
0
1
0
1
0
1
1
1
0
1
1
1
3
0
1
1
1
0
0
1
1
0
0
1
1
4
0
0
1
1
1
0
1
1
1
0
1
1
5
1
0
1
1
1
0
0
1
1
0
0
1
6
1
0
0
1
0
0
0
1
0
0
0
1
7
0
0
0
1
0
0
0
0
0
0
0
0
8
0
0
0
0
1
1
1
1
1
1
1
1
卡诺图化简:
Q1Q0
Q3Q2
00
01
0
1
1
=
01
1
0
0
1
11
1
0
1
1
10
1
0
1
1
⑶带置1的D触发器的实现
根据所学的《数字集成电路》,D触发器可由两个Dlatch组成,置位功能可以通过或非门实现。
上述制约竞争计数码与格雷码的比较如下表所示:
1.2.3李码的优点
由上述制约竞争计数码与格雷码的比较结果可知,制约竞争计数码由B0和B1两个基本序列构成,B2、B3分别是B0、B1取反循环下移4位形成的,为从前面的实例中,可以看出这个特点非常适合实现计数方式的编码。本发明的制约竞争计数码既具有制约竞争编码的特点,即每次只允许一位数据发生变化,同时又具有适合计数方式的编码结构,可以采用特征序列的循环移位实现递增和递减的计数。
1.3本课题的分析
⑴基于李码的理解
就是使D触发器的输出是李码的形式,而不是普通的8421码,当然如果要使仿真结果比较容易观察的话,可以在后面加一个译码电路将李码转化为普通的8421码。
⑵模9和递减功能的实现
因为李码一个循环是模16的计数器,要实现模9和递减功能可以在里面选取9个状态作为本课题的计数范围,我选取的是1111,1101,0101,0111,0011,1011,1001,0001,0000这9个状态,所以我要做的工作是一开始有一个置位信号S使4个D触发器都为1,然后利用卡诺图的化简使这9个状态按照我选择的顺序执行下去,同时为了防止电路跳到其余7个无效状态中去,在卡诺图化简过程中必须将其余7个状态跳转到这个9个状态中去,为了方便化简我默认将其余7个状态全部跳转到1111。如下表所示:
现有技术中的格雷码,主要是一种制约竞争编码,约束了每个码字之间每次只允许一位发生变化,但是,由于格雷码不是一种权重码,在用于计数时,很不方便,没有规律性,即缺乏特征序列。若用于计数,对四个序列均要设置相应的寄存器,所以实现的电路比较复杂。
李冰老师发明的李码目的在于解决上述问题,提供一种反相移位方式的制约竞争计数码电路,它能够限制两个相邻编码组之间转换时两位以上的数据跳变,提高数据的可靠性。1.2李码的介绍[2]
四利用CANDENCE工具编辑可逆十进制电路11
4.1用CANDENCE软件设计异步十进制可逆计数器的逻辑电路图11
4.2模拟仿真14
五相应计算及优化16
5.1计算NMOS和PMOS的最优宽长比16
5.2进行瞬态分析16
5.3分析电路图16
5.4频率计算17
谢辞18
参考文献19
附录20
一引论
1.1课题的来源及意义
1.2.1李码的技术方案
一种反相移位方式的制约竞争计数码电路,包含8位移位寄存器A、8位移位寄存器B、4位码输出寄存器C、初始化预置开关D、初始化预置开关E,倒相器F、G,移位寄存器A的最高位和最低位通过倒相器F首尾相接,移位寄存器B的最高位和最低位通过倒相器G首尾相接,脉冲输入信号分别接移位寄存器A和移位寄存器B的CLK移位控制端口,移位寄存器A被初始化预置开关D预置为固定的特征序列01111111,移位寄存器B被初始化预置开关E预置为固定的特征序列00011100,移位寄存器A的并行输出最高端通过倒相器F接其串行输入端,移位寄存器B的并行输出最高端通过倒相器G接其串行输入端,移位寄存器B并行输出的由低到高的第4位和码输出寄存器C的数据最高输入位d3连接,移位寄存器A并行输出的由低位到高位的第4位和码输出寄存器C的数据次低位d2连接,移位寄存器B并行输出的由低位到高位的第0位和码输出寄存器C的数据次高位d1连接,移位寄存器A并行输出的由低位到高位的第0位和码输出寄存器C的数据最低位d0连接,由码输出寄存器C的输出控制端控制输出由高位d3到低位d0的4位制约竞争计数码。
相关主题