? 注意在进程和子程序的顺序语句中不允许定义信号。进程中可以将信号列
入敏感信号表,而不能将变量列入敏感信号表;信号的赋值语句:目标信号名<=表达式;目标信号获得的新的数据不是即时的,与变量不同。有一个特定的延时。
? 信号与变量的区别主要表现在接受与保持信号的方式和信息保持与传递
的区域大小
? 1)信号可以设置传输延时量,而变量不可以
? 2)变量作为局部信息载体,只能在所定义进程中有效;信号可作为模块间
信息载体
? 3)变量的设置有时候只是过渡,最后的信息传输和通信还是依靠信号; ? 5.2.1 含同步并行预置功能的8位移位寄存器设计
?
位矢中‘1’码个数统计电路设计
三态门的设计
Z在综合时属于一个不确定的值,不同的综合器可能会给出不同的结果;Z必须大写,这是因为在IEEE库中对数据类型STD_LOGIC的预定义已经将高阻态确定为大写‘Z’。
3-8线译码器(要求会写)
【例5-20】
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY coder IS
PORT ( din : IN STD_LOGIC_VECTOR(0 TO 7);
output : OUT STD_LOGIC_VECTOR(0 TO 2) ); END coder;
ARCHITECTURE behav OF coder IS
SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN
PROCESS (din) BEGIN
IF (din(7)='0') THEN output <= \ ELSIF (din(6)='0') THEN output <= \ ELSIF (din(5)='0') THEN output <= \ ELSIF (din(4)='0') THEN output <= \ ELSIF (din(3)='0') THEN output <= \ ELSIF (din(2)='0') THEN output <= \ ELSIF (din(1)='0') THEN output <= \ ELSE output <= \ END IF ;
END PROCESS ; END behav;
分频器只看偶分频。
第九章VHDL结构与要素
端口名是设计者为实体的每一个对外通道所取的名字,端口模式是指这些通道上的数据流动方式。数据类型是指端口上流动的数据的表达格式或取值类型,VHDL要求只有相同数据类型的端口信号和操作数才能相互作用。
函数的语言表达格式如下:
FUNCTION 函数名(参数表) RETURN 数据类型;--函数首
FUNCTION 函数名(参数表) RETURN 数据类型IS --函数体开始 ? [说明部分;] ? BEGIN ? 顺序语句; ? END FUNCTION 函数名;--函数体结束 调用程序包:
? USE 库名.程序包名.项目名; ? USE 库名.程序包名.ALL; ? 第一语句格式的作用是,向本设计实体开放指定库中的特定程序包内所选定的项目。第二语句格式的作用是,向本设计实体开放指定库中的特定程序包内所有的内容。
? 定义程序包的一般语句结构如下:
? --程序包首 ? PACKAGE 程序包名IS --程序包首开始 ? 程序包首说明部分; ? END [PACKAGE][程序包名]; --程序包首结束
? --程序包体
? PACKAGE BODY 程序包名IS --程序包体开始 ? 程序包体说明部分以及包体内容; ? END [PACKAGE BODY][程序包名]; --程序包体结束
常用的四种库:1、IEEE库2、STD库3、WORK库4、VITAL库
数码管的写法:
常用的预定义程序包:1) STD_LOGIC_1164程序包2) STD_LOGIC_ARITH程序包3) STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED程序包4) STANDARD和TEXTIO程序包
文字规则:
字符是用单引号引起来的ASCII字符,可以是数值,也可以是符号或字母,如:‘R’,‘A’,‘*’,‘Z’。而字符串则是一维的字符数组,须放在双引号中。VHDL中有两种类型的字符串:文字字符串和数位字符串。
X:十六进制基数符号(0~F)O:八进制基数符号
data1 <= B\ -- 二进制数数组,位矢数组长度是9 data2 <= O\ -- 八进制数数组,位矢数组长度是6 data3 <= X\ -- 十六进制数数组,位矢数组长度是12 data4 <= B\ -- 二进制数数组,位矢数组长度是12 data5 <= \ --表达错误,缺B。
data6 <= \ --表达错误,缺X。
VHDL的基本标识符就是以英文字母开头,不连续使用下划线“_”,不以下划线“_”结尾的,由26个大小写英文字母、数字0~9以及下划线“_”组成的字符串。
合法的标识符:Decoder_1 , FFT ,Sig_N,Not_Ack, State0 , Idle
字符类型通常用单引号引起来,如‘A’。字符类型区分大小写,如‘B’不同于‘b’。字符类型已在STANDARD程序包中作了定义。