还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
描述语句VHDL描述语句是硬件描述语言的核心,用于描述数字电路的结构和行为VHDL VHDL课程安排基础知识设计硬件实现VHDL介绍语言基础,涵盖数据类型、运算讲解设计流程,包括实体、结构体、介绍代码的硬件实现方式,包括仿真VHDL VHDL VHDL符、语句等进程等概念、综合、布局布线等简介VHDL是一种硬件描述语言,用于描述数字电路的设计VHDL可以用于设计各种数字电路,例如微处理器、内存控制器、数字信号处理VHDL电路等是一种强大的工具,可以帮助工程师设计出复杂而高效的数字电路VHDL设计流程VHDL行为描述使用语言描述硬件的功能,不考虑硬件的具体实现细节VHDL结构描述描述硬件的具体结构,包括电路的连接方式和各个模块之间的关系描述RTL介于行为描述和结构描述之间,以寄存器传输级描述硬件电路,既考虑功能又考虑实现细节综合将代码转换为硬件电路的描述,生成网表文件VHDL布局布线将网表文件映射到具体的芯片上,确定各个电路元件的位置和连接方式仿真在设计过程中模拟电路的行为,验证设计是否满足要求设计单元VHDL基本单元电路结构逻辑功能电路连接语言使用多个基本单元代码定义了电路的结构设计单元描述了电路的功能和连接不同单元形成完整的电路VHDL VHDL构建复杂电路和行为逻辑关系设计实体Entity实体定义端口声明
1.
2.12实体定义描述了设计单元的外端口声明指定了实体的输入、部接口,包括端口名称和数据输出和双向端口,以及数据类类型型信号声明实体描述
3.
4.34在实体中,可以使用信号来表实体定义不包含任何逻辑实现示外部引脚或内部连接,仅描述了设计单元的外部行为实体端口端口定义输入端口定义实体中各个信号的名称、方用关键字定义,用于接收来自in向和数据类型,用于连接实体与外部电路的信号,例如时钟信号外部电路或数据信号输出端口双向端口用关键字定义,用于向外部用关键字定义,可以同时out inout电路输出信号,例如计算结果或接收和发送信号,例如在数据总控制信号线中体系结构体Architecture定义语法体系结构体是对实体的具体实现,描述了体系结构体定义使用关键“architecture”实体内部的逻辑结构和功能每个实体可字,后面紧跟体系结构体名称和关键“of”以有多个体系结构体,代表不同的实现方字,最后是实体名称体系结构体主体包法含数据声明和行为描述部分进程Process并发执行敏感信号列表顺序执行进程是中描述硬件行为的主要机制,每个进程都包含一个敏感信号列表,当列表进程内部的语句按顺序执行,但在多个进程VHDL允许代码在硬件中并发执行中的任何信号发生变化时,进程会立即执行之间是并发执行的,模拟硬件中的并行操作信号赋值赋值语句延迟时间12使用赋值语句将值赋给信号,可添加延迟时间参数,模拟信用于描述硬件电路中信号的变号在电路中传输的延迟化赋值类型赋值规则34支持多种赋值类型,包信号赋值遵循特定规则,确保VHDL括直接赋值、条件赋值和进程赋值操作的正确性赋值变量赋值变量声明变量作用变量是用来存储数据的,在使用变量之前需要声明变量类型,例变量主要用于程序内部的临时计算或存储数据,它们的值可以在如、、等变量赋值使用符号来进行程序运行时随时修改变量不会像信号那样被自动保存到硬件电integer realstd_logic“:=”,例如变量名值路中,而是被保存在程序内部的内存空间中:=变量声明和赋值语句应在进程或函数内部进行,变量赋值时必须在使用变量进行赋值时,需要注意变量的类型和赋值的值是否匹在进程或函数的敏感信号变化后才生效配,否则会导致编译错误或运行错误常量定义常量常量声明常量用途在中,常量用于存储在整个设计常量使用关键字声明,并常量可以用于定义硬件参数、信号范围VHDL CONSTANT过程中不会改变的值这为代码提供了为其指定一个名称、数据类型和值、时钟周期或其他固定值,使代码更易更好的可读性和维护性于理解和修改算术运算符加法运算符减法运算符乘法运算符除法运算符加法运算符用于对两个操作数减法运算符用于从第一个操作乘法运算符用于将两个操作数除法运算符用于将第一个操作进行加法运算,返回它们的和数中减去第二个操作数,返回相乘,返回它们的积数除以第二个操作数,返回它它们的差们的商逻辑运算符与运算或运算异或运算非运算or xornot与运算结果为真,当且仅当所或运算结果为真,当且仅当至异或运算结果为真,当且仅当非运算结果为真,当且仅当操有操作数都为真例如少有一个操作数为真例如两个操作数的值不同例如作数为假例如A notA=真,仅当和都真,只要或真,当和真,当为假时B=A BA orB=A Axor B=A BA为真时其中之一为真即可的值不一致时B关系运算符等于不等于用于比较两个操作数的值是否相用于比较两个操作数的值是否不等如果相等,则返回真,否则相等如果不相等,则返回真,返回假否则返回假大于小于用于比较两个操作数的值的大小用于比较两个操作数的值的大小关系,如果第一个操作数大于第关系,如果第一个操作数小于第二个操作数,则返回真,否则返二个操作数,则返回真,否则返回假回假位操作符位操作符示意图位操作符示例代码位操作符应用场景位操作符用于对单个位进行操作示例代码展示了位操作符的使用方法,例如位操作符常用于数据压缩、加密、数据传输位与、位或、位异或等等领域连接操作符连接操作符操作符数据类型用于将多个信号或变量连接起来,形成一个连接操作符用表示连接操作符的运算对象必须是相同数据类型“”新的信号或变量的信号或变量条件语句条件语句语法12根据条件判断执行不同语句条件表达式语句if then1语句else2end if;执行流程示例34条件表达式为真执行语句,1if ab thenmax:=a;否则执行语句2else max:=b;end if;循环语句循环次数已知使用循环语句,用于执行指定次数的循环FOR循环次数未知使用循环语句,在满足条件的情况下重复执行代码块WHILE循环控制使用语句,可提前退出循环,例如当满足某个条件时EXIT子程序定义与调用参数传递返回值子程序是可重复使用的一段代码,通过子程序可以接收参数,并根据参数进行子程序可以返回计算结果或状态信息,定义和调用来实现代码模块化和复用不同的操作,实现灵活性和通用性为调用程序提供必要的数据包Package定义作用12包是中用于定义数据类型、子程序、常量和其他共它们可以简化代码重用和模块化设计,并提高代码的可读性VHDL享组件的集合和可维护性示例使用34包可以包含用于特定类型信号或运算符的定义,例如定点算通过使用包,开发人员可以将常用功能封装到一个单独的单术或数字信号处理元,并在需要时引用它配置Configuration配置定义配置语法配置用于指定实体和体系结构之间的关联关系,并确定设计中使配置由关键字和语句组成,指定要配置的实configuration for用的组件体配置允许使用不同的体系结构实现同一个实体,从而提供设计灵配置可以使用语句指定要配置的特定体系结构for活性设计单元管理层次化管理库管理单元复用代码通常按层次结构组织,每个设计库用于存储和管理设计单元,包括预设计单元可以被重复使用,减少代码冗余,VHDLVHDL单元对应一个文件此结构有助于提高代码定义库和用户自定义库提高设计效率可读性和可维护性编码风格VHDL命名规范缩进变量、信号和常量等使用有意义的名称使用一致的缩进,通常每个缩进级别使用或个空格24使用驼峰命名法()或下划线命名法()缩进使代码结构清晰,便于阅读和理解CamelCase snake_case提高可读性编程实例VHDL1本实例演示了使用语言设计一个简单的加法器VHDL加法器接收两个输入信号,并输出它们的和•定义两个输入信号和,以及一个输出信号A BSUM•使用加法运算符计算两个输入信号的和“+”•将计算结果赋值给输出信号SUM编程实例VHDL2计数器计数器是一种常见的数字电路,用于记录脉冲的个数可以用进程描述计数器,例如,使用时钟信号触发计数器VHDL该实例展示了使用进程和时钟信号实现一个简单的计数器编程实例VHDL3本例演示如何使用语言设计一个简单的计数器该计数器从开始计数,VHDL0每秒钟增加,并在计数器达到时重置为11990该实例展示了语言中的时序逻辑设计,以及如何使用循环语句来实现计数VHDL功能通过学习本例,您将能够更好地理解语言的语法和语义,并掌握一些基本VHDL的编程技巧VHDL编程实例VHDL4本实例演示了一个简单的计数器设计,使用语言实现一个位二进制计数VHDL3器计数器从开始计数,每当时钟信号上升沿到来时,计数器加计数器的01输出是个信号,分别代表计数器的个位、十位和百位3代码中首先定义了一个名为的实体,它包含个输出信号,分别表示个counter3位、十位和百位然后定义了名为的体系结构,其中包含一个进程,该counter进程描述了计数器的逻辑功能进程内部使用一个位的变量来存储计数器的当3前值,当时钟信号上升沿到来时,变量加最后将变量的值赋值给个输出信13号,从而实现计数器的功能编程实例VHDL5本实例演示了使用语言设计一个简单的计数器电路VHDL该计数器可以从开始计数,当计数到一个预设值时,计数器会复0位并从开始重新计数0总结与练习复习知识掌握基础语法,理解关键概念VHDL实践运用尝试完成课后练习,检验学习成果深入学习深入研究进阶内容,例如高级语法和设计技巧VHDL。
个人认证
优秀文档
获得点赞 0