EDA 24进制计数器的设计

合集下载

(数电课设)二十四进制计数器

(数电课设)二十四进制计数器

一.课程设计目的《电子技术基础2-2课程设计》是学习理论课程之后的实践教学环节。

目的是通过解决比较简单的实际问题巩固和加深在《电子技术基础2-2(数字电子技术基础)》课程中所学的理论知识和实验技能。

训练学生综合运用学过的电子技术基础知识,在教师指导下完成查找资料,选择、论证方案,设计电路,安装调试,分析结果,撰写报告等工作。

使学生初步掌握数字电子电路设计的一般方法步骤,通过理论联系实际提高和培养学生分析、解决实际问题的能力和创新能力,为后续课程的学习、毕业设计和毕业后的工作打下一定的基础。

数字电子课程设计是理论教学之后的一个综合性实践教学环节,是对课程理论和课程实验的综合和补充。

学会并利用一种电路分析软件,对电路进行分析、计算和仿真,通过查找资料,选择方案,设计电路,撰写报告,完成一个较完整的设计过程,将抽象的理论知识与实际电路设计联系在一起,使学生在掌握电路基本设计方法的同时,加深对课程知识的理解和综合应用,培养学生综合运用基础理论知识和专业知识解决实际工程设计问题的能力,以及工程意识和创新能力。

不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。

理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。

在设计的过程遇到各种各样的问题,同时在设计的过程中发现自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固所学的知识。

二.设计方案论证1.设计方案的选择通过查阅资料对不同的设计方案进行比较论证,根据现有条件选择合适的设计方案,Multisim有其丰富的仿真分析能力以及完整的电路原理图图形输入和电路硬件描述语言输入方式,结合了直观的捕捉和功能强大的仿真特点,能快速、轻松、高效地对电路进行设计和验证。

引入Multisim软件帮助我们快速且轻松地将刚学到的理论知识用计算机仿针真实地再现出来。

24进制计数器设计报告

24进制计数器设计报告

..1. 设计任务1.1设计目的1. 了解计数器的组成及工作原理。

2. 进一步掌握计数器的设计方法和计数器相互级联的方法。

3. 进一步掌握各芯片的逻辑功能及使用方法。

4. 进一步掌握数字系统的制作和布线方法。

5. 熟悉集成电路的引脚安排。

1.2 设计指标1. 以24为一个周期,且具有自动清零功能。

2. 能显示当前计数状态。

1.3 设计要求1. 画出总体设计框图,以说明计数器由哪些相对独立的功能模块组成,标出各个模块之间互相联系,时钟信号传输路径、方向。

并以文字对原理作辅助说明。

2. 设计各个功能模块的电路图,加上原理说明。

3. 选择合适的元器件,利用multisim 仿真软件验证、调试各个功能模块的电路,在接线验证时设计、选择合适的输入信号和输出方式,在确定电路充分正确性同时,输入信号和输出方式要便于电路的测试和故障排除。

4. 在验证各个功能模块基础上,对整个电路的元器件和布线进行合理布局。

5.打印PCB 板,腐蚀,钻孔,插元器件,焊接再就对整个计数器电路进行调试。

2.设计思路与总体框图.计数器由计数器、译码器、显示器三部分电路组成,再由555定时器组成的多谐振荡器来产生方波,充当计数脉冲来作为计数器的时钟信号,计数结果通过译码器显示。

图1所示为计数器的一般结构框图。

2CRCR CR▲图 1 计数器结构框图3.系统硬件电路的设计3.1 555多谐荡电路555多谐振荡电路由NE555P 芯片、电阻和电容组成。

由NE555P 的3脚输 出方波。

▲图 2 555电路计数脉冲(由555电路产生)异步清零计数器个位位数码示像译码驱动CP CP强制清零3.2 计数器电路集成计数芯片一般都设置有清零输入端和置数输入端,而且无论是清零还是置数都有同步和异步之分。

有的集成计数器采用同步方式,即当CP触发沿到来时才能完成清零或置数任务;有的集成计数器则采用异步方式,即通过触发器的异步输入端来直接实现清零或置数,与CP信号无关。

24进制计数器课程设计

24进制计数器课程设计

24进制计数器课程设计一、课程目标知识目标:1. 学生能理解24进制计数原理,掌握24进制与十进制的转换方法;2. 学生能运用24进制进行简单数学运算,如加、减、乘、除;3. 学生了解24进制在实际应用中的优势,例如在时间计算、编码等领域。

技能目标:1. 学生能够独立完成24进制与十进制的相互转换;2. 学生能够运用24进制进行基本的数学运算,解决实际问题;3. 学生通过小组合作,设计并制作一个简单的24进制计数器。

情感态度价值观目标:1. 学生培养对进制转换的兴趣,提高学习数学的积极性;2. 学生养成合作、探究的学习习惯,增强团队协作能力;3. 学生认识到数学在生活中的广泛应用,提高数学素养。

课程性质:本课程属于数学课程,旨在让学生掌握进制转换知识,提高数学应用能力。

学生特点:六年级学生具备一定的数学基础,思维活跃,好奇心强,喜欢探究新知识。

教学要求:注重理论与实践相结合,鼓励学生动手实践,培养实际操作能力;强调小组合作,培养学生的团队协作精神。

通过本课程的学习,使学生能够将所学知识应用于实际生活中,提高解决问题的能力。

二、教学内容1. 24进制计数原理介绍:通过课本知识,讲解24进制的定义,对比十进制,让学生理解进制的概念和转换方法。

- 章节关联:《数学》六年级上册,第三章“数的认识”,第二节“认识进制”。

2. 24进制与十进制的转换:详细讲解转换方法,举例说明,让学生掌握两种进制之间的转换技巧。

