东 北 石 油 大 学
EDA技术实践课程设计
课 程 EDA技术实践课程设计 题 目 24进制计数器 院 系 电气信息工程学院电气系 专业班级 学生姓名 学生学号 指导教师
年 7月 25日
EDA技术实践课程设计任务书
课程 EDA技术实践课程设计
题目 24进制计数器 专业 电气工程及其自动化 姓名 学号 主要内容:
1.熟练掌握Quartus II软件的使用。
2.熟练掌握在QuartusII平台上用原理图或者VHDL语言进行电路设计的方法。 3.学会用例化语句对EDA电路设计中顶层电路进行描述。
基本要求:
1. 熟悉仿真开发软件Quartus II的使用;
2. 根据功能要求,用原理图或文本输入方式完成设计; 3. 用Quartus II做波形仿真调试; 4. 下载至EDA试验仪调试设计。
主要参考资料:
[1]潘松,黄继业. 《EDA技术实用教程》[M].北京:科学出版社,2002. [2]卢杰,赖毅. 《VHDL与数字电路设计》[M].北京:科学出版社,2001. [3]张明. 《Verilog HDL实用教程》[M].成都:电子科技大学出版社,1999. [4]郑家龙,王小海,章安元. 《集成电子技术基础教程》[M].北京:高等教育出版社,2002.
[5]王金明,杨吉斌. 《数字系统设计与Verilog HDL》[M].北京:电子工业出版社,2002.
完成期限 指导教师
专业负责人
年 7 月18日
目 录
1 设计 .................................................................. 1 2 方案选择与电路原理图的设计 ............................................ 1
2.1 24进制计数器的基本原理 ............................................ 1 2.2 设计流程图 ........................................................ 1 2.3 原理图 ............................................................ 1 3 74LS161元件说明 ...................................................... 2
3.1 简介 .............................................................. 2 3.2 74ls161管脚图与介绍 ............................................... 2 3.3 74ls161功能表 ..................................................... 3 3.4 74ls161主要特点 ................................................... 3 4 设计过程 .............................................................. 4
4.1新文件的建立 ....................................................... 4 4.2 宏功能模块的使用 .................................................. 5 4.3 普通元件的添加 .................................................... 8 4.4 电路连接 .......................................................... 9 5 功能仿真 .............................................................. 9 6 出现的问题及调试方法 ................................................. 11 7 总结 ................................................................. 11 参考文献 ................................................................ 12 附录 VHDL语言编写的该程序清单 ........................................ 13
EDA技术实践课程设计(报告)
1 设计
设计一个二十四进制计数器,计数状态从0~23,要求有译码显示。
2 方案选择与电路原理图的设计
2.1 24进制计数器的基本原理
用两个74ls161为主,其中一个为输出结果的低四位,另一个为输出结果的高4位,低四位从0000到1001(即十进制的九)然后置0000 并且高四位加1,如此到高四位为0010,第四位为0011,这时计数到23,进位信号输出1,同时8位输出同时置0;
2.2 设计流程图
开始 查找资料 选定计数器 总结 仿真与调试
图2.1 设计流程图
2.3 原理图
由采用两个74ls161和一个与非门构成的最基本的24进制计数器。
1
EDA技术实践课程设计(报告)
图2.2 24进制计数器原理图
3 74LS161元件说明
3.1 简介
74LS161是常用的四位二进制可预置的同步加法计数器,它可以灵活地运用在各种数字电路,以及单片机系统种实现分频器等很多重要的功能
3.2 74ls161管脚图与介绍
管脚图介绍:
时钟CP和四个数据输入端P0~P3 清零/MR 使能CEP,CET 置数PE
数据输出端Q0~Q3
以及进位输出TC. (TC=Q0·Q1·Q2·Q3·CET)
2
EDA技术实践课程设计(报告)
图3.1 74ls161管脚图 图3.2 74ls161的逻辑符号
3.3 74ls161功能表
表3-1 74ls161功能表
输入 CR 0 1 1 1 1 LD CTP CTT CP X 0 1 1 1 X X 0 X 1 X X 1 0 1 X ↑ X X ↑ D3 X d3 X X X D2 X d2 X X X D1 X d1 X X X D0 X d0 X X X Q3 0 d3 输出 Q2 0 d2 Q1 0 d1 Q0 0 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·Q1·Q2·Q3·CET。合理应用计数器的清零功能和置数功能,一片74LS161可以组成16进制以下的任意进制分频器。
3.4 74ls161主要特点
(1)异步清零功能
3
EDA技术实践课程设计(报告)
当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】菜单,选择下拉列表中的【New Project Wizard...】命令,打开建立新项目工程的向导对话框。
从File菜单中选择【New…】命令,或直接点击常用工具栏的第一个按钮 ,打开新建设计文件对话框,如下图。选择【Block Diagram/Schematic File】,点击OK,即进入原理图编辑界面。
4
EDA技术实践课程设计(报告)
图
图4.1 新建工程项目
图4.2 新建设计文件
4.2 宏功能模块的使用
双击原理图编辑窗口,在弹出的元件选择窗口的“Libraries”栏中选择“arithmetic”中的lpm_counter元件,如下图所示,
图4.3 新增宏模块
对lpm_counter元件的各种参数进行选择,定制适合设计需要的模块,NEXT。在“How wide should the ‘q’ output bus be?”此处输入“4”位;并选择“Up only”(为双边沿有效 ),NEXT。
5
EDA技术实践课程设计(报告)
图4.4 参数界面1
选择计数器的类型:Plain binary(二进制)Modulus(任意模值)”;在“Do you want any optional additional ports?”栏中可以为定制的lpm_counter选择增加一些输入输出端口,如“Clock Enable(时钟使能)”、“Carry-in(进位输入)”、“Count Enable(计数器使能)”和“Carry-out(进位输出)” 。
图4.5 参数界面2
6
EDA技术实践课程设计(报告)
弹出定制lpm_counter元件对话框5。可为计数器添加同步或者异步输入控制端口,如“Clear(清除)”、“Load(加载)”和“Set(设置)”。如果不要添加这些端口,直接单击“Next>”按钮即可。
图4.6 参数界面3
另一种方法:直接双击原理图的任一空白处,会弹出一个元件对话框。在 Name 栏目中输入 74161 ,我们就得到一个四位二进制计数器。
图4.7 74ls161完成品
7
EDA技术实践课程设计(报告)
4.3 普通元件的添加
双击原理图的任一空白处,会弹出一个元件对话框。在 Name 栏目中输入 and2 ,我们就得到一个2输入的与门。
点击 OK 按钮,将其放到原理图的适当位置。重复操作,放入另外两个2输入与门。也可以通过右键菜单的 Copy 命令复制得到。
图4.8 普通元件的添加
双击原理图的空白处,打开元件对话框。在 Name 栏目中输入 Input , 我们便得到一个输入引脚。点击 OK 按钮,放入原理图。同理,在 Name 栏目中输入 output ,我们会得到一个输出引脚。
图4.9 输入引脚的添加
8
EDA技术实践课程设计(报告)
4.4 电路连接
把所用的元件都放好之后,开始连接电路。将鼠标指到元件的引脚上,鼠标会变成“十”字形状。按下左键,拖动鼠标,就会有导线引出。根据我们要实现的逻辑,连好各元件的引脚。
图4.10 完成品
5 功能仿真
在【File】菜单下,点击【New】命令。在随后弹出的对话框中,切换到【Other Files】页。选中【Vector Waveform File】选项,点击 OK 按钮。
图5.1 打开仿真菜单
9
EDA技术实践课程设计(报告)
在【Edit】菜单下,点击【Insert Node or Bus…】命令,或在下图Name列表栏下方的空白处双击鼠标左键,打开编辑输入、输出引脚对话框。
在上图新打开的对话框中点击【Node Finder…】按钮,打开【Node Finder】对话框。点击【List】按钮,列出电路所有的端子。
选中 in1 信号,在 Edit 菜单下,选择【Value => Clock…】命令。或直接点击左侧工具栏上按钮。在随后弹出的对话框的 Period 栏目中设定参数,点击 OK 按钮。随后重复设置。
图5.2 引脚设置对话框
将软件的仿真模式修改为“功能仿真”模式.
开始功能仿真,在【Processing】菜单下,选择【Start Simulation】启动仿真工具,或直接点击常用工具栏上的按钮。仿真结束后,点击确认按钮。观察仿真结果,对比输入与输出之间的逻辑关系是否符合电路的逻辑功能。
图5.3 24进制计数器波形图
10
EDA技术实践课程设计(报告)
6 出现的问题及调试方法
作为第一次使用Quartus软件的我们来说,出现了诸多问题,现列出主要问题如下:
第一个问题是发现采用原理图法输出结果并不是24进制的计数器输出的波形,经过检查是由于芯片引脚接反了,改正引脚揭发后输出结果完全正确。输出波形为24进制波形图。
另外一个出现的问题是元件的虚接,原因自然是对QuartusII软件的了解不够充分,使用不熟练,有待加强。
7 总结
本课程设计就24进制计数器进行原理图设计,使用QUARTUS II软件进行了仿真,验证了设计的合理性和可行性。具体内容包括:
1、设计了24进制计数器系统的主电路和控制电路,包括74LS161集成块的构造、各种与非门,与门器件之间的连接等等......;
2、根据设计任务指标计算了各部分系统参数,并进行了相应元件选取,在我的设计过程中共使用了两块74LS161集成块与一些门电路构成;
3、利用QUARTUS II软件进行了仿真,仿真结果表明:该计数器可以正常运行;
4、电路没有特别新颖的地方,属于最简单的24进制计数器类型。
11
电工电子仿真实践课程设计(报告) 参考文献
[1]潘松,黄继业. 《EDA技术实用教程》[M].北京:科学出版社,2002. [2]卢杰,赖毅. 《VHDL与数字电路设计》[M].北京:科学出版社,2001. [3]张明. 《Verilog HDL实用教程》[M].成都:电子科技大学出版社,1999. [4]郑家龙,王小海,章安元. 《集成电子技术基础教程》[M].北京:高等教育出版社,2002.
[5]王金明,杨吉斌. 2002.
Verilog HDL》[12
M].北京:电子工业出版社,《数字系统设计与电工电子仿真实践课程设计(报告) 附录 VHDL语言编写的该程序清单
module ls161(Q,RCO,D,ET,EP,LOAD,CLR,CLK); output [3:0] Q; output RCO; input [3:0]D;
input LOAD,ET,EP,CLR,CLK; reg [3:0]Q; wire EN;
assign EN = ET&EP;
always @(posedge CLK or negedge CLR) begin end
module XS7D(DIN,DOUT); input [3:0]DIN; output [6:0]DOUT; reg [6:0] DOUT; always @(DIN) begin
case(DIN)
0:DOUT = 7'b1000000;
13
if(!CLR) Q = 4'b0000; else if(!LOAD)
Q = D;
else if(EN) begin
if(Q==9) Q = 0; else Q = Q+1; end
assign RCO = ((Q==4'b1001)&EN)?1:0;
endmodule
电工电子仿真实践课程设计(报告) end
1:DOUT = 7'b1111001; 2:DOUT = 7'b0100100; 3:DOUT = 7'b0110000; 4:DOUT = 7'b0011001; 5:DOUT = 7'b0010010; 6:DOUT = 7'b0000010; 7:DOUT = 7'b1111000; 8:DOUT = 7'b0000000; 9:DOUT = 7'b0010000;
endcase
endmodule
module COUNT24(QL,QH,CLK,RRCO); output [6:0] QL,QH; output RRCO; input CLK; wire [3:0] Q1,Q2;
wire RCOL,RCOH,RRCO,LOADL,LOADH,EN,LOAD; wire [3:0]D1,D2; wire VCC,GND;
assign D1 = 4'b0000,D2 = 4'b0000,VCC = 1,GND = 0; ls161
u1(.Q(Q1),.RCO(RCOL),.D(D1),.ET(VCC),.EP(VCC),.LOAD(LOAD),.CLR(VCC),.CLK(CLK)); ls161
u2(.Q(Q2),.RCO(RCOH),.D(D2),.ET(EN),.EP(EN),.LOAD(LOADH),.CLR(VCC),.CLK(CLK));
XS7D u8(.DIN(Q1),.DOUT(QL)); XS7D u9(.DIN(Q2),.DOUT(QH)); nand u3(LOADL,Q1[3],Q1[0]); nand u4(LOADH,Q2[1],Q1[0],Q1[1]); not u5(EN,LOADL);
and u6(LOAD,LOADL,LOADH); not u7(RRCO,LOADH); endmodule
14
东北石油大学课程设计成绩评价表
课程名称 题目名称 学生姓名 序号 评价项目 工作量、工作态度和出勤率 学号 EDA技术实践课程设计 24进制计数器 指导教 师姓名 职称 满分 指 标 按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。 课程设计选题合理,计算过程简练准确,分析评分 1 20 2 课程设计质量 问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。 工作中有创新意识,对前人工作有一些改进或有一定应用价值。 能正确回答指导教师所提出的问题。 45 3 4 总分 评语: 创新 答辩 5 30 指导教师: 年 月 日
因篇幅问题不能全部显示,请点此查看更多更全内容