基于vhdl语言的数字钟

2024-09-13

基于vhdl语言的数字钟(共11篇)

基于vhdl语言的数字钟 篇1

河南科技学院机电学院 VHDL课程设计报告

题目:八位数码管显示

专业班级:电气工程及其自动化102 姓

名:

周迎接

学 号:

20100344214

指导教师: 付广春

完成日期:2012年12月 27 日

目 录 引言…………………………………………………………………………2 2 总体设计方案………………………………………………………………2 2.1 输入引脚数目的计算……………………………………………………3 2.2 二进制转为十进制部分程序设计………………………………………3 2.3 数码管显示部分程序设计………………………………………………4 3 仿真显示……………………………………………………………………5 3.1 显示3仿真图……………………………………………………………5 3.2显示96的仿真图…………………………………………………………5 4 心得体会……………………………………………………………………6 参考文献………………………………………………………………………6 附录1…………………………………………………………………………7

摘要

随着当今社会电子技术的快速发展,单凭借硬件已不再能满足广大人民的需求,这时候软件就显示除了他们突出的优点。与其他编程语言相比,VHDL语言以其超强的硬件描述能力,良好的可读性和可移植性,以及其良好的用户自定义性受到了广大用户的青睐。VHDL语言在最近几年的发展及其迅猛,由此可以看出其用途已经变的越来越广泛。

一个VHDL程序由5个部分组成,包括实体(ENTITY)、结构体(architecture)、配置(coxnfiguration)、包(package)和库(library)。实体和结构体两大部分组成程序设计的最基本单元。图2.2表示的是一个VHDL 3 程序的基本组成。配置是用来从库中选择所需要的单元来组成该系统设计的不同规格的不同版本,VHDL和Verilog HDL已成为IEEE的标准语言,使用IEEE提供的版本。包是存放每个设计模块都能共享的设计类型、常数和子程序的集合体。库是用来存放已编译的实体、结构体、包和配置。在设计中可以使用ASIC芯片制造商提供的库,也可以使用由用户生成的IP库。

今天我所要设计的是基于VHDL语言的8位数码管显示电路,其要实现的功能是把输入的二进制数转换为对应的十进制数,并通过数码管显示出来。其过程大致可以分为通过程序将输入的二进制数先转换为对应的十进制数,然后再把对应的十进制数与数码管的管脚对应起来,使其显示在数码管上。关键词:二进制转为十进制 数码管显示 共阳数码管1 引言

VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于

1982 年。1987 年底,VHDL被美国国防部和IEEE确认为标准硬件描述语言。

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:[1]

(1)VHDL 语言功能强大,设计方式多样

VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次化设计方法。

(2)VHDL 语言具有强大的硬件描述能力

VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。

(3)VHDL 语言具有很强的移植能力

VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。

(4)VHDL 语言的设计描述与器件无关

采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。

(5)VHDL 语言程序易于共享和复用

VHDL 语言采用基于库的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

本次我所要设计的基于VHDL语言的八位数码管显示将充分体现它的部分优点。总体设计方案

2.1 输入引脚数目的计算

因为题目要求数码管要能显示最大的八位十进制二进制数,所以对应的二进制表示的十进制数首先要大于99999999,即2的所有n次幂之和应该大于99999999,数码管才能显示出最大的八位十进制数,所以计算可得n的值最小为27,所以输入二进制数的引脚应该设为27个,其二进制数输入引脚图如图1所示

图1 二进制数输入引脚图

2.2 二进制转为十进制部分程序设计 二进制转为十进制的部分程序如下: architecture one of look is signal ai,bi,ci,ki,ei,fi,gi,hi:integer range 0 to 9;signal di:integer range 0 to 99999999;begin di<=conv_integer(d);2.3 数码管显示部分程序设计

2.3.1 程序中数码管的选择及显示的设置

在本设计中按照我的程序硬件所选用的应该为共阴极数码管,且当某一位数码管不需要显示数据时,统一设定其显示0,例如需要显示1时,八个数码管的显示为00000001。

2.3.2 数码管显示部分部分程序如下: …………

variable a,b,c,k,e,f,g,h:integer range 0 to 9;begin a:=di rem 10;7 b:=(di-a)rem 100;c:=(di-a-10*b)rem 1000;k:=(di-a-10*b-c*100)rem 10000;e:=(di-a-10*b-c*100)rem 100000;f:=(di-a-10*b-c*100-1000*e)rem 1000000;g:=(di-a-10*b-c*100-1000*e-10000*f)rem 10000000;h:=(di-a-10*b-c*100-1000*e-10000*f-100000*g)/10000000;ai<=a;bi<=b;ci<=c;ki<=k;ei<=e;fi<=f;gi<=g;hi<=h;end process;process(ai)begin case ai is

when 0=>led7s1(6 downto 0)<=“1000000”;

when 1=>led7s1(6 downto 0)<=“1111001”;

when 2=>led7s1(6 downto 0)<=“0100100”;

when 3=>led7s1(6 downto 0)<=“0110000”;

when 4=>led7s1(6 downto 0)<=“0011001”;8

when 5=>led7s1(6 downto 0)<=“0010010”;

when 6=>led7s1(6 downto 0)<=“0000010”;

when 7=>led7s1(6 downto 0)<=“1111000”;

when 8=>led7s1(6 downto 0)<=“0000000”;

when 9=>led7s1(6 downto 0)<=“0010000”;

when others=>led7s1(6 downto 0)<=“XXXXXXX”;end case;end process;…………

2.3.3 数码管显示部分引脚图

数码管显示部分部分引脚图如图2 所示

图 2 数码管显示部分部分引脚图

2.2.4 总体设计程序见附表1 3 仿真显示

3.1 显示“000000003”仿真图

显示数字“3”的仿真图如图3所示,因为根据程序所需数码管为共阳极数码管,所以数码管对应的“e”,“f”段应该为高电平,在本次设计中,即数码管的第5,6段为高电平,为了便于观察,仿真的各项周期均取10ns。

图3 显示“3”电路 3.2 显示“96”部分仿真图,如图4所示

图4 显示“96”仿真图 心得体会

通过这次的课程设计让我对VHDL语言以及电路设计的理论有了更加深入的了解,课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,这次课程设计虽然很累,但我学到了不少东西,对软件的设计过程和方法有了更深入的了解。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。