- 教学安排:2课时。

3. 24进制数学运算:讲解24进制下的加、减、乘、除运算规则,让学生学会运用24进制进行计算。

- 教学安排:2课时。

4. 实际应用案例分析:分析24进制在实际生活中的应用,如时间计算、编码等,提高学生的实际应用能力。

- 章节关联:《数学》六年级上册,第三章“数的认识”,第四节“进制在实际生活中的应用”。

5. 小组合作制作24进制计数器:分组让学生设计并制作计数器,巩固所学知识,培养学生的动手能力和团队协作精神。

EDA二 4位加法计数器设计

EDA二 4位加法计数器设计

6)可调时钟输出单元底板上ADJ_CLK为4位拨码开关SW17--SW20来控制输出40M分频后的可调时钟具体对应如下SW20 SW19 SW18 SW17 ADJ_CLK1 1 1 1 1Hz0 1 1 1 5Hz1 0 1 1 10Hz0 0 1 1 25Hz1 1 0 1 50Hz0 1 0 1 500Hz1 0 0 1 1KHz0 0 0 1 2.5KHz1 1 1 0 10KHz0 1 1 0 20KHz1 0 1 0 50KHz0 0 1 0 200KHz1 1 0 0 500KHz0 1 0 0 2MHz1 0 0 0 5MHz0 0 0 0 20MHzCLK1 10MHz固定时钟(40MHz分频产生)CLK2 1MHzCLK3 100KHzCLK4 5KHzCLK5 100Hz实验四 4位加法计数器设计一、实验目的学习时序逻辑电路的设计、仿真和硬件测试;加深理解VHDL设计技术。

二、实验原理图4-4-1是一含计数使能、异步复位和计数值并行预置功能的4位加法计数器,其VHDL描述参见例4-4-1。

由图4-4-1所示,图中间是4位锁存器(即D触发器);RST是异步清零信号,高电平有效;CLK是锁存信号;D[3..0]是4位数据输入端;PST是同步并行预置信号,高电平有效,置数值为Data[3:0];Outy[3:0]是计数值输出;Cout是计数溢出信号。

① RST为异步清零信号,高电平有效,一旦RST=1,4位锁存器输出状态复位为“0000”;② ENA为同步计数使能信号,当CLK为上升沿时z当ENA=“1”时,加法计数,CQI= CQI+1;z当ENA=“0”时,保持原数,CQI= CQI;③ PST为同步并行预置信号,当CLK为上升沿时图4-4-1含计数使能、异步复位和计数值并行预置功能的4位加法计数器三、实验内容(1)对例4-4-1含计数使能、异步复位和计数值并行预置功能的4位加法计数器的VHDL设计,说明例中各语句的作用,并详细描述示例的功能特点。

eda24进制计数器设计

eda24进制计数器设计

EDA24进制计数器设计1. 任务背景计数器是计算机系统中常见的一种电路,用来实现对数字进行计数的功能。

传统的计数器一般是采用二进制表示数字,然而在某些特定的应用场景中,使用其他进制的计数器能够更方便和高效。

EDA24进制计数器是指使用24进制来表示数字的计数器。

24进制是一种特殊的进制,它由24个数字符号(0-23)组成,分别对应于十进制的0-9、字母A-J、字母K-T和字母U-Y。

使用24进制计数器可以更精确地表示某些特定范围内的数字,而且减少了数字的位数和转换过程中的计算复杂度。

本文将介绍如何设计一个EDA24进制计数器,包括计数器的原理、硬件设计和功能实现等方面的内容。

2. 原理介绍EDA24进制计数器的工作原理与传统的计数器类似,主要分为三个部分:计数器状态存储、计数器状态更新和计数器输出。

2.1 计数器状态存储EDA24进制计数器需要使用存储器来保存当前的计数器状态。

由于EDA24进制有24个数字符号,每个符号对应一个存储单元,因此需要一个24位的存储器来存储计数器的状态。

存储器的结构可以采用RAM或者寄存器等形式。

当计数器进行更新时,计数器状态存储器会读取新的计数器状态。

2.2 计数器状态更新EDA24进制计数器的计数逻辑与二进制计数器类似,但需要对进位的处理进行特殊处理。

在24进制下,当某一位达到23时,需要进行进位操作,并将低位的符号进行进位。

例如,当计数器达到23时,进位得到的数字为10(对应K),并将低位的数字进行滚动。

以一个4位的EDA24进制计数器为例,计数范围为0000~2323。

初始状态为0000,当计数值增加时,每一位的变化规律如下:•当个位(最低位)从0~2变化时,直接递增;•当个位达到3时,个位变为0,十位(倒数第二位)递增;•当十位从0~2变化时,直接递增;•当十位达到3时,十位变为0,百位(倒数第三位)递增;•当百位从0~2变化时,直接递增;•当百位达到3时,百位变为0,千位(最高位)递增;•当千位从0~2变化时,直接递增;•当千位达到3时,计数器归零。

eda课程设计计数器

eda课程设计计数器

eda课程设计 计数器一、课程目标知识目标:1. 理解计数器的基本概念,掌握其工作原理;2. 学会运用EDA工具进行计数器的设计与仿真;3. 掌握计数器的应用场景,了解其在数字系统中的作用。

技能目标:1. 能够运用所学知识,设计简单的计数器电路;2. 熟练使用EDA工具进行电路的绘制、仿真和调试;3. 培养动手实践能力和团队协作能力,提高问题解决能力。

情感态度价值观目标:1. 培养学生对电子设计的兴趣,激发学习热情;2. 培养学生的创新意识和探究精神,鼓励尝试和改进;3. 增强学生的责任感,认识到计数器在现代社会生活中的重要性。

