文档详情

硬件描述语言第三讲.ppt

发布:2017-08-09约3.63千字共16页下载文档
文本预览下载声明
硬件描述语言及器件 教材:任勇峰等编著《VHDL与硬件实现速成》 教学安排 第1讲:VHDL概述及其开发环境 第2讲:VHDL的基本元素 第3讲:VHDL的进程 第4讲:其它并行语句 第5讲:VHDL实例剖析 第6讲:VHDL的顺序描述语句 第7讲:结构体的描述风格 第8讲:计数器和状态机 第9讲:不同风格的状态机举例 第10讲:VHDL综合举例 第3讲: VHDL的进程 1 基本元素的使用 2 结构体中语句的执行机制 3 进程语句的框架 4 进程的执行方式 5 进程举例 1 基本元素使用 例1: signal a: bit_vector (0 to 7); signal b: bit_vector (7 downto 0); 例2: signal c: bit_vector (0 to 3) := “0110”; signal d: bit := ‘1’; 在VHDL中,单个位(bit)用单引号( )标明,而位向量(bit_vector)的常量则用双引号(“ ”)标出。 信号的取值 Type std_logic is ( ‘U’ --初始值 ‘X’ --不定 ‘0’ --0,低电平 ‘1’ --1,高电平 ‘Z’ --高阻(只能大写) ‘W’ --弱不定 ‘L’ --弱信号0 ‘H’ --弱信号1 ‘-’ --任意状态 ); 问题:什么是高阻态? 使用标准逻辑向量将两个信号相加 例3-1 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity adder1 is port( a, b: in std_logic_vector (3 downto 0); y: out std_logic_vector (3 downto 0) ); end adder1; architecture a of adder1 is begin y = a+b; end a; 综合举例 信号的取值 Type std_logic is ( ‘U’ --初始值 ‘X’ --不定 ‘0’ --0,低电平 ‘1’ --1,高电平 ‘Z’ --高阻(只能大写) ‘W’ --弱不定 ‘L’ --弱信号0 ‘H’ --弱信号1 ‘-’ --任意状态 ); 问题:什么是高阻态? 2 结构体中语句的执行机制 在一个结构体中,包含了一系列的语句,这些语句是并行工作的。 这些语句工作的机理是信号传输。 对结构体而言,信号的激励源是实体定义的引脚端口输入。在输入无改变的情况下,整体逻辑保持原来状态不变。 一定要清楚,在引脚激励信号发生改变的瞬间,由于信号传输存在延时,整体逻辑仍保持原来状态不变。 状态区间:(t1,t2] , (t2,t3] …… 语句执行机制 3 进程语句的框架 [进程名:] process [(敏感信号1,敏感信号2,……)] [说明区] begin 语句 … 语句 end process [进程名]; 4 进程的执行机制 process(q1) begin if q1=1010 then y=1; else y=0; end if; end process; 可以把进程理解为一小片元器件,敏感信号为引脚。 敏感信号触发/平时状态保持/内部语句并行执行。 带敏感信号的进程使用方法 library IEEE; use IEEE.std_logic_1164.all; entity VposDff is port (CLK, CLR, D: in STD_LOGIC; Q, QN: out STD_LOGIC ); end VposDff; architecture VposDff_arch of VposDff is begin process (CLK, CLR)
显示全部
相似文档