这次课程设计顺利完成了,在设计中遇到了很多问题,最后都是经过查阅相关的资料和在同学的帮助下,终于游逆而解。同时,在我学得到很多实用的知识,同时,对给过我帮助的所有同学再次表示忠心的感谢!

参考文献

【1】黄继业.EDA技术使用教程[M].北京:科学出版社,2010 【2】王云亮.电力电子技术[M].北京:电子工业出版社,2009 【3】康光华.电子技术基础[M].北京:高等教育出版社,2006

附录1 library ieee;12 use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity look is port(d:in std_logic_vector(26 downto 0);clk3:in std_logic;led7s1,led7s2,led7s3,led7s4,led7s5,led7s6,led7s7,led7s8:out std_logic_vector(6 downto 0));end;architecture one of look is signal ai,bi,ci,ki,ei,fi,gi,hi:integer range 0 to 9;signal di:integer range 0 to 99999999;begin di<=conv_integer(d);

process(di)variable a,b,c,k,e,f,g,h:integer range 0 to 9;begin a:=di rem 10;b:=(di-a)rem 100;c:=(di-a-10*b)rem 1000;k:=(di-a-10*b-c*100)rem 10000;e:=(di-a-10*b-c*100-k*1000)rem 100000;f:=(di-a-10*b-c*100-k*1000-10000*e)rem 1000000;g:=(di-a-10*b-c*100-k*1000-10000*e-100000*f)rem 10000000;h:=(di-a-10*b-c*100-k*1000-10000*e-100000*f-1000000*g)/10000000;ai<=a;bi<=b;ci<=c;ki<=k;ei<=e;fi<=f;gi<=g;hi<=h;end process;process(ai)begin case ai is

when 0=>led7s1(6 downto 0)<=“1000000”;

when 1=>led7s1(6 downto 0)<=“1111001”;13

when 2=>led7s1(6 downto 0)<=“0100100”;

when 3=>led7s1(6 downto 0)<=“0110000”;

when 4=>led7s1(6 downto 0)<=“0011001”;

when 5=>led7s1(6 downto 0)<=“0010010”;

when 6=>led7s1(6 downto 0)<=“0000010”;

when 7=>led7s1(6 downto 0)<=“1111000”;

when 8=>led7s1(6 downto 0)<=“0000000”;

when 9=>led7s1(6 downto 0)<=“0010000”;

when others=>led7s1(6 downto 0)<=“XXXXXXX”;end case;end process;process(bi)begin case bi is

when 0=>led7s2(6 downto 0)<=“1000000”;

when 1=>led7s2(6 downto 0)<=“1111001”;

when 2=>led7s2(6 downto 0)<=“0100100”;

when 3=>led7s2(6 downto 0)<=“0110000”;

when 4=>led7s2(6 downto 0)<=“0011001”;

when 5=>led7s2(6 downto 0)<=“0010010”;

when 6=>led7s2(6 downto 0)<=“0000010”;

when 7=>led7s2(6 downto 0)<=“1111000”;

when 8=>led7s2(6 downto 0)<=“0000000”;

when 9=>led7s2(6 downto 0)<=“0010000”;

when others=>led7s2(6 downto 0)<=“XXXXXXX”;end case;end process;process(ci)begin case ci is

when 0=>led7s3(6 downto 0)<=“1000000”;

when 1=>led7s3(6 downto 0)<=“1111001”;

when 2=>led7s3(6 downto 0)<=“0100100”;

when 3=>led7s3(6 downto 0)<=“0110000”;

when 4=>led7s3(6 downto 0)<=“0011001”;

when 5=>led7s3(6 downto 0)<=“0010010”;

when 6=>led7s3(6 downto 0)<=“0000010”;14

when 7=>led7s3(6 downto 0)<=“1111000”;

when 8=>led7s3(6 downto 0)<=“0000000”;

when 9=>led7s3(6 downto 0)<=“0010000”;

when others=>led7s3(6 downto 0)<=“XXXXXXX”;end case;end process;process(ki)begin case ki is

when 0=>led7s4(6 downto 0)<=“1000000”;

when 1=>led7s4(6 downto 0)<=“1111001”;

when 2=>led7s4(6 downto 0)<=“0100100”;

when 3=>led7s4(6 downto 0)<=“0110000”;

when 4=>led7s4(6 downto 0)<=“0011001”;

when 5=>led7s4(6 downto 0)<=“0010010”;

when 6=>led7s4(6 downto 0)<=“0000010”;

when 7=>led7s4(6 downto 0)<=“1111000”;

when 8=>led7s4(6 downto 0)<=“0000000”;

when 9=>led7s4(6 downto 0)<=“0010000”;

when others=>led7s4(6 downto 0)<=“XXXXXXX”;end case;end process;process(ei)begin case ei is

when 0=>led7s5(6 downto 0)<=“1000000”;

when 1=>led7s5(6 downto 0)<=“1111001”;

when 2=>led7s5(6 downto 0)<=“0100100”;

when 3=>led7s5(6 downto 0)<=“0110000”;

when 4=>led7s5(6 downto 0)<=“0011001”;

when 5=>led7s5(6 downto 0)<=“0010010”;

when 6=>led7s5(6 downto 0)<=“0000010”;

when 7=>led7s5(6 downto 0)<=“1111000”;

when 8=>led7s5(6 downto 0)<=“0000000”;

when 9=>led7s5(6 downto 0)<=“0010000”;

when others=>led7s5(6 downto 0)<=“XXXXXXX”;end case;15 end process;process(fi)begin case fi is

when 0=>led7s6(6 downto 0)<=“1000000”;

when 1=>led7s6(6 downto 0)<=“1111001”;

when 2=>led7s6(6 downto 0)<=“0100100”;

when 3=>led7s6(6 downto 0)<=“0110000”;

when 4=>led7s6(6 downto 0)<=“0011001”;

when 5=>led7s6(6 downto 0)<=“0010010”;

when 6=>led7s6(6 downto 0)<=“0000010”;

when 7=>led7s6(6 downto 0)<=“1111000”;

when 8=>led7s6(6 downto 0)<=“0000000”;

when 9=>led7s6(6 downto 0)<=“0010000”;

when others=>led7s6(6 downto 0)<=“XXXXXXX”;end case;end process;process(gi)begin case gi is

when 0=>led7s7(6 downto 0)<=“1000000”;

when 1=>led7s7(6 downto 0)<=“1111001”;

when 2=>led7s7(6 downto 0)<=“0100100”;

