硬件描述语言VHDL——并行语句
并行语句是是硬件描述语言的特殊之处,这也是硬件描述语言不可少的一部分。硬件电路例如:总线,它需要多个输入。这个时候,我们必须并发的给出总线上的数据。软件程序设计语言也有并发,但是在性能要求不是苛刻的情形下,无需使用并发。软件的并发由多线程和多进程来实现。
在VHDL中,并发语句是同时执行的。它们的书写顺序和执行顺序没有关系。在结构体中的并行语句主要有一下几种:
进程语句;
并行信号赋值语句;
并行过程调用语句;
元件例化语句;
生成语句;
块语句。
简单信号赋值语句
信号<=表达式;
选择信号赋值语句
WITH 选择表达式 SELECT
信号<=表达式1 WHEN 选择值1,表达式2 WHEN 选择值2,......表达式n WHEN OTHERS; --最后一行这里是分号。其余行是逗号
WITH——SELECT语句是当“选择表达式”的值等于WHEN后面的选择值时,将WHEN前面的表达式值赋给信号。
选择值必须互斥,不能重复。
该语句不能用于进程(PROCESS)中。
选择信号赋值语句不允许出现范围覆盖不全的情况。
条件信号赋值语句
信号<=表达式1 WHEN 赋值条件1 ELSE表达式2 WHEN 赋值条件2 ELSE......表达式n WHEN 赋值条件n ELSE表达式; --最后一项可以不跟条件子句,用于表示以上赋值条件都不满足的情形。
条件信号赋值语句允许赋值条件重叠,因为,它赋值条件根据书写顺序来逐项测试。一旦发现某一赋值条件得到满足,即将相应表达式的值赋给信号,并且不在测试后面的赋值条件。也就是说,语句之间有优先级顺序,按照书写的先后顺序从高到低排列优先级。适合实现优先级编码器。
进程语句
进程语句PROCESS是VHDL中最重要的语句之一。它的特点如下:
- 进程与进程之间是并发,这点和软件程序设计语言是一致的。进程内部是顺序执行的。
- 进程只有在敏感信号发生变化的时候才会执行。
进程语句的格式如下
进程名:]PROCESS[(敏感信号列表)] --进程名不是必须的
[声明区]; --定义进程内部使用的变量,不能在此处定义信号,信号在ARCHITECTURE中定义
BEGIN
顺序语句;
END PROCESS[进程名];
- 当敏感信号列表中的任意一个发生变化的时候,PROCESS将被启动。
- PROCESS内部执行是顺序的
- 在进程内对同一个信号的多次赋值只有最后一次生效。
- 在不同进程之中不能对同一信号进行赋值。
- 在一个进程中不能同时对时钟上升,下降沿都敏感。
进程与时钟
进程是由敏感信号的变化来启动的,因此可将时钟作为进程启动的敏感信号。时钟信号的上升沿和下降沿是我们最常使用的。当时钟信号clk是STD_LOGIC类型的时候,时钟信号在VHDL中的描述方法如下:
上升沿描述:clk'EVENT AND clk = '1';
下降沿描述:clk'EVENT AND clk = '0';
除此之外,VHDL语言还预定义了两个函数来描述上升沿和下降沿。
上升沿描述:rising_edge(clk);
下降沿描述:falling_edge(clk);
注意下面的错误格式:
--错误格式1
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN --不能同时对上升沿和下降沿都敏感
......
ELSIF falling_edge(clk) THEN
......
END IF;
END PROCESS;
--错误格式2
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
......
ELSE --不能有ELSE,这相当于除了对上升沿敏感,还对下降沿敏感
......
END IF;
END PROCESS;
硬件描述语言VHDL——并行语句相关推荐
- 硬件描述语言VHDL之并行语句基本使用介绍
硬件描述语言VHDL之并行语句 1. process语句 1.1 基本介绍 1.2 基本格式 1.3 代码示例 2. 简单形式并行信号赋值语句 2.1 简单并行信号赋值语句说明 2.2 代码示例 3. ...
- 硬件描述语言VHDL之顺序语句基本使用介绍
硬件描述语言VHDL之顺序语句 1. 顺序赋值语句 1.1 变量赋值语句 1.1.1 基本说明 1.1.2 使用举例 1.2 信号赋值语句 1.2.1 简单说明 1.2.2 使用举例 1.3 常量赋值 ...
- 硬件描述语言VHDL
数字系统设计分为硬件设计和软件设计, 但是随着计算机技术.超大规模集成电路(CPLD.FPGA)的发展和硬件描述语言(HDL, Hardware Description Language)的出现, ...
- EDA硬件描述语言VHDL概述
1.EDA技术概述 以大规模可编程逻辑器件为设计载体,以硬件描述语言HDL为系统逻辑描述的主要表达方式,以计算机.大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,自动地完成用软件方式描述的电子 ...
- EDA硬件描述语言VHDL(一)
文章目录 1.EDA 2.EDA技术应用对象 3.开发流程 4.常用的描述PLD内部结构的专用电路符号 5.宏单元 6.扩展乘积项 7.I/O控制块 8.CycloneⅢ系列器件的结构原理 1.EDA ...
- 硬件描述语言VHDL——运算符
逻辑运算符 and or not nand nor xor xnor 这7种逻辑运算符.它们分别是与,或,非,与非,或非,异或,同或. 它 ...
- 硬件描述语言与c语言函数,计算机硬件描述语言(VHDL)与编程语言(C语言)的区别及关系,...
计算机硬件描述语言(VHDL)与编程语言(C语言)的区别及关系,以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 计算机硬 ...
- 例说Verilog HDL和VHDL区别,助你选择适合自己的硬件描述语言
如果你搜索Verilog和VHDL的区别,你会看到很多讨论这场HDL语言战争的区别页面,但大多数都很简短,没有很好地举例说明,不方便初学者或学生理解. Verilog和VHDL之间的区别将在本文中通过 ...
- (一)硬件描述语言verilog
问题总结区 1.如何理解 module ..... endmodule ? module 指模块是verilog 的一个基本单元,这个基本单元可以是描述一个简单的求和行为,也可以用来表达一个功能器件( ...
最新文章
- 基于微软开源深度学习算法,用 Python 实现图像和视频修复
- c#发送http请求
- SPI的原理以及Verilog HDL实现
- C# 制作开机自动启动程序
- Flex+ActionScript
- 如何通过标签体系,打造精细化运营?
- sonar 匿名内部类写法不推荐
- 一句话概括4本管理著作
- 【RK3399Pro学习笔记】十、ROS服务端Server的编程实现
- xp系统什么梗_老式电脑,装个什么样的系统最好用?
- easycode 表配置_EasyCode插件使用及模板参考
- java开关语句_Java中嵌套开关语句的替代方法
- From UI design to system functions and application layer
- 中国象棋棋子及棋盘的绘制
- 一刷leetcode——树
- 比特币算法——SHA256算法介绍
- quartz mysql数据源_Spring之——quartz集群(MySQL数据源)
- Zendframework 模块加载事件触发顺序。
- QML Logical value dose not depend on actual values(M325)
- 如何自动申请京东试用商品、签到获取京豆