VHDL复习之路
一.程序结构与数据对象
程序结构:
库与程序包的调用语句构成的模块
描述电路信号端口和参数通道的实体
具体描述电路功能的结构体
库:library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
实体:entity pao is
port(a,b,c,d:in std_logic;
s0,s1:in std_logic;
y:out std_logic;
y1:inout std_logic;
y2:buffer std_logic)
end entity
结构体
:architecture behave of pao is
signal s:std_logic_vector(1 downto 0);
begin
s<s1&s0;
process(s1,s0,a,b,c,d)
begin
case(s) is
when “00”=> y<=a;
when “01”=> y<=b;
when “10”=> y<=c;
when “11”=> y<=d;
end case;
end process;
end architecture behave
文字规则:
1.数字:多余1位的二进制必须加双引号,单个的用单引号。
数字:整数,实数,数字基数(d1<=16#FE#;----16进制,等于254),物理量文字(60s,60秒;100m,100米);
2.字符串:是一维数组,放在双引号中;
B 二进制 每位一个bit
O 八进制 每位3个bit
X 16进制 每位4个bit
3.关键字:这个就不用多说:如entity,arcthitecture;
4.表示符和规则:
- 有效的字符如26个英文字母,0~9数字,以及下划线_组成
- 开头必须为英语字母开头
- 必须是单一下划线,且前后必须有数字和英文字母
- 标示符中英语字母不分大小写
- 允许包含回车,换行符,空格符
- “–”注释符
数据对象:
- 常数(constant)
允许定义在实体,结构体,程序包,块,进程,子程序 - 变量(variable)
允许定义在进程与子程序 - 信号(signal)
并行语句的信息交流通道,允许定义在实体,结构体,程序包
赋值语句:
constant 常数名 :数据类型 := 表达式;
二. 数据类型与顺序语句
数据类型
1.bit和bit_vector:
bit:0,1;
bit_vector:bit的数组类型
2.std_logic和std_logic_vector
std_logic:定义在std_logic_1164包中,是bit类型的拓展,9种类型(u,x,o,1,0,z,w,l,h,-)。
std_logic_vector:定义在std_logic_1164中的一维数组,其中每个元素都是std_logic类型。
3.(7 downto 4) 高到低;(4 to 7) 低到高
语句
if语句:
一个if语句能构成d触发器
if 条件语句 then
顺序语句
end if;
elif----->组合电路
复合------>混合,相与电路
case语句
case()is
when 语句
when 语句
when 语句
when other;
end case;
process语句
并行语句,用于信号
process (敏感信号)
说明部分只能定义变量
元件例化
component 元件名 is
generic
port(端口名表);
end component
例化:元件名 port map(端口名 => 连接端口名)
三.实验过程
1、打开QUARTUSII软件,建立一个工程。
2、新建完工程之后,再新建一个VHDL文件,打开VHDL编辑器对话框。
3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照ALTERA公司网站上提供的示例程序。
4、编写完VHDL程序后,保存文件。
5、对编写的VHDL程序进行编译,对程序的错误进行修改。
6、编译无误后,参照附录进行管脚分配。
7. 烧入实验箱,查看实验结国。