when 3=>led7s7(6 downto 0)<=“0110000”;

when 4=>led7s7(6 downto 0)<=“0011001”;

when 5=>led7s7(6 downto 0)<=“0010010”;

when 6=>led7s7(6 downto 0)<=“0000010”;

when 7=>led7s7(6 downto 0)<=“1111000”;

when 8=>led7s7(6 downto 0)<=“0000000”;

when 9=>led7s7(6 downto 0)<=“0010000”;

when others=>led7s7(6 downto 0)<=“XXXXXXX”;end case;end process;process(hi)begin case hi is

when 0=>led7s8(6 downto 0)<=“1000000”;16

when 1=>led7s8(6 downto 0)<=“1111001”;

when 2=>led7s8(6 downto 0)<=“0100100”;

when 3=>led7s8(6 downto 0)<=“0110000”;

when 4=>led7s8(6 downto 0)<=“0011001”;

when 5=>led7s8(6 downto 0)<=“0010010”;

when 6=>led7s8(6 downto 0)<=“0000010”;

when 7=>led7s8(6 downto 0)<=“1111000”;

when 8=>led7s8(6 downto 0)<=“0000000”;

when 9=>led7s8(6 downto 0)<=“0010000”;

when others=>led7s8(6 downto 0)<=“XXXXXXX”;end case;end process;end;

基于vhdl语言的数字钟 篇2

湿度与人类的生存和社会活动密切相关。湿度检测、控制、报警等被广泛应用于各种场合,如军事、气象、农业、工业、医疗、建筑以及家用电器等方面[1]。

本文利用FPGA器件与HS1101湿度传感器设计实现了一种简易的数字湿度计,用于检测室内湿度,它具有结构简单、测量准确性高、稳定性好等优点。

1 硬件电路设计

数字湿度计硬件电路图如图1所示,由湿度检测电路、AD转换电路、FPGA电路板等组成。其中湿度检测电路采用HS1101湿度传感器用于检测室内湿度。该传感器具有性价比高、体积小、精度高、响应速度快等优点,广泛应用于仪表、空调、除湿机、加湿机、仓储、气象以及工业自动化等领域[2]。HS1101湿度传感器是一种利用电容原理检测的湿度传感器,相对湿度的变化和电容值呈线性规律,在检测中,电容值随着空气湿度的变化而变化。

因此,本文利用将电容值的变化转换成电压的变化,然后利用AD转换芯片ADC0804和FPGA器件进行数据采集[3]。

图1数字湿度计的硬件电路(参见右栏)

2 软件程序设计

根据系统的设计要求,将程序部分设计分为四个模块,包括分频模块、AD转换模块、数据转换模块、显示译码模块。采用QuartusⅡ开发平台和VHDL语言完成程序设计[4]。

2.1 分频模块

分频电路是FPGA设计中使用频率非常高的基本单元之一[5]。本设计的分频电路简单方便、节约资源、可移置性强、便于系统升级,同时在以后的FPGA设计中也有很大的应用空间。图2分频模块中是将50MHz时钟信号分频为2kHz的频率。

2.2 AD转换模块

AD转换模块如图3所示。从分频模块的输出端口clk_2k输出2kHz到AD转换模块的clock端口作为时钟频率信号;intr为中断信号;inputdata[7..0]为湿度数据输入端口,由湿度传感器检测的模拟信号,通过AD电路转换为数字信号传给inputdata[7..0]端口;cs是片选输出端口,writeout是写输出端口,readout是读输出端口,分别对应ADC0804的片选/CS、读控制/RD、写控制/WR的引脚;dataout[7..0]为数据输出端口。

图4为AD转换模块仿真图,当复位键reset为0时,输入数据为62时,输出数据为0;当复位键reset为1时,输入数据为28时,输出数据为28。

2.3 数据转换模块

数据转换模块是将AD转换后的数据(高4位,低4位)通过查表的方式,用BCD码形式来表示。ADC0804的基准电压为5V时,由于ADC0804是8位的AD转换器,因此最小电压准位是5/256=0.02V,利用湿度检测电路将1%RH改变对应0.02V电压变化。数据转换模块如图5所示。

如果输入AD转换后数据为0010 0011,通过查表可得high为00110010,low为00000011,再将得到的数据进行加法操作处理,得到输出湿度为35%RH,如图6所示。

2.4 显示译码模块

采用共阴数码管,当某一字段的阳极为高电平时,相应字段就点亮;当某一字段的阳极为低电平时,相应字段就不亮。显示译码模块如图7所示。

图7显示译码模块(参见右栏)

显示译码模块仿真图如下图8。输入为0,输出为01111111,数码管显示的是0;若输入为1,输出为00000110,则数码管显示的是1。

2.5 整体框图

整体框图如图9所示,共有四个模块组成。其中显示译码模块调用了两个。

3 结束语

利用FPGA器件与HS1101湿度传感器设计实现了一种简易的数字湿度计,用于检测室内湿度。采用QuartusⅡ开发平台和VHDL语言完成程序设计,通过仿真验证和下载验证,证明实现的湿度计具有结构简单、测量准确性高、稳定性好等优点。

摘要:湿度计是一种常用的检测仪器,文中利用FPGA器件与HS1101湿度传感器设计实现了一种简易的数字湿度计,用于检测室内湿度。该湿度计具有结构简单、测量准确性高、稳定性好等优点。

关键词:湿度,湿度传感器,VHDL,FPGA

参考文献

[1]章彬宏.基于CP:D的数字湿度计设计[J].现代电子技术,2004(19):93-94.

[2]周焱,胡氢.湿度传感器发展方向邹议[J].科技广场,2006(1):11 1-113.

[3]段广云.基于CPLD的数据采集系统[J].仪表技术与传感器,2008(6):74-78.

[4]徐志军,王金明,尹延辉.EDA技术与VHDL设计[M].北京:电子工业出版社,2009,1.

基于vhdl语言的数字钟 篇3

关键词:VHDL;电路系统;数据选择器

中图分类号:TN79文献标识码:A文章编号:1009-3044(2007)12-21658-01

The Design of Circuit Systems Based on VHDL

MIN Xiang-guo

(Physics and Electronic Engineering Department,Zaozhuang University,Zaozhuang 277160,China)

Abstract: Designing circuit systems using VHDL has the advantages of comprehensive design technologies,flexible design methods and wide range support. The method and process using VHDL to design circuit system is presented through an example of a multiplexer design. The simulation result shows that it can reduce the design difficulty of digital system and improve efficiency.

