分享
分销 收藏 举报 申诉 / 32
播放页_导航下方通栏广告

类型基于VHDL的数字电子时钟的设计.doc

  • 上传人:pc****0
  • 文档编号:6033965
  • 上传时间:2024-11-26
  • 格式:DOC
  • 页数:32
  • 大小:1.68MB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于 VHDL 数字 电子 时钟 设计
    资源描述:
    基于VHDL的数字电子时钟的设计 目录 基于VHDL的数字电子时钟的设计 1 目录 1 摘要 2 引言 2 一、设计分析 3 1.1 设计要求 3 1.2 性能指标及功能设计性能指标 3 二、设计方案 3 三、设计环境 4 3.1 硬件设计环境 4 3.1.1 可编程器件EP2C5Q208C8N 及开发板系统 5 3.1.2 64位的计算机一台 5 3.2 软件设计环境 5 3.2.1 QuartusⅡ软件开发平台(8.0版本) 5 3.2.2 Windows7操作系统 5 3.2.3 硬件描述语言VHDL 5 四、整体设计流图 7 4.1 各模块的原理性功能介绍 7 4.1.1 可编程器件EP2C5Q208C8N 7 4.1.2 CPLD-JTAG接口 7 4.1.3 晶振和蜂鸣器 7 4.1.4 LED数码管显示 8 4.1.5 独立按键 9 4.1.6 拨码开关 9 4.1.7 QuartusⅡ软件开发平台(8.0版本) 9 4.2 设计的整体框架 10 4.2.1在各个模块都编译通过的基础上在顶层用原理图的方法实现。 10 4.2.2 设计原理及流程图 11 4.2.3逻辑流程图 12 4.2.4状态转移图 13 五、系统的模块化设计 13 5.1 软件程序模块化设计 13 5.1.1 秒/分/时输入模块的软件设计 13 5.1.2 秒/分/时计数模块的软件设计 14 5.1.3 模式选择模块的软件设计 14 5.1.4 数码管 15 5.1.5 闹钟模块的软件设计 16 5.1.5 系统时钟的软件设计 18 5.2 硬件的测试 20 5.2.1模拟时钟电路图与实物图 20 设计心得 23 致谢 24 参考文献 24 摘要 随着人类的不断进步,现代电子设计技术已进入一个全新的阶段,传统的电子设计方法、工具和器件在更大的程度上被EDA所取代。本实验则是基于VHDL语言设计的数字钟,具有时、分、秒显示功能。电路主要有时间计数模块、时间显示模块以及译码模块。 数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。它的基本功能是计时,计时周期为24小时,显示满刻度23时59分59秒;数字钟学习的目的是掌握各类计数器及它们相连的设计方法,熟悉多个数码管显示的原理与方法以及模块化设计方式;掌握用VHDL语言的设计思想以及整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,以24小时为计数循环,能实现清零,调时,调分以及闹钟等功能。本设计是一个显示时(2位)分(2位)秒(2位)共六个数字的多功能电子钟。因此将其分频得1Hz的秒钟信号,秒计满60即得1分钟,分满60即得1小时信号,小时满24即得一天。 关键词:数字钟,计数器,数码管,模块化设计, VHDL 引言 本设计采用的VHDL是一种全方位的硬件描述语言具有极强的描述能力能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计。当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。 美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上MaxplusII(或最新的QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。 EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。 本设计利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学、方便、新颖、有趣、直观设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点。并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现。 本设计主要研究基于FPGA的数字钟,要求时间以24小时为一个周期,显示时、分、秒。具有校时以及报时功能,可以对时、分及秒进行单独校对,使其校正到标准时间。 一、设计分析 1.1 设计要求 1)具有时、分、秒计数显示功能,以24小时循环计时。 2)要求走时误差不大于每天10秒。 3)具有调节小时、分钟,秒及清零的功能。 4)定时闹钟,实现整点报时,又扬声器发出报时声音,发出滴答的声音。 可编程逻辑器件及外围电子元器件,设计一个数字电子钟,利用EDA软件(QUARTUS Ⅱ)进行编译及仿真,设计输入可采用VHDL硬件描述语言输入法)和原理图输入法,并下载到EDA实验开发系统,连接外围电路,完成实际测试。 1.2 性能指标及功能设计性能指标 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分 60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。,当闹钟计数至我们预先设定的时间时,闹钟的铃声响起,以提示人们时间到了。 二、设计方案 本设计采用自顶向下的设计方法和模块化设计方式,它由秒计数模块,分计数模块,小时计数模块,报警模块,秒分时设置模块和译码模块,程序包, entity模块(顶层模块)八部分组成。 优点:设计简单方便,层次清晰,工程的建立方便,无需单独设计各个组件模块产生原理图文件后再进行电路连接设计。 用顶层设计采用原理图输入设计、底层设计采用VHDL设计的原理图与VHDL混合设计方法设计带整点报时功能的数字钟,所以此设计可分为顶层与底层设计,共分为六个模块。即时模块、分模块、秒模块、动态扫描控制模块、段码译码模块和整点报时模块。 秒模块主体为60进制的计数器,ss为向动态扫描控制模块提供秒的个位和十位数据的信号。reset 为秒清零,mm为分钟进位,每60秒产生一个高电平的信号,作为分模块的时钟输入,clk为秒模块的时钟输入,接1Hz脉冲信号,mm为分钟设置,低电平是不影响秒模块工作,当它为高电平时,mm信号会随之产生一个和clk频率相同的信号,达到调整分钟的目的。 分模块主体为60进制的计数器,daout为向动态扫描控制模块提供分的个位和十位数据的信号。分钟进位,每60分产生一个高电平的信号,作为时模块的时钟输入,秒计数到60时的进位输出信号hh和分钟调整输入信号mm,经或关系后接分的脉冲输入端clk,clk1为时调整脉冲,接1Hz脉冲, hh时钟设置,低电平是不影响分模块工作,当它为高电平时,mm信号会随之产生一个和clk频率相同的信号,达到调整时的目的。 时模块为一个24进制的计数器,动态扫描控制模块提供秒的个位和十位数据的信号。分计数到60时的进位输出信号和时调整输入信号,经或关系后接时脉冲输入端clk。为向动态扫描控制模块提供时的个位和十位数据的信号。 动态扫描模块中为动态扫描控制模块的脉冲输入,由外部脉冲发生电路提供,频率约为1kHz,sel0、sel1、sel2接外部38译码器74LS138的输入端A、B、C,ss[6..0]、mm[6..0]、hh[5..0]分别为秒模块、分模块、时模块计数段码输出控制信号。该模块实现时间的动态扫描显示控制。 字系统采用自顶向下、由粗到细,逐步分解的设计方法,最顶层电路是指系统的整体要求,最下层是具体的逻辑电路实现。自顶向下的设计方法将一个复杂的系统逐步分解成若干功能模块,从而进行设计描述,并且应用EDA软件平台自动完成各功能模块的逻辑综合与优化。利用QuartusⅡ进行具体设计编程、处理、检查以及器件编程 三、设计环境 3.1 硬件设计环境 本设计使用VHDL硬件开发板,可编程逻辑器件EP2C5Q208C8N 系列。设计过程中用到的外围电路的以及设计条件: 3.1.1 可编程器件EP2C5Q208C8N 及开发板系统 3.1.2.1 CPLD –JTAG接口 3.1.3.2 晶振和蜂鸣器 3.1.4.3 LED数码管显示 3.1.5.4 独立按键 3.1.6.5 拨码开关 3.1.2 64位的计算机一台 3.2 软件设计环境 3.2.1 QuartusⅡ软件开发平台(8.0版本) 3.2.2 Windows7操作系统 3.2.3 硬件描述语言VHDL 3.2.3.1 VHDL的简介 VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 3.2.3.2 VHDL的特点 (1)用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。 (2) VHDL元件的设计与工艺u无关,与工艺独立,方便工艺转换。 (3)VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。 (4)可以进行从系统级到逻辑级的描述,即混合描述。 (5)VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。 3.2.3.3 VHDL的设计流程 1)设计规范的定义 明确这个系统有哪些设计要求,和你要想到达的目标。 2)采用VHDL进行设计描述 这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择及是否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计,这个和其他软件语言差不多。最重要还是模块划分。 3)VHDL程序仿真 4)综合、优化和布局布线 综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率及减少资源的利用;布局布线,指的是将逻辑关系转化成电路连接的方式。 5)仿真 ,这个与VHDL程序仿真不同,这个不仅是对逻辑方面的验证,还要进行时序功能验证。 6)器件编程 四、整体设计流图 4.1 各模块的原理性功能介绍 4.1.1 可编程器件EP2C5Q208C8N 4.1.2 CPLD-JTAG接口 4.1.3 晶振和蜂鸣器 晶体振荡电路是构成数字式时钟的核心,它保证了时钟走时准确及稳定。晶体振荡器它的作用是产生时间标准信号。数字钟的精度主要取决于时间标准信号的频率及其稳定度。因此,一般采用石英晶体振荡器经过分频得到这一信号。晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路 4.1.4 LED数码管显示 译码是把给定的代码进行翻译,本设计即是将时、分、秒计数器输出的四位二进制数代码翻译为相应的十进制数,并通过显示器显示。 译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译。码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,下表列出了74LS47的真值表,表示出了它与数码管之间的关系。 译码是把给定的代码进行翻译,本设计即是将时、分、秒计数器输出的四位二进制数代码翻译为相应的十进制数,并通过显示器显示,通常显示器与译码器是配套使用的。我们选用的七段译码驱动器(74LS47)和LA5611数码管。 4.1.5 独立按键 此次设计主要外部电路的触发,每按一下将记一次数。 S1 校对秒的按键 S3 校对分的按键 S6 校对时的按键 多功能数字钟的闹钟功能部分通过按键s1,s3,s6,设定闹钟时间,当时钟进入闹钟设定的时间 4.1.6 拨码开关 此次设计拨码开关的主要作用是清零,和选择模式即状态的切换 4.1.7 QuartusⅡ软件开发平台(8.0版本) 本程序设计的是基于VHDL的数字时钟,,,,采用采用采用采用EDA开发工具,VHDL语言为硬件描述语言, QUARTUSII作为程序的运行平台,所开发的程序经过调试运行,波形仿真验证,初步实现了设计目标。 4.2 设计的整体框架 4.2.1在各个模块都编译通过的基础上在顶层用原理图的方法实现。 具体步骤如下: 1)确定总体结构 这是在进行系统具体编程设计之前就应该做的工作。有了这一步,就对数字钟的模块有了了解。在具体设计时只要根据这些模块各自的功能编写程序就大大的提高工作效率。系统总体框图如图1所示。 2)系统功能分析 整个系统以Altera的芯片为核心,外部设备比较简单,只需要几个拨码开关和6个数码管,开关分别作系统复位和校时用,6个数码管分别显示秒、分和小时。核心部分由3大模块组成,即时间计数模块、控制模块和显示模块。在系统设计时将控制模块和时间计数模块集成在一起。时间计数模块是通过计数产生秒、分和小时信号,显示模块对时间计数模块产生的秒、分和小时的信号,通过时钟扫描逐个在数码管上显示。校时功能主要是在计数器的设计上实现,通过设计正常计时和校时2个选通完成正常计时和校时的切换。 3)系统核心模块功能分析及实现 ①时间计数模块。时间计数模块由一系列的计数器进行级联实现,包括六进制、十进制、二十四进制计数器。秒和分钟的计数器的各位为十进制计数器。小时位为二十四进制计数器则由一个VHDL程序实现。 ②显示模块。显示模块由一个没有进位的六进制计数器、一个六选一选择器和一个七段译码管组成。六进制计数器为六选一选择器的选择判断提供输入信号,六选一选择器的选择输入端段分别接秒各位、分个位、分十位和小时位计数器的输出,用来完成动态扫描显示。 细化后的原理框图: 4.2.2 设计原理及流程图 数字电子钟的逻辑框图如下,它由振荡器、分频器、计数器、译码器显示器和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分 4.2.3逻辑流程图 4.2.4状态转移图 五、系统的模块化设计 5.1 软件程序模块化设计 5.1.1 秒/分/时输入模块的软件设计 60进制计数器(分、秒计数器)工作原理: “秒”计数器电路与“分”计数器电路都是60进制,它由一级10进制计数器和一级6进制计数器连接构成,如图三所示,采用两片中规模集成电路74LS90串接起来构成的“秒”、“分”计数器,实现时采用反馈清零法。(秒分时模块程序一样不再重复) architecture art of disshk is begin process(clk,d) variable count:integer range 0 to 100;--d为置位,计数段为100次 begin if d = '0' then if clk'event and clk='1' then --信号为1时有效 if(count=100) then 当扫描为次数为100次时 q<='0'; -- count :=0; else count:=count+1;-- 否则开始计数 end if; end if; else q<='1'; end if; 5.1.2 秒/分/时计数模块的软件设计 entity count is port (cl_r,clk,add: in std_logic; gsec,ssec: out std_logic_vector(3 downto 0); c: out std_logic); end entity ; architecture art of count is signal co,rclk: std_logic; begin process(cl_r,clk,rclk,co,add) is variable secg,secs,ad: std_logic_vector(3 downto 0);定义 秒的端口 个位,十位 begin rclk<=add xnor clk; 扫描时钟要低于系统时钟 if cl_r='0' then secg:="0000";secs:="0000";co<='0'; elsif (rclk='1'and rclk'event) then If secg="1001" and secs="0101" then secg:="0000";secs:="0000";co<='1';- elsif secg="1001" then secs:=secs+1;secg:="0000";co<='0'; elsif secg<"1001" then secg:=secg+1; end if; ----当计数个位为9,十位为5,计数值为59时,秒的个位十位都为零,进位为一,说明此时计数为一分钟。秒的个位一直计数,计数值不到9时,一直加,直到出现个位出现9,十位加一。 5.1.3 模式选择模块的软件设计 entity slc is port( add: in std_logic_vector(2 downto 0); sel:in std_logic; naout,clkout : out std_logic_vector(2 downto 0)); end entity; architecture art of slc is begin process(sel,add) begin if(sel='1') then ------sel为一时,闹钟模式开启,否则继续时钟的显示 naout<=add; else clkout<=add; 5.1.4 数码管 位选和段选 architecture art of sel is signal data: std_logic_vector(3 downto 0); begin process(sel,f0,f1,f2,f3,f4,f5) begin case sel is -------数码管的位选,数码管为共阳极的,秒分时共用六个 when "000"=>data<=f0;wei<="111110";---------数码管显示 when "001"=>data<=f1;wei<="111101"; when "010"=>data<=f2;wei<="111011"; when "011"=>data<=f3;wei<="110111"; when "100"=>data<=f4;wei<="101111"; when "101"=>data<=f5;wei<="011111"; when others=>data<=f0;wei<="111111"; end case; end process; process(data,sel) begin if sel="010" or sel="100" then 若是第二个或是第四个数码管亮,则低位的两个点要显示,低电平有效。 case data is when"0000"=>du<="01000000"; when"0001"=>du<="01111001"; when"0010"=>du<="00100100"; when"0011"=>du<="00110000"; when"0100"=>du<="00011001"; when"0101"=>du<="00010010"; when"0110"=>du<="00000010"; when"0111"=>du<="01111000"; when"1000"=>du<="00000000"; when"1001"=>du<="00010000"; when others=>du<="01000000"; end case; else case data is when"0000"=>du<="11000000"; when"0001"=>du<="11111001"; when"0010"=>du<="10100100"; when"0011"=>du<="10110000"; when"0100"=>du<="10011001"; when"0101"=>du<="10010010"; when"0110"=>du<="10000010"; when"0111"=>du<="11111000"; when"1000"=>du<="10000000"; when"1001"=>du<="10010000"; when others=>du<="11000000"; ----------段选 end case; end if; end process; 5.1.5 闹钟模块的软件设计 闹钟能否正常计数、能否对计时时间进行调整,定时闹铃功能是否正常,动态扫描显示是否正常。 原理框图: (1)计数模块:按照时钟模式完成一天24小时的计时功能。 (2)译码模块:根据计时模块的状态输出值来确定对应位的数据的,其输出是7段高低电平,以点亮相应的数码管; (3)计数控制模块:根据外部控制信号,进行时钟计数的调整和计时的控制; (4)响铃控制模块:根据外部闹钟控制信号完成闹钟的定时,当计数模块技术到和该模块所设定时间一致时,该模块将驱动蜂鸣器响铃。 (5)分频器:根据外部的输入时钟,将外部时钟成两路信号,一路用于正常的计数,一路用于七段显示数码管的动态扫描输出。 architecture art of beep is signal bep : std_logic; begin process(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2) begin if (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1="0000" and mm2="0000") then ----当前时间的时分秒完全等于设置的闹钟时间,蜂鸣器才有效,否则蜂鸣器不响,继续显示当前的时间 if clk='1' and clk'event then bep<=not bep; end if; else bep<='1'; end if; 5.1.5 系统时钟的软件设计 process(clk) variable counts:integer range 0 to 50000000; ---系统时钟为50MHZ begin if clk'event and clk='1' then -----时钟高电平有效 if(counts<25000000) then -----计数周期为1ms,1ms扫描100次, clks<='1'; ----0到0.5毫秒为高电平 counts:=counts+1; elsif(counts<50000000) then ----0.5毫秒到1毫秒为低电平 clks<='0'; counts:=counts+1; else counts:=0; end if; end if; end process; process(clk) variable countms:integer range 0 to 50000; ------分频段 begin if clk'event and clk='1' then -----时钟高电平有效 if(countms<25000) then -----计数周期为0.1ms.0到0.5毫秒为低电平 clkms<='1'; countms:=countms+1; elsif(countms<50000) then 0.05到0.05毫秒为低电平 clkms<='0'; countms:=countms+1; else countms:=0; end if; end if; end process; end architecture fenp; end if; c<=co; ssec<=secs; gsec<=secg; end process; end architecture; 动态扫描,时间1s 计数达到59秒后本身清零,进位给分位,依次类推 时钟信号的输入 模式的切换,闹钟的输入端口 三个图分别为秒分时的输入端口 位选六位,段选 8位 5.2 硬件的测试 本次选用EP2c5Q208C8N芯片。外部需接几上升沿按键,并接扬声器和不许译码器的数码管。 下载测试后,按复位键后数码管显示0时0分0秒开始计数,分秒时计数都正确。按动调分键或调小时键后,分位或小时位开始自加,再按键后停止。当时间到整点时会有十秒报时,按动停止键停止报时,不按此键时自动到十秒后停止报时。设计结果达到要求。 5.2.1模拟时钟电路图与实物图 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟 实物电路图: 此图为拨码开关的实物图,当4开关处于高电平时,说明选择模式已经打开了,你可以选择是计数模式,还是显示时分秒模式,还是闹钟模式 当拨码开关2,拨至高电平时,所有数码管显示的数值将全部清零 校对分的独立按键,每按一下,计数值加一,计数范围0到59 校对时的独立按键,每按一下,计数值加1,计数范围0到23 校对秒的独立按键,每按一下,计数值加1,计数范围,0到59 假使此刻时间为早上九点九分57秒,我们在选择的模式(拨码开关)下,将状态调为闹钟模式,将闹钟定为十点整,也就是10.00.00。然后将拨码开关拨下,则数码管继续此刻的时间显示,当时间显示为10.00.00时,此时蜂鸣器将产生滴答滴答的声音。时间为一分钟。 设计心得 通过两星期的紧张工作,最后完成了我的设计任务——数字钟的设计与制作。通过 本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。 课程设计中要求要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。 也是本次课程设计,巩固了我们以前学过的专业知识,通过这次的程序设计,使我们对数字系统结构也有了更进一步的了解与认识,同时对数据库软件EDA技术,VHDL语言等系列知识都有了一定的了解与认识。使用EDA技术开发页面的能力也有了提高,也使我们把理论与实践从正真意义上结合了起来,考研了我们的动手能力,查阅相关资料的能力,还有组织材料的能力。通过此次实践,我们从中可以找出自己知识的不足与欠缺,以便我们在日后的学习中得以改进与提高。 致谢 感谢梁老师一学期的教导,老师严谨的态度、严格的要求以及强烈的专业素养都对我们有十分深刻的影响,使得我们学会精益求精,端正自己的学习态度。在此,对梁老师表示衷心的感谢。通过本次设计实验,也使我们学到了很多,也借此机会综合巩固一学期所学的知识。也感谢身边帮助我的每一个同学。 参考文献 [1] 李国丽,朱维勇.电子技术实验指导书.合肥:中国科技大学出版社,2000 [2] 潘松,黄继业.EDA技术实用教程.北京:科学出版社,2002 [3] 郑家龙,王小海,章安元.集成电子技术基础教程.北京:高等教育出版社,2002 [4] 宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安:西安电子科技大学出版社,1999 [5] 卢杰,赖毅.VHDL与数字电路设计.北京:科学出版社,2001 [6] 王金明,杨吉斌.数字系统设计与Verilog HDL.北京:电子工业出版社,2002 附录 闹钟模块的程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity beep is port( clk: in std_logic; hh1,hh2,mm1,mm2,h1,h2,m1,m2: in std_logic_vector(3 downto 0); beep: out std_logic); end entity; architecture art of beep is signal bep : std_logic; begin process(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2) begin if (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1="0000" and mm2="0000") then if clk='1' and clk'event then bep<=not bep; end if; else bep<='1'; end if; beep<=bep; end process; end architecture; 数码管位选和段选 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity endslc is port( wei1,wei2: in std_logic_vector(5 downto 0); out1,out2: in std_logic_vector(7 downto 0); sel:in std_logic; wei: out std_logic_vector(5 downto 0); ot: out std_logic_vector(7 downto 0)); end entity; architecture art of endslc is begin process(sel,wei1,wei2,out1,out2) begin if(sel='1') then wei<=wei1; ot<=out1; else wei<=wei2; ot<=out2; end if; end process; end architecture; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity sel is p
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:基于VHDL的数字电子时钟的设计.doc
    链接地址:https://www.zixin.com.cn/doc/6033965.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork