基于EDA技术数字时钟设计的方法对比

时间:2022-10-22 06:15:21

基于EDA技术数字时钟设计的方法对比

【摘要】本文主要通过比较数字时钟的计数部分的设计方法,介绍了用Altera公司的QuartusⅡ软件设计数字系统的方法。

【关键字】EDA;QuartusⅡ;数字钟

引言

当今电子产品正在向功能化、体积最小化、功耗最低化的方向发展。EDA(电子设计自动化)技术正是为了适应现代电子设计的要求,吸收多学科最新成果形成的一门新技术。可以利用EDA技术进行电子系统的设计,并且具有以下优点:1、采用自顶向下的设计方法;2、使用软件的方式设计硬件;3、使用软件方式设计的系统到硬件的转换是由开关自动完成;4、设计过程中可以是由有关软件信息仿真;5、系统可现场编程,在线升级;6、整个系统可以集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。

本文结合EDA技术完成数字钟的CPLD设计,分别用Verilog HDL语言进行编程和原理图输入方式实现,并在QuartusⅡ软件下进行仿真,给出了仿真结果,从而验证了数字钟CPLD设计的正确性。

1、数字钟的功能

数字钟的功能主要包括:

能够对outhor(小时)、outmin(分)、outsec(秒)进行计时,每日按24小时计时制。

outhor(小时)、outmin(分)、outsec(秒)位能够分别被调整。

能同时对outhor(小时)、outmin(分)、outsec(秒)位进行清零。

2、数字钟框图

本电路采用模块化设计,主要分为脉冲产生模块、计数模块和显示驱动模块,各部分电路分别完成相应功能,并通过门电路使相应模块进行联系和控制,最终完成全部电路的设计,实现整个电路的全部功能。

数字钟七段数码显示电路的设计要求为:秒显示数字为00-59;分显示数字为00-59;小时显示数字为00-23。整个数字时钟电路由振荡脉冲发生器、计数电路、显示译码/驱动电路和七段显示器组成,具体框图如下图所示:

振荡脉冲发生器将脉冲信号进行分频以产生秒脉冲。计数电路由秒计数器、分计数器以及时计数器组成,实现秒、分、时的计数。显示译码驱动器驱动七段显示器,使其正确显示秒、分、时。本文主要介绍计数电路的实现。

3、模块介绍

3.1脉冲发生器模块

晶振电路产生2M标准脉冲经分频电路进行8192分频得到256Hz的信号永远控制动态扫描显示,然后再经256分频得到标准秒信号。

3.2计数模块

QuartusⅡ软件的输入方法有很多种,包括图形设计输入、文本设计输入、波形设计输入、底层设计输入等。在设计电路时,应该考虑各种输入方法的优点,发挥各自的长处来选择不同的实现方法。本文分别用原理图输入方法和文本设计输入方法来实现计数电路。具体流程图如图所示:

3.2.1原理图输入法

图形方式的设计输入主要是使用EDA软件进行原理图、状态图、波形图等图形的编辑和修改。QuartusⅡ提供了大量的基本逻辑块电路;宏功能;兆功能高级模块等库。如果用户知道库中的元件名,就可以直接输入所需要的元件名,比如,如果需要2输入与门可以直接键入AND2,然后单击OK,工作区鼠标所在位置则出现需要的元件符号,如果不知道元件名称,则可以选择对应库,从中选择所需元件。

本文选择用3个74390,集成了两个二―五―十进制计数器,分别被连接成60进制计数器和24进制计数器。第一个和第二个74390被连接成60进制计数器,分别将二―五―十进制计数器连接成8421码十进制计数器,再连接成100进制计数器,最后实现计数到60清零。第三个74390被连接成24进制计数器,分别将二―五―十进制计数器连接成8421码十进制计数器,再连接成100进制计数器,最后实现计数到24清零。

原理图设计输入方法是一种最直接的设计描述方式,使用元件库中的元件画出系统或电路的原理图,符合人们的思维习惯。但是需要设计人员具有丰富的硬件知识、熟悉CPLD器件的结构。

3.2.2文本设计输入法

硬件描述语言HDL是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计者利用这种语言可以从上层到下层逐层描述自己的设计思路,用一些列分层次的模块来表示及其复杂的数字系统;然后利用电子设计自动化工具逐层进行仿真验证;最后再用专用集成电路或现场可编程门阵列自动布局布线工具,把网表转化为具体电路布线结构的实现。