Key words: VHDL;circuit system;multiplexer

1 引言

VHDL (Very High Speed Integrated Circuit Hardware Description Language)是美國国防部在20世纪80年代中期开始推出的一种通用的硬件描述语言。作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,VHDL语言在电子工程领域已成为事实上的通用硬件描述语言。VHDL为设计者提供了一种全新的数字系统的设计途径。使用VHDL语言不只是意味着代码的编写,更是为了便于建立层次结构和元件结构的设计,利用VHDL编写的电路模块可被重复利用。故可以简化设计者的设计工作,大大缩短设计时间, 减少硬件设计成本,提高工作效率。

2 VHDL的优点

VHDL主要用于描述数字系统的结构、行为、功能和接口。应用VHDL进行工程设计的优点是多方面的:

(1)具有更强的行为描述能力,是系统设计领域最佳的硬件描述语言。

(2)具有丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

(3)VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。该功能能满足市场大规模系统高效、高速的需要,可替代多人甚至多个代发组共同工作。

VHDL的许多优点给硬件设计者带来了极大的方便, 自然被广大用户接受, 得到众多厂商的大力支持。使用VHDL设计数字系统已成为当今电子设计技术的必然趋势[4 ] 。

3 “自顶向下”( Top-Down) 的设计方法

随着数字系统设计规模的急剧加大,“自顶向下”的设计方法成为现代EDA设计的趋势。传统的系统硬件设计方法是采用自下而上的设计方法。即系统硬件的设计是从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,完成整个系统的硬件设计。而在VHDL的设计中,采用“自顶向下”( Top-Down) 的设计方法,设计常用流程图如图1所示,系统被分解为各个模块的集合后,可以对设计的每个独立模块指派不同的工作小组,这些小组可以工作在不同地点,甚至可以分属不同的单位,最后将不同的模块集成为最终的系统模型,并对其进行综合测试和评价。“自顶向下”设计的基本步骤为:

(1)分析系统的内部结构并进行系统划分,确定各个模块的功能和接口;

(2)编写程序,输入VHDL代码,并将其编译成标准的VHDL文件;

(3)VHDL 源代码进行综合优化处理;

(4)配置,即加载设计规定的编程数据到一个或多个LCA器件中的运行过程,以定义器件内的逻辑功能块和其互连的功能。

(5)下载验证,通过编程器或下载电缆载入将步骤(4) 得到的器件编程文件下载到目标芯片中,以验证设计的正确性。

图1 VHDL工程设计流程图

4 VHDL的设计举例

下面以4选1数据选择器为例说明使用VHDL的设计过程。4选1数据选择器框图如图2所示。

该数据选择器的VHDL描述如下:

entity sel is

port(a,b,c,d,sel_1:IN bit;

out_1:OUT bit);

end sel;

architecture example of sel is

begin

