本科EDA技术及应用第3章(1)
更新时间:2023-04-30 07:17:01 阅读量: 综合文库 文档下载
第3章VHDL编程基础
第3章VHDL编程基础(1)
3.1 概述
3.2 VHDL程序基本结构
3.3 VHDL语言要素
3.4 VHDL顺序语句
3.5 VHDL并行语句
第3章VHDL编程基础
3.1 概述
3.1.1 常用硬件描述语言简介
常用硬件描述语言有VHDL、Verilog和ABEL语言。VHDL 起源于美国国防部的VHSIC,Verilog起源于集成电路的设计,ABEL则来源于可编程逻辑器件的设计。下面从使用方面将三者进行对比。
(1) 逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,其层次由高到低依次可分为行为级、RTL级和门电路级。VHDL语言是一种高级描述语言,适用于行为级和RTL 级的描述,最适于描述电路的行为;Verilog语言和ABEL语言是一种较低级的描述语言,适用于RTL级和门电路级的描述,最适于描述门级电路。
第3章VHDL编程基础
(2) 设计要求:VHDL进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;Verilog和ABEL语言进行电子系统设计时需了解电路的结构细节,设计者需做大量的工作。
(3) 综合过程:任何一种语言源程序,最终都要转换成门电路级才能被布线器或适配器所接受。因此,VHDL语言源程序的综合通常要经过行为级→RTL级→门电路级的转化,VHDL几乎不能直接控制门电路的生成。而Verilog语言和ABEL语言源程序的综合过程要稍简单,即经过RTL级→门电路级的转化,易于控制电路资源。
第3章VHDL编程基础
(4) 对综合器的要求:VHDL描述语言层次较高,不易控制底层电路,因而对综合器的性能要求较高,Verilog和ABEL对综合器的性能要求较低。
(5) 支持的EDA工具:支持VHDL和Verilog的EDA工具很多,但支持ABEL的综合器仅仅Dataio一家。
(6) 国际化程度:VHDL和Verilog已成为IEEE标准,而ABEL正朝国际化标准努力。
第3章VHDL编程基础
3.1.2 VHDL的优点
VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE ( The Institute of Electrical and Electronics Engineers)和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本(IEEE-1076)之后,各EDA公司相继推出了自己的VHDL 设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起几乎全部的数字系统设计任务。
第3章VHDL编程基础
VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的,具体如下:
第3章VHDL编程基础
(1) 与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。就目前流行的EDA工具和VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已不成问题,只是在综合与优化效率上略有差异。
(2) VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断。
第3章VHDL编程基础
(3) VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须有多人甚至多个开发组共同并行工作才能实现,VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有利的支持。
第3章VHDL编程基础
(4) 用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的实现芯片)。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。利用EDA工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化的电路获得设计信息,返回去更新修改VHDL设计描述,使之更加完善。
第3章VHDL编程基础
(5) VHDL对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必管最终设计的目标器件是什么,而进行独立的设计。正因为VHDL的硬件描述与具体的工艺技术和硬件结构无关,所以VHDL设计程序的硬件实现目标器件有广阔的选择范围,其中包括各种系列的CPLD、FPGA及各种门阵列器件。
(6) 由于VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。
第3章VHDL编程基础
3.1.3 VHDL程序设计约定
为了便于程序的阅读和调试,本书对VHDL程序设计特作如下约定:
(1) 语句结构描述中方括号“[ ]”内的内容为可选内容。
(2) 对于VHDL的编译器和综合器来说,程序文字的大小写是不加区分的。本书一般使用大写。
(3) 程序中的注释使用双横线“--”。在VHDL程序的任何一行中,双横线“--”后的文字都不参加编译和综合。
第3章VHDL编程基础
(4) 为了便于程序的阅读与调试,书写和输入程序时,使用层次缩进格式,同一层次的对齐,低层次的较高层次的缩进两个字符。
(5) 考虑到MAX+plusII要求源程序文件的名字与实体名必须一致,因此为了使同一个VHDL源程序文件能适应各个EDA 开发软件上的使用要求,建议各个源程序文件的命名均与其实体名一致。
第3章VHDL编程基础
3.2 VHDL程序基本结构
3.2.1 VHDL程序设计举例
1.设计思路
全加器可以由两个1位的半加器构成,而1位半加器可以由如图3.1所示的门电路构成。
1位半加器的端口信号A 和B分别是2位相加的二进制输入信号,SO是相加和的输出信号,CO是进位输出信号,左边的门电路结构构成了右边的半加器H_ADDER。在硬件上可以利用半加器构成如图3.2所示的全加器,当然还可以将一组这样的全加器级联起来构成一个串行进位的加法器。图3.2中,全加器
F_ADDER内部的功能结构是由3个逻辑器件构成的,即由两个半加器U1、U2和一个或门U3连接而成。
第3章VHDL编程基础
图3.1 1位半加器逻辑原理图A
B
CO
SO H_ADDER
A
B
CO
SO
第3章VHDL编程基础图3.2 1 位全加器逻辑原理图A B CO SO H_ADDER
U1AIN
BIN
CIN S2A B CO SO H_ADDER U2S1S3A B C U3OR2COUT SUM F_ADDER AIN BIN CIN COUT
SUM
第3章VHDL编程基础
2. VHDL源程序
1) 或门的逻辑描述
--IEEE库的使用说明
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;--实体OR2的说明
ENTITY OR2 IS
PORT(A,B:IN STD_LOGIC;
C:OUT STD_LOGIC);END ENTITY OR2;
--实体OR2的结构体ART1的说明ARCHITECTURE ART1 OF OR2 IS BEGIN
C<=A OR B;
END ARCHITECTURE ART1;
第3章VHDL编程基础
2) 半加器的逻辑描述
--IEEE库的使用说明
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
--实体H_ADDER的说明
ENTITY H_ADDER IS
PROT(A,B:IN STD_LOGIC;
CO,SO:OUT STD_LOGIC);
第3章VHDL编程基础
END ENTITY H_ADDER;
--实体H_ADDER的结构体ART2的说明
ARCHITECTURE ART2 OF H_ADDER IS BEGIN
SO<=(A OR B) AND (A NAND B);
CO<=NOT (A NAND B);
END ARCHITECTURE ART2;
第3章VHDL编程基础
3) 全加器的逻辑描述
--IEEE库的使用说明
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
--实体F_ADDER的说明
ENTITY F_ADDER IS
PORT(AIN,BIN,CIN:IN STD_LOGIC;
COUT,SUM:OUT STD_LOGIC);END ENTITY F_ADDER;
--实体F_ADDER的结构体ART3的说明ARCHITECTURE ART3 OF F_ADDER IS
--元件调用声明
第3章VHDL编程基础
COMPONENT H_ADDER
PORT(A,B:IN STD_LOGIC;
CO,SO:OUT STD_LOGIC);
END COMPONENT;
COMPONENT OR2
PORT(A,B:IN STD_LOGIC;
C:OUT STD_LOGIC);
END COMPONENT;
SIGNAL D,E,F:STD_LOGIC;
--元件连接说明
BEGIN
U1:H_ADDER PORT MAP(A=>AIN,B=>BIN,CO=>D,SO=>E);
U2:H_ADDER PORT MAP(A=>E,B=>CIN,CO=>F,SO=>SUM);
U3:OR2 PORT MAP(A=>D,B=>F,C=>COUT);
END ARCHITECTURE ART3;
第3章VHDL编程基础
3. 说明及分析
(1) 整个设计包括三个设计实体,分别为OR2、H_ADDER 和F_ADDER,其中实体F_ADDER为顶层实体。三个设计实体均包括三个组成部分:库、程序包使用说明,实体说明和结构体说明。这三个设计实体既可以作为一个整体进行编译、综合与存档,也可以各自进行独立编译、独立综合与存档,或被其他的电路系统所调用。
正在阅读:
本科EDA技术及应用第3章(1)04-30
庆云镇人民政府关于参加全省绿化模范县评选活动的请示05-19
矿井防治水地的知识04-12
七把金钥匙表单 - 图文10-05
冬天优美句子摘抄11-20
《测井资料解释》考试大纲08-17
以课题研究引领内高班安全教育管理工作-2019年精选文档03-26
专题:滑块 - 木板模型(一)01-11
先进集体事迹材料专题8篇11-07
货币政策的房地产价格传导机制研究08-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 本科
- 应用
- 技术
- EDA
- 新部编版小学四年级语文下册第14课《母鸡》说课稿
- 5万吨污水处理厂可研
- 2018-2019年高中生物上海高三同步测试真题试卷【1】含答案考点及解析
- 僧伽吒经(注音,香赞、净口、补阙真言、回向)
- 初中语文知识点《作文及写作》《材料作文》精选同步测试试题【33】(含答案考点及解析)
- 2015-2016学年北京市密云县初一年级第二学期期末数学试卷(含答案)
- 2020年庆祝建党99周年党章知识竞赛测试题库及答案(共60题)
- 2018-2019年高中地理山西高三水平会考模拟试题【9】含答案考点及解析
- 高一学生军训心得体会1000字
- 苏州市招标文件 模板
- 江苏质量检查员习题集及答案
- 最感人的10段话,哪段感动了你?
- 小度写范文关于离别的英文歌-关于离别的英文歌抖音模板
- 马工程《法理学》教材配套题库
- 深圳证券交易所股票上市规则(2008年修订)
- 税法模拟试卷和答案分析
- 外研版(一起)英语三下module1unit1练习卷3.doc
- 最简单购销合同范本
- s7-1500modbus的通讯总结
- 排雷英雄杜富国事迹学习领悟5篇