基于原理图设计的EDA实验报告Word文档格式.docx
《基于原理图设计的EDA实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于原理图设计的EDA实验报告Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
2)时钟电路子模块counter1k的设计3
2时分秒计数器模块4
1)原理说明4
2)秒计数器模块的EDA设计4
3)分计数器模块的EDA设计5
4)时计数器模块的EDA设计5
3数字钟校时单元电路模块5
1)原理说明5
2)模式计数译码器子模块的设计6
3)数字钟校时单元顶层电路模块设计6
四数字钟的顶层设计和仿真7
1数字钟的顶层设计输入7
2仿真设计7
五 硬件测试7
六心得体会8
附录8
一设计要求
本课题将在QuartusII开发系统中用可编程逻辑器件,完成简易数字钟的EDA设计,具体要求为:
1数字钟功能:
数字钟的时间为24小时一个周期;
数字钟须显示时、分、秒;
2校时功能:
可以分别对时、分、秒进行单独校时,使期调整到标准时间;
二功能描述
数字式电子钟实际上是一个对标准1Hz进行计数的计数电路,秒计数器满60后向分计数器进位,分计数器满60后向时计数器进位,时计数器按24翻1规律计数,计数输出经译码器送LED显示器,由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加上一个校时电路。
1输入
1)K1:
模式选择键,第一次按K1按钮时为校秒状态,按第二次为校分状态,按第三次为校时状态,按第四次为计时状态,系统初始状态为计时状态。
2)K2:
手动校时调整键,当按住该键不放时,表示调整时间直至校准的数值,松开该键则停止调整。
3)clk_1kHz:
1000Hz的基准时钟输入,该信号10分频后作为整点报时所需的音频信号的输入时钟,1000分频后作为数字钟输入时钟。
2输出
HH[1..0]HL[3..0]为BCD码小时输出显示;
MH[2..0]ML[3..0]为BCD码分输出显示;
SH[2..0]SL[3..0]为BCD码秒输出显示.
三数字钟的层次化设计方案
根据上述功能,可以把多功能数字式电子钟系统划分为三部分:
时钟源(即标准秒钟的产生电路),时分秒计数器模块、数字钟模块、校时模块、数字秒表模块、1时钟源--晶体振荡器电路.
1)原理说明
如精度要求不高可选用555构成的多谐振荡器,设其振荡频率为f0=1kHz,电路原理图如图6-5所示,而后通过分频器电路(1000分频)即可产生1Hz的方波信号供秒计数器进行计数,分频器电路可由3片十进制计数器级联而得,根据6.2.2节的描述,本设计案例选用图1的多谐振荡器电路的输出作为数字式电子钟的基准时钟输入,基准时钟输入一方面用于定时报时和整点报时所需的音频信号。
另一方面该信号惊10分频后作为数字秒表的输入时钟,经1000分频后作为数字钟输入时钟。
2)时钟电路子模块counter1k的设计
时钟电路子模块可由3个十进制计数器74160级联而成,输出有10分频输出clk_10,1000分频输出clk_1Hz,其原理图如图2所示,74LS160为同步可予置4bit十进制加法计数器,它具有同步载入,异步清零的功能。
在QuartusII中,利用原理图输入法完成源程序的输入、编译和仿真。
时钟电路子模块的仿真输出波形文件如图3所示。
在仿真结果正确无误后,可将以上设计的时钟电路子模块counter1k设置成可调用的元件counter1k.sym如图4所示。
,以备高层设计中使用。
2时分秒计数器模块
时分秒计数器模块由秒个位、十位计数器、分个位、十位计数及时个位、十位计数电路构成。
其中:
秒个位和秒十位计数器、分个位和分十位计数为六十进制计数器,而根据设计要求时个位和时十位构成的为二十四进制计数器。
因此时分秒计数器模块可划分为时计数、分计数和秒计数3个子模块,根据设计要求时计数子模块为一个二十四进制可预置BCD码计数器模块;
分计数和秒计数子模块均为六十进制可预置BCD码计数器模块。
2)秒计数器模块的EDA设计
秒计数器模块的输入来自时钟电路的秒脉冲clk_1Hz。
为实现六十进制可预置BCD码的秒计数器的功能,可采用两级BCD码计数器同步级联而成。
第一级属于秒个位,用来计数和显示0~9秒,BCD码计数器每秒数值加1,当这一级达到9秒时,BCD码计数器使其进位输出信号Tc有效,在下一个时钟脉冲有效沿,秒个位计数器复位到0。
秒个位计数器进位输出信号Tc使秒十位计数器(模6计数)使能,在秒个位计数器复位同时,秒十位计数器计数值加1,该过程将持续59秒,此时秒十位计数器状态为1012(5),秒个位计数器状态为10012(9),此时将显示读数为59,同时秒十位计数器进位输出信号Tc为高电平,下一脉冲到来时秒个位计数器和秒十位计数器同时复位到0,并同步产生分脉冲进位输出信号Cout。
根据分析,可用2片74160同步级联设计成六十进制可预置BCD码计数器。
74160为同步可预置4bit十进制加法计数器,它具有同步载入,异步清零的功能。
构成该计数器的所有触发器都由时钟脉冲同步,在时钟脉冲输入波形上升沿同时触发。
这些计数器可以使用置数输入端(LDN)进行予置,即当LDN=0时,禁止计数,输入ABCD上的数据在时钟脉冲上升沿予置到计数器上;
如果在时钟脉冲上升沿来到以前LDN=1,则计数工作不受影响。
2个高电平有效允许输入(ENP和ENT)和行波进位(RCO)输出使计数器容易级联,ENT、ENP都为高电平时,计数器才能计数。
图5为使用2个74160同步级联设计的六十进制进制计数器秒计数器模块的原理图,由前面的分析知分和秒计数器都是模M=60的计数器,其规律为0001…585900…,此底层计数器模块的设计中保留了一个计数使能端CEN、异步清零端Clrn和进位输出端Tc,这三个引脚是为了实现各计数器模块之间进行级联,以便实现校时控制而预留的。
根据计数器置数清零法的原理,第一级计数器置数输入端的逻辑表达式为:
Tc1=not(D1•D3•CEN)
(1)
第二级计数器置数输入端的逻辑表达式为:
Tc2=not(D1•D3•D4•D6•CEN)
(2)
如图6-9所示。
从图6-9中可以知道当秒计数到010110012(59)时将产生一个进位输出Tc,此输出同时反馈至其置数输入端(LDN)实现0置数。
六十进制可预置BCD码计数器子模块count60_160.bdf的仿真输出波形文件如图6(a)所示。
分析知仿真结果,当计数输出D[7..0]=59时,进位输出Tc=1,结果正确无误。
可将以上设计的六十进制可预置BCD码计数器子模块设置成可调用的元件count60_160.sym,以备高层设计中使用,其元件符号图如图6(b)所示。
3)分计数器模块的EDA设计
分计数器模块和秒计数器模块的电路结构和工作原理完全相同。
分计数器模块的是使能输入CEN为秒计数器模块进位输出Tc,分计数器模块能计数和显示0~59分,分计数器模块的进位输出Tc,每小时一个脉冲。
4)时计数器模块的EDA设计
时计数器模块由分和秒级使能,每小时只一个脉冲。
当该条件满足时,74160的ENT变为高电平,即分和秒级为“59分59秒”。
时计数器模块能计数和显示0~23小时.同样可用2片74160同步级联设计成二十四进制可预置BCD码计数器。
由前面的分析时计数器是模M=24的计数器,其规律为0001…222300…,即当数字种运行到“23时59分59秒”时,在下一个秒脉冲作用下,数字种显示“00时00分00秒”。
为实现校时控制,时计数器模块的设计中仍保留了一个计数使能端CEN、异步清零端Clrn和进位输出端Tc,这三个引脚也是为了实现各计数器模块之间进行级联。
小时置数控制端LDN=D1•D0•D5•CEN,从图5中可以知道当秒计数到001000112(23)时将产生一个进位输出Tc,此输出同时反馈至其置数输入端(LDN)实现0置数。
最后,在QuartusII中,利用原理图输入法完成源程序的输入、编译和仿真。
二十四进制可预置BCD码计数器子模块count24_160.bdf的仿真输出波形文件如图8(a)所示。
分析知仿真结果,当计数输出D[7..0]=23时,进位输出Tc=1,结果正确无误。
可将以上设计的六十进制可预置BCD码计数器子模块设置成可调用的元件count24_160.sym,以备高层设计中使用,其元件符号图如图8(b)所示。
3数字钟校时单元电路模块
当刚接通电源或走时出现误差时都需要对时间进行校正,对时间的校正是通过截断正常的计数通路,而用频率较高的方波信号加到其需要校正的计数单元的输入端,这样可以很快使校正的时间调整到标准时间的数值,这时再将选择开关打向正常时就可以准确走时了。
下图所示为时、分、秒校时的校时电路。
在校时电路中,其实现方法是采用高速计数脉冲和计数使能来实现校时的,整个校时单元电路模块可分为两个子模块,一个是模式计数译码器子模块,一个是输出使能选择。
2)模式计数译码器子模块的设计
模式计数译码器子模块的输入数字种的功能设置键Mode按钮,第一次按Mode按钮时为校秒状态,按第二次为校分状态,按第三次为校时状态,按第四次为计时状态,如此循环。
刚刚通电时MODE=0为计时状态。
为了选择不同的功能设置,模式计数译码器子模块由宏模块74160组成的2位二进制计数器和一个2-4译码器,形成了计数译码器,该电路产生时分秒计数单元设置计数值的使能控制信号,其相应的功能如表6-1所示,另外在对分进行校时时应不能影响时计数,当校分时如果产生进位应该不影响时计数的计数。
表1计数单元选择功能表
Mode按钮
输入
输出
功能
Q2Q1
S_EN
M_EN
H_EN
SEL
1
00
计时
2
01
校秒
3
10
校分
4
11
校时
根据表6-1可得输出信号的逻辑表达式如下:
SEL=
;
S_EN=
M_EN=
H_EN==Q2•Q1(3)
据此可在QuartusII中设计出模式计数译码器子模块的原理图,如图9所示。
图9中SEL为功能选择信号,当SEL=1时,系统执行正常计时功能;
当SEL=0时,系统执行校时功能。
H_EN、M_EN、S_EN分别时分秒计数单元设置计数值的使能选择信号,高电平有效。
图10为其编译仿真后的输出时序波形图和生成的元件符号图。
3)数字钟校时单元顶层电路模块设计
根据校时单元的功能特性,可利用时钟基准输出的100Hz信号自动校时,在功能设置键Mode按钮的选择下,拨动一个校时开关KEY后(KEY=1时开始校时;
KEY=0时停止校时,100Hz信号分别作用于时分秒计数器,使之自动递增,直至增加到希望的值后,再将校时开关KEY拨回初始状态即可。
其原理图如图6-15所示,图中21MUX为2选1电路(S=0时选Y=B,S=1时选Y=A),用于选择正常计时状态和校时状态下和时分秒计数器的计数使能信号和时钟基准信号。
Ts和Tm分别为秒计数器,分计数器的进位输出。
四数字钟的顶层设计和仿真
经过对该设计项目各结构模块的定义、创建及编缉仿真后,证明其工作过程是正确的,下面我们利用QuartusII图形编缉器,把各个模块连接起来,完成最终设计。
1数字钟的顶层设计输入
按已确立的层次化设计思路,在QuartusII图形编缉器中分别调入前面的设计方案中所设计的低层模块的元件符号,而后我们就可以用这些元件符号来设计数字钟的顶层原理图,如图12所示:
其中count60_160为60进制计数器,count24_160为24进制计数器,T_con为时、分、秒校时的校时电路。
以clock_top为文件名保存数字钟的顶层原理图,在工程管理器选择File菜单下的Project中SetProjecttoCurrentFile选项,将当前的顶层原理图设置为工程文件。
这时可以看到工程管理器左上角的顶部工程名为clock_top,这样一来就完成了整个设计的输入,之后再进行编缉直到正确无误。
2仿真设计
在QuartusII中选择WaveformEditor波形编辑器,系统会打开波形编辑器窗口,创建一个新的波形文件,本设计中要仿真的对象为数字钟,须设定一个1KHZ的输入时钟信号和一个校时开关K2,模式的设置开关信号K1的波形,如图13和图14所示。
为了能够看到合适的仿真结果,所设计的输入信号的频率和实际的1HZ信号的频率是不同的,本设计中假定网格时间(GridSize)为10ns,总模拟时间(ENDTIME)为1ms。
图15为编译仿真正确无误后所生成的数字钟定层元件符号。
五 硬件测试
为了能对所设计的多功能数字钟进行硬件测试,应将其输入输出信号锁定在开发系统的目标芯片引脚上,并重新编译,然后对目标芯片进行编程下载,完成数字钟的最终开发,其硬件测试示意图如图16。
其设计流程如下。
1确定引脚编号
在目标芯片引脚锁定前,应首先确定选用的EDA开发平台及相应电路的工作模式,在此选择GW48系统的电路工作模式为No.7。
1)1KHz接系统的clock0(接1KHz),其对应目标芯片EP1C6的引脚号为179;
2)Alarm接时钟报警SPEAKER,其对应目标芯片EP1C6的引脚号为174;
3)HH[1..0]由数码管8显示,对应目标芯片EP1C6的引脚是158、141;
HL[3..0]由数码管7显示,其对应目标芯片EP1C6的引脚是140、139、138、137;
MH[2..0]由数码管5显示,其对应目标芯片EP1C6的引脚是135、134、133;
,ML[3..0]由数码管4显示,其对应目标芯片EP1C6的引脚是132、128、41、21;
SH[2..0]由数码管2显示,对应的目标芯片EP1C6的引脚分别是19、18、17,SL[3..0]由数码管1显示,对应的目标芯片EP1C6的引脚分别是16、15、14、13。
4)用键8、键5表示模式选择键和调整键,此两键所对应的目标芯片EP1C6的引脚分别是240、237。
2引脚锁定:
根据第5章5.2.5节的流程的第2步即可完成引脚锁定工作。
3编程下载和硬件测试
完成引脚锁定工作后,再次对设计文件进行编译,排查错误并生成编程下载文件clock_top.SOF。
执行QuartusII主窗口“Tools”菜单下“Programmer”命令或者直接单击“Programmer”按扭进入设置编程方式窗口,将“Mode”栏目中原有“JTAG”模式改为“PassiveSerial”。
完成编程模式选择后,执行QuartusII主窗口“Processing”菜单下“StarProgramming”,,将配置文件下载到GW48-SOPC系统的目标芯片EP1C6上。
按实验板上的输入按钮“键8,键5”,观测数码管输出,即可检查数字钟的输出是否正确。
六心得体会
通过这次的EDA实训,使我们看到了自己的不足,同时也熟悉了QuartusII的操作。
使课堂上的理论应用到了实践当中。
在实训的过程当中也遇到了问题就是不熟悉软件的操作过程和硬件的调试,还有就是没有将数字电路完全掌握。
EDA现在已经运用到电路设计的各个领域,利用软件的操作方法克服了实验室元件品种、规模和数量的不足,对我们的的应用能力和综合分析与设计能力的提高有着重要的意义。
参考文献
《EDA技术与VHDL实用教程》主编廖超平
《EDA技术与VHDL电路开发应用实践》编著刘欲晓方强
等
附录
图1多谐振荡器电路图2时钟电路子模块原理图
图3时钟电路仿真输出波形图4时钟电路模块元件符号图
图5六十进制进制计数器原理图
(a)(b)
图6六十进制可预置BCD码计数器子模块
(a)仿真输出波形;
(b)元件符号图
图7二十四进制时计数器模块原理图
(a)(b)
图8二十四进制可预置BCD码计数器子模块
图9模式计数译码器子模块的原理图
(a)(b)
图10模式计数译码器子模块
图11时、分、秒校时的校时电路逻辑图
图12数字钟的顶层原理图
图13数字钟计时状态时的仿真结果
图14数字种时状态校时的仿真结果
图15数字钟定层元件符号
图16硬件测试示意图