VHDL语言10进制计数器文档格式.docx
- 文档编号:18345371
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:11
- 大小:136.07KB
VHDL语言10进制计数器文档格式.docx
《VHDL语言10进制计数器文档格式.docx》由会员分享,可在线阅读,更多相关《VHDL语言10进制计数器文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
1温习EDA的相关技术与方式;
2把握VHDL或Verilog语言,并要求能编写程序。
3Quartus软件的利用:
把握程序编辑、编译、调试、仿真方式。
4设计相关简单的电路,完成既定的功能。
4.课程设计说明书按学校“课程设计工作标准”中的“统一书写格式”撰写,具体包括:
1目录;
2计数器相关的理论分析、归纳和总结;
310进制计数器的结构组成及原理分析。
4程序设计框图、程序代码(含注释);
5给出程序中要紧函数或语句的功能说明和利用说明;
6给出程序仿真运行结果和图表、和实验结果分析和总结;
7课程设计的心得体会(至少500字);
8参考文献;
9其它必要内容等。
时刻安排:
具体时间
设计内容
8月3日
指导老师就课程设计内容、设计要求、进度安排、评分标准等做具体介绍。
学生确定选题,明确设计要求
8月4日
开始查阅资料,完成相关电路原理分析、代码或原理图设计。
8月5日
采用VHDL或Verilog语言编程,上机调试,得出实验结果
8月6日
撰写课程设计说明书
8月7日
上交课程设计说明书,并进行答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
摘要
本次能力拓展训练是作出一个十进制加法计数器,递增计数,有进位、清零、维持功能。
需要按要求编写出十进制计数器的VHDL程序,调试、编译程序并绘制出仿真波形图,结果应能实现计数功能。
本次能力拓展训练意义在于温习EDA的相关技术与方式;
把握VHDL或Verilog语言,并要求能编写程序。
Quartus软件的利用:
关键词:
十进制计数器VHDLQuartusII
十进制计数器
1设计内容与要求
设计一个10进制计数器,对计数器相关的理论进行分析、归纳和总结;
10进制计数器的结构组成及原理分析。
程序设计框图、程序代码(含注释);
给出程序中要紧函数或语句的功能说明和利用说明;
给出程序仿真运行结果和图表、和实验结果分析和总结。
温习EDA的相关技术与方式;
设计相关简单的电路,完成既定的功能。
2VHDL语言介绍
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年末,VHDL被和美国国防部确以为标准硬件描述语言。
自IEEE发布了VHDL的标准版本,IEEE-1076(简称87版)以后,各EDA公司接踵推出了自己的VHDL设计环境,或宣布自己的设计工具能够和VHDL接口。
尔后VHDL在电子设计领域取得了普遍的同意,并慢慢取代了原有的非标准的硬件描述语言。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,发布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。
此刻,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又取得众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
有专家以为,在新的世纪中,VHDL于Verilog语言将承担起大部份的数字系统设计任务。
VHDL语言是一种用于电路设计的高级语言。
它在80年代的后期显现。
最初是由美国国防部开发出来供美军用来提高设计的靠得住性和缩减开发周期的一种利用范围较小的设计语言。
VHDL的英文全写是:
VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptiongLanguage.翻译成中文确实是超高速集成电路硬件描述语言。
因此它的应用主若是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
固然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL要紧用于描述数字系统的结构,行为,功能和接口。
除含有许多具有硬件特点的语句外,VHDL的语言形式和描述风格与句法是十分类似于一样的运算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(能够是一个元件,一个电路模块或一个系统)分成外部(或称可是部份,及端口)和内部(或称不可视部份),既涉及实体的内部功能和算法完成部份。
在对一个设计实体概念了外部界面后,一旦其内部开发完成后,其他的设计就能够够直接挪用那个实体。
这种将设计实体分成内外部份的概念是VHDL系统设计的大体点
与其他硬件描述语言相较,VHDL具有以下特点:
功能壮大、设计灵活。
VHDL具有功能壮大的语言结构,能够用简练明确的源代码来描述复杂的逻辑操纵。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。
VHDL还支持各类设计方式,既支持自底向上的设计,又支持自顶向下的设计;
既支持模块化设计,又支持层次化设计。
支持普遍、易于修改。
由于VHDL已经成为IEEE标准所标准的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推行和普遍应用奠定了基础。
在硬件电路设计进程中,要紧的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,因此易于修改设计。
壮大的系统硬件描述能力。
VHDL具有多层次的设计描述功能,既能够描述系统级电路,又能够描述门级电路。
而描述既能够采纳行为描述、寄放器传输描述或结构描述,也能够采纳三者混合的混合级描述。
另外,VHDL支持惯性延迟和传输延迟,还能够准确地成立硬件电路模型。
VHDL支持预概念的和自概念的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。
独立于器件的设计、与工艺无关。
设计人员用VHDL进行设计时,不需要第一考虑选择完成设计的器件,就能够够集中精力进行设计的优化。
当设计描述完成后,能够用多种不同的器件结构来实现其功能。
很强的移植能力。
VHDL是一种标准化的硬件描述语言,同一个设计描述能够被不同的工具所支持,使得设计描述的移植成为可能。
易于共享和复用。
VHDL采纳基于库(Library)的设计方式,能够成立各类可再次利用的模块。
这些模块能够预先设计或利用以前设计中的存档模块,将这些模块寄存到库中,就能够够在以后的设计中进行复用,能够使设计功效在设计人员之间进行交流和共享,减少硬件电路设计。
3计数器设计
设计原理
计数器的输入信号是计数信号(Clk),门控信号是手动清零信号(Rest)、手动许诺计数(En)。
清零信号Rest为1时,维持在异步清零状态,计数脉冲上升沿无效;
许诺计数端为0时,为维持状态,这时维持至最后一个计数,计数脉冲上升沿无效;
清零信号为0,许诺计数信号为1时,计数器上升沿脉冲计数。
计数器的逻辑功能表如表3-1所示:
表3-1计数器的逻辑功能表
控制端
工作状态
Clk(计数脉冲)
En(允许计数信号)
Rest(清零信号)
X
1
异步清零
上升沿
计数
保持
输出总线信号是二进制—BCD码输出(Dout)一个进位输出端Cy。
当计数器输出0000~1000时,Cy=0,只有当计数器输出1001时,Cy=1。
以上分析可知,能够完全完成10进制计数功能。
程序设计框图
10进制计数器程序的流程能够如此表达:
第一判定是不是处于异步清零状态,假设是,那么计数位和进位信号都是0;
假设不是,那么继续判定计数脉冲是不是达到上升沿,并判定手动许诺计数信号是不是为1,假设是,那么可开始计数,计数信号达到9之前,持续累加1,达到9以后,清零并进位1。
接着继续进入程序进行运算。
10进制计数器程序的流程图如图3-1所示:
图3-110进制计数器程序流程图
程序代码设计
一个VHDL语言的设计程序描述的是一个电路单元,那个电路单元能够是一个门电路,或是一个计数器,也能够是一个CPU。
一段完整的VHDL代码要紧由以下几部份组成:
第一部份是程序包,程序包是用VHDL语言编写的共享文件,概念在设计结构体和实体中将用到的常数、数据类型、子程序和设计好的电路单元等,放在文件目录名称为IEEE的程序包库中。
第二部份是程序的实体,概念电路单元的输入/输出引脚信号。
程序的实体名称是任意取的,可是必需与VHDL程序的文件名称相同。
实体的标识符是ENTITY,实体以ENTITY开头,以END终止。
第三部份是程序的结构体,具体描述电路的内部结构和逻辑功能。
结构体有三种描述方式,别离是行为(BEHAVIOR)描述方式、数据流(DATAFLOW)描述方式和结构(STRUCTURE)描述方式。
其中数据流(DATAFLOW)描述方式又称为寄放器描述方式。
结构体以标识符ARCHITECTURE开头,以END结尾。
依照上述原那么编写程序代码如下所示:
--*******************************************
--程序包
libraryieee;
use实体
ENTITYcnt10is
--Cn计数脉冲
--Rest清零信号
--En许诺计数信号
--Dout[3..0]十进制BCD码
--Cy进位码
●port(Cn,Rest,En:
instd_logic;
Dout:
outstd_logic_VECTOR(3Downto0);
Cy:
outstd_logic);
endcnt10;
--结构体
architecturesun1ofcnt10is
begin
Process(Cn,Rest,En)
VariableCqi:
std_logic_VECTOR(3Downto0);
Begin
IfRest='
1'
ThenCqi:
=(Others=>
'
0'
);
Cy<
='
;
ElsifCn'
EventandCn='
then
IfEn='
IfCqi<
"
1001"
Cqi:
=Cqi+1;
elsifcqi="
thenCy<
=(others=>
endIf;
Dout<
=Cqi;
ENDProcess;
Endsun1;
IEEE标准库是寄存用VHDL语言编写的多个标准程序包的目录,IEEE库中的程序包有:
STD_LOGIC_1164,
STD_LOGIC_ARITH,
STD_LOGIC_UNSIGNED,其中STD_LOGIC_1164是IEEE标准的程序包,概念了STD_LOGIC和STD_LOGIC_VECTOR等多种数据类型,和多种逻辑运算符子程序和数据类型转换子程序等。
STD_LOGIC_ARITH和STD_LOGIC_UNSIGNED等程序包是SYNOPSYS公司提供的,包中概念了SIGNED和UNSIGNED数据类型和基于这些数据类型的运算符子程序。
用户在用到标准程序包中内容时,除STANDARD程序包之外,都要在设计程序中加以说明,第一用LIBRARY语句说明程序包所在的库名,再用USE语句说明具体利用哪一个程序包和具体的子程序名。
实体是VHDL程序设计中最大体的组成部份,在实体中概念了该设计芯片中所需要的输入/输出信号引脚。
端口信号名称表示芯片的输入/输出信号的引脚名,这种端口信号通常被称为外部信号,信号的输入/输出状态被称为端口模式,在实体中还概念信号的数据类型。
端口信号名称能够表示一个信号,也能够表示一组信号(BUS),由数据类型概念。
EN,REST,CN,Cy别离表示计数许诺信号、异步清零信号、时钟输入信号和进位输出信号。
Dout是一组输出信号,用来表示四位同步二进制计数器的四位计数输出信号。
端口信号输入/输出状态IN/OUT别离表示信号进入电路单元和信号从电路单元输出。
结构体是VHDL程序设计中的最要紧组成部份,是描述设计单元的具体结构和功能,程序中,结构体放在实体的后面。
每一个结构体都出名称,结构体的名称是由设计者任取的,结构体是以标识符ARCHITECTURE开头,以END结尾。
不同的结构体采纳不同的描述语句。
ARCHITECTURE结构体名OF实体名称IS
说明语句
BEGIN
电路描述语句
END结构体名;
结构体说明语句是对结构体顶用到的数据对象的数据类型、元件和子程序等加以说明。
电路描述语句用并行语句来描述电路的各类功能,这些并行语句包括并行信号赋值语句、条件赋值(WHEN-ELSE)语句、进程(PROCESS)语句和子程序挪用语句等。
结构体的名称是sun1,该结构体属于行为描述方式,采纳多种描述语句,如进程(PROCRESS)语句、条件赋值语句(WHEN-ELSE)、顺序语句(IF-ELSE)等。
4程序仿真
仿真软件介绍
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其壮大的设计能力和直观易用的接口,愈来愈受到数字系统设计者的欢迎。
QuartusIIdesign是最高级和复杂的,用于systemonaprogrammablechip(SOPC)的设计环境。
QuartusIIdesign提供完善的timingclosure和LogicLock™基于块的设计流程。
QuartusIIdesign是唯一一个包括以timingclosure和基于块的设计流为大体特点的programmablelogicdevice(PLD)的软件。
QuartusII设计软件改良了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmeddevices开发的统一工作流程。
AlteraQuartusII(和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。
工程师利用一样的低价位工具对StratixFPGA进行功能验证和原型设计,又能够设计HardCopyStratix器件用于批量成品。
系统设计者此刻能够用QuartusII软件评估HardCopyStratix器件的性能和功耗,相应地进行最大吞吐量设计。
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供给商的开发工具相兼容。
改良了软件的LogicLock模块设计功能,增添了FastFit编译选项,推动了网络编辑性能,而且提升了调试能力。
仿真结果
打开Quartus,成立新工程,再新建一个VHDL文件,在该窗口输入源程序,然后对源程序进行编译运行。
新建一个波形文件,在波形文件中加入所需观看波形的管脚,给输入管脚趾定仿真波形,编辑待仿真波形文件,如图4-1所示,点击按钮,进行波形仿真。
图4-1带仿真波形图
仿真后的10进制计数器波形如图4-2所示:
图4-2十进制计数器仿真波形
仿真结果分析
由仿真结果可知,手动许诺计数信号为1,清零信号为0,计数开始。
十进制BCD码从0000开始计数,Rest清零信号有效后,计数为7,BCD码为0111,以后计数清零。
Rest清零信号为0后,计数再次开始,BCD码由0000到1001,计数由0到9,完成一次计数,以后进位并清零,再次开始。
手动计数信号无效后,停止计数,维持最后一名计数值。
由上述分析可知,仿真结果完全符合真值表内容,结果正确。
5心得体会
这次能力拓展训练历时一个礼拜左右,通过这一个礼拜的学习,发觉了自己的很多不足,自己知识的很多漏洞,看到了自己的实践体会仍是比较缺乏,理论联系实际的能力还急需提高。
在一开始题目发下来的时候,本来以为是比较容易的一道题,可是真正做起来才发觉一系列的比较分析其实更具挑战性。
在学习EDA这门课的时候,我已经学会了利用MaxplusII软件,本以为在做本次训练会简单许多,但事实和想象老是有差距的。
编程都是一样,这给我减轻了许多负担,可是在绘制仿真波形图时,却显现了问题,程序编译无错误,可是仿真却不能计数,在认真查阅了相关书籍并调试了多次后,终于出来了结果。
通过不断的试探,终于仍是解决了问题。
这次能力拓展训练终于完成了,在设计的进程中,能够说算是困难重重。
回忆这次能力拓展训练,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一礼拜的日子里,能够说得是苦多于甜,可是能够学到很多很多的的东西,同时不仅能够巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
这毕竟第一次做的,不免会碰到过各类各样的问题,比如有时候被一些小的,细的问题挡住前进的步伐,让我老是为了解决一个小问题而花费很长的时刻。
最后还要查阅其他的书籍才能找出解决的方法。
而且我在做设计的进程中发觉有很多东西,也明白了自己的不足的地方,明白自己对以前所学过的知识明白得得不够深刻,把握得不够牢固。
通过本次十进制计数器的设计,我对Quartus的功能有了更深刻的熟悉。
同时,一方面熟悉到了自己这学期来学习电子设计自动化这门课有所得,但把握地并非全面,不透彻,关于完成训练来讲还远远不够;
同时在设计的进程中发觉了自己的不足的地方,对以前所学过的知识明白得得不够深刻,把握得不够牢固,以后我会加倍尽力。
尔后,在学习中,我要端正自己的态度尽力学习,只有如此咱们才能真正的把握好知识。
与此同时在设计的进程中取得了指导教师和同窗们的关切和帮忙,才能顺利完本钱次课程设计,在此表示感激。
参考文献
[1]侯伯亨、顾新.VHDL硬件描述语言与数字逻辑电路设计.西安电子科技大学出版社,
[2]卢毅等.VHDL与数字电路设计.北京:
科学出版社,
[3]李景华、杜玉远.可编程逻辑器件与EDA技术.东北大学出版社,
[4]谭会生、张昌志.EDA技术及应用.西安电子科技大学出版,
[5],
[6]潘松,黄蛀生.EDA技术有效教程.北京:
科学出版社,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 10 计数器