process((a,b,c,d, sel_0, sel_1)

begin

if sel_0=‘0’and sel_1=‘0’then

out_1<=a;

elsef sel_0=‘0’and sel_1=‘1’then

out_1<=b;

elsef sel_0=‘1’and sel_1=‘0’then

out_1<=c;

else

out_1<=d;

end if;

end process;

end example;

利用VHDL强大的仿真功能,经过编译后运行仿真,之后可以产生信号波形,用以分析仿真结果。本例中产生波形如图3所示。仿真结果符合设计功能的要求。

图3

仿真结果

5 结束语

本文以4选1数据选择器设计为例,说明利用VHDL设计电路系统的基本方法和过程。用VHDL语言实现电路的设计过程,是一个以软件设计为主,器件配置相结合的过程。这种软件设计与硬件设计的结合,以一片器件代替由多片小规模集成数字电路组成的电路,其优势已经越来越明显。在进行系统设计时,如果系统比较复杂,所需器件数目多,并要求体积小、速度快、功耗低时,首先应该考虑使用VHDL进行芯片设计,然后再进行整体设计。

参考文献:

[1]Stafan Sjoholm,Lennart Lindh.边计年,薛宏熙.译.用VHDL设计电子线路[M].北京:清华大学出版社,1999.

[2]潘松,黄继业.EDA技术实用教程[M].科学出版社,2002.

[3]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,2004.

[4]赵晨光.等.VHDL语言在电子设计实践中的应用[J].沈阳航空工业学院学报.2004,21(1):57-59.

[5]张利萍, 胡玉兰. 硬件描述语言VHDL应用设计及实例[J].沈阳工业学院学报,2002,21(2):70-73.

基于vhdl语言的数字钟 篇4

随着语言教学方式与方法的不断发展,数字网络语言实验室以其先进完善的超强功能为高校外语教学创造了良好的语言环境,尤其在培养和提高学生外语语音素质方面,有着传统教学模式无法企及的优势,大大提高了学生的学习效率和教师的教学效率。如何充分利用数字网络语言实验室本身的优势对语言室进行科学先进的数字化管理,是我们面临的一个挑战。数字化管理是指利用计算机、通信、网络、人工智能等技术,量化管理对象与管理行为,实现计划、组织、协调、服务、创新等职能的管理活动和管理方法的总称[1]。本文探讨了数字网络语言实验室在教师教学、学生学习和管理人员日常工作中的数字化管理。

1.数字网络语言实验室的特点

随着高校外语教学要求的不断提高,教学资源日益丰富,“数字教学”、“网络教学”、“媒体库”、“资源在线”、“VOD点播”等功能也成为了各高校对教学的新要求[2]。目前普遍使用的数字网络语言实验室具有以下一些基本特点:全数字化的传输方式,损耗小,传输速率快,声音保真度高;采用主流网络技术,专业用于音频、视频的传输与处理,保证了传输的实时性与连续性;系统稳定、可靠、扩容性强;结构化的布线,使得线路简洁,维护方便;功能强大、界面通俗、操作简单,同时可以进行软件的升级换代;资源库庞大,能够满足大部分教师的教学需求;与各种多媒体设备有良好的接口,适用于大部分承载资源的媒介;以先进的网络技术为依托,使得网络教学成为可能。

2.教师教学的数字化管理

2.1教学素材

传统模拟语言室教学资源主要来源于磁带,而数字网络语言实验室可支持DVD、MP3等最流行影音文件格式,可以通过电脑、磁盘等转载,并且在电脑中设有海量资料库随教师任意点播;教师可采用数字化备课进行音频、文字编辑和MP3课件的制作,可与Internet网络连接,尽情下载,教学资源来源全面广泛。

2.2教学方法

利用数字化的设备,教师可在电脑中把课程内容全部准备好,上课时直接从电脑中选用音、视频同步的资料进行教学,同时,可控制音频文件的语速,即通过变速不变调功能实现因学施教,学生可通过学生终端实现听看同步,提高了学习效率[3]。数字网络语言实验室具备呼叫、呼叫应答、全通话、通知、示范和小组会话练习等丰富的通话功能,运用这些功能,就可以充分进行外语中的听说能力训练与学习,使听说训练更加真实化、立体化[4]。

教师也可在互联网或校园网上进行备课、办公、布置作业、并可对学生进行指导与交流。使外语教学不受时间、地点的限制,为个性化学习,自主式学习提供了全新的学习环境。

3.学生学习的数字化管理

3.1课堂学习

充分利用数字网络语言实验室的特点,在教师指导下进行学习,如前面二所述。

3.2自主学习

传统教学班级无法照顾个别差异,而数字网络语言实验室给每个学生配有个性化学习设备。学生可在主电脑素材库中点播学习资料,自由控制播放、停止、快进、快倒,即可作为开放式阅览室进行电子阅览。当系统设定为自由上机时,学生可以直接浏览服务器上或英语教育网站上的网络资源,根据自己的水平、进度和要求合理选择学习材料,确定学习内容、时间与速度,进行自主学习,实现VOD、AOD点播、自测、考试、下载课件等,这种教学模式完全体现了因材施教、因人而异、以人为本的现代教育新观念[5][6][7]。

3.3协作学习

课件中的交际活动设计要求学生之间通过课上与课下的协作才能完成.学生可通过计算机进行相互交流,培养语言技能。数字网络语言实验室还具有随机分组的教学功能,即根据实际教学的需要,教师把全班学生分成若干学习小组,小组成员通过小组讨论、角色扮演等协作学习,这不仅可以强化训练学生的英语听说能力,增加学生学习英语的兴趣和信心,还能够增强学生的参与意识和集体荣誉感。

3.4无纸化考试

主要是通过网络化机考的形式,来实现包括笔试和口语考试。考试过程在机上操作,全程网上提交。笔试客观题的考试结果于每场考试结束后,考试系统自动评卷,考试结果可以Excel表格方式将所有原始数据输出,便于统计、查阅及储存;口语考试以人机对话的形式进行,学生的考试录音保存在电脑中,随时可调用抽查与监督。英语无纸化考试提高了考试的效度和信度,有效地确保考试的客观性、公正性、实时性,具有提高工作效率、节约考试资源、规范考试管理、方便考生应考等的优势。

4.管理人员日常工作中的数字化管理

4.1设备及耗材

(1)设备计划及采购库(设备科必备):给不同仪器进行分类编号,支持各种查询,如仪器名称、型号、技术参数、厂家、联系人、联系电话等,可方便地查找欲购设备的各种资料,结合现有的仪器设备购买公开招标制度,快速查找所需仪器和竞标厂家,提高办公效率。如设备科没有该系统,各系部也可建立自己的设备采购库,动态加入各仪器生产厂家及产品的信息(该库可以是Excel表格)。

(2)设备管理系统:设备科可使用国家教委下发的“高校仪器设备管理系统”,该系统将给设备账目的管理带来极大的方便。但目前,该系统的功能尚未完全利用,如待报废功能,附件库功能,调入、转出功能等。系统中还存有缺憾,无报废再利用管理模块。如一台仪器报废了,这台仪器的附件或某些部件还可以使用,那么就需要一个专门的管理块来管理这些报废后还可再利用的部件。这一功能模块需要开发出来挂接在管理系统中。系统中的维修管理也很薄弱,需进一步改进。

(3)仪器设备维修管理库:在维修库中应设有:仪器编号、送修时间、损坏原因、修好时间、维修情况说明、维修人、维修金额等项,说明维修的全过程。这一功能模块最好挂在仪器设备管理系统当中,补充说明某一仪器的维修情况,可以反映出某种仪器设备的质量情况,为以后的仪器采购提供参考意见。

(4)耗材管理库:语音室由于使用率比较高,常常会消耗一些器件,这就需要购买消耗材料。这些耗材购买了多少、出库了多少、库存还有多少,都需要电脑来帮我们管理,我们才可以随时掌握消耗材料的使用和库存数据[7]。目前,笔者所在语音室使用的管理软件,是语音室老师自行开发的,它不仅管理了消耗材料的入库、出库和结存,在出库中还设置了用途项,说明出库原因。4.2软件系统

(1)管理人员根据教学需要,提前在教师机安装好有关教材的教学课件,教师上课无需携带u盘、光盘等,减少了病毒的侵入,维护了设备的稳定。

(2)管理人员先后安装了视频点播系统与英语在线系统,并进行合理分类,供师生进行视频点播。网络上生动鲜活的语言材料,不仅可以作为听力理解的内容,而且可以依靠录音工具进行分割、合并,使重点语音现象凸显出来,更加有利于学生进行模仿。这一系统的运用将使学生感受真实的对话环境,图文并茂[8]。同时,管理员及时进行系统内容的更新,为学生提供了源源不断的语言材料,增强了学习的趣味性,开阔了学生的视野,使学习内容更加丰富生动,学习方法更加灵活,学习兴趣更加浓厚,学习效果更加明显。

(3)数字网络语言实验室实际运行中病毒感染常使操作系统、应用软件等无法正常工作。可采用以下几种办法维护:采用系统安全性的预防措施,对ROMBIOS进行保护,给ROMBIOS设置管理者口令,使一般的上机者无法进入设置画面、修改有关设置参数;给电脑配备保护卡,通常将硬盘分成若干区,将装有最重要的操作系统和应用软件分区保护起来,并设置成自动还原状态,每次开机后,都会自动恢复到保护时的状态;安装正版杀毒软件,及时更新病毒库,定期查杀病毒;使用正版软件,在安装新软件之前先查毒,再安装。

4.3学生管理

对于上课学生,新学期上课前及时在电脑系统中添加他们的年级、班级、学号等学生信息,使学生上课对号入座,井然有序,并且到课学生通过系统确认键进行点名,教师在电脑中对于迟到、旷课学生一目了然,这有助于提高学生的到课率。

对于自主学习的学生,使用时间计费管理完成对学生使用交费、续费等费用情况的查看及管理[9]。设备使用情况记录管理系统自动记录学生使用某终端的开始和结束时间,反映设备使用情况,便于查找造成设备故障的责任人。学生学习情况记事管理学生自学过程中,系统自动记录学生学习内容(点播资料名称、学习时间),方便校方监控学生学习情况。

5.结语

数字网络语言实验室的应用,不仅给教师提出了更高的要求,也给语言室管理人员提出了更高的要求。管理人员必须深入了解数字网络语言实验室的功能和特性[10],熟悉现代技术等方面的知识和使用技能,不断地接受、更新管理理念,科学进行数字化管理,才能提高自身的管理水平,使数字网络语言实验室成为整个教学过程的有机组成部分,从而优化课堂教学,提高工作效率及工作质量,全面提升语言室的形象,改善精神面貌。

参考文献

数字语言 篇5

三个字:729去喝酒、756辛苦了、721亲爱的、456是我啦、546我输了、356上网了、510我依你(我已来)、765去跳舞、360想念你、809保龄球、520我爱你、530我想你、740气死你、886拜拜了、078你去吧、501我愿意、987对不起、095你找我、234爱相随、246笨死了、537我生气、918加油吧、065原谅我、098你走吧、147一世情、200爱你哦、282饿不饿、230爱上你、300想你哦、310先依你、440多谢你、514无意思、555呜呜呜、587我抱歉、706起来吧、825别爱我、865别惹我、898分手吧、860不留你、920好爱你、056你哭了、085你别哭、646乐死了(累死了)、094你找死、945告诉我、940告诉你(就是你);

幼儿园中班数字歌语言教案 篇6

1.学习儿歌,体会儿歌短小精练、词汇丰富的特点。

2.在理解儿歌内容的基础上,学习按照儿歌的重复结构结合已有的经验续编儿歌的后半部分,并在集体面前大胆发言。

3.培养幼儿爱动脑筋的习惯,培养幼儿的想像力和创造能力。

4.领会儿歌蕴含的寓意和哲理。

5.通过观察图片,引导幼儿讲述图片内容。

活动准备:

1.布置“圆圆”的家,里面有各种圆形的物体。

2.儿歌范文、投影仪、画纸、彩笔。

活动过程:

一、以玩游戏的形式,帮助幼儿积累丰富的经验。

1.邀请幼儿到“圆圆”家玩,让幼儿自由选择各种活动,体会圆的特点和用途。

2.看有关圆形物体的图书和图片,和同伴玩球,玩车轮,玩其他圆形玩具。

二、集体讲述,交流玩法和经验。

请小朋友说说,刚才玩了什么,它是什么样子的,怎样玩的?

“圆圆”家里有些什么东西,这些东西有些什么特点?

三、欣赏儿歌,谈谈自己的体会。

1.教师:儿歌里说了几样圆的东西?他们是什么?圆的车轮怎样动?

儿歌里用了哪些动词来形容它的动作?

我们还可以用什么动词形容车轮的动作。

2.通过提问帮助幼儿分析,理解儿歌里新运用的动词,进一步认识儿歌的结构特点。

四、学习朗读儿歌,加深对儿歌的理解与记忆。

五、续编儿歌,扩展想像力,发展创造力。

1.请幼儿把所看、所想到的有关圆形的物体画出来。

教师:还有什么物体是圆的,儿歌没有提到的?

我们把它画下来,编成一首儿歌,看谁想得多,编得好!

2.请幼儿依据自己观察得来的经验和画好的作品尝试续编儿歌的后半段。

鼓励幼儿用形象、生动、贴切的动词来描述这些图形的物体,掌握儿歌的句式特点,要讲清楚:

圆的什么,它能怎样动起来。

老师可以利用一些小物体做仿编的示范。

3.结合幼儿的生活经验,大胆创编。

鼓励幼儿不把眼光局限在室内或“圆圆”的家,根据自己以往的经验大胆想像,

创编出与众不同的独特的诗句。

六、结束

让幼儿把自己续编的部分大声地在集体面前朗读出来,让每个幼儿都有发言的机会。

老师把幼儿的朗读录下来,最后放出来让幼儿完整地欣赏一遍,激发幼儿的兴趣和增强自信心。

教学反思:

基于vhdl语言的数字钟 篇7

1项目驱动教学的必要性

传统的课程教学模式是“理论 + 实践模式”,也就是先由教师利用多媒体设备讲解理论知识,再安排学生进行实践练习操作,从而达到学生掌握各个技能点的目的。 传统的教学模式注重理论知识的传授,学生在学习中缺少实践过程,学生的学习积极性不高,从而不利于学生能力的培养。在课程教学中采用项目驱动教学法,将课程的知识内容转化为若干个教学项目,围绕这些项目组织和开展教学,学生能直接参与项目全过程,从而更好地掌握知识和技能。

2基于项目驱动的“VHDL语言”课程教学

2.1课堂教学环节中引入EDA仿真平台

在传统教学环境中,理论教学和实践教学两者往往脱节,实践环节与课堂教学环节不能相互连贯、相互印证,实践项目与课堂教学内容相关联程度不够。鉴于传统教学环境存在的弊端,采取多媒体教学的授课方式,在多媒体计算机上安装Maxplus II或者Quartus II等EDA开发软件。课堂上教师既可以讲解课程内容,又能利用EDA仿真平台对项目实施进行操作演示, 同时学生也能现场操作练习,以此将理论与实践紧密结合,提高教学的效果。

2.2精心设计项目,实现项目驱动教学

在开展基于项目驱动的“VHDL语言” 课程教学时,对具体项目的设计是非常关键的。项目的设计应该遵循如下几个规则: 一是项目的设计要符合课程培养目标,围绕课程的教学大纲展开 ;二是项目的选择要能激发学生的学习兴趣,提高学生学习积极性 ;三是项目的难度要适中 ;四是项目的设计要有由浅入深、由易到难的梯度。 为了实现基于项目驱动的教学,根据教学进度,我们要求学生在每一个学习阶段完成相应的项目。例如 :为了使学生了解软件操作方法,掌握图形设计、输入、编译及仿真,引入项目“二分频器”;为了使学生掌握VHDL输入设计方法及基本组合逻辑电路设计,引入项目 “分别采用IF语句和CASE语句设计四选一选择器”;为了使学生掌握基本时序电路设计方法,引入项目 “上升沿触发、非同步复位、非同步复位 / 置位、同步复位等四种D锁存器设计”; 为了使学生掌握多模块设计方法,引入了相对较为复杂的项目 “六十进制计数器的设计”; 为了使学生掌握有限状态机设计方法,引入项目 “基于VHDL状态机设计的智能交通控制灯”。通过这些项目,使学生能够综合运用所学知识,效果显著。在本课程课堂教学结束后,我们还安排了为期两周的课程设计,内容为多个可选题目,如BCD—七段显示译码器设计、三层电梯控制系统设计、乒乓球游戏设计机、8位十进制数字频率计设计等。通过这样的循序渐进的项目驱动教学,学生将更好地掌握VHDL语言知识与基于VHDL的数字系统设计方法,有效地实现了教学目标。

2.3利用学校教学资源平台,为学生提供全新的学习和交互工具

利用湖南科技大学数字化交互式教学资源平台,一方面向学生提供丰富的教学资料,如教学视频、软件操作学习视频、 网络课件、实验指导书等,方便学生能在项目驱动教学过程中,解决完成项目中碰到的困难,进一步加强了对授课内容的巩固 ;同时也允许学生将完成的设计项目上传与展示,供学生学习和借鉴,激发学生利用VHDL开发数字电子系统的热情 ;此外在教学资源平台中还开辟了一个“学习互动”园地,学生在学习或项目实践中遇到困难可以在教学资源平台上提出,教师回答学生的疑问,学生也可以相互之间交流学习方法和共享自己的学习心得。

3结束语

基于vhdl语言的数字钟 篇8

数字化语言实验室在大学英语教学改革中的作用

新的大学荚语教学要求明确提出要大学英语教学模式改革,本文分析了大学英语教学改革的.新趋势和数字化语言实验室的特点,就如何整合数字化语言实验室为大学英语教学改革助力提出了笔者自己的见解.

作 者:陈晓宁 陈鸣芬 作者单位:华南热带农业大学基础学院,海南,儋州,571737刊 名:希望月报(上半月)英文刊名:HOPE MONTHLY年,卷(期):“”(12)分类号:H3关键词:大学英语 教学改革 数字化语言实验室

基于vhdl语言的数字钟 篇9

由于社会生活水平的提高,电子锁防盗的作用已经越来越重要。一般锁结构简单的普通锁容易被破解,结构复杂的锁成本较高性价比较低。机械锁结构简单安全性不好。家庭住房与实业单位、部队国防和公共安全文件,财务报表数据保存全都是锁保险箱来完成的。保险箱基本上用的是机械锁的结构制造成本高,精度不高,还很容易被破坏。电子密码锁由此诞生,并且逐步代替安全性不好的机械锁。电子密码锁是通过密码锁系统内部路FPGA芯片内的代码来进行密码控制,从而控制机械开关的闭合。本设计用VHDL语言描述经过修改和改进,形成生产电路或布局参数描述的程序。用FPGA芯片实现功能。

2 数字密码锁基本功能

闭锁状态情况下用户按下开始键开始输入10位密码),输入完成后按确认键确认密码。输入正确则开锁,输入错误则报警。锁开状态情况下,用户进行用户密码修改操作:按修改密码按钮开始修改密码,输入新密码,按确认键确认新密码,然按下安全锁定按钮。在这一点上,进入一个新的密码。所以按下闭锁按钮后,系统处于闭锁状态,此时系统比对后,与初始密码不相同,所以此时系统处于闭锁状态。