课程性质:本课程为电子设计自动化(EDA)课程的实践环节,旨在让学生通过动手实践,掌握计数器的设计与应用。

学生特点:学生具备一定的电子基础知识,对EDA工具有一定的了解,具有较强的学习能力和动手能力。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生的实际操作能力。

通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其电子设计能力。

教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

二、教学内容1. 计数器原理讲解:- 理解异步计数器与同步计数器的工作原理;- 掌握二进制、十进制和任意进制计数器的设计方法。

2. EDA工具使用:- 学习并熟练使用Multisim、Proteus等EDA工具进行计数器电路设计;- 掌握电路绘制、仿真和调试的基本步骤。

3. 实践操作:- 设计并实现一个简单的二进制计数器电路;- 设计并实现一个十进制计数器电路;- 尝试设计任意进制计数器电路。

4. 教学大纲:- 第一章:计数器原理及分类;- 第二章:EDA工具的基本操作;- 第三章:二进制计数器设计与实践;- 第四章:十进制计数器设计与实践;- 第五章:任意进制计数器设计与实践。

5. 教学内容安排与进度:- 原理讲解:2课时;- EDA工具使用:2课时;- 二进制计数器设计:2课时;- 十进制计数器设计:2课时;- 任意进制计数器设计:2课时。

EDA 二十四进制计数器设计

EDA 二十四进制计数器设计

实训报告课程名称:学生姓名:学号:专业班级:年月日南昌大学实训报告学生姓名:学号:专业班级:设计□创新实训日期:实验成绩:实训类型:□验证□综合一、实训项目名称24进制计数器设计二、实训目的由中规模可预置二进制加法计数器40161和门电路组成二十四进制计数器(8421BCD码)三、实训要求1.熟悉仿真开发软件Quartus II的使用;2.根据功能要求,用原理图或文本输入方式完成设计;3.用Quartus II做波形仿真调试;4.下载至EDA试验仪调试设计。

四、实训基本原理(附源程序清单,原理图、RTL图)用两个ls161为主,其中一个为输出结果的低四位,另一个为输出结果的高4位,低四位从0000到1001(即十进制的九)然后置0000 并且高四位加1,如此到高四位为0010,第四位为0011,这时计数到23,进位信号输出1,同时8位输出同时置0;原理图:源程序: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)beginif(!CLR)Q=4'b0000;else if(!LOAD)Q=D;else if(EN)beginif(Q==15)Q=0;elseQ=Q+1;endendassign RCO=((Q==4'b1111)&EN)?1:0; endmodulemodule XS7D(DIN,DOUT);input [3:0] DIN;output [6:0] DOUT;reg [6:0]DOUT;always@(DIN)begincase(DIN)0:DOUT='b0111111;1:DOUT='b0000110;2:DOUT='b1011011;3:DOUT='b1001111;4:DOUT='b1100110;5:DOUT='b1101101;6:DOUT='b1111101;7:DOUT='b0000111;8:DOUT='b1111111;9:DOUT='b1101111;endcaseendendmodulemodule qzm(DOUTH,DOUTL,CO,CLK);output DOUTH,DOUTL,CO;input CLK;wire [3:0]QH;wire [3:0]QL;wire [3:0]D;wire [6:0]DOUTH;wire [6:0]DOUTL;wire CO,LOADL,LOADH,LOADR,ENR;wire VCC,GND;assign D=4'b0000,VCC=1,GND=0;ls161 u1(.Q(QL),.RCO(GND),.D(D),.ET(VCC),.EP(VCC),.LOAD(LOADH),.CL R(VCC),.CLK(CLK));ls161 u2 (.Q(QH),.RCO(GND),.D(D),.ET(ENR),.EP(ENR),.LOAD(LOADL),.CL R(VCC),.CLK(CLK));nand u3 (LOADR,QL[0],QL[3]);nand u4 (LOADL,QH[1],QL[1],QL[0]);not u5 (ENR,LOADR);not u6 (CO,LOADL);and u7 (LOADH,LOADR,LOADL);XS7D u8 (.DIN(QL),.DOUT(DOUTL));XS7D u9 (.DIN(QH),.DOUT(DOUTH));endmoduleRTL图:五、主要仪器设备、软件及耗材Quartus II EDA开发板六、调试过程及处理结果波形图;七、思考讨论题或体会或对改进实验的建议。

eda24进制计数器设计

eda24进制计数器设计

设计一个EDA(电子设计自动化)工具的24进制计数器的基本步骤如下:
1. 构建基本逻辑单元:
在设计24进制计数器之前,首先需要构建基本逻辑单元,如触发器或锁存器,以便存储和处理计数。

2. 确定计数范围:
在开始设计前,需要确定计数器的计数范围。

例如,如果需要表示0到23的范围,则计数器需要能在该范围内有效计数。

3. 推导需求特征:
基于你选择的基本逻辑单元推导组合逻辑和时序逻辑特征,以设计恰当的计数器。

4. 设计状态机:
设计一个有限状态机(FSM),以观察计数器状态的转换并确保可靠性和稳定性。

5. 设计24进制加法器:
设计一个全加器以实现24进制数的加法操作。

由于24进制计数器每个位最高数值为23(用0-N表示,例如0-9、A-N或0-夜,按照标准24进制),因此需要考虑进位。

6. 链接基本组件:
将设计好的24进制加法器连接到触发器或锁存器,以更新计数值并从一个状态迁移到另一个状态。

7. 时钟控制:
引入时钟模块来控制计数器的工作节奏。

每次时钟周期到达时,计数器将更新计数值。

8. 设计复位和清零逻辑:
实现一个逻辑控制来负责复位及清零操作,将计数器重置为初始状态。

9. 进行仿真测试:
运行仿真测试,检查计数器在不同条件下的运行情况,确保其准确、可靠地工作。

