计数时钟的设计_第1页
计数时钟的设计_第2页
计数时钟的设计_第3页
计数时钟的设计_第4页
计数时钟的设计_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计数时钟的设计第1页,共60页,2023年,2月20日,星期四2《EDA技术》Electronic

Design

Automation

主要内容:一、项目前知识二、项目任务三、项目目标四、实施步骤五、相关知识第2页,共60页,2023年,2月20日,星期四4

《EDA技术》

时序逻辑在数字电路设计中占着重要的地位,其中计数器的使用频率非常高,因此需要掌握各种功能(下面举例14种功能)的计数器的设计方法。一、项目前知识:计数器设计Electronic

Design

Automation

第3页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(1)带使能端的计数器:第4页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(2)带同步置位的计数器:第5页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(3)带同步复位的计数器:第6页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(4)向上/向下计数器:第7页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(5)同步置位和使能的计数器:第8页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(6)带使能端的向上/向下计数器:第9页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(7)同步复位和使能的计数器:第10页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(8)同步复位和置位的计数器:第11页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(9)同步置位向上/向下的计数器:第12页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(10)同步置位、使能、向上/向下的计数器:第13页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(11)同步复位、置位、使能的计数器:第14页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(12)同步复位、向上/向下的计数器:第15页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(13)同步复位、使能、向上/向下的计数器:第16页,共60页,2023年,2月20日,星期四4

《EDA技术》

Electronic

Design

Automation

(14)模为200的向上计数器:第17页,共60页,2023年,2月20日,星期四4

《EDA技术》

要求:对每一种不同功能组合的计数器都进行功能和时间上的仿真,如果结果正确,请加上静态共阳数码显示电路,并且在试验箱上验证计数结果。

一、项目前知识:计数器设计Electronic

Design

Automation

第18页,共60页,2023年,2月20日,星期四2《EDA技术》Electronic

Design

Automation

主要内容:一、项目前知识二、项目任务三、项目目标四、实施步骤五、相关知识第19页,共60页,2023年,2月20日,星期四4

《EDA技术》

计数时钟由模60秒的计数器、模60分的计数器、模24小时的计数器、报警模块、分钟/小时设定模块、输出显示模块构成。秒钟计数模块的进位输出是分钟计数模块的进位输入,分钟计数模块的进位输出为小时计数模块的进位输入。其中秒钟模块应设有分钟的调节端口,分钟模块应设有小时的调节端口。输出显示模块使用动态共阴数码管显示电路,报警设置为整点报时,每次报时15秒。二、项目任务Electronic

Design

Automation

第20页,共60页,2023年,2月20日,星期四2《EDA技术》Electronic

Design

Automation

主要内容:一、项目前知识二、项目任务三、项目目标四、实施步骤五、相关知识第21页,共60页,2023年,2月20日,星期四5

通过本项目,利用VHDL语言完成基于FPGA实现的动态共阴极数码管显示的计数时钟的设计,并下载到FPGA中进行验证,

达到以下要求:1、

掌握动态数码管显示电路的设计

2、

掌握VHDL编程语言

3、

熟悉各种功能计数器的设计

Electronic

Design

Automation

《EDA技术》

三、项目目标第22页,共60页,2023年,2月20日,星期四2《EDA技术》Electronic

Design

Automation

主要内容:一、项目前知识二、项目任务三、项目目标四、实施步骤五、相关知识第23页,共60页,2023年,2月20日,星期四6

1、准备工作:(1)了解并分析设计要求

(2)整体分析设计后进行模块化设计,先分别进行单元功能设计并仿真,最后再进行连调并仿真。Electronic

Design

Automation

《EDA技术》

三、实施步骤第24页,共60页,2023年,2月20日,星期四7

2.设计框图

《EDA技术》

Electronic

Design

Automation

时钟clk1输入秒计数分钟计数小时计数动态数码管显示驱动动态共阴数码管显示报警输出时钟clk2第25页,共60页,2023年,2月20日,星期四7

3.原理设计框图

《EDA技术》

Electronic

Design

Automation

第26页,共60页,2023年,2月20日,星期四7

4.实验电路连线

《EDA技术》

Electronic

Design

Automation

本例使用位于试验箱EDAPRO/240H上的”动态键盘显示模块“中的6个8段数码管DS1A~DS6A实现显示。 数码管段码A,B,C,D,E,F,G分别为独立扩展下载板上第86脚(和”KPL_AH”的A连接)、87脚(和”KPL_AH”的B连接)、88脚(和”KPL_AH”的C连接)

、89脚(和”KPL_AH”的D连接)、90脚(和”KPL_AH”的E连接)、92脚(和”KPL_AH”的F连接)、93脚(和”KPL_AH”的G连接)。