3 数字密码锁模块功能

10位密码锁系统由三个模块组成:开关控制模块、密码比较甄别模块,密码寄存模块。

3.1 开关控制模块说明

打开系统按下闭锁按钮使系统处于闭锁状态,锁闭合并且此时用户不能修改密码,只能输入密码判断正误。此时用户输入密码信号,密码锁当在输入密码状态时,如果用户输入存器比较且匹配成功,在输入正确的密码后开始进入密码验证正确的系统状态;密码锁当在输入密码状态时,如果用户输入的密码和寄存器比较且匹配不成功,在输入错误的密码后错误的系统状态。在密码验证正确状态下密码锁系统此时进入开锁状态,当用户输入密码正确时,系统此时处于开锁状态。系统开始进入修改密码状态。用户开始输入新密码,输入完毕后按确认键,用户再按下闭锁按钮使系统处于闭锁状态,此时系统密码为新输入的密码。其主要VHDL语言描述如下:

3.2 密码比较甄别模块

10位数字密码锁的比较模块,是对用户输入的密码和寄存模块中的输出进行比较,并且将密码比较的正误结果返回到控制模块中。其主要VHDL语言描述如下:

3.3 密码寄存模块

数字密码锁寄存器模块设计,用于存储系统预先设置的密码和修改后的密码,用户输入密码后,系统将输入的密码与寄存模块中存储的密码进行比较,判断是否一致。其主要VHDL语言描述如下:

