—Simulation
Toolname-j
r口rm^;
厂rrtnp.^ctionELionahc吕b二临已『CQuipitlio:
-TirrrgAnalyag
Toalname-jdJone、
厂akj?
忙曲iMtonri'icaib弍Z-uippMiDn
图4是否需要其他EDA工具
(5)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击
Finish,工程创建向导将生成一个工程,在窗口左侧显示出设备型号和该工程的
基本信息等;
糾nAemii
CHnrv
图5创建工程的各属性总结
3.1.2VHDL源程序libraryIEEE;
useIEEE.STD_LOGIC_1164.ALL;
useIEEE.STD_LOGIC_UNSIGNED.ALL;
entitywqis
port(CP,r:
instd_logic;
q:
outstd_logic_vector(3downto0));endwq;
architecturebehavioralofwqis
signalcount:
std_logic_vector(3downto0);
begin
process(cp,r)
begin
ifr='0'thencountv="1111";
elsifcp'eventandcp='1'thenifcount="1011"then
countv="1000";
elsecount<=count-1;ifcount="0000"thencountv="1111";
elsecount<=count-1;
endif;
endif;
endif;
endprocess;
q<=count;
endbehavioral;
3.1.3波形仿真
VHDLFile,
(1)点击File->New创建一个设计文件,选择设计文件的类型为
如图6;
J-ITS--'E1P
3a■:
*■5他0t.©喩心u
图6创建设计文件
M4JM
图7编辑程序
(3)点击Processing->StartCompilation编译该文件,系统将开始编译,结束后,
给出提示信息和编译结果,如图8所示;
J_
MM
h和■旺wA3“峠|U|k*吨k'旳IEI|\、沁F区ACJ^杠"flkzd5«悴《碱13LwFHaiu^DdHI-创±1|l.“
Rrhkti.piT»Fl
图9建立时序仿真文件
(6)出现的界面中,在Name空白处击右键,InserttInsertNodeorBus单击
*0■■■•■O・]]
,再单击MTOQOK并对其进行仿真,如图10
NodeFinder...亠
,单击所示;
Qgurhn.L-r/wq^^-g-p^wkmi]jvwPl
"0柝・EditMmRijvctA■■可ETHrti*»«■■书FodiVlh^vl-kdpIjQd口OdF
•|WH
耳阿尹华好心二"弋畑BO*辔谕心U
Ehlnr
lllZAEn
矗:
pJ—
1二・•范
4ni
r
h
rrd
T14«
Tulff
hZ-r・^p»fLLfah・i4
V"'■►la■ASpvllBBIL
#申・ril'-irfrJ-Ki4lolfJ
丿Jj-►UMihu1J.bJC.学
V申1・^LnijcAmIti-i
七klUhcLinBm"•T>xr.h-mgr.hru
H-」!
r
RA
4Ll>
?
mBQM
W9m
W9ml«3仃
|W3仃
1唧TT
i«3"1
英规
iHri
npu
制1
J
D
CH
CT
AD
EH
IQq
hM
M
^^3
nr
AD
■»
—
KP-
■1
h
P
4
■1
—1
p
31DH.
Hniu
Mnw
]dE>:
LDdflsJl^Llvie*e&E.g小Jt^dLujlDCPCrtd-4E-||4
H*EC_ur:
CmciAdEHad>crDcr"g|L^dLUjlCtt^CUd.illmt4thiO-■止hEE_ur:
CmciAdEHad>■:
rt^^r"gfJ
:
川:
工a沁黑4二1-CuLtd.
*EuL*d.
-CuLtd.
・EuLkJ.
b^Lxciudh^jibtwa
HE
lUEHEUE
Iddd-jCH.UlBTEKl.Uiitiltil,UlHEKl.
PCrtd-4E
HodlUE
4E
HollUE
Mb-qU|-UHM,imii,burSIH■q[3|■ZEi3jf■laari.wlurt-qUi-U.etM»tiltli,bjraui・q[!
l|・&1"3丫ua-Ri■
貝Up»im&EaMaPmhC加Ir^kmg扎7",h占t™k2iHi>gd牡比t
j到到
■门
图10仿真
(7)仿真结果,如图11所示;
(8)仿真后存盘
3.1.4引脚锁定与下载
各引脚的锁定如表1所示:
信号名称
引脚
cp
28
q3
101
q2
100
q1
99
qO
98
r
53
表1锁引脚
引脚的锁定和下载分别如图12和图13所示:
FiltEdit
FudiSwu-
1Oncm
lALltbl
I担EM
1]瘁Lb^d1
ntwv*d
1亠
]
■*CP
|riM
PJM_SS
]
flljll
ix5-vLmtefcwo
3
<*才可
RDCK
4
Bd_Ni
I生*¥Umt缺faJ勺j
3
a朝
PTh_»
斗
B4_N1
3.3-^LVTn啊Mjq』
呛.41
斗
*q[l]
P」M_Kn
+
qE^iXi
斗
41
X亠T
ni
amh-iH
J.
]
□JUH
1IM1irm盅
e"Al*
1
:
MwnndF
g:
[SisJ
mgE*XjJIFIN.墊
[NUMI
iFarH呻口,pmsFl
图12锁引脚
mPni(r«s:
Mode|jTAe
厂Er-stfcimJ-i™fcPIp-jIwbsd^EwdrHD^^ffTirraflfciMAXIIdwicwl
曲5ib
btyi"
EPlCffl?
*?
ClrHKsUsetcede
QQMartuiU-Pj/wq/wq-wq-|**qcbflFile-EditProort^inglookWindow
DNH?
FFFFFFFF
血ElppI出diAoDrtet:
I
3牙占此:
1・・I
Ctf上ddDcMcg-I
FarHdp,prwsFl
艸罔
0□□口□口□
[[NUM[
图13下载
3.1.5仿真结果分析
仿真波形图可以看出减法计数器的工作过程:
由1111起依次递减,最后减至0000后再由1111起进行下一个周期的循环,其中缺少1001,1010两个状态。
当复位键复位后,回到1111重新开始循环。
3.2Multism实现过程
3.2.1求驱动方程
选择四个时钟脉冲下降沿触发的JK触发器,因要使用同步电路,所以时钟方程应该为CP0-CR=CP2=CP3=CP
(1)求状态方程
由所示状态图可直接画出如表2所示电路次态qFQ;*Qn^QQ的卡诺图,再分解开便可以得到如表3(a)(b)(c)(d)所示各触发器的卡诺图。
\Q1nQ0n
q3
00
01
11
10
00
1111
0000
0010
0001
01
0011
0100
0110
0101
11
1011
1100
1110
1101
10
0111
XXXX
1000
XXXX
表2次态Q;十Q2勺Qin中qF的卡诺图
由上述卡诺图可求出Q?
十、Q;十、Qin十、Qon*表达式如下所示:
\Q1nQ0n
QaQ2\^^
00
01
11
10
00
二
0
0
0
01
0
0
0
0
11
1
10
0
X
表3(a)Q3n十的卡诺图
\QnQ0n
Q3Q?
\^
00
01
11
10
00
\7
0
0
0
01
0
11
0
10
X
0
X
表3(b)Q;卅的卡诺图
Qa
00
01
11
10
00
0
n
0
01
1[
0
H
0
11
I1
0
w
0
10
v7
X
0
X
表3(C)qL的卡诺图
\^Q1nQ0
Q3q2^\^
00
01
11
10
00
0
0
/
01
J
0
0
r
11
7
0
0
V
10
X
0
JL
表3(d)Q防的卡诺图
根据卡诺图进行相应化简即得到状态方程,如下:
◎十1
cm+QnQn+QnQnQnQn
cT
Qnon+gn+QnQnQn
Qn^1
QnQn+QnQnQn+
qT
Qn
(2)
求驱动方程
由于JK触发器的特性方程为Qn+
=JQn+KQn
用状态方程与特性方程做比较,可得对应驱动方程,如下:
3.2.2
画逻辑电路图
根据所选用的触发器和时钟方程、输出方程、驱动方程,便可以画出如图14所示的逻辑电路图
323逻辑分析仪的仿真
逻辑分析仪显示的波形如图15所示:
检查电路能否自启动:
把无效状态1001和1010带入输出方程和和状态方程进行计算,结果如下:
1010——上__、1001——CJ—->0000
由此可见,在CP操作下都能回到有效状态,即电路能够自启动。
3.2.4结果分析
Multism是一种虚拟仪器,可以用来验证电路的设计的正确性。
根据相关计算,得出时序电路的时钟方程、状态方程、驱动方程,从而选择合适触发器来连接实现。
本设计中,选用四个时钟脉冲下降沿触发的JK触发器来实现四位二进
制减法计数器。
逻辑电路图中,四个小红灯即为显示器,灯亮表示“1”,灭表
示“0”,从而达到计数目的。
由于其中缺了1001,1010两种状态,所以在计数过程中会发生跳变,即先从1011跳到1000,再由0000直接跳回到1111,周而复始。
逻辑分析仪类似于Quartusn环境下的波形仿真,是对计数器的另一种直观的描述。
其中,高电平表示“1”,低电平表示“0”,也可以对计数器的功能进行测试及检验。
4.总结
在本次数字电路课程设计中,我花了较多的时间查阅资料,进行反复练习使我对二进制减法计数器掌握得更加熟练。
这对我以后学习相关的课程以及进行更高层次的数字电路设计都奠定了不错的基础。
在设计过程中,出现了各种各样的问题,有些是单一原因引起的,有的是综合原因引起的,这些都很考验我的毅力与坚持。
但是我掌握了研究这类问题的方法,即问题解决的过程就是要从问题所表现出来的情况出发,通过反复推敲,作出相应判断,逐步找出问题的症结所在,从而一举击破。
对于数字电路设计,尤其在使用Multism进行逻辑电路的连接与分析时,这种分析解决问题的能力就更为重要。
要在复杂的电子器件和密密麻麻的连线中找出头绪来,并不是一件很容易的事情。
往往要重新再来一次,但是这样的问题就出在计算上,尤其是在化简卡诺图时,务必小心谨慎,一个字符写错或者漏掉一些信息,就会导致驱动方程错误,逻辑电路就不能实现最初的设计功能。
在学习过《数字电路技术基础简明教程》之后,我已经算是掌握了一定的数字电路设计的基础以及相应的分析方法、实践能力以及自学能力。
虽然遇到了不少问题,但是在向老师和同学请教的学习过程中,我又改正了不少错误的认识,对数字电路的设计与分析方法的掌握也有了一定的提高,我相信这些知识与经验对以后的学习会有极大的帮助。
5.参考文献
1.《数字电子技术基础简明教程》(第三版)高等教育出版社余孟尝主编;
2.《数字集成电子技术教程》高等教育出版社李世雄,丁康源主编;
3.
2001。
《数字逻辑与硬件描述语言实验指导书》沈阳理工大学信息学院技术中心王东明,喻红婕,吴迪主编;
4.《VHDL实用教程》.潘松,王国栋,西安:
电子科技大学出版社,