• 个人简历下载
  • 职场资讯
  • 求职攻略
  • 求职面试技巧
  • 面试题
  • 笔试题
  • 职业规划
  • 职场法则
  • 职场培训
  • 升迁之路
  • 劳动法规
  • 跳槽注意事项
  • 当前位置: 工作范文网 > 职场 > 职场培训 > 正文

    EDA实验报告(quartus2仿真)(20页)

    时间:2020-11-26 11:34:08 来源:工作范文网 本文已影响 工作范文网手机站

    EDA实验报告(quartus2仿真)

    EDA 设计 (Ⅱ)

    学号:姓名:

    院系:指导:谭雪琴时间:

    年4月日

    20118

    目录

    1. 引言……………………………………………………… 03 2. 正文……………………………………………………… 03

    2.1. 设计要求……………………………………… 03 2.2. 整体电路工作原理…………………………… 2.3. 子模块设计原理与仿真……………………… 042.3.1. 脉冲发生电路…………………………… 04 2.3.2. 计时电路………………………………… 07 2.3.3. 译码显示电路…………………………… 10 2.3.4. 报时电路……………………………………2.3.5. 校时、保持以及清零电路…………………2.3.6.

    总功能电路连接……………………………2.4. 整体电路下载…………………………………… 212.5. 扩展闹铃功能设计……………………………… 212.5.1. 闹铃时间设定功能……………………… 21 2.5.2. 闹铃显示功能………………………………2.5.3. 闹铃响铃功能………………………………2.5.4.

    闹铃总电路连接…………………………… 结论…………………………………………………………… 致谢…………………………………………………………… 参考资料…………………………………………………… 262

    04 15 16 20

    22 23 24

    3. 254. 265.

    多功能数字钟设计

    (南京理工大学)

    摘要:本文详细介绍了多功能数字钟的工作原理及设计过程。首先利用

    quartus2软件,采用模块化设计方法,分别设计分频器、模计数器、动态显示电路、清零校时电路和报时电路等功能模块,然后观察仿真波形,确认功能实现后进行封装与调用。最后将各功能模块整合起来构成整体电路,仿真和调试通过后下载到EDA实验箱,观察实际运行结果。此外,本文还描述了附加闹铃功能的设计过程,并记述了实验过程中出现的一些问题及解决方案,以及对这次设计的一些经验教训的反思。

    关键词:数字钟; 校时报时; 闹铃; 动态显示; 消颤; 仿真;下载

    1、 引言

    该数字钟功能丰富、操作简单,可使人们方便的获取时间信息及相关提醒,在实际生活中广泛应用,具有显著的实用价值。其构成虽较简单,但融合了组合逻辑电路和时序逻辑电路,包括了分频器、计数器、数据选择器、编码器译码器以及锁存器等几乎所有数字逻辑电路的所学内容,是理论联系实际,提高知识技能的绝佳途径。

    2、 正文

    2.1 设计要求

    利用quartus2软件设计一个数字钟,并下载到EDA实验系统中。要求可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57” 时报时频率为512HZ,59’59”时报时频率为1KHZ)等功能。

     此外,还可以设计闹铃功能或自行添加其他功能。

    基本设计要求为:

    1、能进行正常的时、分、秒计时功能; 2、分别由六个数码管显示时分秒的计时;

    3、 K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);

    4、 K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零); 5、 K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分); 6、 K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);

    3

    2.2 整体电路的工作原理

    数字钟主要由脉冲发生电路、计时电路、译码显示电路、报时电路、校时清零电路以及附加功能电路组成。其中脉冲发生电路产生1HZ、2HZ、500HZ、1KHZ以及1MHZ时钟信号,分别送至计时电路、校时电路、报时电路和动态显示电路等作为时钟信号。计时电路为系统核心,利用1HZ信号作为计数脉冲,两个模60计数器和一个模40计数器,实现秒分时的计时功能。译码显示电路将计时电路输出的计时信号进行译码后送至数码管并在时钟的驱动下动态显示计时数据。报时电路通过计时电路的计时信号而产生相应的选通信号,控制扬声器在特定时间发出不同频率的声音信号,实现报时功能。清零保持电路通过控制计数器使能端的电位实现清零和保持。校时电路根据开关的状态,选择输入到计数器的时分时钟信号的信号源,从而实现正常计数和快速校时功能。附加功能电路依照具体要求对电路进行相关改进,以实现相应功能。以下为系统电路框图:

    图 2.2.1 整体电路框图

    译码显示电路 脉冲发生电路 计时电路 报时电路 校时清零电路 附加功能电路

    2.3子模块设计原理与仿真波形

    自顶向下模块化设计方法,是根据系统的总要求,将系统分解为若干个子系统,再将每个子系统分解为若干个功能模块直到分成许多各具特定子功能的基本模块为止。再利用分解的逆过程进行互联,完成系统设计。

      2.3.1脉冲发生电路

    图 2.3.1 脉冲发生电路

    其中,in为振荡电路48MHZ时钟信号输入端,在模块内部经过分频,分别输出1HZ、1KHZ、1MHZ、500HZ和2HZ信号,送到后级电路作为相应时钟信号。其中n分频器可由模n计数器来实现,最高位的输出即为n分频之后的信号,且占空比为1:1。

    由于 48M=24×1000×1000×2

    4

    故可以通过模24计数器、模1000计数器以及模2计数器的组合来实现各种所需信号的分频。

    模1000计数器选用3片74163级联,利用同步清零实现。当计数器计数输出为11,1110,0111(十进制999)的时候,通过8位与非门输出清零信号,使计数器清零。下图为模1000分频器内部原理图和输出仿真波形。

    图2.3.2 模1000分频器原理图

    图 2.3.2 模1000分频器仿真波形输出

    检验以上输出波形,10脚输出的波形周期为时钟的1000倍,且占空比为1:1。

    模24计数器选用两片74160级联,通过异步清零实现。当计数器输出BCD码10,0100(十进制24)时,两位与非门输出低电平清零信号,送至芯片CLRN端异步清零。

    图 2.3.3 模24分频器原理图

    5

    图2.3.4 模24分频器仿真输出波形

    根据波形可知,最高位输出周期为时钟周期的24倍,满足分频要求。但由于74160是10进制计数器,故其占空比不再为1:1,而是5:1。

    同理,模2计数器可采用一片74163或74160构成,也可以用D触发器直接构成,功能较简单,在此就不再赘述。

    最后,将各子功能模块组合起来,构成脉冲发生电路模块,并进行封装。

    图2.3.5 脉冲发生电路总原理图

    6

    通过观察其输出的波形,确认输出的各个波形满足要求。

    2.3.2计时电路

    时钟的计时进制分别为60和24,故可根据要求设计模60和模24的计数器,通过级联,输出各位的计数信号。

    其中,模24计数器的设计在脉冲发生部分已经叙述,故不再介绍其设计过程。模60计数器的设计可采用两片74160级联,辅以四位与非门实现。以下分析其设计原理。

    74160为模10计数器,将其进位信号(个位)作为下一片(十位)的计数使能信号,就能实现级联。计数器的工作计数为000,0000——110,1001,共60个状态,利用与非门分别接其为110,1001时为1的输出脚,与非之后送到置数端LD,实现同步置数。需要指出的是,由于74160采用的是同步置数、异步清零,为了电路工作稳定,消除冒险,在此选用置数法实现清零。

    图 2.3.6 模60计数器连接图

    7

    图 2.3.7 模60计数器输出波形图

    由上图各位输出波形可知计数状态符合要求,且占空比都达到较大,适合作为下级电路的驱动信号。调试成功后进行封装,以便于调用。

     图 2.3.8 模60封装图

    封装后的模60计数器,其低4位(out1~out4)作为秒和分的个位计数值,高三位作为秒分的十位计数值。clk60为时钟信号,由外部引入。clear和keyEN分别为计数控制输入端,将在下文中的校时和清零保持电路设计部分进行详细论述。oclk为进位信号,以便于级联。但若由计数器的置数位引出,由于为同步清零,下一级将会在本级计数到59时就发生进位。因此,在进行深入思考之后,我们决定采用D触发器将置位信号锁存一个时钟周期,以便使进位与清零能够同步。具体解决电路如下:

    图 2.3.9 清零信号锁存输出作为进位信号

    8

    从图2.3.7可以看出oclk进位信号成功实现与清零的同步,消除了电路冒险。

    此外,我们还考虑了从另一个方面来解决这个问题。由于是采用可编程逻辑器件(PLD)来实现电路设计,硬件描述语言(HDL,Hardware Description Language)可以描述硬件电路的功能,我们采用应用最为广泛的VHDL语言进行了模60计数器的设计,成功的消除了电路中的冒险。以下为其源代码: library ieee;

    use ieee.std_logic_1164.all;

    use ieee.std_logic_unsigned.all; 库和包集合说明语句

    ENTITY mod60vhdl IS PORT (

    ci :IN std_logic;

    nreset :IN std_logic; 实体描述部分 load :IN std_logic;

    d :IN std_logic_vector(7 downto 0); clk :IN std_logic; co :out std_logic;

    qh :buffer std_logic_vector(3 downto 0); ql :buffer std_logic_vector(3 downto 0) );

    END mod60vhdl;

    ARCHITECTURE behave OF mod60vhdl IS BEGIN

    co60HZ),人眼将会感觉到六位数码管被同时点亮。以下分别讨论译码和显示电路的具体设计。

    10

    图 2.3.11 七段数码管的结构

    a b c d e f g

    f

    a

    b g e

    c d

    数码管的根据点亮时公共端的电平分为共阴和共阳。显示译码器的功能是将表示数字的BCD码转换为七段显示码。

    以下为其真值表:

    D C B A a b c d e f g 显示 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 2 0 0 1 1 0 0 0 0 1 1 0 3 0 1 0 0 1 0 0 1 1 0 0 4 0 1 0 1 0 1 0 0 1 0 0 5 0 1 1 0 0 1 0 0 0 0 0 6 0 1 1 1 0 0 0 1 1 1 1 7 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 1 0 0 0 0 1 0 0 9

    图2.3.12 7447译码器

    化简后表达式为:

    a=ABCD+ABC b=ABC+ABC c=ABC

    d=ABC+ABC+ABCD e=A+ABC

    f=AB+ABCD+ABC g=ABC+BCD

    其中LTN、RBIN以及BIN等管脚与消隐、灯测试有关,本次设计不予考虑,都置为高电位。

    11

    动态显示部分的基本框图如下:

    图 2.3.13 动态显示电路框图

    DIG08421BCDSLDIG1SHMLMHHLHHDIG0DIG1DIG2DIG3DIG4DIG5DIG58421BCDabcdefg24选4MUX显示译码器7447DIG2DIG3A2 A1 A0CLK2译码器DIG4计数器74138

    计数器在时钟信号的作用下,产生模为6的BCD码计数信号,分别送到24选4MUX和74138中作为地址信号。24选4数据选择器根据A2A1A0的值选择SL、SH、ML、MH、HL、HH中的一路数据送到7447译码器进行译码,同时74138译码器将A2A1A0的值译码后分别输出到六片数码管的共阴端,作为片选信号。这样,在时钟信号CLK2的驱动下,各个数码管依次轮流显示对应的数值。

    其中,24选4MUX可以用四片74151来组成。

    图 2.3.14 74151

    74151芯片为8选1数据选择 器。其根据ABC脚输入的BCD 码值分别选通D0~D7的中的一路,从Y输出。GN为使能控制端。

    12

    将4片74151的地址线并联起来,分别输入6路数据的每一位,输出Y端构成4线输出。具体连接图如下:

    图 2.3.15 24选4 MUX 内部原理图

    图2.3.15中形如nam、nbm的标号,其含义为:a表示个位,b表示十位,n=1、2、3分别对应着时分秒,m=1、2、3、4分别对应着时(分秒)的四位。系统化的标号能使设计明确而有条理,便于阅读和查错。

    模6计数器用74163通过清零法构成,由于为同步清零,当输出0101时通过与非门实现清零。其输出的BCD码输出到图2.3.15的abc端,作为选通地址。同时送到74138经过译码来选通对应的数码管。

     

    图2.3.16 计数和片选部分原理图

    13

    对其进行功能仿真后输出波形如下:

    图 2.3.17 片选输出信号

    从波形图可以看出选用数码应为共阴极的。每个选通周期有6个时钟周期,每片选通维持1个时钟周期,6片在时钟作用下轮流选通。

    最后,将输出BCD码经7447译码送至数码管。将以上几部分组合起来,就形成了动态显示电路,封装后的电路如图2.3.18中的名为“dongtai”模块。其iclk接外来时钟信号,ABCDEFG为输出数码管的段码,d1~d6为6片数码管的选通信号。其余引脚为6个输入的4位BCD码。

    图 2.3.18 计时电路与动态显示电路连接图

    14

    由以上分析可知,动态显示电路的输出只有7位段码,外加6根片选线,共计13根。而若使用静态显示的话,将会用到42根信号线。相比之下,动态显示电路大大节省了连线。并且由于每一时刻只有一片点亮,能够节省电能,使电路持续工作较长时间。

    对于动态显示频率的选择,既不能太高,也不能太低。低于60HZ人眼将会感觉到明显的闪烁现象,但若高于几MHZ将会使数码管的显示亮度下降。因此,本次设计,我们选用了1KHZ作为动态显示频率,效果较满意。当然,我们可以通过改变动态显示频率从而改变显示亮度这一原理,来为系统增加亮度调节功能,将会使该数字钟更为实用。

    2.3.4 报时电路

    根据设计要求,时钟必须具有整点报时功能。当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57” 时报时频率为512Hz,59’59”时报时频率为1KHz。其基本设计思路为:当计时到相应时间时0101,1001,0101,***1时,所对应的时间为59’5*”(末位为奇数)可利用公式

    out1?minH2?minH0?minL3?minL0?secH2?secH0?secL0

    即将out1作为输出选通信号。但还要求在53’、55’、57’、59’时报时,又可依据

    15

    out2?(secL1?secL2)?(secL3)?fl?secL3?fh

    其中fl、fh分别为500HZ和1KHZ的报时信号输入。

     再利用

    beep?out1?out2

    beep接输出扬声器,即可在规定时间内实现报时功能。按照以上逻辑公式,选用7位与门,辅以适量的两位与门和非门,连接出报时电路。

    图 2.3.19 报时电路原理图

    图 2.3.20 报时电路时序仿真波形

    通过仿真波形可以看出beep在各输入端置不同数时,分别输出不同的电位以及蜂鸣信号,经检验其满足以上报时设计要求。其中,报时脉冲fl、fh要求具有较大的占空比,以为扬声器提供较大能量,发出较响的声音。

    2.3.5 校时、保持以及清零电路

    要求设计K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变)K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零) K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分)K4是系统的校时开关(K4=0

    16

    正常工作,K4=1时可以快速校时)。以下分别对各个子功能电路设计进行说明。

    1. 开关去抖动电路

    由于电路采用机械触点开关,在按键按下的时候,将会产生毛刺,使输入电位发生抖动,影响电路的正常工作,譬如在校时或者保持时发生跳变和翻转。故需要在开关后面接入消颤电路进行去抖动。

    去抖动电路的基本原理是利用触发器和门控锁存器来实现输入状态的延时和锁存。其具体电路如下:

    图 2.3.21 去抖动电路原理图

    图 2.3.22 去抖动电路封装

    keyin为按键输入,keyout为按键去抖后输出,keyclk为时钟同步信号。

    图 2.3.23 去抖动电路输出波形仿真

    根据以上波形输出,可以很明显看出,在去抖动电路的作用下,开关输入信号都实现了与时钟信号的同步,有效的避免了毛刺信号的引入。

    2. 校时电路

    校时电路设计的基本思路是设计一个两路信号选择电路。当按键未按下时,正常计数时钟信号被送往计数电路,若按键按下,则将快速校时时钟信号送往计数电路。可以利用与门和或门简单实现以上功能。

    图 2.3.24 校时电路原理图

    17

    图 2.3.25 校时电路输出波形

    从波形图可以看出,当按键接通与否,输出的相应为正常计时信号和快速计时信号,即满足设计要求。

    图 2.3.26 封装后的校时模块

    图中,minclk为正常计数时钟信号,dsecclk为快速计数时钟信号。key为校时按键,minclkin为输出到下级的时钟信号。

    3. 保持电路

    当保持功能键按下时,电路将停止计时,保持在当前显示时刻。其实现方法是利用74160芯片的计数使能端ENT、ENP控制计时电路的计时和保持。当ENT=1,ENP=1时,电路正常计时,当ENT=1,ENP=0时,电路处于保持状态。因此,可将ENT置高电平,ENP外接至保持开关即可。

     

    图 2.3.27 保持清零电路原理图

    18

    图2.3.27中第一片74160的保持信号ENP接保持开关key,进位信号RCO通过和key相与后输出到下一片的ENP端,只有当保持键key为0时,两片的ENP都为0,电路保持。只有当key为1时,电路才可以正常计时。

    其保持功能接口封装在模60计数器内部,只引出keyEN引脚外接保持开关。具体见上文的模60封装图。

    4. 清零电路

    当清零键按下时,时钟的分秒全清零。其主要方法是通过控制计数器的清零端CLRN来实现。如图2.3.27所示,清零开关通过非门接两片74160的清零端CLRN。由于其清零电平为低电平有效,当清零键按下,电平为1,非运算之后为0,使计数器清零。其封装同保持电路,也是在模60计数器引出清零引脚,外接清零开关。

    图 2.3.28 清零保持信号作用输出波形

    如图,在清零信号的作用下,计数器清零。在保持信号的作用下,计数状态一直保持到保持端恢复为低电平。

    19

    2.3.6 总功能电路连接

    在完成各子功能模块的设计并调试通过后,将其封装,然后调用连接,构成总的功能电路,以满足设计要求。

    图 2.3.29 总电路连接原理图

    如上图,脉冲信号发生模块mod48M产生频率不同的分频信号,分别送到后级电路作为时钟信号。各控制按键K1、K2、K3、K4分别通过去抖动模块keysmooth后送到下级电路。其中校分校时开关K3、K4分别通过时间设定模块minset后连到计时器的时钟信号输入端。mod24、mod60计数模块构成数字钟的核心,产生计时数据。其产生的计数BCD码分别送往动态显示电路模块dongtai和报时模块timereport。送到dongtai的信号经过译码和片选后,送到后级数码管进行显示。送到timereport的信号经过判断选择后驱动扬声器发出对应的报时音。

    图 2.3.30 总电路封装

    20

    命名的系统化,是一个值得推荐的方法。

    另外说明,由于图片的分辨率有限,以及篇幅的限制,具体的连接电路,如有不详,请参照原理图文件。

    4、 致谢

    衷心感谢在实验过程中对我悉心指导和热情帮助的老师与同学。特别感谢我的搭档,他指出了我很多的设计错误,并提出了中肯的修改意见。在实验中我们积极思考讨论,相互接纳各自的看法观点,一起进行设计,最终圆满完成了这次设计任务。

    5、 参考资料

    【1】 EDA设计实验指导书.南京理工大学.2008

    【2】 蒋立平.数字逻辑电路与系统设计.电子工业出版社.2009

    【3】 付文红.EDA技术与实验.机械工业出版社.2007

    26

    clkf为外接48MHZ输入信号,mset、hset为校时校分开关引脚,clear、hold为清零保持开关引脚,abcdefg为输出的7段码,dig1~dig6为片选信号。整体功能模块whole封装完成。

    2.4整体电路下载

    在quartus2软件中完成以上原理图,编译通过后就可以下载到EDA实验箱中进行实际检验。具体操作过程如下:将whole原理图设为顶层实体后,进行编译。然后点击菜单栏中的Assignments,下拉后单击其中的Pin Planner项,在其中设置各个管脚对应序号。

    图 2.4.1 下载管脚设置

    各管脚设置完成后,重新编译一次。然后点击Tools中的Programer,选中下载文件,点start,原理图代码就被写入到实验箱的芯片之中,可以在实验箱上看到实际运行的结果。

    2.5扩展闹铃功能设计

    为数字钟增加闹铃功能。可以为其设计三个功能按键,闹铃时间设定使能开关alarmEN,时设定开关ah,分设定开关am。当alarmEN按下时,数码管从显示当前时间切换到显示闹铃时间,此时ah和am设定有效,可以通过按下ah和am来改变闹铃时间的时和分。当alarmEN松开时,ah、am无效,电路正常计时。当计时至所设闹铃时间时,扬声器发出闹铃声音,并持续一分钟。

    2.5.1 闹铃时间设定功能

    闹铃时间的显示和设定。利用已设计的模24和模60计数器的输出作为闹铃时间的计数BCD码,取iclk为2HZ作为闹铃的分时快速设定时钟信号,但是通过与am、ah相与之后送到计数器时钟输入端。即

    clk60?iclk?alarmmin

    21

    clk24?iclk?alarmhour

    只有当闹钟分设定键按下时,alarmmin为高电平,分位模60计数器才会计数,实现闹铃时间分位设定。同理,闹铃时间时位也是如此。

    图 2.5.1 闹铃时间设定原理图

    2.5.2 闹铃时间显示功能

    当闹铃设定使能键alarmEN按下时,要求数码管切换到显示闹铃时间,而且此时后台仍正常计时。可以考虑设计通过32选16数据选择器来实现时分位的显示切换。

    图 2.5.2 显示切换电路框图

    HH HL MH ML 32选16 MUX

    HH HL 动MH 态显ML 示 a b c d e f g AHH AHL AMH AML SH SL alarmEN

    HH、HL、MH、ML分别接正常计时电路的时分高低位输出BCD码,AHH、AHL、

    22

    AMH、AML分别接闹铃计时电路的时分高低位输出BCD码。通过选择端alarmEN选择两路时间数据的输出,送到后级动态显示译码电路处理和显示。

    其中,32选16MUX可由4片8选4MUX芯片74157扩展构成,将其选择端并接即可。

    图 2.5.3 74157芯片扩展原理图

    2.5.3 闹铃响铃功能

    当时钟计时到所设闹铃时间时,扬声器发出铃音,并持续一分钟。具体的设计思路是利用比较器,比较闹铃时间和时钟时间,当二者的时分位都相等时,芯片相等端输出高电平,此时扬声器蜂鸣信号输入通道选通,发出铃音。随着计时的继续,过一分钟后,相等端电平回到零,扬声器停止发声。

    图 2.5.4 响铃电路框图

    HH HL 闹铃信号 MH 32位比较器 AHH EBO ML 蜂鸣信号选择电路 Beep AHL AMH 报时信号 AML

    其中,与2.5.2同名各脚定义不变。但由于没有32位比较器,故采用4片

    23

    8位比较器7485芯片进行扩展。扩展方式为低位的ALBO、AEBO、AGBO分别与高位的ALBI、AEBI、AGBI级联,最高位的AEBO作为比较输出信号。具体连接如下图。

    图 2.5.5 32位比较器扩展连接图

    蜂鸣信号选择电路为一与门及一或门组成,用于选择闹铃信号和报时信号,原理较简单。

    图 2.5.6 蜂鸣选择电路

    2.5.4 闹铃总电路连接

    分别将闹铃电路的各子功能模块设计完成之后,按要求将其连接汇总,便可以实现闹铃功能。

    图 2.5.7 闹铃总电路原理图

    其中的timealarm功能模块为计数和比较子功能模块的封装。且原时钟计时电路及动态显示电路的管脚接入将会有一定修改,此图中没有给出,具体请看原电路图。

    24

    最后,将总原理图编译并下载到实验箱中观察实际运行结果,具体步骤同2.4节。

    3、 结论

    通过一周的不懈努力,最终我们成功的实现了基本功能和闹铃拓展功能。在此期间,我们重新熟悉了数电的课程内容,并掌握了运用计算机辅助设计(EDA)电路系统的大致流程和一般方法。这些都为将来参与实践工作打下了良好的基础。

    在实验过程中,遇到了很多问题,但都在相互讨论和请教老师之后得到了解决。

    1、显示问题。首先是设计完动态显示电路之后,下载后发现电路不工作。经老师指导后发现,是译码显示芯片7447的LTN、BIN、RBIN管脚电位没有都置高电平。改正并下载后,显示有了,但是现象很怪异。6片数码管轮流显示,前5位都显示8,最后一片显示时数字快速变化,真是令人百思不得其解。检查计数、显示电路都没有问题。最后经过分析,发现是计数器的时钟信号和动态显示的时钟信号接颠倒了,结果就看到了6片数码管以1HZ频率动态显示,以1MHZ快速计时。但是由于计时频率太高,看起来就是显示8了。时的高位因为经过24*3600的分频,已经小于人眼的视觉暂留极限频率,故可以觉察出其快速变化。经过改正后,电路正常显示。

    2、声音过小问题。在设计时,同学向我反映说他的数字钟报时时声音非常小,不知是什么原因。仔细检查后发现,他的分频电路是利用清零信号作为输出信号,高电平的占空比非常小,当然也就没有足够的能量来驱动扬声器来发出足够强度的声音。在修改了分频电路,使其占空比为1:1时,扬声器发出响亮悦耳的声音。

    3、保持电路设计。在设计保持电路时,我们走了些弯路,将每一个计数器的保持使能端都并接起来整体控制。同学一语惊醒梦中人,其实只要保持秒个位,自然其他位也不会产生计数。凡事还是要三思而后行啊。

    4、电路功能冒险。我们的计时电路在单独调试时,输出波形都满足要求。但将其和其他功能电路组合成为总系统之后,怪异的现象出现了,分位变成模40的计数器,每40分钟就向时个位进一位。这就怪了,分位和秒位用的都是同一个模60计数器,结果却出现两种情况。请教老师之后,才知道原来是由于我们的模60计数器采用的是异步清零,电路产生了冒险。在修改成为同步清零后,电路正常计时。

    5、功能模块命名和管脚命名。在设计过程中,我们为每个功能模块都取了十分准确而又便于识记的名称,如minset、mod24和timereport等。同时,对于管脚的命名也十分系统化,如hh1~hh4,hl1~hl4等,这些都使我们在纷杂的连线之中迅速找到对应管脚,大大提高了开发效率,也便于以后的修改和检查。

    25

    命名的系统化,是一个值得推荐的方法。

    另外说明,由于图片的分辨率有限,以及篇幅的限制,具体的连接电路,如有不详,请参照原理图文件。

    4、 致谢

    衷心感谢在实验过程中对我悉心指导和热情帮助的老师与同学。特别感谢我的搭档,他指出了我很多的设计错误,并提出了中肯的修改意见。在实验中我们积极思考讨论,相互接纳各自的看法观点,一起进行设计,最终圆满完成了这次设计任务。

    5、 参考资料

    【1】 EDA设计实验指导书.南京理工大学.2008

    【2】 蒋立平.数字逻辑电路与系统设计.电子工业出版社.2009

    【3】 付文红.EDA技术与实验.机械工业出版社.2007

    26

    • 下载文档
    • 收藏
    • 0

    有关的专题