受人恩惠,传递下去,我在复习科大宋老师的FPGA课程时,苦于没有直接参考资料,辛亏得于某师兄的考试回忆,特在此传下去
基本考试题型
一.基本概念
- PLD基本概念:可有用户进行编程(可重复)实现所需逻辑功能的数字集成电路。具有集成度高,设计灵活,可靠性高,设计周期短等特点。
发展趋势:核心工作电压降低,功耗降低 IP core丰富 速度更快 设计技术向高层转移
PLD如何编程:熔丝(反)开关通断 浮栅编程元件 SRAM配置存储器元件 - FPGA与CPLD的区别:
CPLD结构是基于乘积项技术,EEPROM(或FLASH)工艺,断电保持,适合做组合逻辑。
FPGA基于查找表技术,SRAM工艺,密度高,触发器多,断电失效,内部集成大容量RAM,适合做复杂时序逻辑。 - CPLD和FPGA结构组成
CPLD结构:逻辑阵列块LAB;宏单元Macrocells;扩展乘积项Expander product terms;可编程连线阵列PIA;I/O控制块;
一个LAB由16个宏单元Macrocells阵列组成。多个LAB通过PIA互联
宏单元:由3个功能块组成:
逻辑阵列:可以实现组合逻辑,每个宏单元可以提供5个乘积项;
乘积项选择矩阵:
可编程寄存器:
FPGA结构:嵌入式阵列块EAB;逻辑阵列LA;快速互联通道FastTrack I/O单元;
嵌入式阵列块EAB:用来实现存储器功能或其他复杂逻辑功能。
逻辑阵列块LAB:用来实现一些普通逻辑功能。例如计数器 加法器 状态机 多路选择器。每个逻辑阵列由8个逻辑单元LE以及之间的进位和级连链,LAB控制信号和一个局部互连线组成。逻辑单元LE:逻辑单元LE是最小逻辑单位;每个LE包含一个4输入LUT,一个带有同步使能的可编程触发器,一个进位链,一个级联链。
快速互联通道:是由一些行 列互联通道组成。
I/O单元:
-
同步 VS 异步
简单理解:与时钟同步,在时钟沿变化时有效; 异步:与时钟无关。 -
时钟锁定clock lock和clock boost:利用PLL来实现。锁定输入时钟的上升沿。只能在芯片内部使用,而不能输出。
时钟锁定Clock lock:利用同步PLL,减小时钟延时和偏差。
时钟自举ClockBoost:可以提供时钟倍频和分频。
ClockShift:可编程时钟相位和延时的移动。 -
OD门:线与功能;如何使用:在漏极外部的电路添加上拉电阻。任何一个OD门输出为低,则总的输出为低。
-
TRC: read cycle time
TAA : address access time
TOHA :output hold time -
组合逻辑电路是什么?毛刺有什么危害?如何产生和消除的?
组合逻辑电路在逻辑功能上是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。
产生:信号在器件中因为布线等原因造成延时,产生一些不正确的尖峰信号—毛刺。
危害:毛刺会影响电路工作的稳定性,可靠性,严重时会导致整个数字系统的误动作和逻辑紊乱。比如 计数器误加。
消除方法:输出加D触发器;信号同步法:信号延时同步,状态机控制;格雷码计数器; -
SignalTapII的特点和使用步骤?
特点:SignakTapII具有无干扰 使用简单 不需要任何连线。
使用步骤: -
设置采样时钟;频率要大于信号的最高频率。
-
设置被测信号;使用Node Finder添加要观察的信号。
-
配置采样深度,确定RAM的大小。
-
设置触发条件。
-
完全编译一次,编程烧录逻辑;
-
点击RUN 启动逻辑分析仪,保存在.stp中。
-
CAM :RAM的逆过程,给数据得地址,用于高速搜索操作。 没写一个数,需要在一个地址山写2个clock。
三种模式:单匹配 多匹配 快速匹配。
RAM:串行 CAM:并行 -
SOPC NiosII开发流程:
-
首先打开quatusII软件,创建顶层图*.bdf,打开SOPC Building定义和生成系统;
-
在SOPC选择配置硬核电路,添加Nios II及其标准外设模块。集成到quatusII顶层设计文件中,分配管教,编译下载到开发板中。
-
在NoisII IDE开发软件中,设置软件运行环境,调试,下载到开发板上运行。
二.画图解释
-
TSU ,THold,Tco 画图解释。D触发器 时序特性关系
-
PLD结构组成画图表示
-
二分频逻辑电路
三. 硬件描述语言
两种题型:给出代码说出功能; 给出功能写出代码;
1.9bit减法计数器,要求有异步清零核异步置1.
module count_test(en,clk,clr,cout,outy);
input en,clk,clr;
output [3:0]outy;
output cout;
reg [3:0]outy;
always @ (posedge clk or posedge clr)
// 请在下面添加代码,完成16 进制计数器功能
/* Begin /
begin
if(clr) outy<=4’b0000;
else if(en)
begin if(outy4’b1111) outy<=4’b0000;
else outy<=outy+1’b1;
end
end
assign cout=((outy4’b1111)&en)?1:0;
/ End */
Endmodule
四.时序分析
1.SRAM(24)
Asyn SRAM
tRC: min 7ns
tAA: max 7ns
tOHA: min 3ns
(1)解释三个参数tRC,tAA,tOHA。read cycle time, address access time,output hold time
(2)如果tRC=6,7,8ns,问tAA,tOHA值域
确定值,还是不确定值;
(3)给tAAmax=8ns,tOHAmin=2ns,问能否算出tRC; Tmin=8ns;
考试回忆原题
-
RAM的读时序分析?
图是PPT的那个图。 -
问那三个单词怎么解释?
-
SRAM的最小读周期是由哪个或哪些来决定的;
-
若都周期为7ns或者10ns,则dataout valid的时间宽度分别是多少?
-
两个级联D触发器的最大频率怎么确定?
-
硬件描述语言题:写出D触发器的 异步清零,同步置位。
CAM怎么实现网络IP的过滤?
锁相环怎么实现板级间的延时 输入时钟和至多输出管理器的同步?画图表示?