1、基于vhdl语言的二进制转十进制并用数码管显示的设计河南科技学院机电学院VHDL课程设计报告题目:八位数码管显示 专业班级:电气工程及其自动化102 姓名: 周迎接 学 号: 20100344214 指导教师: 付广春 完成日期:2012年12月 27 日目 录1 引言22 总体设计方案22.1 输入引脚数目的计算32.2 二进制转为十进制部分程序设计32.3 数码管显示部分程序设计43 仿真显示53.1 显示3仿真图53.2显示96的仿真图54 心得体会6参考文献6附录17摘要随着当今社会电子技术的快速发展,单凭借硬件已不再能满足广大人民的需求,这时候软件就显示除了他们突出的优点。与其他编程
2、语言相比,VHDL语言以其超强的硬件描述能力,良好的可读性和可移植性,以及其良好的用户自定义性受到了广大用户的青睐。VHDL语言在最近几年的发展及其迅猛,由此可以看出其用途已经变的越来越广泛。一个VHDL程序由5个部分组成,包括实体(ENTITY)、结构体(architecture)、配置(coxnfiguration)、包(package)和库(library)。实体和结构体两大部分组成程序设计的最基本单元。图2.2表示的是一个VHDL程序的基本组成。配置是用来从库中选择所需要的单元来组成该系统设计的不同规格的不同版本,VHDL和Verilog HDL已成为IEEE的标准语言,使用IEEE提
3、供的版本。包是存放每个设计模块都能共享的设计类型、常数和子程序的集合体。库是用来存放已编译的实体、结构体、包和配置。在设计中可以使用ASIC芯片制造商提供的库,也可以使用由用户生成的IP库。今天我所要设计的是基于VHDL语言的8位数码管显示电路,其要实现的功能是把输入的二进制数转换为对应的十进制数,并通过数码管显示出来。其过程大致可以分为通过程序将输入的二进制数先转换为对应的十进制数,然后再把对应的十进制数与数码管的管脚对应起来,使其显示在数码管上。关键词:二进制转为十进制 数码管显示 共阳数码管1 引言VHDL 的英文全名是 Very-High-Speed Integrated Circui
4、t Hardware Description Language,诞生于 1982 年。1987 年底,VHDL被美国国防部和IEEE确认为标准硬件描述语言。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设
5、计实体分成内外部分的概念是VHDL系统设计的基本点。 VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:1 (1) VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计
6、方法,也支持层次化设计方法。 (2) VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHD
7、L 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步
8、步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。 本次我所要设计的基于VHDL语言的八位数码管显示将充分体现它的部分优点。2 总体设计方案2.1 输入引脚数目的计算因为题目要求数码管要能显示最大的八位十进制二进制数,所以对应的二进制表示的十进制数首先要大于99999999,即2的所有n次幂之和应该大于99999999,数码管才能显示出最大的八位十进制数,所以计算可得n的值最小为27,所以输入二进制数的引脚应该设为27个,其二进制数输入引脚图如图1所示图1 二进制数输入引脚图2.2 二进制转为十进制部分程序设
9、计二进制转为十进制的部分程序如下:architecture one of look issignal ai,bi,ci,ki,ei,fi,gi,hi:integer range 0 to 9;signal di:integer range 0 to 99999999;begindi=conv_integer(d);2.3 数码管显示部分程序设计2.3.1 程序中数码管的选择及显示的设置在本设计中按照我的程序硬件所选用的应该为共阴极数码管,且当某一位数码管不需要显示数据时,统一设定其显示0,例如需要显示1时,八个数码管的显示为00000001。2.3.2 数码管显示部分部分程序如下:variab
10、le a,b,c,k,e,f,g,h:integer range 0 to 9;begina:=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) 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)/100
11、00000;ai=a;bi=b;ci=c;ki=k;ei=e;fi=f;gi=g;hiled7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)led7s1(6 downto 0)=XXXXXXX;end case;end process;2.3.3 数码管显示部分引脚图数码管显示部分部分引脚图如
12、图2 所示图 2 数码管显示部分部分引脚图2.2.4 总体设计程序见附表13 仿真显示3.1 显示“000000003”仿真图显示数字“3”的仿真图如图3所示,因为根据程序所需数码管为共阳极数码管,所以数码管对应的“e”,“f”段应该为高电平,在本次设计中,即数码管的第5,6段为高电平,为了便于观察,仿真的各项周期均取10ns。 图3 显示“3”电路3.2 显示“96”部分仿真图,如图4所示 图4 显示“96”仿真图4 心得体会通过这次的课程设计让我对VHDL语言以及电路设计的理论有了更加深入的了解,课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,这
13、次课程设计虽然很累,但我学到了不少东西,对软件的设计过程和方法有了更深入的了解。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。这次课程设计顺利完成了,在设计中遇到了很多问题,最后都是经过查阅相关的资料和在同学的帮助下,终于游逆而解。同时,在我学得到很多实用的知识,同时,对给过我帮助的所有同学再次表示忠心的感谢!参考文献【1】黄继业.EDA技术使用教程M.北京:科学出版社,2010【2】王云亮.电力电子技术M.北京:电子工业出版社,2009【3】康光华.电子技术基础M.北京:高等教育出版社,2006附录1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity look isport(d:in std_logic_vector(26 downto 0);clk3:in
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1