系统可编程技不 第12讲 VHDL语言语言主要描述 语句
在系统可编程技术 第12讲 VHDL语言语言主要描述 语句
VHDL主要描述语句 在结构体 硬件 描述 并行处理语句 CARCHITECTURE 中 的特 执行的语句 在进程( PROCESS) 高级 顺序处理语句函数( FUNCTION) 过程( PROCEDURE) 语的点 中执行的语句
VHDL主要描述语句 并行处理语句 顺序处理语句 在结构体 (ARCHITECTURE) 中 执行的语句 在进程(PROCESS) 函数(FUNCTION) 过程(PROCEDURE) 中执行的语句 硬件 描述 的特 点 高级 语言 的特 点
VHDL顺序语句 >顺序语句只能出现在进程( Process)、函数 ( Function)和过程( Procedure)中; 顺序语句像高级计算机语言一样,按其出现的 先后顺序依次执行; 用来描述复杂的逻辑关系及逻辑运算。 常用的顺序处理语句有: 信号代入语句 变量赋值语句 CASE语句 IF语句 LOOP语句
VHDL顺序语句 ➢顺序语句只能出现在进程(Process)、函数 (Function)和过程(Procedure)中; ➢顺序语句像高级计算机语言一样,按其出现的 先后顺序依次执行; ➢用来描述复杂的逻辑关系及逻辑运算。 常用的顺序处理语句有: 信号代入语句 变量赋值语句 CASE语句 IF语句 LOOP语句
VHDL顺序语句 1、信号代入语句 格式: 目的信号量<=信号量表达式; 目的信号量<=信号量表达式 AFTERNns; 注意: 信号代入语句和关系操作符相同“<=”,但其使 用位置不一样,应根据上下文加以判断; 信号代入语句两边信号量的数据类型及位长度必须 致 延时只在仿真时起作用,逻辑综合时被忽略。 信号赋值不是立即发生,而是在进程结束时
VHDL顺序语句 1、信号代入语句 格式: 目的信号量<=信号量表达式; 目的信号量<=信号量表达式AFTER N ns; 注意: 信号代入语句和关系操作符相同“<=”,但其使 用位置不一样,应根据上下文加以判断; 信号代入语句两边信号量的数据类型及位长度必须 一致。 延时只在仿真时起作用,逻辑综合时被忽略。 信号赋值不是立即发生,而是在进程结束时
VHDL顺序语句 例 architecture abc of example is signal c: STD LOGIC; begin PROCESS(a, b begin 注意信 c<=a and b after 10 ns; 号定义 a<=1; 的位置 b<=61 out<=c, end process; end abc
VHDL顺序语句 例: architecture abc of example is signal c :STD_LOGIC; begin PROCESS(a,b) begin c<=a and b after 10 ns; a<=‘1’; b<=‘1’; b<=‘0’; out<=c; end process; end abc; 注意信 号定义 的位置
VHDL顺序语句 2、变量代入语句 格式: 变量:=表达式; 注意: 变量是局部量,只能在所定义的进程、过程、和函 数中使用。 变量赋值是立即发生,不能加延时。 在进程中描述逻辑关系及算法时最好使用变量,以 避免出错。 进程结束时,变量的结果只能由信号带出
VHDL顺序语句 2、变量代入语句 格式: 变量:=表达式; 注意: 变量是局部量,只能在所定义的进程、过程、和函 数中使用。 变量赋值是立即发生,不能加延时。 在进程中描述逻辑关系及算法时最好使用变量,以 避免出错。 进程结束时,变量的结果只能由信号带出
VHDL顺序语句 例 architecture abc of example is b egin PROCESS(a, b) variable tmp: std logic; 注意变 begi 量定义 ap: -a and b: 的位置 out<=tmp; end process; end abc
VHDL顺序语句 例: architecture abc of example is begin PROCESS(a,b) variable tmp:std_logic; begin tmp:=a and b; out<=tmp; end process; end abc; 注意变 量定义 的位置
VHDL顺序语句 3、GASE语句 格式: Gase表达式ls WHEN选择值=>顺序处理语句; WHEN选择值=>顺序处理语句; WHEN OTHERS=>顺序处理语句 End case 注意: CASE语句至少包含一个条件句 CASE语句中条件表达式的值必须列举穷尽,但不 能重复; 无法穷举,用 OTHERS表达
VHDL顺序语句 3、CASE语句 格式: Case 表达式 Is WHEN 选择值 =>顺序处理语句; …… WHEN 选择值 =>顺序处理语句; WHEN OTHERS =>顺序处理语句; End case; 注意: CASE语句至少包含一个条件句; CASE语句中条件表达式的值必须列举穷尽,但不 能重复; 无法穷举,用OTHERS表达
例: 四选一数据选择器 architecture abc of example Is signal sel: std logic vector(I downto 0) VHDL begin sekf=i0; when“01”→>ffnul end case; end process; end abc:
V H D L 顺 序 语 句 例: 四选一数据选择器 architecture abc of example is signal sel:std_logic_vector(1 downto 0); begin sel f f f f null; end case; end process; end abc; 为什么 还要 others ?
VHDL顺序语句 4、IF语句 格式1: IF条件THEN顺序处理语句; END IF; 格式2: IF条件THEN顺序处理语句; ELSE顺序处理语句; END IF 格式3: IF条件1THEN顺序处理语句; ELSIF条件2THEN顺序处理语句; ELSE顺序处理语句; END IF: 注意:IF语句隐含有优先级的关系,可用来设计具有优 先权的电路
VHDL顺序语句 4、IF语句 格式1: IF 条件 THEN 顺序处理语句; END IF; 格式2: IF 条件 THEN 顺序处理语句; ELSE 顺序处理语句; END IF; 格式3: IF 条件1 THEN 顺序处理语句; ELSIF 条件2 THEN 顺序处理语句; …… ELSE 顺序处理语句; END IF; 注意:IF 语句隐含有优先级的关系,可用来设计具有优 先权的电路