10. 设计可视化界面:
创建一个可视化界面,以便于用户直观地获取计数器状态和计数过程。

24小时制时钟—EDA课程设计报告

24小时制时钟—EDA课程设计报告

石家庄铁道大学EDA课程设计报告24小时制数字钟学院电气与电子工程学院专业电子信息专业班级电0904-2班学号 20092360 学生姓名指导教师赵晓博课程成绩完成日期 2012年3月30日课程设计任务书电气与电子工程学院电子信息专业课程名称EDA课程设计时间2011~2012学年第二学期2~6周学生姓名指导老师赵晓博题目数字钟的设计与制作主要内容:本课程设计主要是利用硬件描述语言VHDL的设计思想,采用自顶向下的方法、划分模块来设计数字钟的几个模块。

通过课程设计深入理解计算机的基本原理和方法,加深对计算机组成的理解。

要求:1.具有时、分、秒计数显示功能,且以24小时循环计时。

2.具清零的功能,且能够对计时系统的小时、分钟进行调整。

3.具有整点报时功能。

扩展:1.设置启/停开关。

当按下启/停开关,将启动时钟开始计时,当再按一下启/停开关时,将终止计时操作。

2.计时精度为1s。

3.复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备。

4.随意给定频率能分频至1s。

数字钟的设计与制作学生姓名:指导老师:赵晓博摘要系统使用EDA技术设计了数字钟,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。

利用VHDL语言完成了数字钟的设计。

该数字钟能实现时、分、秒计数的显示功能,且以24小时循环计时,具清零的功能,且能够对计时系统的小时、分钟进行调整,具有整点报时功能。

整个系统使用方便,功能齐全,精度高,具有一定的开发价值。

关键字数字钟;EDA;VHDL;目录1引言 (5)1.1课题的背景、目的 (5)1.2设计的内容 (5)2 EDA、VHDL简介 (6)2.1EDA技术 (6)2.2硬件描述语言——VHDL (6)★VHDL的简介 (6)★VHDL语言的特点 (7)★VHDL的设计流程 (7)3 数字钟设计 (8)3.1数字钟的工作原理 (8)3.1数字钟的实现流程 (8)3.2晶体振荡器 (12)3.3分频电路 (12)3.2部分程序实现 (12)4 系统仿真 (22)1.小时24制电路仿真图 (22)2.分钟59电路仿真图 (23)3.秒59制电路仿真图 (23)4.59转码电路仿真图 (233)5.24转码电路仿真图 (24)6.动态扫描电路仿真图 (24)7.整点报时电路仿真图 (25)结束语 (26)致谢 (26)参考文献 (26)附录 (27)1 引言随着社会的发展,科学技术也在不断的进步。

EDA课程设计论文 24制数字钟数字钟设计.

EDA课程设计论文 24制数字钟数字钟设计.

EDA 课程设计报告书数字钟设计设计者指导老师:学号:专业班级: XXXXXXXXX 学院 201X.X.XX目录1. 摘要,关键字...............................................................3 2. 正文 (3)2.1设计任务及要求............................................................3 2.2方案选择与论证............................................................3 2.3方案的原理框图及其说明...................................................4 2.4硬件选择.....................................................................4 2.5系统设计详述...............................................................4 2.6系统仿真及分析............................................................ 6 2.7下载测试及分析............................................................9 2.8收获体会、存在问题和进一步的改进意见等 (10)3. 参考文献 (10)VHDL 语言实现数字电子钟的设计作者:xxx 指导老师:xxx (xx 大学xxxx 学院 xxx xxxx )[摘要]:随着基于PLD 的EDA 技术的发展和应用领域的扩大与深入,EDA 技术在电子信息、通信、自动控制及计算机应用等领域的重要性日益突出。

24进制计数器的设计实验原理

24进制计数器的设计实验原理

24进制计数器是一种计数器,用于在基于24进制的系统中进行计数。

以下是24进制计数器的设计实验原理的基本步骤:
确定计数器位数:确定需要的计数器位数,以决定可以表示的计数范围。

例如,如果需要计数范围为0-23,需要至少4位二进制计数器。

设计逻辑电路:使用逻辑门和触发器等基本组件,设计一个适当的电路来实现24进制计数器。

可以使用不同的设计方法,如同步计数器或异步计数器。

确定计数器状态:确定计数器的各个状态,即在每个计数值时,计数器的输出应该是什么。

在24进制计数器中,状态可以表示为从00到23的不同值。

设计计数器电路:根据计数器位数和状态确定逻辑电路的连接和触发器的触发方式,以实现从一个状态到另一个状态的转换。

确保适当的电路延迟和稳定性。

进行仿真和测试:使用电路设计软件进行仿真和测试,验证计数器的功能和正确性。

检查计数器是否按预期计数,并在达到最大计数值时正确回滚到最小计数值。

制作电路原型:将电路设计制作成电路板或使用开发板进行实际硬件实现。

确保连接正确并进行电路调试。

进行计数器实验:将实现的24进制计数器连接到适当的输入和输出设备,并进行计数器实验。

检查计数器的行为和输出是否符合预期。

这些是24进制计数器的基本设计实验原理。

具体的设计步骤和实验要求可能会根据实验的具体目标和要求有所不同。

在进行设计和实验时,确保遵循正确的电路设计原则和实验安全规范。

EDA实验_计数器设计

EDA实验_计数器设计

