第6章VHDL设计进阶.ppt
文本预览下载声明
EDA 技术实用教程 第 6 章 VHDL设计进阶 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.1 数据对象 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.2 双向和三态电路信号赋值例解 6.3 IF语句概述 6.3 IF语句概述 6.3 IF语句概述 6.4 进程语句归纳 6.4 进程语句归纳 6.4 进程语句归纳 6.4 进程语句归纳 6.4 进程语句归纳 6.5 并行语句例解 6.6 仿真延时 6.6 仿真延时 6.6 仿真延时 习 题 习 题 习 题 习 题 实 验 与 设 计 实 验 与 设 计 实 验 与 设 计 实 验 与 设 计 实 验 与 设 计 实 验 与 设 计 实 验 与 设 计 实 验 与 设 计 实 验 与 设 计 KX康芯科技 图6-21 当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns) KX康芯科技 6.2.2 双向端口设计 【例6-13】 (注:MaxplusII不支持本例) library ieee; use ieee.std_logic_1164.all; entity tri2 is port (ctl : in std_logic_vector(1 downto 0); datain1, datain2,datain3, datain4 : in std_logic_vector(7 downto 0); q : out std_logic_vector(7 downto 0) ); end tri2; architecture body_tri of tri2 is begin q = datain1 when ctl=00 else (others =Z) ; q = datain2 when ctl=01 else (others =Z) ; q = datain3 when ctl=10 else (others =Z) ; q = datain4 when ctl=11 else (others =Z) ; end body_tri; KX康芯科技 6.2.2 双向端口设计 图6-13 例6-12错误的综合结果(Synplify综合结果) KX康芯科技 6.2.2 双向端口设计 图6-14 例6-13正确的综合结果(Synplify综合结果) KX康芯科技 (1) IF 条件句 Then 顺序语句 END IF ; (2) IF 条件句 Then 顺序语句 ELSE 顺序语句 END IF ; (3) IF 条件句 Then IF 条件句 Then ... END IF END IF (4) IF 条件句 Then 顺序语句 ELSIF 条件句 Then 顺序语句 ... ELSE 顺序语句 END IF KX康芯科技 【例6-14】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY control_stmts IS PORT (a, b, c: IN BOOLEAN; output: OUT BOOLEAN); END control_stmts; ARCHITECTURE example OF control_stmts IS BEGIN PROCESS (a, b, c) VARIABLE n: BOOLEAN; BEGIN IF a THEN n := b; ELSE n := c; END IF; output = n; END PROCESS; END example; KX康芯科技 输 入 输 出
显示全部