SS0,SS1,SS2是数码管的位选扫描信号,分别为独立扩展下载板上第68脚(和“DS1_8A(T)”的SS0连接),69脚(和“DS1_8A(T)”的SS1连接),70脚(和“DS1_8A(T)”的SS2连接)。 第27页,共60页,2023年,2月20日,星期四7

4.实验电路连线

《EDA技术》

Electronic

Design

Automation

RESET为独立扩展下载板上的第71脚,接”F1_12(T)”的“F9~F12”任意插孔。HOURSET为独立扩展下载板上的第73脚,接”F1_12(T)”的“F9~F12”任意插孔。MINSET为独立扩展下载板上的第74脚,接”F1_12(T)”的“F9~F12”任意插孔。CLK为独立扩展下载板上的第79脚,接“FRQ(21)”插孔,即1Hz。CLKDSP为独立扩展下载板上的第183脚,接“FRQ(11)”插孔,即1024HzSPEAK为独立扩展下载板上的第38脚,内部已经锁定,无需外部连线。操作:计数时钟从0秒开始计数,计满60分钟蜂鸣器鸣叫15秒。小时、分钟的设置是通过对应的按键设置,每按下键一次,小时或分钟向上加1分钟或1小时。第28页,共60页,2023年,2月20日,星期四7

5.实验管脚分配

《EDA技术》

Electronic

Design

Automation

第29页,共60页,2023年,2月20日,星期四7

6.实验波形仿真结果

《EDA技术》

Electronic

Design

Automation

(1)秒/分计数器模块仿真结果:第30页,共60页,2023年,2月20日,星期四7

6.实验波形仿真结果

《EDA技术》

Electronic

Design

Automation

(2)小时计数器模块仿真结果:第31页,共60页,2023年,2月20日,星期四7

6.实验波形仿真结果

《EDA技术》

Electronic

Design

Automation

(3)数码管显示驱动模块仿真结果:第32页,共60页,2023年,2月20日,星期四7

6.实验波形仿真结果

《EDA技术》

Electronic

Design

Automation

(4)报警器模块仿真结果:第33页,共60页,2023年,2月20日,星期四7

6.实验波形仿真结果

《EDA技术》

Electronic

Design

Automation

仿真波形看出:选择SS输出与data[3..0]数据输出完全同步,每次clk上升沿有效,秒钟加1秒,且MINSET有效,分钟加1分。(5)模块连调最终仿真结果:H0:00M0:00S0:01H1:00M1:01S1:01H2:00M2:01S2:02第34页,共60页,2023年,2月20日,星期四7

7.硬件验证实验结果

《EDA技术》

Electronic

Design

Automation

功能仿真和时序仿真结果符合预期,最后上试验箱验证设计结果。第35页,共60页,2023年,2月20日,星期四2《EDA技术》Electronic

Design

Automation

主要内容:一、项目任务二、项目目标三、实施步骤四、相关知识五、评价与总结第36页,共60页,2023年,2月20日,星期四四川邮电职业技术学院四.相关知识1、并发语句(补充)2、VHDL的信号驱动和延迟第37页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句(1)块语句(Block)

块语句的并行工作方式更为明显。块语句本身是并行语句结构,而且它的内部也都是由并行语句构成的,包括进程与其它的并行语句。相比块语句本身并没有独特的功能,它只是一种并行语句的组合方式,利用它可以将程序编排得更加清晰、更有层次,因此对于一组并行语句,是否将它们纳入块语句中,都不会影响原来的电路功能。 在多层嵌套的块结构中,内层块的所有定义值对外层块都是不可见的,而对其内层块都是可见的。因此,如果在内层的块结构中定义了一个与外层块同名的数据对象,那么内层的数据对象将与外层的同名数据对象互不干扰。第38页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句【例1】含有三重嵌套的块语句......b1:BLOCK --定义块b1SIGNALs:BIT; --在b1块中定义sBEGIN s<=aANDb;--向b1中的s赋值

b2:BLOCK --定义块b2套于b1块中

SIGNALs:BIT;--定义b2块中的信号s BEGIN s<=cANDd; --向b2中的s赋值

b3:BLOCK BEGIN z<=s; --此s来自b2块

ENDBLOCKb3; ENDBLOCKb2; y<=s; --此s来自b1块ENDBLOCKb1;第39页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句【例2】第40页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句【例3】第41页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句

