EDA技术实践课程设计24进制计数器课件Word文档格式.docx
《EDA技术实践课程设计24进制计数器课件Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA技术实践课程设计24进制计数器课件Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
电子科技大学出版社,1999.
[4]郑家龙,王小海,章安元.《集成电子技术基础教程》[M].北京:
高等教育出版社,2002.
[5]王金明,杨吉斌.《数字系统设计与VerilogHDL》[M].北京:
电子工业出版社,2002.
完成期限
专业负责人
年7月18日
目 录
1设计1
2方案选择与电路原理图的设计1
2.124进制计数器的基本原理1
2.2设计流程图1
2.3原理图1
374LS161元件说明2
3.1简介2
3.274ls161管脚图与介绍2
3.374ls161功能表3
3.474ls161主要特点3
4设计过程4
4.1新文件的建立4
4.2宏功能模块的使用5
4.3普通元件的添加8
4.4电路连接9
5功能仿真9
6出现的问题及调试方法11
7总结11
参考文献12
附录VHDL语言编写的该程序清单13
1设计
设计一个二十四进制计数器,计数状态从0~23,要求有译码显示。
2方案选择与电路原理图的设计
2.124进制计数器的基本原理
用两个74ls161为主,其中一个为输出结果的低四位,另一个为输出结果的高4位,低四位从0000到1001(即十进制的九)然后置0000
并且高四位加1,如此到高四位为0010,第四位为0011,这时计数到23,进位信号输出1,同时8位输出同时置0;
2.2设计流程图
图2.1设计流程图
2.3原理图
由采用两个74ls161和一个与非门构成的最基本的24进制计数器。
图2.224进制计数器原理图
374LS161元件说明
3.1简介
74LS161是常用的四位二进制可预置的同步加法计数器,它可以灵活地运用在各种数字电路,以及单片机系统种实现分频器等很多重要的功能
3.274ls161管脚图与介绍
管脚图介绍:
时钟CP和四个数据输入端P0~P3
清零/MR
使能CEP,CET
置数PE
数据输出端Q0~Q3
以及进位输出TC.(TC=Q0·
Q1·
Q2·
Q3·
CET)
图3.174ls161管脚图图3.274ls161的逻辑符号
3.374ls161功能表
表3-174ls161功能表
输入
输出
CR
LD
CTP
CTT
CP
D3
D2
D1
D0
Q3
Q2
Q1
Q0
X
1
↑
d3
d2
d1
d0
保持
计数
从74LS161功能表功能表中可以知道,当清零端CR=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。
当CR=“1”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。
而只有当CR=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。
74LS161还有一个进位输出端CO,其逻辑关系是CO=Q0·
CET。
合理应用计数器的清零功能和置数功能,一片74LS161可以组成16进制以下的任意进制分频器。
3.474ls161主要特点
(1)异步清零功能
当CR=0时,不管其他输人端的状态如何(包括时钟信号CP),4个触发器的输出全为零。
(2)同步并行预置数功能
在CR=1的条件下,当LD=0且有时钟脉冲CP的上升沿作用时,D3,D2,D1,D0输入端的数据将分别被Q3~Q0所接收。
由于置数操作必须有CP脉冲上升沿相配合,故称为同步置数。
(3)保持功能
在CR=LD=1的条件下,当T*P=0时,不管有无CP脉冲作用,计数器都将保持原有状态不变(停止计数)。
(4)同步二进制计数功能
当CR=LD=P=T=1时,74LS161处于计数状态,电路从0000状态开始,连续输入16个计数脉冲后,电路将从1111状态返回到0000状态,状态表见表2。
(5)进位输出C
当计数控制端T=1,且触发器全为1时,进位输出为1,否则为0。
4设计过程
4.1新文件的建立
建立新项目工程,方法如右图点击:
【File】菜单,选择下拉列表中的【NewProjectWizard...】命令,打开建立新项目工程的向导对话框。
从File菜单中选择【New…】命令,或直接点击常用工具栏的第一个按钮,打开新建设计文件对话框,如下图。
选择【BlockDiagram/SchematicFile】,点击OK,即进入原理图编辑界面。
图
图4.1新建工程项目
图4.2新建设计文件
4.2宏功能模块的使用
双击原理图编辑窗口,在弹出的元件选择窗口的“Libraries”栏中选择“arithmetic”中的lpm_counter元件,如下图所示,
图4.3新增宏模块
对lpm_counter元件的各种参数进行选择,定制适合设计需要的模块,NEXT。
在“Howwideshouldthe‘q’outputbusbe?
”此处输入“4”位;
并选择“Uponly”(为双边沿有效),NEXT。
图4.4参数界面1
选择计数器的类型:
Plainbinary(二进制)Modulus(任意模值)”;
在“Doyouwantanyoptionaladditionalports?
”栏中可以为定制的lpm_counter选择增加一些输入输出端口,如“ClockEnable(时钟使能)”、“Carry-in(进位输入)”、“CountEnable(计数器使能)”和“Carry-out(进位输出)”。
图4.5参数界面2
弹出定制lpm_counter元件对话框5。
可为计数器添加同步或者异步输入控制端口,如“Clear(清除)”、“Load(加载)”和“Set(设置)”。
如果不要添加这些端口,直接单击“Next>
”按钮即可。
图4.6参数界面3
另一种方法:
直接双击原理图的任一空白处,会弹出一个元件对话框。
在Name栏目中输入74161,我们就得到一个四位二进制计数器。
图4.774ls161完成品
4.3普通元件的添加
双击原理图的任一空白处,会弹出一个元件对话框。
在Name栏目中输入and2,我们就得到一个2输入的与门。
点击OK按钮,将其放到原理图的适当位置。
重复操作,放入另外两个2输入与门。
也可以通过右键菜单的Copy命令复制得到。
图4.8普通元件的添加
双击原理图的空白处,打开元件对话框。
在Name栏目中输入Input,我们便得到一个输入引脚。
点击OK按钮,放入原理图。
同理,在Name栏目中输入output,我们会得到一个输出引脚。
图4.9输入引脚的添加
4.4电路连接
把所用的元件都放好之后,开始连接电路。
将鼠标指到元件的引脚上,鼠标会变成“十”字形状。
按下左键,拖动鼠标,就会有导线引出。
根据我们要实现的逻辑,连好各元件的引脚。
图4.10完成品
5功能仿真
在【File】菜单下,点击【New】命令。
在随后弹出的对话框中,切换到【OtherFiles】页。
选中【VectorWaveformFile】选项,点击OK按钮。
图5.1打开仿真菜单
在【Edit】菜单下,点击【InsertNodeorBus…】命令,或在下图Name列表栏下方的空白处双击鼠标左键,打开编辑输入、输出引脚对话框。
在上图新打开的对话框中点击【NodeFinder…】按钮,打开【NodeFinder】对话框。
点击【List】按钮,列出电路所有的端子。
选中in1信号,在Edit菜单下,选择【Value=>
Clock…】命令。
或直接点击左侧工具栏上按钮。
在随后弹出的对话框的Period栏目中设定参数,点击OK按钮。
随后重复设置。
图5.2引脚设置对话框
将软件的仿真模式修改为“功能仿真”模式.
开始功能仿真,在【Processing】菜单下,选择【StartSimulation】启动仿真工具,或直接点击常用工具栏上的
按钮。
仿真结束后,点击确认按钮。
观察仿真结果,对比输入与输出之间的逻辑关系是否符合电路的逻辑功能。
图5.324进制计数器波形图
6出现的问题及调试方法
作为第一次使用Quartus软件的我们来说,出现了诸多问题,现列出主要问题如下:
第一个问题是发现采用原理图法输出结果并不是24进制的计数器输出的波形,经过检查是由于芯片引脚接反了,改正引脚揭发后输出结果完全正确。
输出波形为24进制波形图。
另外一个出现的问题是元件的虚接,原因自然是对QuartusII软件的了解不够充分,使用不熟练,有待加强。
7总结
本课程设计就24进制计数器进行原理图设计,使用QuartusII软件进行了仿真,验证了设计的合理性和可行性。
具体内容包括:
1、设计了24进制计数器系统的主电路和控制电路,包括74ls161集成块的构造、各种与非门,与门器件之间的连接等等......;
2、根据设计任务指标计算了各部分系统参数,并进行了相应元件选取,在我的设计过程中共使用了两块74ls161集成块与一些门电路构成;
3、利用QuartusII软件进行了仿真,仿真结果表明:
该计数器可以正常运行;
4、电路没有特别新颖的地方,属于最简单的24进制计数器类型。
参考文献
附录VHDL语言编写的该程序清单
modulels161(Q,RCO,D,ET,EP,LOAD,CLR,CLK);
output[3:
0]Q;
outputRCO;
input[3:
0]D;
inputLOAD,ET,EP,CLR,CLK;
reg[3:
0]Q;
wireEN;
assignEN=ET&
EP;
always@(posedgeCLKornegedgeCLR)
begin
if(!
CLR)
Q=4'
b0000;
elseif(!
LOAD)
Q=D;
elseif(EN)
begin
if(Q==9)
Q=0;
else
Q=Q+1;
end
end
assignRCO=((Q==4'
b1001)&
EN)?
1:
0;
endmodule
moduleXS7D(DIN,DOUT);
0]DIN;
output[6:
0]DOUT;
reg[6:
0]DOUT;
always@(DIN)
begin
case(DIN)
0:
DOUT=7'
b1000000;
1:
b1111001;
2:
b0100100;
3:
b0110000;
4:
b0011001;
5:
b0010010;
6:
b0000010;
7:
b1111000;
8:
b0000000;
9:
b0010000;
endcase
moduleCOUNT24(QL,QH,CLK,RRCO);
0]QL,QH;
outputRRCO;
inputCLK;
wire[3:
0]Q1,Q2;
wireRCOL,RCOH,RRCO,LOADL,LOADH,EN,LOAD;
0]D1,D2;
wireVCC,GND;
assignD1=4'
b0000,D2=4'
b0000,VCC=1,GND=0;
ls161u1(.Q(Q1),.RCO(RCOL),.D(D1),.ET(VCC),.EP(VCC),.LOAD(LOAD),.CLR(VCC),.CLK(CLK));
ls161u2(.Q(Q2),.RCO(RCOH),.D(D2),.ET(EN),.EP(EN),.LOAD(LOADH),.CLR(VCC),.CLK(CLK));
XS7Du8(.DIN(Q1),.DOUT(QL));
XS7Du9(.DIN(Q2),.DOUT(QH));
nandu3(LOADL,Q1[3],Q1[0]);
nandu4(LOADH,Q2[1],Q1[0],Q1[1]);
notu5(EN,LOADL);
andu6(LOAD,LOADL,LOADH);
notu7(RRCO,LOADH);
东北石油大学课程设计成绩评价表
课程名称
题目名称
24进制计数器
学生姓名
学号
指导教
师姓名
职称
序号
评价项目
指标
满分
评分
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
年月日