XXXX大学计算机科学学院实验/上机报告一、实验目的1、通过4位同步加/减法计数器的设计,掌握同步时序控制的基本方法2、掌握LPM参数化模块库中的功能块调用方法二、实验环境1、硬件:PC机、便携式EDA/SOPC/DSP实验系统;2、软件:Quartus II 5.0;三、实验内容1、完成4位同步加/减法计数器设计并实现功能仿真2、利用LPM参数化模块库中的组件设计8位同步加法计数器并实现功能仿真3、设计一个1秒钟定时器,用以控制发光二极管闪烁四、实验过程设计思想:计数器即实现计数功能的数字电路,通过累计输入脉冲个数,达到计数的目的。

对于四位的同步加/减法计数器共有24=16个输出状态,在设计时可以用一个向量进行定义。

另外,对于给定的加/减法计数器结构,可做如下描述:当计数器复位端(rst)为0时,计数器清零,否者,即处于置位端。

此时,当时钟脉冲(clk)处于上升沿时,计数器受加减控制端(updn)控制,即当updn=1时,实现加法计数,否则减法计数。

定时器通常为减1计数,当程序进入运行状态后,定时器开始自动计数。

对于1秒钟定时器,其工作原理为:在时钟脉冲为上升沿触发的情况下,当定时器使能控制信号为1时,如果定时器经过一个定时时钟,比如1s,则定时到输出时间到信号,定时器清零,否则,定时输出时间未到。

实验步骤:1、设计一个4位的同步加/减法计数器新建工程,建立源文件,输入VHDL设计文件,如下图所示:完成设计文件输入后,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:由该仿真图可知,当rst=1处于置位状态时,若时钟脉冲信号clk处于上升沿触发,输出信号q受updn控制,即当updn=0时,计数器实现减法计数功能,当updn=1时,计数器实现加法计数功能。

可见仿真结果正确,即实现了4位的同步加/减法计数器的功能。

2、利用LPM参数化模块库中的组件设计8位同步加法计数器并实现功能仿真(1)打开MegaWizard Plug-In Manager 初始对话框在Tools 菜单中选择MegaWizard Plug-In Manager,产生如下图所示的界面:选择Create a new custom…项,即定制一个新的模块。

EDA技术实践课程设计进制计数器

EDA技术实践课程设计进制计数器

东北石油大学EDA技术实践课程设计年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.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,要求有译码显示。

eda实验报告计数器

eda实验报告计数器

eda实验报告计数器EDA实验报告-计数器引言:计数器是数字电路中常用的基本模块之一,它在各个领域都有着广泛的应用。

本实验旨在通过EDA(电子设计自动化)软件进行计数器的设计与仿真,探索计数器的原理和功能。

一、计数器的基本原理计数器是一种能够按照规定的顺序改变其输出状态的电子电路。

它通过内部的触发器和逻辑门实现数字信号的计数功能。

常见的计数器有二进制计数器、十进制计数器等。

二、实验设计与仿真1. 实验目标本次实验的目标是设计一个4位二进制计数器,并通过EDA软件进行仿真验证。

计数器的功能是在每个时钟脉冲到来时,输出的二进制数加1。

2. 设计思路计数器的设计需要考虑以下几个方面:- 选择适当的触发器:本实验选择了D触发器作为计数器的基本单元,因为D触发器具有简单、易于控制的特点。

- 确定计数器的位数:本实验设计了一个4位计数器,即可以表示0~15的二进制数。

- 连接逻辑门:通过逻辑门将各个触发器连接起来,实现计数器的功能。

3. 电路设计根据设计思路,我们使用EDA软件进行电路设计。

首先,将4个D触发器连接起来,形成4位计数器。

然后,根据计数器的功能要求,将时钟信号连接到每个触发器的时钟输入端。

最后,将各个触发器的输出通过逻辑门进行连接,得到计数器的输出。

4. 仿真验证完成电路设计后,我们使用EDA软件进行仿真验证。

通过输入不同的时钟信号,观察计数器的输出是否符合预期。

在仿真过程中,我们可以调整时钟信号的频率,观察计数器的计数速度。

三、实验结果与分析通过EDA软件的仿真,我们得到了计数器的输出结果。

在时钟信号的作用下,计数器按照预期进行了计数,并输出了相应的二进制数。

通过观察输出结果,我们可以得出以下几点结论:- 计数器的输出与时钟信号的频率有关,频率越高,计数速度越快。

- 计数器的输出按照二进制的顺序进行计数,当达到最大值时,会从0重新开始计数。

四、实验总结本次实验通过EDA软件进行了计数器的设计与仿真。

24进制计数器

24进制计数器

学生实验报告实验课名称:VHDL硬件描述语言实验项目名称:同步计数器专业名称:电子科学与技术班级:32050801学号:3205080127学生姓名:柯斌教师姓名:程鸿亮2010年_11月 13日组别_____________________同组同学李福来实验日期2011年11月13日实验室名称成绩_____一、实验名称:同步计数器二、实验目的与要求:设计一个同步二十四进制计数器,理解触发器同步计数工作机制,掌握同步触发控制的VHDL描述方法以及异步清零的描述方法。

