VHDL语言的基本结构

一、VHDL设计简述

VHDL主要用于描述数字系统的结构、行为、功能和接口。
VHDL将一个设计(元件、电路、系统)分为:
外部(可视部分、端口)
内部(不可视部分、内部功能、算法)

1.VHDL语言的一些基本特点

二、实体

1.功能

描述设计模块的输入/输出信号或引脚,并给出设计模块与外界的接口。实体类似一个“黑盒”,实体描述了“黑盒”的输入输出口。

2.格式

3.实体名

实体名实际上是器件名,最好根据相应的电路功能确定。如4位2进制计数器用counter4b; 8位加法器用add8b; 3/8译码 器用ym_ 38。

实体名必须与文件名相同,否则无法编译。

实体名不能用工具库中定义好的元件名。

实体名不能用中文,也不能用数字开头。

4.类属说明

确定实体或组件中定义的局部常数。模块化设计时多用于不同层次模块之间信息的传递。可从外部改变内部电路结构和规模。类属说明必须放在端口说明之前。

类属参数是一种端口界面常数,用来规定实体端口的大小、
总线宽度设计实体的物理特性等与常数不同,常数只能从内部赋值而类属参量可以由实体外部赋值数据类型通常取Integer或Time;
综合器仅支持数据类型为整数的类属值。

5.端口声明

端口(PORT)是实体的一部分,PORT类似于器件的管脚,主要用于信号的传输,PORT一般有Name, Mode,和Type
端口说明格式:

端口模式:

三、结构体

用来描述实体的内部结构和逻辑功能,必须和实体(ENTITY) 相联系,一个实体 (ENTITY) 可以有多个结构体,结构体的运行是并发的,结构体描述方式包括:行为描述、结构描述、数据流描述

1.结构体组成

两个组成部分:
(1)对数据类型、常数、信号、子程序、元件等元素的说明部分。
(2)以各种不同的描述风格描述的系统的逻辑功能实现的部分。

一个设计实体可有多个结构体,代表实体的多种实现方式。各个结构体的地位相同。

2.结构体的语法结构

同一实体的结构体不能同名。定义语句中的常数、信号不能与实体中的端口同名。

四、库

1.库的分类

VHDL库可分为5种

(1)IEEE库

定义了四个常用的程序包

(2)STD库(默认库)

库中程序包为: s tandard, TEXTI0

(3)面向ASIC的库

(4)WORK库(默认库)

(5)用户自定义库

2.库的使用

库及程序包的说明总是放在实体单元前面,默认库(如STD, WORK库)可不作说明。用关健字library说明要使用的库。
LIBRARY 库名;
库及程序包的作用范围:仅限于所说明的设计实体。
每一个设计实体都必须有自已完整的库及程序包说明语句。

程序包:

已定义的常数、数据类型、元件调用说明、子程序的一个集合,方便公共信息、资源的访问和共享,多个程序包构成库。

程序包的使用格式:

程序包的结构包括:
程序包说明(包首)
程序包主体(包体)
程序包说明的内容:
常量说明;
VHDL数据类型说明;
元件说明;
子程序说明;

(1)程序包说明

(2)程序包包体

(3)程序包首与程序包体的关系

程序包体并非必须,只有在程序包中要说明子程序时,程序包体才是必须的,程序包首可以独立定,义和使用。

五、配置

一个设计实体对应多个结构体,有多种实现方式。

配置:从某个实体的多种结构体描述方式中选择
特定的一个。

1.配置语句的基本格式

(1)默认配置格式结构(用于选择不包含元件或块的结构体)

