1、EDA技术概述
以大规模可编程逻辑器件为设计载体,以硬件描述语言HDL为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,自动地完成用软件方式描述的电子系统到硬件系统的逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
开发流程
CPLD:复杂可编程逻辑器件。ASIC:专用集成电路。
FPGA:现场可编程门阵列。SOC:片上系统/系统芯片。
VHDL程序结构
主要有三部分:
(1)库和程序包调用声明语句构成的模块(库一般有两类资源库如IEEE库存放常规元件标准模块,设计库)
(2)描述电路信号端口和参数通道的实体模块
(3)具体描述电路功能的结构体模块
实体说明单元的一般语句结构:
ENTITY 实体名 IS
[GENERIC ( 参数名:数据类型 );]
[PORT ( 端口表:数据类型 );]
END ENTITY 实体名;
--------端口四种IN、OUT、INOUT、BUFFER
结构体的一般语言格式:
ARCHITECTURE 结构体名 OF 实体名 IS
[说明语句]
BEGIN
[功能描述语句]
END ARCHITECTURE 结构体名;
其中功能描述语句
配置语句:把特定的结构体关联到(指定给)一个确定的实体。
CONFIGURATION 配置名 OF 实体名 IS
for 为实体选配的结构体名
end for;
END 配置名;
VHDL数据对象:常数,变量,信号
常数是全局量,其使用范围取决于它被定义的位置
变量是一个局部量,只能在进程和子程序中使用。
● 变量的赋值是立即发生的,不存在任何延时。
● 主要作用是在进程中作为临时的数据存储单元。
● 变量的初始值用于仿真,但综合时被忽略。
信号具有全局性,信号的使用和定义范围是实体、结构体和程序包。在进程和子程序的顺序语句中不允许定义信号。(但允许赋值)。进程中只能将信号列入敏感表,而不能将变量列入敏感表。
------常数定义的一般表述:
CONSTANT 常数名:数据类型 := 表达式 ;
CONSTANT FBT : std_logic_vector := “010110” ;
CONSTANT datain : integer := 15;
------变量定义
VARIABLE 变量名 : 数据类型 := 初始值 ; (初始值不是必须的)
VARIABLE a : integer range 0 to 15;
VARIABLE d : std_logic :=‘1’;
------信号定义
SIGNAL 信号名: 数据类型 := 初始值 ;(初始值不是必须的)
SIAGNAL a,b,c,y,z: integer;