一种基于vhdl语言的电子钟的设计内容摘要:

定时分析等工作。 e) 支持硬件描述语言。 QuartusⅡ 支持三种 HDL 输入、包括被列入 IEEE 标准的 VHDL( 1987 版和 1993 版)和 Verilog HDL( 1995 版和 2020 版)以及 Altera 公司自己开发的 AHDL。 f) 具有丰富的设计库。 QuartusⅡ 提供丰富的库单元供设计者调用,其中包括一些基本的逻辑单元(如逻辑门、触发器等)、 74 系列的器件和多种参数化的逻 辑宏功能 (megafunction)模块(如乘法器、 FIFO、 RAM 等)。 调用库单元进行设计,可以大大减轻设计人员的工作量,缩短设计周期。 g) 提供强大的在线帮助。 QuartusⅡ 软件不仅带有详细的使用说明,而且还加强了网络功能,使用户从软件内部就可以直接通过 Inter 获得 Altera 公司的技术支持。 VHDL 语言 VHDL 的 英 文 全 名 是 VeryHighSpeed Integrated Circuit Hardware Description Language,诞生于 1982 年。 1987 年底, VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言。 VHDL 主要用于描述数字系统的结构,行为,功能和接口。 除了含有许多具有硬件特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。 VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分 ,及端口 )和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。 在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个 实体。 这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。 VHDL 语言的特点 : VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。 归纳起来 ,VHDL 语言主要具有以下优点: (1) VHDL 语言功能强大 , 设计方式多样 本 科 毕 业 设 计 第 16 页 共 42 页 VHDL 语言具有强大的语言结构 , 只需采用简单明确的 VHDL 语言程序就可以描述十分复杂的硬件电路。 同时 , 它还具有多层次的电路设计描述功能。 此外 ,VHDL 语言能够同时支持同步电路、异步电路和随机电 路的设计实现 , 这是其他硬件描述语言所不能比拟的。 VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式 , 也支持自底向上的设计方法。 既支持模块化设计方法 , 也支持层次化设计方法。 (2) VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。 同时, VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。 VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。 VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在 : 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时 , 设 计人员并不需要首先考虑选择进行设计的器件。 这样做的好处是可以使设计人员集中精力进行电路设计的优化 , 而不需要考虑其他的问题。 当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。 在设计过程中 , 设计人员可以建立各种可再次利用的模块 , 一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计 , 而是一些模块的累加。 这些模块可以预先设计或者使用以前设计中的存档模块 , 将这些模块存放在库中 , 就可以在以后的设计中进行复用。 由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言 , 因此它可以使设计成果在设计人员之间方便地进行交流和共享 , 从而减小硬件电路设计的工作量 , 缩短开发周期。 本 科 毕 业 设 计 第 17 页 共 42 页 功能模块的 VHDL程序实现 秒和分钟计数器 秒、分 计数模块都是 60进制的加法计数器,时计数模块是 24进制计数器。 与一般的标准计数器不同的是秒、分、时计数模块中分别添加了调节秒、分和小时的功能,即当 clk 的上升沿到来时,分别调节 qin的高低电平, 就可达到调整秒、分、小时的目的。 其中 60进制加法器是由一个 10进制和一个 6进制计数器组成。 60进制计数器的流程图如图 43( 1): 开 始 rst 0 输出 0000 0000 clk=1 tem1 1001 秒低位变为 0 tem2 0101 秒高位变为 0,向分个位进一 秒高位自动加一,不向分进位 其它 其它 秒低位自动加一 tem1的值赋给秒低位, tem2 的值赋给秒高位 结 束 图 43( 1) 60 进制计数器流程图 本 科 毕 业 设 计 第 18 页 共 42 页 60进制秒计数器和分钟计数器逻辑仿真图如 图 43( 2) : 图 43( 2) 60进制计数器逻辑仿真图 60进制计数器的元件符号如图 43( 3) : 图 43( 3) 60进制计数器元件符号 功能: 60进制计数器 接口: clk时钟输入 qout1个位 BCD输出 qout2十位 BCD输出 carry进位输出信号 本 科 毕 业 设 计 第 19 页 共 42 页 小时计数器 24进制计数器 的流程图如图 43( 4) : 开 始 rst 0 输出 0001 0010 clk=1 tem3, tem4 tem4=0010 输出 0000 0000,向时低位进一 tem3 1001 tem3=0000 tem3 自动加一,不向分进位 其它 其它 不向前进位 tem3的值赋给分低位, tem4 的值赋给分高位 结 束 图 43( 4) 24 进制计数器流程图 tem3=0011 tem4 tem4=0000 1001 tem4 自动加一,不向分进位 其它 本 科 毕 业 设 计 第 20 页 共 42 页 小时计数器逻辑仿真图如 图 43( 5) : 图 43( 5) 24进制计数器逻辑仿真图 24进制计数器元件符号如图 43( 6): 图 43( 6) 24进制计数器元件符号 实体名: fen24 功能: 24进制计数器 接口: clk时钟输入 qout1个位 BCD输出 qout2十位 BCD输出 carry进位信号输出 本 科 毕 业 设 计 第 21 页 共 42 页 六选一的控制电路 六选一控制电路的 流程图如图 43( 7) : 开 始 rst 0 clk=1 t 7 t 变为 0 其它 t=0 时输出 qin1 的 值, sel为 11111110; t=1 时输出 qin2 的值, sel为 11111101; t=2 时输出 1111, sel为 11111011; t=3 时输出 qin3 的值, sel为 11110111; t=4 时输出 qin4 的值, sel为 11101111; t=5 时输出 1111, sel为 11011111; t=6 时输出 qin5 的值, sel为 10111111; t=7 时输出 qin6 的值, sel为 01111111; t=其他时输出 0000, sel为 11111111 结 束 图 43( 7) 六选一控制电路流程图 t为 0; sel为 11111110。 输出为 0 t 自动加一 本 科 毕 业 设 计 第 22 页 共 42 页 六个数码管动态扫描显示时间的仿真验证 如图 43( 8) ,例如设置时间为 14: 28: 59,通过仿真可以验证 qout 输出是正确的。 43( 8)六个数码管动态扫描时间的仿真验证 六选一控制电路元件符号如图 43( 9): 图 43( 9) 六选一控制电路元件符号 实体名: sel 功能:实现六个数码显示管扫描显示 接 口: clk时钟输入 qin1第一个数码显示管要显示内容输入 qin2第二个数码显示管要显示内容输入 qin3第三个数码显示管要显示内容输入 qin4第四个数码显示管要显示内容输入 本 科 毕 业 设 计 第 23 页 共 42 页 qin5第五个数码显示管要显示内容输入 qin6第六个数码显示管要显示内容输入 sel位选信号输出 7段译码显示 6个数码管要正常显示,关键在于位选信号和数码管的一一对应。 将 4bit二进制数译码,在 LED上显示相应数字。 其译码器 VHDL源程序如下 : library ieee。 use。 use。 use。 entity decode47 is port(qin:in std_logic_vector(3 downto 0)。 四位二进制码输入 qout:out std_logic_vector(6 downto 0))。 输出 LED七段译码 end decode47。 architecture fun of decode47 is begin with qin select qout=0000001 when 0000。 显示 0 1001111 when 0001。 显示 1 0010010 when 0010。 显示 2 0000110 when 0011。 显示 3 1001100 when 0100。 显示 4 0100100 when 0101。 显示 5 0100001 when 0110。 显示 6 0001111 when 0111。 显示 7 0000001 when 1000。 显示 8 0000100 when 1001。 显示 9 1111111 when others。 end fun。 本 科 毕 业 设 计 第 24 页 共 42 页 7段译码显示元件符号图如图 43( 10): 图 43( 10) 7段译码显示元件符号 实体名: decode47 功能:实现数码显示管的编码显示 接口: qinBCD码输入 qout七段译码输出 1Hz的秒信号 1hz的秒信号的 流程图如图 43( 11): 开 始 rst 0 t 为 0 clk=1 t 39999999 t=0 其它 t 自动加一 0 到 39999999/2 结 束 t 输出 0 输出 1 其它 图 43( 11) 1hz 秒信号的流程图 本 科 毕 业 设 计 第 25 页 共 42 页 1hz秒信号的元件符号图如图 43( 12) 图 43( 12) 1hz秒信号的元件 符号 实体名: fen1 功能:对输入时钟进行 40000000分。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。