4 结束语

文章介绍了一个利用VHDL语言设计的10位数字密码锁并且对相关代码进行了说明,实践证明系统工作良好性能稳定,本电子防盗锁具有较高的安全性和实用性。整个系统成本低,可靠性高,通过耐久老化试验,证明其经久耐用,具有一定的市场应用价值。

参考文献

[1]潘松.VHDL实用教程[M].西安电子科技大学出版社,2008.

[2]]高曙光.可编程逻辑器件原理、开发与应用[M].西安电子科技大学出版社,2002.

基于vhdl语言的数字钟 篇10

1 FIR数字滤波器的设计原理

FIR数字滤波器是一个线性时的不变系统, 长度为M阶因果有限冲激响应滤波器可以用传输函数H (W) 描述:

有限冲激响应滤波器在时域中的输入输出关系:

其中x[n]和y[n]分别是输入和输出序列[3]。

2 FIR数字滤波器的设计原理

设计一个线性相应的FIR 16阶初始h (0) =0的低通数字滤波器, 采样频率为100 khz, 截至频率为10khz, 序列位宽为输入输出10位。整个设计分为程序设计和原理设计两部分。其中程序设计部分设计滤波器电路中的寄存器 (延时器) 、第一级加法器、乘法器、第二级加减法器、输出等单元器件模块[4]。

2.1 寄存器 (延时器)

如图1所示, 设计中用输入9位数据, 通过dff9的触发寄存器实现寄存一组9位的二进制数据, VHDL语言实现寄存功能。