例3要特别注意信号定义的区域,在结构体与块中定义的信号的透明性是不同的。其中so2只能在块内使用,块外的结构体中是不可见的,而信号so1、co1、co2在结构体中的任何块中都是可见的。由此例综合所得到的电路图可以看出,块的设置和应用并不象例化语句那样会产生低层次的元件模块电路结构。第42页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句(2)并行过程调用语句并发过程调用语句是一个完整的语句,在它的前面可以加标号;并发过程调用语句应带有IN,OUT或者INOUT的参数,它们应列于过程名后跟的括号内;并发过程调用可以有多个返回值,但这些返回值必须通过过程中所定义的输出参数带回。 并行过程调用语句的语句调用格式与顺序过程调用语句是相同的,即

过程名(关联参量名);第43页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句(2)并行过程调用语句 并行过程的调用,常用于获得被调用过程的多个并行工作的复制电路。例如要同时检测出一系列有不同位宽的位矢信号,每一位矢信号中的位只能有一个位是1,而其余的位都是0,否则报告出错。完成这一功能的一种办法是先设计一个具有这种对位矢信号检测功能的过程,然后对不同位宽的信号并行调用这一过程。PROCEDUREcheck(SIGNALa:INSTD_LOGIC_VECTOR;--在调用时SIGNALerror:OUTBOOLEAN)IS--再定位宽VARIABLEfound_one:BOOLEAN:=FALSE;--设初始值BEGINFORiINa'RANGELOOP--对位矢量a的所有的位元素进行循环检测IFa(i)='1'THEN--发现a中有'1'IFfound_oneTHEN--若found_one为TRUE则表明发现了一个以上的'1'ERROR<=TRUE;--发现了一个以上的'1'令found_one为TRUE第44页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句(2)并行过程调用语句 并行过程的调用,常用于获得被调用过程的多个并行工作的复制电路。例如要同时检测出一系列有不同位宽的位矢信号,每一位矢信号中的位只能有一个位是1,而其余的位都是0,否则报告出错。完成这一功能的一种办法是先设计一个具有这种对位矢信号检测功能的过程,然后对不同位宽的信号并行调用这一过程。PROCEDUREcheck(SIGNALa:INSTD_LOGIC_VECTOR; --在调用时再定位宽

SIGNALerror:OUTBOOLEAN)IS VARIABLEfound_one:BOOLEAN:=FALSE; --设初始值BEGIN FORiINa'RANGELOOP --对位矢量a的所有的位元素进行循环检测

IFa(i)='1'THEN --发现a中有'1' IFfound_oneTHEN --若found_one为TRUE则表明发现了一个以上的'1' ERROR<=TRUE; --发现了一个以上的'1'令found_one为TRUE第45页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句

RETURN; --结束过程

ENDIF; Found_one:=TRUE; --在a中已发现了一个'1' EndIF; EndLOOP; --再测a中的其它位

error<=NOTfound_one; --如果没有任何'1'被发现error将被置TRUEENDPROCEDUREcheck调用过程如下: CHBLK:BLOCK SIGNALs1:STD_LOGIC_VECTOR(0TO0);--过程调用前设定位矢尺寸

SIGNALs2:STD_LOGIC_VECTOR(0TO1); SIGNALs3:STD_LOGIC_VECTOR(0TO2); SIGNALs4:STD_LOGIC_VECTOR(0TO3); SIGNALe1,e2,e3,e4:Boolean; BEGIN Check(s1,e1); --并行过程调用关联参数名为s1,e1 Check(s2,e2); --并行过程调用关联参数名为s2,e2 Check(s3,e3); --并行过程调用关联参数名为s3,e3 Check(s4,e4); --并行过程调用关联参数名为s4,e4 ENDBLOCK;第46页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句(3)类属映射语句 类属映射语句可用于设计从外部端口改变元件内部参数或结构规模的元件,或称类属元件。这些元件在例化中特别方便,在改变电路结构或元件升级方面显得尤为便捷。其语句格式如下:

GENERICmap类属表 类属映射语句与端口映射语句PORTMAP()语句具有相似的功能和使用方法。它描述相应元件类属参数间的衔接和传送方式,它的类属参数衔接(连接)方法同样有名字关联方式和位置关联方式。 例1给出了PORTMAP()和GENERIC又一使用示例。程序描述了一个类属元件,是一个未定义位宽的加法器addern,而在设计实体adders中描述了一种加法运算,其算法如图所示。设计中需要对addern进行例化,利用类属映射语句将addern定义为16位位宽的加法器U1,而U2中将addern定义为8位位宽的加法器,然后将这两个元件按名字关联的方式进行连接,最后获得电路图。第47页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句【例1】LIBRARYIEEE;--待例化元件USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_arith.ALL;USEIEEE.STD_LOGIC_unsigned.ALL;ENTITYaddernISPORT(a,b:INSTD_LOGIC_VECTOR;result:outSTD_LOGIC_VECTOR);ENDaddern;ARCHITECTUREbehaveOFaddernISBEGINresult<=a+b;END;第48页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