三、实验内容:通过VHDL编程,实现一个同步二十四进制计数器,要求有1个异步清零端、1个时钟脉冲输入、驱动7段数码管显示的个位和十位信号端四、实验条件:1. WindowsXP操作系统2. QuartusII EDA开发系统3. 杭州康芯SOPC硬件开发平台五、实验原理:clk:计数时钟脉冲输入;clr:异步清零信号,高电平有效,此时输出显示为“00”ten[6..0]:十位数的7段数码管显示输出;one[6..0]:个位数的7段数码管显示输出;六、源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-------------------------------entity cnt24 isport(clk,clr:in std_logic;ten,one:out std_logic_vector(6 downto 0);co:out std_logic);end entity cnt24;---------------------------architecture str of cnt24 issignal ten_temp,one_temp:std_logic_vector(3 downto 0); begin--------------------------process(clr,clk) isbeginif (clr='1') thenten_temp<="0000";one_temp<="0000";co<='0';elsif (clk'event and clk='1') thenif(one_temp="0011" and ten_temp="0010") then one_temp<="0000";ten_temp<="0000";co<='1';elsif(one_temp="1001") thenten_temp<=ten_temp+1;one_temp<="0000";elseone_temp<=one_temp+1;end if;end if;end process;----------------------------process(one_temp) isbegincase one_temp iswhen"0000"=>one<="1111110";when"0001"=>one<="0110000";when"0010"=>one<="1101101";when"0011"=>one<="1111001";when"0100"=>one<="0110011";when"0101"=>one<="1011011";when"0110"=>one<="1011111";when"0111"=>one<="1110000";when"1000"=>one<="1111111";when"1001"=>one<="1111011";when others=>one<="1111110"; end case;end process;---------------------------------- process(ten_temp)isbegincase ten_temp iswhen"0000"=>ten<="0000000";when"0001"=>ten<="0110000";when"0010"=>ten<="1101101";when others=>ten<="1111110"; end case;end process;-----------------------------------end str;七、实验结果与分析:1,RTL仿真如下:2,时序仿真结果:3,代码下载后的部分实例:计数到23时,无进位。

EDA计数器设计

EDA计数器设计

EDA实验报告EDA多功能数字时钟设计摘要:本实验中我们运用EDA课程中所学的知识,设计了一个拥有时间校正和闹钟功能的24小时制多功能数字时钟。

通过本实验,我们初步了解EDA的设计过程;初步掌握用VHDL语言的设计方法和设计思想;初步熟悉Max+Plus II软件平台的编程和仿真,并通过AEDK-EDA实验板下载模拟实现初步了解了硬件实现的方法。

关键词:数字时钟、VHDL、FPGA、Max+Plus II一、设计方案1.功能描述本次设计的多功能数字钟具有基本的计时功能和时间校正功能,同时可以进行定时闹铃。

计时功能采用24小时计时,显示时、分、秒。

其中分钟和秒模块采用60进制实现;小时设计了24进制的计数器.时间校正部分,分为时校时和分校时,分别通过控制时校正按钮和分校正按钮来实现.闹铃部分,先通过模式切换按钮进入闹钟定时,然后通过与时间校正相同的方法来进行闹铃时间的预置,当预置到达时间时,时钟将通过蜂鸣器进行闹铃。

2.硬件使用模块:EPF10K20TC144-4,模块10(蜂鸣器),模块17(脉冲源),模块21(开关设置),模块22(设置跳接模块), 模块23(键盘显示模块)3.VHDL程序设计框图二、 VHDL 源程序library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity clock isport(clk:in std_logic;----------------------时钟脉冲clk1:in std_logic;---------------------数码管选通时钟脉冲md1:in std_logic;----------------------模式选择:0为计时,1为闹钟 md2:in std_logic_vector(1 downto 0);---10为时校正(定时),01为分校正(定时) speak:out std_logic;-------------------闹钟 0dout:out std_logic_vector(6 downto 0);--数码管七段码输出 selout:out std_logic_vector(2 downto 0));---数码管选通输出 end clock;architecture one of clock issignal sel:std_logic_vector(2 downto 0);--------模6计数信号(数码管选通输入) signal hou1:std_logic_vector(3 downto 0);-------小时十位 signal hou2:std_logic_vector(3 downto 0);-------小时个位 signal min1:std_logic_vector(3 downto 0);-------分钟十位 signal min2:std_logic_vector(3 downto 0);-------分钟个位 signal seth1:std_logic_vector(3 downto 0);------定时小时十位 signal seth2:std_logic_vector(3 downto 0);------定时小时个位 signal setm1:std_logic_vector(3 downto 0);------定时分钟十位 signal setm2:std_logic_vector(3 downto 0);------定时分钟个位 signal sec1:std_logic_vector(3 downto 0);-------秒十位 signal sec2:std_logic_vector(3 downto 0);-------秒个位 signal h1:std_logic_vector(3 downto 0); ------输出小时十位 signal h2:std_logic_vector(3 downto 0); ------输出小时个位 signal m1:std_logic_vector(3 downto 0); ------输出分钟十位 signal m2:std_logic_vector(3 downto 0); ------输出分钟个位signal s1:std_logic_vector(3 downto 0); ------输出秒十位signal s2:std_logic_vector(3 downto 0); ------输出秒个位-------------------------------------------------begin----------------------------------------------模6计数(数码管选通)choice:process(clk1)beginif clk1'event and clk1='1' thenif sel="101" thensel<="000";elsesel<=sel+1;end if;end if;end process choice;selout<=sel;-----------------------------------------------小时十位h110:process(clk,hou2,min1,min2,sec1,sec2,md1,md2)beginif clk'event and clk='1' thenif (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and(sec1="0101" and sec2="1001") thenhou1<="0000";elsif hou1="0010"and hou2="0011"and md1='0' and md2="10" then hou1<="0000";elsif (hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (hou2="1001"and md1='0' and md2="10") thenhou1<=hou1+1;end if;end if;end process h110;-----------------------------------------------小时个位h220:process(clk,min1,min2,sec1,sec2,md1,md2,hou1)beginif clk'event and clk='1' thenif (hou1="0010" and hou2="0011")and(min1="0101" and min2="1001") and(sec1="0101" and sec2="1001") thenhou2<="0000";elsif hou2="1001"and(min1="0101" and min2="1001") and (sec1="0101" andsec2="1001") thenhou2<="0000";elsif (hou2="1001"and md1='0' and md2="10")or (hou1="0010"andhou2="0011"and md1='0' and md2="10") thenhou2<="0000";elsif ((min1="0101" and min2="1001") and (sec1="0101" and sec2="1001"))or (md1='0' and md2="10") thenhou2<=hou2+1;end if;end if;end process h220;-----------------------------------------------分钟十位m110:process(clk,min2,sec1,sec2,md1,md2)beginif clk'event and clk='1' thenif (min1="0101" and min2="1001") and (sec1="0101" and sec2="1001") then min1<="0000";elsif min1="0101"and min2="1001"and (md1='0' and md2="01")thenmin1<="0000";elsif (min2="1001"and (sec1="0101" and sec2="1001")) or (min2="1001"and md1='0' and md2="01")thenmin1<=min1+1;end if;end if;end process m110;----------------------------------------------分钟个位m220:process(clk,sec1,sec2,md1,md2)beginif clk'event and clk='1' thenif min2="1001"and (sec1="0101" and sec2="1001")thenmin2<="0000";elsif min2="1001"and (md1='0' and md2="01")thenmin2<="0000";elsif (sec1="0101" and sec2="1001") or(md1='0' and md2="01")thenmin2<=min2+1;end if;end if;end process m220;---------------------------------------------秒十位s110:process(clk,sec1,sec2)beginif clk'event and clk='1' thenif (sec1="0101" and sec2="1001")thensec1<="0000";elsif sec2="1001"thensec1<=sec1+1;end if;end if;end process s110;--------------------------------------------秒个位s220:process(clk,sec2)beginif clk'event and clk='1' thenif sec2="1001" thensec2<="0000";else sec2<=sec2+1;end if;end if;end process s220;-------------------------------------------时间设置小时部分sethour1:process(clk,seth2)beginif clk'event and clk='1' thenif seth1="0010"and seth2="0011" thenseth1<="0000";elsif seth2="1001" thenseth1<=seth1+1;end if;end if;end process sethour1;-------------------------------------------sethour2:process(clk,md1,md2,seth1)beginif clk'event and clk='1' thenif (seth1="0010"and seth2="0011")or seth2="1001"then seth2<="0000";elsif md1='1' and md2="10" theneth2<=seth2+1;end if;end if;end process sethour2;-------------------------------------------时间设置分钟部分setmin1:process(clk,setm1,setm2)beginif clk'event and clk='1' thenif setm1="0101"and setm2="1001"thensetm1<="0000";elsif setm2="1001"thensetm1<=setm1+1;end if;end if;end process setmin1;----------------------------------------------setmin2:process(clk,md1,md2,setm2)beginif clk'event and clk='1'thenif setm2="1001"thensetm2<="0000";elsif md1='1' and md2="01"thensetm2<=setm2+1;end if;end if;end process setmin2;--------------------------------------------闹铃speaker:process(clk1,hou1,hou2,min1,min2)beginif clk1'event and clk1='1'thenif seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 thenif(sec2="0000"or sec2="0010" or sec2="0100" or sec2="0110" or sec2="1000" )thenspeak<='1';else speak<='0';end if;end if;end if;end process speaker;-------------------------------------------数码管显示disp:process(sel,md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2) beginif sel="101" thencase h1 iswhen "0000"=>dout<="0111111";when "0001"=>dout<="0000110";when "0010"=>dout<="1011011";when others =>dout<="1000000";end case;elsif sel="100" thencase h2 iswhen "0000"=>dout<="0111111";when "0001"=>dout<="0000110";when "0010"=>dout<="1011011";when "0011"=>dout<="1001111";when "0100"=>dout<="1100110";when "0101"=>dout<="1101101";when "0110"=>dout<="1111101";when "0111"=>dout<="0000111";when "1000"=>dout<="1111111";when "1001"=>dout<="1101111";when others=>dout<="1000000";end case;elsif sel="011" thencase m1 iswhen "0000"=>dout<="0111111";when "0001"=>dout<="0000110";when "0010"=>dout<="1011011";when "0011"=>dout<="1001111";when "0100"=>dout<="1100110";when "0101"=>dout<="1101101";when others=>dout<="1000000";end case;elsif sel="010" thencase m2 iswhen "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when "0110"=>dout<="1111101"; when "0111"=>dout<="0000111"; when "1000"=>dout<="1111111"; when "1001"=>dout<="1101111"; when others=>dout<="1000000"; end case;elsif sel="001" thencase s1 iswhen "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110"; when "0101"=>dout<="1101101"; when others=>dout<="1000000"; end case;elsif sel="000" thencase s2 iswhen "0000"=>dout<="0111111"; when "0001"=>dout<="0000110"; when "0010"=>dout<="1011011"; when "0011"=>dout<="1001111"; when "0100"=>dout<="1100110";when "0101"=>dout<="1101101";when "0110"=>dout<="1111101";when "0111"=>dout<="0000111";when "1000"=>dout<="1111111";when "1001"=>dout<="1101111";when others=>dout<="1000000";end case;end if;if md1='0' then---------------计时时间显示和设置模式h1<=hou1;h2<=hou2;m1<=min1;m2<=min2;s1<=sec1;s2<=sec2;else -------------闹铃时间显示和设置模式h1<=seth1;h2<=seth2;m1<=setm1;m2<=setm2;s1<="1111";s2<="1111";end if;end process disp;------------------------------------------end;三、仿真结果我们将上述VHDL程序通过Max+Plus II进行编译仿真,仿真结果符合我们设计所预想的功能。

定稿24进制计数器课设说明书 2

定稿24进制计数器课设说明书 2

目录1.绪论 (1)1.1课题背景 (1)1.2设计目的 (2)1.3设计意义 (2)1.4本课题研究内容 (2)2.研究方案 (2)3.系统硬件设计 (3)3.1 计数器电路 (3)3.1.1 计数部分74LS90: (3)3.1.2 74LS00功能: (5)3.1.3 译码部分74LS48: (6)3.1.4 74Ls48功能表 (7)3.1.5 脉冲555多谐振荡器: (7)3.2 共阴极七段数码管显示器 (8)4.系统仿真与调试 (9)4.1软件平台 (9)4.2系统仿真结果与分析 (9)4.2.1 原理图: (9)4.2.2 预测方案 (10)4.2.3 测试步骤: (10)4.3 分析仿真: (11)5系统硬件焊接与调试 (11)5.1焊接步骤 (12)5.2元件清单 (12)5.3实物图 (12)5.4硬件电路测试 (14)5.5电路板的测试情况、参数分析与实际效果 (15)6.缺点及改进 (15)6.1焊接缺点 (15)6.2 改进 (15)总结 (17)致谢 (18)参考文献 (19)24进制计数器的设计摘要:24进制数字钟是一种用数字电路技术实现时计时的装置,与机械式时钟相比具有更高的准确性和直观性。

此次设计与制作24进制电子数字钟时计数、译码、显示电路需要了解组合逻辑电路和时序逻辑电路;了解集成电路的引脚安排;了解各种时计数、译码芯片的逻辑功能及使用方法;了解数字钟的原理。

本次设计是基于24进制电子数字钟的原理,实现具有24进制清零功能的电子钟,它主要由555多谐振荡器、二-五-十进制加法器74LS90、译码器74LS48、74LS00、共阴极LED数码管等四个模块构成。

各功能模块在EWB软件中先由仿真出,然后将其打包成可调用的元件,再利用原理图输入法将各模块按功能连接起来就得到顶层文件的原理图。

这时,再进行时序仿真、引脚锁定和嵌入逻辑分析仪之后,就编译下载至硬件中,选择正确的模式和各种设置后即可实现这次设计所要求的功能。

EDA计数器

EDA计数器

实验报告课程名称CPU设计实验项目实验二四位二进制数可预置可逆计数器设计实验仪器LP-2900 FPGA实验装置系别计算机科学与技术专业计算机科学与技术班级/学号计科1206/学生姓名实验日期 2014/05/29 成绩指导教师胡信裕实验二四位二进制数可预置可逆计数器设计一、实验目的熟悉掌握QUARTUSⅡ文本编辑器的使用及VHDL文本输入方式,并进一步熟悉掌握设计源文件的编译及仿真操作。

通过本实验设计:1.学习、理解VHDL文本文件的基本结构,掌握VHDL文本文件设计的基本方法。

2.学习使用QUARTUSⅡ文本编辑器的模板输入方法,熟悉常用语句的语法现象,掌握VHDL 功能描述和结构描述的方法。

3.学习、理解并掌握运用VHDL实现常用组合逻辑和时序逻辑的设计。

二、实验器材微机系统、LP-2900 FPGA实验装置、QUARTUSⅡ三、实验内容(一)四位二进制数可预置可逆计数器功能要求1.具有异步清零和同步置数操作功能控制,各一位控制输入,四位二进制数预置输入。

2.具有可控的四位二进制正(加一)、负(减一)循环计数功能,四位计数输出、一位正、负计数控制输入。

3.扩展设计:具有可级联能力。

(二)实验步骤1.上机,学习掌握QUARTUSⅡ工具软件的操作及文本设计输入、编辑工具的使用方法;2.建立一个设计项目文件夹(Ex2)和一个VHDL文本文件(counter_n16.vhd),将模块(实体)名和文件名设为相同并保存为VHDL格式文件;3.根据VHDL文本文件的基本结构和实验内容要求,借助文本模板命令分别输入和编辑“库和程序包”的申明、实体中的端口和结构体中的逻辑功能描述;4.对VHDL文本设计文件进行编译、修改,直至没有语法错误;5.建立一个仿真测试波形文件,针对电路功能要求,设计仿真输入波形;6.进行仿真测试操作,分析仿真结果并对文本设计文件进行修改,直至全部功能正确实现;7.保存设计文件,完成实验报告。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《EDA技术》课程实验报告
学生姓名:黄红玉
所在班级:电信100227
指导教师:高金定老师
记分及评价:
一、实验名称
实验1:24进制计数器的设计
二、任务及要求
【基本部分】5分
1、在QuartusII平台上,采用原理图输入设计方法,调用两片74160十进制计数器,采
用反馈置数法,完成一个24进制同步计数器的设计,并进行时序仿真。

2、要求具备使能功能和异步清零功能。

3、设计完成后生成一个元件,以供更高层次的设计调用。

4、实验箱上选择恰当的模式进行验证,目标芯片为ACEX1K系列EP1K30TC144-3。

三、实验程序(原理图)
四、仿真及结果分析
在QuartusII平台上,采用原理图输入设计方法,调用两片74160十进制计数器,采用反馈置数法,设计一个24进制同步计数器的思路是,一片74160计数器作为个位计数,一片用来十位计数,要实现同步24进制,则个位接成0011,十位接成0010,再用一个四输入(一段接一个使能信号EN)的与非门接到两片74160计数器上的置数端LDN。

把原理图在QuartusII上画成后,进行编译,编译无误后,在新建一个波形文件,添加所有引脚,设置输入引脚的波形,最后在进行波形编译,无误后即可达到想要的24进制。

然后再根据EPF10K30E144芯片引脚对照,输入各个输入输出引脚的引脚号,再链接到试验箱检验,观察数码管的显示结果。

五、硬件验证
1、选择模式:模式7
2、引脚锁定情况表:
六、小结
经过这次的实验工作,让我知道了许多的东西,也对QuartusII这个软件的一个初步认识及应用,也让我了解了许多在书本上所学不到的知识和技能,这为我们在以后的工作起了非常重要的作用。

相关文档
最新文档