04可编程逻辑电路技术VHDL语言要素4hr.pptxVIP

  • 1
  • 0
  • 约7.31千字
  • 约 101页
  • 2021-07-07 发布于河北
  • 举报

04可编程逻辑电路技术VHDL语言要素4hr.pptx

主要内容 4.1 VHDL程序设计约定 4.2 VHDL数据对象 4.3 VHDL数据类型 4.4 数据类型转换 4.5 VHDL运算操作符 4.6 VHDL文字规则 ;主要内容 4.1 VHDL程序设计约定 4.2 VHDL数据对象 4.3 VHDL数据类型 4.4 数据类型转换 4.5 VHDL运算操作符 4.6 VHDL文字规则 ;4.1VHDL程序设计约定;主要内容 4.1 VHDL程序设计约定 4.2 VHDL数据对象 4.3 VHDL数据类型 4.4 数据类型转换 4.5 VHDL运算操作符 4.6 VHDL文字规则 ; VHDL数据对象(Data Objects) 用于接受不同数据的赋值。四种:常量、变量、信号和文件。; 常量的可视性规则:可在程序包、实体说明、结构体和进程的说明区域进行说明,其使用范围取决于定义的位置。 在程序包中定义的常量,具有最大的全局化特征,凡调用此程序包的所有设计实体均可使用; 若定义在实体中,其有效范围为该实体对应的所有结构体; 若定义在某结构体,只能用于该结构体内部语句; 若定义在一个进程,则该常量只能用于该进程中。;2.变量(VARIABLE) 变量是一个局部量,主要用于对中间数据的局部存储。 (1) 变量的定义语法格式;(2)变量赋值 赋值语句的格式:;(3)变量使用的注意事项: 变量只能在进程语句、过程语句和函数语句的说明区域中进行说明和使用; 变量不能将信息带出对它作出定义的当前设计单元,若要带出,只能将其赋值给相同类型的信号; 变量的赋值是立即发生,不存在延时,不支持变量附加延时语句。 目标变量可以是单值变量或数组型变量; 表达式与目标变量数据类型相同,可以是运算表达式,也可是一个数值; 变量常用在实现某种算法的赋值语句中。;例: Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity sync is port(clk : in std_logic; irq : out std_logic); End sync; Architecture rtl of sync is signal temp : integer; Begin Label1: process Variable counter : integer :=0; ;说明: 根据输入时钟clk,产生周期为16倍的中断信号irq,中断信号宽度为1个时钟周期; 进程Lable1用来计数,当clk发生变化且为1时启动该进程,执行counter的加1操作; 进程Label2产生中断信号irq,当计数器temp计满16个时钟周期,???irq置0并持续1个时钟周期; counter为进程Label1的变量,不能在Label2中使用。在结构体中定义一个信号temp,将变量counter的值赋给它,将其值带出进程Label1。;程序仿真结果:;;例: signal clock : std_logic :=‘0’ ; signal reset : std_logic :=‘1’ ; signal data_bus : std_logic_vector(7 downto 0) : = (others =‘1’) ; signal address_bus : std_logic_vector (7 downto 0) ;;(2)信号使用注意 信号初始化时采用“: =”,程序中信号值的代入将采用代入符“=”。 信号可以连续赋值,其值在设计实体中可以改变,这一点与常量不同。 当没有被赋初值时,默认取该类型的最左值或最小值。如:前面的第4个信号没指定初始值,则信号address_bus取默认值“UUUUUUUU”,93版的“std_logic”有9种值: ‘U’(未初始化)、‘X’(强未知)、‘0’(强0)、‘1’(强1)、‘Z’(高阻)、‘W’(弱未知)、‘L’(弱0)、‘H’(弱1)、‘-’(任意项)。;4.2 VHDL数据对象; 需要特别注意的是,在进程中,只能将信号列入敏感表,而不能将变量列入敏感表,这是因为只有信号才能把进程外的信息带入进程内部。 目标信号获得传入的数据要经历延时过程。综合器在综合过程中将略去所设的延时值,在综合后的功能仿真中,信号或变量间的延时是看成零延时的,但为了给信息传输的先

文档评论(0)

1亿VIP精品文档

相关文档