![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VHDL语法入门
文章平均质量分 80
VHDL语法基础教程
EfunStudy
积跬步以至千里,积小流以成江海
展开
-
VHDL语法入门 (八) 函数和过程
然而从应用角度来看,process是直接在主代码中使用,而函数和过程主要为建库而使用,他们用于存储常用的代码以达到代码重用和共享的目的。函数经常存放在包集中(目的是为了进行有效的代码分割,代码共享和代码重用),但也可以放在主代码中(既可以放在entity中,也可以放在architecture中)。前面我们介绍过函数内部wait语句,信号声明和元件调用是不可综合的,对于过程来说,如果一个过程在一个process中进行了声明,那么其内部可以声明信号。参数的个数是任意的,可以没有参数。注意,警告,错误和失败。原创 2023-06-20 09:12:13 · 2693 阅读 · 1 评论 -
VHDL语法入门 (七) 包集和元件
component和entity的声明格式一样,必须指出端口名称以及端口模式(in,out,buffer或inout)以及数据类型(std_logic_vector,interger和boolean等)。元件(component),函数(function)以及过程(procedure)等部分的使用往往是为了实现常用代码的共享。一个元件(component)是一段结构完整的常用代码(包括库声明,实体和结构体这些基本组成部分)。package的声明部分包括以下内容:元件,函数,过程,类型和常量说明等。原创 2023-06-20 09:08:24 · 2288 阅读 · 2 评论 -
VHDL语法入门 (六) 状态机
此时,如果是米勒型状态机,那么输出随输入的变化而改变,但是在很多应用中,需要同步的寄存器输出,输出信号只有在时钟边沿出现时才能更新,此时输出必须先用寄存器存储起来。它的优点是需要的寄存器数量最少,有n个寄存器就可以对2^n个状态进行编码。这段代码综合得到的寄存器的数量等于对状态机所有状态进行编码所需要的位数。该风格设计状态机时,将时序逻辑电路和组合逻辑电路进行分开设计,需要先定义一个枚举类型,包含状态机需要的所有状态。状态机的设计比较灵活多样,下面介绍两种相对常见的结构清晰,易于理解的状态机设计风格。原创 2023-06-19 20:05:21 · 2978 阅读 · 1 评论 -
VHDL语法入门 (五) 信号与变量
如果一个变量是在一个信号跳变时被赋予的,并且该值最终又被赋给了另外的信号(信号是全局的,可以进行数值传递),那么综合后就会产生寄存器。VHDL中的信号代表的是逻辑电路中的“硬”连线,既可以用于电路单元的输入输出端口,也可以用电路内各单元之间的连接。变量是局部的,只能用在顺序代码中(包括process,function或procedure的内部),并且他们的值不能直接向外传递。当信号用在顺序描述语句(如process内部)时,其值不是立刻更新的,信号值是在相应的进程,函数或过程完成之后才进行更新。原创 2023-06-19 20:03:05 · 2832 阅读 · 0 评论 -
VHDL语法入门 (四) 并行与串行
其中,信号可以在package,entity和architecture中声明,而变量只能在一段顺序描述的代码中声明(比如在process内部进行信号声明)。赋予变量的值是立即生效的,在此后的代码中,此变量将使用新的变量值。VHDL本质都是并发执行的代码,但是在PROCESS,FUNCTION和PROCEDURE内部的代码都是顺序执行的。变量只能在顺序代码中使用,相对于信号而言,变量只能时局部的,所以他的值不能传递到process,function和procedure外部。原创 2023-06-19 09:23:28 · 2492 阅读 · 1 评论 -
VHDL语法入门 (三) 运算操作符与属性
首先进行声明,然后进行属性描述,格式如下--属性声明--属性描述...--属性调用,返回值为3对于type state is (idle,forward,backward,stop);前面我们介绍过通常枚举类型的数据会自动进行编码,除非用户进行了特别声明。例如上述state类型中,“00”表示第一个状态(idle),“01”表示第二个状态(forward),“10”表示第三个状态(backward),“11”表示第三个状态(stop)。通过用户自定义属性,可以改变默认的编码次序。原创 2023-06-18 15:01:33 · 6633 阅读 · 1 评论 -
VHDL语法入门 (二) 数据类型
-用户定义整数--用户定义的整数子集--用户定义的自然数--用户定义枚举类型--用户定义的std_logic--用户定义的bit_logic数据类型--range表示取值范围没有约束,natural range表示数据值约束在自然数范围--枚举数据类型,常用于有限状态机通常枚举类型的数据会自动进行编码,除非用户进行了特别声明。原创 2023-06-18 10:37:01 · 4509 阅读 · 0 评论 -
VHDL语法入门 (一) VHDL结构
本文是本人在自学VHDL时进行的整理,学习教材为《VHDL数字电路设计教程》,若整理有误欢迎指正,若需要相关参考资料,可私信获取。原创 2023-06-17 11:56:33 · 1624 阅读 · 0 评论