基于pspice的十六位二进制同步计数器.docx
《基于pspice的十六位二进制同步计数器.docx》由会员分享,可在线阅读,更多相关《基于pspice的十六位二进制同步计数器.docx(17页珍藏版)》请在冰豆网上搜索。
基于pspice的十六位二进制同步计数器
EDA课程考试报告
题目:
同步十六位二进制计数器
专业:
电子信息科学与技术
班级:
11电科(专升本)
姓名:
陈泓宇
学号:
11P110657000041
时间:
2012-6-8
一.总体设计思路:
此次设计首先是考虑到了利用JK触发器的分频特性来对脉冲计数。
起初是由三位二进制加法器的原理联想到扩展到更多的位数。
首先在我们谈到的很多计数器当中,如单片机的时钟脉冲等等,都会用到十六位以及三十二位。
所以考虑到仿真实验十六位的计数电路。
该电路首先是在同步二进制的计数原理上加以门电路来实现74LS161的芯片对四位二进制的计数功能,然后利用74LS161芯片级联来实现十六位二进制的计数功能。
二.系统总的框图结构:
1.首先是同步三位加法计数器的原理框图:
2利用同步计数器的原理,加以门电路来合成74LS161芯片:
3.74LS161级联图:
三.各模块的结构及功能分析:
1.同步三位二进制加法计数器计数器:
同步三位二进制的真值表:
脉冲个数
Q2[n]:
初态
Q1[n]
Q0[n]
Q2[n+1]:
次态
Q1[n+1]
Q0[n+1]
1
0
0
0
0
0
1
2
0
0
1
0
1
0
3
0
1
0
0
1
1
4
0
1
1
1
0
0
5
1
0
0
1
0
1
6
1
0
1
1
1
0
7
1
1
0
1
1
1
8
1
1
1
0
0
0
由于JK触发器都有不定状态的影响,所以这当中均使用的是带有预置使能端的JK触发器。
这个预置断同时也是清零端,使各触发器的初态为均为0.
分析:
1).由结构图可知:
Q2[n]=Q1[n+1].Q0[n+1]————[.为逻辑与]
2).由三个JK触发器的输出端时序波形来作为脉冲的计数显示端口,达到计数的功能。
3).仿真的时序波形图:
该处的参数设置是:
仿真时间0---1us。
由时序波形图:
Q2Q1Q0对应cp脉冲的个数的二进制,所以用JK触发器的输出端来表示计数的个数的二进制。
该仿真的输出文本文件outputprofile如下:
**Creatingcircuitfile"sanweierjinzhijishu-SCHEMATIC1-CHY.sim.cir"
**WARNING:
THISAUTOMATICALLYGENERATEDFILEMAYBEOVERWRITTENBYSUBSEQUENTSIMULATIONS
*Libraries:
*LocalLibraries:
*From[PSPICENETLIST]sectionofd:
\ProgramFiles\Orcad\PSpice\PSpice.inifile:
.lib"nom.lib"
*Analysisdirectives:
.TRAN01us0
.PROBEV(*)I(*)W(*)D(*)NOISE(*)
.INC".\sanweierjinzhijishu-SCHEMATIC"
****INCLUDINGsanweierjinzhijishu-SCHEMATIC****
*sourceSANWEIERJINZHIJISHU
X_U1$D_HICLK$D_HICLEARQ0M_UN0001$G_DPWR$G_DGNDJKFFR
X_U2Q0CLKQ0CLEARQ1M_UN0002$G_DPWR$G_DGNDJKFFR
X_U3N00838CLKN00838CLEARQ2M_UN0003$G_DPWR$G_DGNDJKFFR
U_DSTM1STIM(1,1)$G_DPWR$G_DGNDCLEARIO_STMIO_LEVEL=0
+00
++.03uS1
+REPEATFOREVER
++.98uS0
++.03uS1
+ENDREPEAT
U_DSTM2STIM(1,1)$G_DPWR$G_DGNDCLKIO_STMIO_LEVEL=0
+00
++.02uS1
+REPEATFOREVER【时钟周期为0.04us,高低电平各为0.02us】
++.02uS0
++.02uS1
+ENDREPEAT
X_U4Q1Q0N00838$G_DPWR$G_DGNDAND2
****RESUMINGsanweierjinzhijishu-SCHEMATIC1-CHY.sim.cir****
.END
****06/19/1213:
37:
03*********PSpice9.2(Mar2000)********ID#1********
**Profile:
"SCHEMATIC1-CHY"[C:
\sanweierjinzhijishu-SCHEMATIC1-CHY.sim]
****DigitalGateMODELPARAMETERS
2关于74LS161芯片的各模块结构及功能:
74LS161芯片的外引脚
74LS161芯片
74ls161计数时的外部引脚连接图
同步四位二进制74LS161的计数真值表:
74LS161的计数功能真值表:
CP
ENTENPABCD
QDQCQBQA
×0×××××××
0000
↓×0××abcd
dcba
×110×××××
保持
×11×0××××
保持,但RCO=0
↓1111××××
计数
此功能在74LS161级联构成十六位二进制的计数时,利用了ENT和ENP两个端口的功能,在ENP=1的情况下利用ENT为0时保持,为1时启动计数有所体现。
由门电路及JK触发器共同集成的74LS161的结构图:
如图:
利用JK触发器的使能端口R来作为总的清零端。
ENT与ENP共同为1是计数,ENP为0时进位直接为0。
此功能在芯片级联扩展时会使用得到。
然后设定各参数之后的时序波形图:
上图有设定LOAD装载功能:
在进位为1后,即达到最大计量范围后,若LOAD低电平有效时,输出端装载输入端A,B,C,D上的数据。
其输出文本文件:
**Creatingcircuitfile"shiyan1-schematic1-chy.sim.cir"
**WARNING:
THISAUTOMATICALLYGENERATEDFILEMAYBEOVERWRITTENBYSUBSEQUENTSIMULATIONS
*Libraries:
*LocalLibraries:
*From[PSPICENETLIST]sectionofd:
\ProgramFiles\Orcad\PSpice\PSpice.inifile:
.lib"nom.lib"
*Analysisdirectives:
.TRAN060us01u
.PROBEV(*)I(*)W(*)D(*)NOISE(*)
.INC".\shiyan1-SCHEMATIC"
****INCLUDINGshiyan1-SCHEMATIC****
*sourceSHIYAN1
X_U1N01616CPN01723CLEARQ0M_UN0001$G_DPWR$G_DGNDJKFFR
X_U39N02385N04249N01905$G_DPWR$G_DGNDAND2
X_U30ENPENPN06661$G_DPWR$G_DGNDAND2
X_U65$D_HIN05458N04018$G_DPWR$G_DGNDNAN2
X_U63N08026N05458N02591$G_DPWR$G_DGNDOR2
X_U56N06661Q0N07905$G_DPWR$G_DGNDAND2
X_U2N01795CPN01905CLEARQ1M_UN0002$G_DPWR$G_DGNDJKFFR
X_U68N05458N04680N05018$G_DPWR$G_DGNDNAN2
X_U60N06661N05458N02630$G_DPWR$G_DGNDOR2
X_U40N05018N02489N05089$G_DPWR$G_DGNDAND2
X_U71$D_HIN05458N04630$G_DPWR$G_DGNDNAN2
U_DSTM1STIM(1,1)$G_DPWR$G_DGNDLOADIO_STMIO_LEVEL=0
+01
++35.5uS0
+REPEATFOREVER
++25uS1
++35.5uS0
+ENDREPEAT
X_U66N05458N04249N04274$G_DPWR$G_DGNDNAN2
X_U3N05089CPN02096CLEARQ2M_UN0003$G_DPWR$G_DGNDJKFFR
X_U57N06661Q0Q1N07944$G_DPWR$G_DGNDAND3
U_DSTM2STIM(1,1)$G_DPWR$G_DGNDCPIO_STMIO_LEVEL=0
+00
++1uS1
+REPEATFOREVER
++1uS0
++1uS1
+ENDREPEAT
X_U59ALOADN05458$G_DPWR$G_DGND7404PARAMS:
+IO_LEVEL=0MNTYMXDLY=0
X_U69$D_HIN05458N04680$G_DPWR$G_DGNDNAN2
X_U41N02489N04680N02096$G_DPWR$G_DGNDAND2
X_U36N04013N02630N01616$G_DPWR$G_DGNDAND2
X_U61N07905N05458N02385$G_DPWR$G_DGNDOR2
U_DSTM3STIM(1,1)$G_DPWR$G_DGNDCLEARIO_STMIO_LEVEL=0
+00
++3uS1
+REPEATFOREVER
++59uS0
++3uS1
+ENDREPEAT
X_U4N02192CPN02308CLEARQ3M_UN0004$G_DPWR$G_DGNDJKFFR
X_U73Q0Q1Q2ENPQ3RCO$G_DPWR$G_DGNDAND5
U_DSTM4STIM(1,1)$G_DPWR$G_DGNDENPIO_STMIO_LEVEL=0
+01
++.5uS1
+REPEATFOREVER
++.5uS1
++.5uS1
+ENDREPEAT
X_U58N06661Q0Q1Q2N08026$G_DPWR$G_DGNDAND4
X_U37N02630N04018N01723$G_DPWR$G_DGNDAND2
X_U67$D_HIN05458N04249$G_DPWR$G_DGNDNAN2
X_U42N05206N02591N02192$G_DPWR$G_DGNDAND2
X_U64N05458N04018N04013$G_DPWR$G_DGNDNAN2
X_U62N07944N05458N02489$G_DPWR$G_DGNDOR2
X_U38N04274N02385N01795$G_DPWR$G_DGNDAND2
X_U70N05458N04630N05206$G_DPWR$G_DGNDNAN2
X_U43N02591N04630N02308$G_DPWR$G_DGNDAND2
****RESUMINGshiyan1-schematic1-chy.sim.cir****
.END
****06/25/1215:
42:
53*********PSpice9.2(Mar2000)********ID#1********
**Profile:
"SCHEMATIC1-CHY"[G:
\\shiyan1-schematic1-chy.sim]
****DigitalGateMODELPARAMETERS
2.利用四个74ls161芯片级联构成同步十六位二进制计数器的结构图:
时序波形图如下:
以上的仿真时间为0—600us,但是只能显示前10位的二进制时序波形,故需要改变横轴的仿真时间取值范围。
所以要在菜单Analysis中修改仿真横轴时间的取值范围,例如增加至0---10000us,相应减小脉冲的周期。
使时序波形图能完整的把16位二进制的时序图表示出来。
上图可知当十六位均为1时,RCO4也为1,显示其最大的计数量程。
上图因脉冲周期过小的关系,后六位的时序不够清晰,单独查看后六位的时序波形有:
在为了得到完整的十六位计数波形时,修改时间范围的同时也应注意其他参数的修改,如CLEAR:
第一次仿真范围是0-600时,设置的高电平清零无效的时间是延迟到600us,但是若修改了横轴取值时间范围时,忘记修改CLEAR信号源的延迟时间范围的话,会造成计数范围缩小,引起结果的失真:
故在设置参数时,应使CLEAR在计数时间均保持高电平无效状态.
该仿真的输出文本outputprofile为:
**Creatingcircuitfile"shiliuwei-SCHEMATIC1-jilian.sim.cir"
**WARNING:
THISAUTOMATICALLYGENERATEDFILEMAYBEOVERWRITTENBYSUBSEQUENTSIMULATIONS
*Libraries:
*LocalLibraries:
*From[PSPICENETLIST]sectionofd:
\ProgramFiles\Orcad\PSpice\PSpice.inifile:
.lib"nom.lib"
*Analysisdirectives:
.TRAN010000us01u
.PROBEV(*)I(*)W(*)D(*)NOISE(*)
.INC".\shiliuwei-SCHEMATIC"
****INCLUDINGshiliuwei-SCHEMATIC****
*sourceSHILIUWEI
X_U1CPTPTPCLEARTPM_UN0001M_UN0002M_UN0003M_UN0004Q0Q1Q2Q3
+N03561$G_DPWR$G_DGND74161PARAMS:
+IO_LEVEL=0MNTYMXDLY=0
U_DSTM1STIM(1,1)$G_DPWR$G_DGNDTPIO_STMIO_LEVEL=0
+01
++.5uS1
+REPEATFOREVER
++.5uS1
++.5uS1
+ENDREPEAT
X_U2CPTPN03561CLEARTPM_UN0005M_UN0006M_UN0007M_UN0008Q4Q5Q6
+Q7N03665$G_DPWR$G_DGND74161PARAMS:
+IO_LEVEL=0MNTYMXDLY=0
U_DSTM2STIM(1,1)$G_DPWR$G_DGNDCPIO_STMIO_LEVEL=0
+00
++.02uS1
+REPEATFOREVER
++.02uS0
++.02uS1
+ENDREPEAT
U_DSTM3STIM(1,1)$G_DPWR$G_DGNDCLEARIO_STMIO_LEVEL=0
+00
++20uS1
+REPEATFOREVER
++9995uS0
++20uS1
+ENDREPEAT
X_U3CPTPN03665CLEARTPM_UN0009M_UN0010M_UN0011M_UN0012Q8Q9
+Q10Q11N01744$G_DPWR$G_DGND74161PARAMS:
+IO_LEVEL=0MNTYMXDLY=0
X_U4CPTPN01744CLEARTPM_UN0013M_UN0014M_UN0015M_UN0016Q12Q13
+Q14Q15N01959$G_DPWR$G_DGND74161PARAMS:
+IO_LEVEL=0MNTYMXDLY=0
****RESUMINGshiliuwei-SCHEMATIC1-jilian.sim.cir****
.END
****06/19/1214:
51:
27*********PSpice9.2(Mar2000)********ID#1********
**Profile:
"SCHEMATIC1-jilian"[C:
\shiliuwei-SCHEMATIC1-jilian.sim]
****DigitalGateMODELPARAMETERS
总结:
这次仿真设计实验是在利用T’触发器的分频特性,同时结合门电路功能来进行计数功能。
因各模块若组合在一起电路图复杂且容易出现错误。
所以分成几个子模块来进行原理剖析。
1.首先利用同步的三位二进制计数原理,初步了解计数功能的具体功能及结构组成。
2同步三位计数器扩展到四位的时候,增加的使能端以及门电路功能都是要考虑到的。
在此功能中,同时设计了利用门电路加以JK触发器合成74LS161芯片的同步计数功能。
该芯片的使能端了解可以方便下一步的级联时能够清晰的级联74LS161芯片。
3.此次仿真实验的目的是十六位计数,我们使用到的芯片是四位的,所以我们首先考虑用最少的芯片个数来级联。
优先考虑由四个74LS161芯片来合成。
且级联过程中一定要考虑到延时的问题。
4.这次实验中不仅了解到JK触发器的扩展应用,同时来学会对各信号源参数设置来改变输入信号,完成不同的应用功能。
例如:
在信号源的设置中:
如果STARTVAL起始电平是0,如下设置的话
这信号源为一个周期为1us的时钟周期。
但是如果STARTVAL起始电平设置为1.则该信号源会一直为1高电平信号所以实验中参数的设置是仿真实验成功不可缺少。