HDL输入方式为文本格式,所以比原理图输入简单,使用EDA的文本编辑器即可完成。有些编辑器还带有语法提示功能。目前广泛使用的有AHDL、VHDL、和Verilog HDL,其中VHDL和Verilog HDL都是IEEE标准的硬件描述语言。VHDL语言的语法严谨,适合复杂系统的设计。Verilog HDL的语法近似C语言,可读性强、容易掌握,对底层电路的描述功能更强,适合ASIC设计。

本文使用的是Verilog HDL语言。数字钟的三个计数部分分别通过调用模块实现,先编写根据标志位bz可实现60或24进制计数模块,如果标志位bz值为0,进行60进制计数,否则,进行24进制计数。主要程序如下:

if (clrl = = 1’ d1)

Out [7:0] =8’d0;

else

out[3:0] =out[3:0]+4’d1;

if(out[3:0] = =4’d10)

begin

out[7:4]= out[7:4]+4’d1;

out[3:0]=4’d0;

end

if(bz = =1’d0)

begin

co=1’d0;

if(out[7:4] = =4’d3&&out[3:0] = =4’d0)

begin

co=1’d1;

out[7:0]=8’d0;

end

end

else

begin

co=1’d0;

if(out[7:4]= =4’d2&&out[3:0]= =4’d4)

begin

co=1’d1;

out[7:0]=8’d0;

end

end

end

在模块clock1中,调用三次clock2模块,分别实现60进制,60进制和24进制计数。程序如下:

clock2 clocksec(clk,0,clr,addsec,outsec,secco);

clock2 clockmin(secco,0,clr,addmin,outmin,minco);

clock2 clockhor(minco,1,clr,addhor,outhor,horco);

HDL语言描述在状态机、控制逻辑、总线功能方面较强,使其描述的电路能在特定综合器作用下以具体硬件单元较好地实现。

3.3显示驱动模块

采用动态扫描显示,将计数模块输出的BCD码转换为7段码,在扫描频率作用下动态循环点亮8个数码管。动态显示的优点是每次只点亮一个数码管,功率只是8个数码管静态显示的1/8,同时输入电流小,只要保证每个扫描频率超过人的眼睛视觉暂留频率以上,就可以达到点亮单个七段显示器,能享有8个同时显示的视觉效果,而且显示也不闪烁抖动。

4编译和下载

本文采用分模块编译,使用QuartusⅡ中的Compiler编译器进行编译。各个模块编译成功后,在连接成完整的系统。编译过程中,如果出现信息、错误和警告,将在编辑器窗口提示,设计者可以根据对设计进行修改。当编译通过时,建网表、逻辑综合、适配、划分、时域分析、装配等自动完成,生成多个后续工作要用的文件。然后用QuartusⅡ的Simulator仿真器和TimingAnalyzer工具分别进行功能仿真和时序仿真,验证设计是否符合要求,如出现问题,须返回原设计进行修改。当编译通过后,调出底层设计的所有模块符号、元件及IO端口,用连线的方法将它们组合起来,形成顶层文件。再进行编译和仿真,验证设计是否符合要求。最后将编译后的文件下载到所选的芯片中,制成ASIC。

5结语

从本文对数字钟计数电路的两种设计方法中可以看出,用原理图输入和文本输入各有优势,原理图比较直观,语言设计比较方便存档,常用方式以HDL语言为主,原理图为辅。此外,借助QuartusⅡ软件构成EDA系统,开发周期较短、设计较灵活、实现功能多、稳定性高,同时可以节省开发费用,能有效实现电路的数字化和微型化。

参考文献

[1]王锁萍.电子设计自动化(EDA)教程.成都:电子科技大学出版社,2000.

[2]谭会生,张昌凡.EDA技术及其应用.西安:西安电子科技大学出版社,2001.

[3]宋万杰.CPLD技术及其应用.西安:西安电子科技大学出版社,1999.

[4]徐志军.大规模可编程器件及其应用.成都:电子科技大学出版社,2000.

[5]李景华,杜玉远.可编程逻辑器件与EDA技术.沈阳:东北大学出版社.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:基于粒子群优化算法的Web挖掘技术的研究 下一篇:不同密度盐水选种对水稻秧苗素质的影响