第三章 VHDL语言的基本结构相关推荐

  1. CoreJava 笔记总结-第三章 Java的基本程序设计结构

    CoreJava 笔记总结 文章目录 CoreJava 笔记总结 第三章 Java的基本程序设计结构 数据类型 1. 整型 2. 浮点类型 3. char类型 4. boolean类型 变量与常量 1 ...

  2. VHDL语言的基本结构(结构框架说明)

    VHDL语言的基本结构 一.实体说明 主要描述的是一个设计单元的外部特征,即对外的输入/输出接口及一些用于结构体的参数定义. 规则一:建议将VHDL的标识符或基本语句关键词,以大写方式表示:而又设计者 ...

  3. 【学习笔记】数据库系统原理 第三章 SQL语言

    以下内容为参考课件和<数据库系统概论>(第5版,王珊等著)的个人整理,若有错误欢迎指出 第三章 SQL语言 文章目录 第三章 SQL语言 一.概述 二.数据查询功能 1.查询语句 2.连接 ...

  4. BIM建筑环境规则和分析(BERA)语言介绍(四)第三章 BERA语言设计

    设计策略 什么是好的语言设计?没有明确的答案,但许多研究人员 声称,新语言有重要因素可以获得接受和 长寿.就领域特定语言的主要目的而言,新语言 应首先以一种简单的方式有效地解决新问题[Mashey,2 ...

  5. c语言程序设计教程博客,C语言教程第三章: C语言程序设计初步

    if(表达式1) 语句1: else if(表达式2) 语句2: else if(表达式3) 语句3: - else if(表达式m) 语句m: else 语句n:其语义是:依次判断表达式的值,当出现 ...

  6. Web前端开发笔记——第三章 CSS语言 第四节 CSS列表、表格样式

    目录 一.CSS列表样式 (一)设计列表项前标志类型 (二)设计列表项前标志位置 (三)设计列表项图片 (四)设计整体列表属性 二.CSS表格样式 (一)设计表格大小 (二)设计表格边框 (三)奇偶选 ...

  7. 网上作业c语言第三章,c语言 第3章 作业 和部分答案.doc

    网纤撤碟如背禄帆枉耸屉簿贝妙除崩凸痉篱堤匹糟隙碗挞渗福葫椅眶涂臆蹄碌整塌系亦勇蓬骡穿惊淬灼绝糠谈坊拽窝溢监怠敦惭肿昆歌慧晴秆氰圃嫩觅舅产涯梧脂魄攫阻修比琢芒涣墩促靡程断奶割字侍讽舵祥宛铅取芝饰傅坡龋减 ...

  8. 第三章 C语言运算符与表达式练习题

    第三章 运算符与表达式练习题 一.单项选择题 1.下列数据中属于"字符串常量"的是(  ).      A."a"      B.  {ABC}         ...

  9. 北邮计院数电第五章——VHDL语言

    PLD:用户根据需要自行设计芯片中特定逻辑电路的器件 可编程逻辑:包括硬件.软件 本章思路: PLD->FPGA.ISP->编程方法.工具 PLD的基本概念 可编程阵列 所有的PLD都是用 ...

最新文章

  1. ruby生成C++头文件引用关系图
  2. 直播回顾|结构光3D相机光机核心技术及3D成像性能分析
  3. 01_字符串处理------01_切分
  4. mysql盲注_二十八、MySQL盲注
  5. AngularJs快速上手掌握
  6. 画Series的散点图
  7. 配置Java开发环境
  8. php实现返回界面,PHP实现模仿socket请求返回页面的方法
  9. VTK:隐式函数之ImplicitQuadric
  10. 文档在线签名_为什么需要为文档和合同切换到在线签名
  11. SAS学习︱逻辑库、数据集创建与查看、数据库链接(SAS与R的code对照)
  12. 提高java效率_提高Java编程效率的一个技巧
  13. Charles监听HTTPS请求
  14. php设置自动关机开机,设置电脑自动开机关机方法介绍
  15. 如何在多次触发事件时只执行一次?(函数防抖)
  16. nginx工作原理及配置
  17. 自己总结的ITTO规律-PMP
  18. 读书笔记(10)网络规划与设计
  19. apache2部署访问yaaw
  20. R语言中的函数5:purrr:map()

热门文章

  1. 网络运维系列:远程服务器登录、配置与管理
  2. android实现短信自动转发
  3. 这几款好用超赞的 Google Chrome插件送给你!
  4. 全新的红巨人粒子特效套装插件:TrapCode Suite Mac版
  5. navicat12,使用自动完成代码,没有默认选中第1个,怎么设置?
  6. 用启动盘点击修复计算机没有反应,如何修复并还原故障/没有反应SSD固态硬盘...
  7. 深度学习目标检测YOLO对于数据集的要求
  8. Angula中的数据交互
  9. 客户成功的「本手、俗手、妙手」
  10. 实现1-100之间的阶乘