还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
基本语法VHDL是一种硬件描述语言,用于设计和模拟电子电路VHDL本课件将介绍的基本语法,包括数据类型、运算符、语句和结构VHDL语言简介VHDL硬件描述语言可读性强12是一种用于描述和模拟的语法类似于高级编程VHDL VHDL电子电路的硬件描述语言,用语言,具有良好的可读性和可于设计和验证数字电路维护性,便于理解和修改广泛应用标准化34被广泛应用于各种电子是一种标准化的语言,VHDL VHDL设计领域,包括,确保代码的可移植性和互操作FPGA ASIC和数字系统的设计性,不同供应商的工具可以兼容使用的基本构成元素VHDL实体结构体Entity Architecture实体定义了设计的外部接口,包含端口和信号它是设计的基本单结构体描述了实体的内部实现,包含逻辑、数据类型和算法它定元,描述了设计的功能和接口义了实体的内部逻辑和行为过程信号Process Signal过程是一个执行语句的块,类似于其他编程语言中的函数或方法,信号是用来传递数据的变量,它们可以被多个过程或模块共享信用于描述行为和逻辑,以实现特定功能号在时钟周期内保持稳定,并且可以被驱动或读取的基本语法VHDL关键字标识符运算符语言使用一些保留字,例如、标识符用于命名各种元素,例如信号、变量提供了多种运算符,包括算术运算符VHDL beginVHDL、、、等、常量、函数、过程等、逻辑运算符、关系运算符等end ifelse for标识符的命名规则字母数字组合标识符由字母、数字和下划线组成,第一个字符必须是字母或下划线区分大小写语言区分大小写,例如和是不同的标识符VHDL COUNTcount保留字不能使用保留字作为标识符,例如、、等and ornot的基本数据类型VHDL基本数据类型基本数据类型的应用语言提供了一系列基本数据类型,方便用户定义和操作数据基本数据类型用于表示不同类型的数字、逻辑值和字符VHDL例如,类型用于表示二进制数,类型用于表示真或假bit boolean这些基本数据类型包括、、、、和,类型用于表示整数,类型用于表示实数,类型bit booleaninteger real time integerrealtime用于表示时间,类型用于表示单个字符character character基本数据类型的定义123标准逻辑类型整数类型实数类型标准逻辑类型()是整数类型用于表示整数,例如,可以使实数类型用于表示实数,可以包含小数STD_LOGIC VHDL中最常用的数据类型之一,它可以表示用它来表示计数器、地址或其他整数数部分,例如,可以用它来表示电压、电数字信号的各种状态,例如高电平、低值流等连续量电平、高阻抗、未知等等静态类型的合法运算算术运算关系运算12支持加、减、乘、除、取模等基本运算,这些运算符用于关系运算符用于比较两个操作数的大小或相等性,常见的关系运VHDL处理数值型数据算符包括等于、不等于、大于、小于、大于等于和小于等于逻辑运算位运算34逻辑运算符用于对布尔型数据进行逻辑运算,常见的逻辑运算符位运算符用于对数据进行位级操作,常见的操作包括位与、位或包括与、或、非、异或和等效、位异或、位取反等数组类型的定义定义数组类型使用关键字定义数组类型,例如TYPE TYPEarray_type ISARRAY0TO9OF1INTEGER;声明数组变量2使用数组类型声明数组变量,例如SIGNAL array_var:array_type;访问数组元素3使用索引访问数组元素,例如array_var3=5;中数组类型用于定义一组相同数据类型的元素使用关键字定义数组类型,并指定下标范围和元素数据类型声明数组变量VHDL TYPE时,使用数组类型作为其数据类型可以使用索引访问数组元素,并进行相应的操作记录类型的定义定义语法使用关键字record来定义记录类型,并用关键字end record结束定义成员定义记录类型由多个成员组成,每个成员都有一个唯一的标识符和数据类型访问成员使用点运算符来访问记录类型成员,例如record_name.member_name示例定义一个名为student的记录类型,包含姓名、学号和成绩等成员信号与变量的区别信号变量信号用于描述硬件电路中的信号传输,例如数据线上的数据信变量用于存储在程序执行过程中产生的数据,例如计数器中的号计数值信号的值在时间上是连续变化的,代表实际电路中电信号的波形变量的值在程序执行过程中可以被修改,代表程序中使用的中间结果信号与变量的声明声明语法1信号与变量的声明使用关键字和分别声明signal variable数据类型2声明时需要指定信号或变量的数据类型初始化3可选地对信号或变量进行初始化信号是中一种重要的数据类型,用于描述电路中信号的变化变量则用于描述电路中内部的计算结果声明信号和变量时需要指定VHDL数据类型,可选地对它们进行初始化例如,声明一个名为的时钟信号,类型为,初始化为“clk”STD_LOGIC‘0’赋值语句的使用赋值语句的作用将值赋予信号或变量,使信号或变量获得新的值赋值语句的语法目标变量/信号=表达式;赋值语句的类型•并行赋值语句•顺序赋值语句举例说明信号s=a+b;条件语句if-then-elseif1判断条件then2执行语句else3执行语句语句用于根据条件判断执行不同的代码块后面的判断条件为真,则执行后面的语句,否则执行后面的语句if-then-else ifthen else语句的使用case选择分支结构1语句提供一种灵活的结构,根据表达式的值选择执行不同case的代码块多个条件判断2语句可以处理多个条件判断,每个条件对应一个唯一的代case码块提高代码可读性3与嵌套语句相比,语句结构更清晰,易于理解和维护if case循环语句for循环体1在循环语句中,循环体包含要重复执行的代码块for循环变量2循环语句通过一个循环变量来控制循环次数,循环变量在循环开始前初始化,并在for每次循环结束后更新循环范围3循环语句定义了一个循环范围,该范围包含循环变量的起始for值、结束值以及更新步长循环语句是中常用的循环控制语句,它可以用来重复执行一段代码,直到满足特定的条件为止for VHDL循环语句while条件判断1循环体执行前先判断条件是否成立,如果成立则执行循环体,否则退出循环循环体执行2当条件成立时,循环体内的语句会被重复执行,直到条件不再成立为止循环结束3当条件不再成立时,循环结束,程序会继续执行循环语句后面的语句子程序的定义子程序的定义子程序是一段可重复使用的代码块,用于完成特定功能语法格式子程序定义使用“procedure”关键字,包含子程序名、参数列表和程序体参数传递子程序可以接收参数,通过参数传递实现数据的输入和输出调用子程序可以通过子程序名和参数列表进行调用,执行子程序内的代码子程序的调用子程序名参数1参数传递子程序名参数2子程序名参数3在调用子程序时,需要指定子程序名和参数列表参数可以是常量、变量或信号,传递方式可以是值传递或引用传递子程序调用后,程序会跳转到子程序代码段执行,执行完毕后,程序会返回到调用位置继续执行包的概念与使用代码重用代码组织可扩展性包可以定义常量、函数和类型,以便通过将相关代码封装到包中,可以提高代码包可以方便地扩展和修改,而不会影响使用VHDL在多个设计模块中重复使用的可读性和可维护性它们的模块实体的概念与定义功能描述输入输出端口实体描述硬件模块的功能,类似实体定义模块的输入和输出端口于电路图中的方框,方便连接其他模块接口定义实体通过端口定义模块与外部环境的交互方式体的概念与编写体定义1对应具体的硬件电路行为描述2定义电路的功能结构描述3描述电路的连接方式数据流描述4描述信号在电路中的流动体是中的一个重要概念,用于描述硬件电路的行为、结构、数据流等体是实体的具体实现,将实体描述的抽象概念转化为实际的硬件电路VHDL实现中有四种常用的体描述方式行为描述、结构描述、数据流描述以及混合描述,每种描述方式侧重不同的描述方面VHDL端口映射的语法端口映射是将实体的端口连接到相应组件或信号的语法它将实体端口连接到组件的实际信号实体端口1实体的输入和输出端口组件端口2组件的输入和输出端口信号3将实体端口与组件端口连接的信号端口映射语句使用关键字“port map”配置文件的声明配置文件的作用1配置文件可以用于定义一个硬件设计中使用的常量、类型、子程序、组件等,以便在不同的设计模块中共享配置文件的语法2配置文件使用关键字来声明,并使用关键“configuration”“for”字指定要配置的实体,然后使用关键字将实体的端口映射“bind”到相应的组件实例配置文件的示例3例如,一个名为的配置文件可以配置名为“my_config”的实体,将实体的输入端口映射到名为“my_entity”的组件实例“my_component”层次化建模的概念模块化设计层级结构可复用性协同开发将复杂的系统分解成多个独立模块之间通过层级关系进行组模块可以独立开发和测试,并多个设计人员可以同时负责不的模块织,形成树状结构可重复使用同模块的开发模块化设计的优势代码复用易于维护便于调试可扩展性重复使用相同代码,减少代码独立的模块,方便维护和修改单独测试每个模块,提高调试增加新功能,只需添加新模块冗余,提高开发效率,不会影响其他模块效率,发现问题更方便,不影响现有模块描述的建模方法VHDL行为级建模数据流级建模结构级建模行为级建模描述电路的行为和功能,不考虑数据流级建模描述电路中数据的流动和转换结构级建模描述电路的具体硬件结构,例如电路的具体结构,侧重于数据处理过程门级、寄存器级等仿真与综合的关系仿真综合关系仿真是在设计阶段进行的行为验证使用综合是在设计阶段进行的结构验证将仿真验证设计的功能,综合验证设计的结代码模拟电路的行为,验证功能的代码转换成电路网表,验证电路的构两者相辅相成,确保设计的正确性和VHDL VHDL正确性实现是否符合设计要求可实现性综合注意事项约束条件设计风格综合工具需要一些约束信息,例如时钟频率、时序要求等不同的综合工具可能支持不同的设计风格,例如行为级、级等RTL目标器件优化目标需要指定目标器件,以便综合工具生成与目标器件兼容的网表综合工具可以针对不同的优化目标进行优化,例如面积、速度、功耗等课程小结本课程系统讲解了语言的基本语法,并介绍了其在数字电路设计中的应用VHDL通过学习,同学们能够掌握语言的基本概念、语法规则和建模方法VHDL。
个人认证
优秀文档
获得点赞 0