设计中用D触发器组成寄存器, 实现寄存功能。这里用来寄存一组9位的二进制数据。

2.2 第一级加法器

如图2所示, 9位数字输入和10位数字输出数据通过add9910构成加法器, 实现两个二进制数字的相加运算。

2.3 乘法器

如图3所示, 乘法器用来将数据乘以由Matlab计算得到的滤波系数, 总共有8个乘法器。在乘法器设计时暂时没有考虑符号, 符号问题由下面的减法器实现。

2.4 第二级加减法器

对于乘了滤波系数的数据, 进行第二次的加, 如图4所示。由于上面有的滤波系数是负的, 所以这里用减法器对上一面的负系数做减法运算, 如图5所示。

2.5 输出

如图6所示, 输出通过一个加法器add151710完成10位数据的输出, 通过一个15位与一个17位数据相加得到的数据取高10为作为最终结果。

3 仿真结果

用VHDL语言实现的单元器件在仿真实验中构成元器件, 按照原理图连接的滤波器件电路在Quartus II的集成开发环境下完成[5]。

设定任意输入一组信号:

由quartus II仿真结果如图7所示。

4 仿真结果验证

由FIR数字滤波器的公式[6]:

利用Matlab计算出FIR数字滤波器的卷积y[m]的理论值和仿真器仿真得到输出结果y[m]对比, 见表1所示。

FIR数字滤波器的卷积y[m]的理论值和仿真器仿真得到输出结果y[m]比较, 结果完全吻合。数字滤波器设计符合设计要求。

5 结语

基于VHDL的FIR低通数字滤波器的性能优劣对信号处理的结果有重要的影响。本文对FIR数字低通滤波器进行了研究, 利用VHDL对FIR数字滤波器划分的多个模块进行模块的设计, 并完成系统设计。按照设计原理, 在数字逻辑设计的过程和方法中使用VHDL硬件描述语言, 编写相应代码在Quartus II的集成开发环境下运行, 并利用其内部的仿真器对设计做脉冲响应仿真和验证。

参考文献

[1]胡广书.数字信号处理理论算法与实现[M].清华大学出版社, 2003.

[2]佩德罗尼.VHDL数字电路设计教程[M].电子工业出版社, 2005.

[3]程佩青.数字信号处理教程[M].清华大学出版社, 2007.

[4]张学敏.基于MATLAB的FIR带通滤波器的设计与仿真[J].长春工程学院学报 (自然科学版) , 2007 (08) .

[5]蔡楠.基于VHDL语言的fir滤波器软件设计[J].科技信息, 2010 (34) .

基于vhdl语言的数字钟 篇11

1 VHDL语言的基本结构及优势

1.1 基本结构

一个相对完整的VHDL程序通常都有比较固定的结构, 主要的组成部分包括库、实体以及与实体相对应的结构体三种, 具体划分的话, 通常包括库、包集合、实体、构造体以及配置5个部分。

1.2 VHDL语言具有的优势

随着我国数字电子技术的飞速发展, 以及相关技术人员水平的不断提高, 数字逻辑电路的设计也在逐渐提高, VHDL语言所发挥的优势在电子技术的应用领域中得到了广泛的发展。

(1) 具有很强的行为描述能力。与其他的硬件描述语言相比较, 具有更强的行为描述能力是VHDL语言的最明显的优势, 可以避开具体的器件结构, 这也正是为什么VHDL语言会成为系统设计领域中最佳的硬件描述语言的原因。

(2) VHDL语言有良好的可读性。VHDL语言的良好的可读性体现在既可以被计算机接受, 也容易被读者们理解。而且VHDL书写的源文件用途也体现在多方面, 既可以是程序也可以是文档, 既可以是技术信息, 也可以作为签约的合同文件。

(3) VHDL语言具有良好的可移植性。作为一种已经被IEEE (Institute of Electrical and Electronics Engineers——美国电气和电子工程师协会) 承认的工业标准, VHDL的应用范围已经越来越广, 可以满足不同设计环境和系统平台的使用。

(4) 具有丰富的仿真语句和库函数。VHDL具有的丰富仿真语句, 可以使其应用的效果提前向人们展示出来, 结合系统是否存在可行性就一目了然。随时可以对设计进行仿真模拟工作。

(5) VHDL语言可以延长设计的周期。因为VHDL的硬件是相对独立的, 不会与工艺技术发生关联, 所以, 也不会因为工艺产生变化的情况下出现描述事件过长的情况。

2 VHDL语言在数字逻辑电路设计中的仿真设计

目前, 很多相关公司都为设计者提供了仿真工具, 比如说Synopsys公司的VHDL System Symulator、Model Technology公司的SYNARIO VHDL Simulator等。通过这些仿真工具, 设计者可以对各个设计层次的设计模块进行仿真, 这样就可以提前发现问题, 解决问题, 使程序能够顺利运行。所以, 仿真是利用VHDL语言进行硬件设计的一个不可获取的步骤, 同时也贯穿了整个设计的过程中。

一般情况下, 仿真输入信息的产生主要分为程序直接产生法和读TEXTIO文件产生法两种。

2.1 程序直接产生法

程序直接产生法是最普通也是最常用的方法, 主要是由设计者设计一段VHDL语言程序, 通过此程序直接形成仿真信息, 形成波形图来达到仿真效果。例如:

2.2 读TEXTIO文件产生法

在程序直接产生法中, 仿真的设计人员必须要对仿真的模块有足够的了解, 了解详细的状态和它们与时间的关系, 为此, 人们设计了一种在仿真时, 根据定时要求按行读出的方法, 并赋予相应的输入信号。这种方法就是读TEXTIO文件产生法。

2.3 产生输入仿真信号注意事项

对于控制信号和时钟信号输入时间, 最好不要选在同一个仿真时刻出现, 应该相应的错开一段时间, 这样可以防止仿真中因判别二者变化的先后不同而出现相反的结果, 使仿真结果具有唯一性。

3 结语

VHDL凭借着自身诸多优势, 已经越来越广泛的被应用, 在我国电子技术飞速发展的推动下, VHDL也会越来越被人们重视, VHDL在数字逻辑电路中的应用是VHDL应用的开始, 在未来的时间里, 一定会得到更好的发展。

参考文献

上一篇:国际贸易实务进出口业务试题下一篇:上海市引进人才申请表