EDA复习

  • 格式:docx
  • 大小:168.07 KB
  • 文档页数:5

EDA设计载体:大规模可编程逻辑器件
表达方式:硬件描述语言
设计工具:开发软件,开发系统
硬件验证:实验开发系统
CAD->CAE->EDA
EDA特点
软件方式设计
自动化
可仿真
系统可现场编程,在线升级(ISP)
集成度高(SOC),体积小,功耗低,可靠性高,保密性强EDA技术基本特征
基于芯片的设计方法
自顶向下的设计方法
逻辑综合与优化
硬件仿真
自动布局布线
硬件描述语言
三级仿真器:功能仿真,逻辑仿真,线路级仿真
EDA设计辅助软件工具
设计输入工具(编辑器)
设计仿真工具(仿真器)
检查分析工具
优化/综合工具(综合器)
布局和布线工具(适配器)
下载工具(编程器)
PCB设计工具
模拟电路仿真工具
EDA设计流程
设计准备
设计输入
设计处理
期间编程
设计完成
IP核:软IP,固IP,硬IP
逻辑期间密度:低密度PLD(小于500门),高密度(大于500门)乘积项:乘积项PROM,PLA,PAL,GAL,EPLD,CPLD
查找表结构:FPGA
SRAM为易失性元件,其他为非易失性元件
PLA与或都可编程
PAL与阵列可编程,或阵列不可编程
FPGA构成:逻辑阵列块(LAB)、嵌入式存储器块、I/O单元和PLL等模块构成,各模块间有丰富的互联线和时钟网络
CASE语句:
选择值出现一次并且全覆盖
特点:
1.进程语句的内部是顺序语句,而进程语句本身是一种并行语句;
2.由PROCESS后面的敏感信号表或WAIT语句触发;
3.各进程间通过信号进行通信。

敏感信号表与WAIT语句不共存。

使用要求与CASE类似,条件的判断并行进行,不允许条件重叠。

不同在于WITH-SELECT是并行语句,可以直接放在ARCHITECTURE中,而CASE必须放在PROCESS中。

子程序——程序模块,可被主程序调用并将处理结果返
回主程序。

过程(Procedure)、函数(Function)
调用前,必须将过程的实质内容装入程序包(Package)
中、也可以在结构体说明和进程说明中定义,分为过程首和过程体:
过程和函数不能定义信号
1.什么叫对象?对象有哪几个类型?
答:在VHDL语言中,凡是可以赋于一个值的客体叫对象(object)。

VHDL对象包含有专门数据类型,主要有4个基本类型:常量(CONSTANT)、
信号(SIGNAL)、变量(VARIABLE)和文件(FILES)。

原件例化:
Architecture -> component -> [标签] comp port map ( )
描述方式:
行为描述方式:对设计实体的数学模型的描述,无须知道具体电路的结构。

优点:只要清楚输入、输出的行为,不要关注设计功能的门级实现。

抽象程度最高。

数据流描述方式:对信号到信号的数据流的路径形式进行描述。

要求对设计实体的功能实现有一定的了解或对内部电路有清楚的认识。

优点:便于逻辑综合;缺点:设计困难。

结构化描述方式:在多层次设计中,通过调用库中元件或已设计好的模块来完成设计功能。

结构体中,只描述元件(或模块)和元件(或模块)之间的互连。

优点:可利用已有资源,
避免重复设计。

混合描述方式:上述三种描述方式的组合。

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity MY_CNTR is
generic(CNT_WIDTH:INTEGER:=8);
Port ( D_IN : in STD_LOGIC_VECTOR (CNT_WIDTH-1 downto 0);
CE : in STD_LOGIC;
LOAD : in STD_LOGIC;
UpDn : in STD_LOGIC;
CLK : in STD_LOGIC;
RST : in STD_LOGIC;
Q_OUT : out STD_LOGIC_VECTOR (CNT_WIDTH-1 downto 0)); end MY_CNTR;
architecture Behavioral of MY_CNTR is
signal INT_CNT: STD_LOGIC_VECTOR(CNT_WIDTH-1 downto 0);
begin
process (CLK,RST)
begin
if RST='0' then
INT_CNT<=(others=>'0');
elsif rising_edge(CLK) then
if CE='1' then
if LOAD='1' then
INT_CNT<=D_IN;
else
if UpDn='1' then
INT_CNT <= INT_CNT + 1;
else
INT_CNT <= INT_CNT - 1;
end if;
end if;
end if;
end if;
end process;
Q_OUT<=INT_CNT;
end Behavioral;。