1、VHDL的并发语句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_arith.ALL;USEIEEE.STD_LOGIC_unsigned.ALL;ENTITYaddersIS

GENERIC(msb_operand:INTEGER:=15; msb_sum:INTEGER:=15);PORT(b:INSTD_LOGIC_VECTOR

(msb_operandDOWNTO0);result:OUTSTD_LOGIC_VECTOR (msb_sumDOWNTO0));ENDadders;ARCHITECTUREbehaveOFaddersISCOMPONENTaddernPORT(a,b:INSTD_LOGIC_VECTOR;result:OUTSTD_LOGIC_VECTOR);ENDCOMPONENT;SIGNALa:STD_LOGIC_VECTOR(msb_sum/2 DOWNTO0);SIGNALtwoa:STD_LOGIC_VECTOR (msb_operandDOWNTO0);BEGINtwoa<=a&a;U1:addernPORTMAP(a=>twoa,b=>b,result=>result);U2:addernPORTMAP(a=>b(msb_operanddowntomsb_operand/2+1),b=>b(msb_operand/2downto0),result=>a);ENDbehave;第49页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

2、VHDL的信号驱动和延迟(1)信号的驱动源进程对信号的作用有两种:一种是“事务”,另一个是“事件“(event)。如果某进程对信号赋值,无论赋给信号的新值与信号原有的值是否相同,都称该信号发生了一个“事务”;如果某进程对信号赋值,且赋给信号的新值与信号的原值不同,则称该信号上发生了“事件”。在仿真过程中,对信号进行操作必须指明三项内容:(1)信号名,这是被操作的对象;(2)操作发生的时刻;(3)信号值。在仿真器中,通常把由这三项内容指定的对信号的操作也称为事件,并把对信号的操作保存在一个称为“信号操作队列”(也称为“事件队列”)的链表中。第50页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

2、VHDL的信号驱动和延迟(1)信号的驱动源多驱动源:在时间域内,给某个信号赋值的序列,称为该信号的驱动源。一个进程只能为某个信号建立一个驱动源,而不论赋值多少次。一个信号可能有一个驱动源,也可能有多个驱动源。在结构体或块结构内,当存在相同的信号多次赋值时,则该信号有多个驱动源,这时,要由判决函数来确定采用哪一个驱动源。第51页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

2、VHDL的信号驱动和延迟(1)信号的驱动源多驱动源:在时间域内,给某个信号赋值的序列,称为该信号的驱动源。一个进程只能为某个信号建立一个驱动源,而不论赋值多少次。一个信号可能有一个驱动源,也可能有多个驱动源。在结构体或块结构内,当存在相同的信号多次赋值时,则该信号有多个驱动源,这时,要由决断函数(Resolution)来确定采用哪一个驱动源。第52页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

2、VHDL的信号驱动和延迟(2)信号的延迟信号的延迟是从发生到生效的时间间隔。VHDL语言中,存在两种延迟模型:惯性延迟和传输延迟,这两种延迟模型常用于结构体的行为描述。信号赋值语句句法的一般格式为:

信号<=延迟模型/[REJECT时间表达式]/UNAFFECTED

其中:延迟模型由关键字INERTIALTRANSPORT指定,若无关键字说明则默认为惯性延迟。保留字REJECT用于指定脉冲宽度,保留字UNAFFECTED用于表示事件无变化。第53页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

2、VHDL的信号驱动和延迟

信号的惯性延迟(

INERTIAL)惯性延迟用于建立开关器件的模型,几乎所有器件都存在惯性延迟。惯性延时的书写格式为: 信号<=[[REJECT时间表达式]INERTIAL]波形表达式;惯性延迟的作用

ARCHITECTUREexampleOFfilterIS SIGNALreference:BIT:=’0’; SIGNALa,b,c:BIT;

CONSTANTt1:TIME:=10ns;

CONSTANTt2:TIME:=4ns; BEGIN Reference<=’1’AFTER10ns;’0’AFTER

20ns;’1’AFTER25ns; ‘0’AFTER30ns;’1’AFTER45ns;’0’AFTER55ns; ‘1’AFTER58ns;’0’AFTER60ns;’1’AFTER65ns; ‘0’AFTER80ns;--形成一个脉冲波形

b<=referenceAFTERt1;

c<=referenceAFTERt2;

a<=referenceAFTER1ns;

ENDexample;

第54页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA技术》

2、VHDL的信号驱动和延迟

信号的惯性延迟(

INERTIAL)

第55页,共60页,2023年,2月20日,星期四56

Electronic

Design

Automation

《EDA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论