IC/FPGA笔试宝典(2019)

一 问答题

1、什么是同步逻辑与什么是异步逻辑?

答:同步逻辑是各时钟间有对应的因果关系,异步逻辑是各时钟间没有对应的因果关系。同步电路是时序电路,异步电路是组合逻辑电路。由于异步电路具有以下优点——无时钟歪斜问题,低电源消耗、平均能效而非最差能效、模块性,可组合性、可重复性的优点。

2、什么是线与逻辑,要实现它,在硬件特性上有什么具体要求?

答:线与逻辑是两个输入信号相连,可以实现与的功能。在硬件上用OC(集电极开路或者漏极开路)门实现。由于不用OC门可能使灌电流(向芯片流入的电流)拉电流(从芯片输出的电流)过大,烧坏逻辑门,同时在输出端应该加上拉电阻。

3、什么是setup_time?什么是holdup_time?

答:setup_time 采样时钟到数据的起始位置的时间。holdup_time :采样数据时钟的上升沿到达数据结束为止。往往建立时间量大一些,保持时间量小一些。建立时间+保持时间大约等于一个时钟周期。
建立时间门限:寄存器都有要求,要求数据要提前时钟上升沿到来

4、同步FIFO和异步FIFO的区别?

答:同步FIFO是指读写时钟为同一时钟,在时钟上升沿来临之时,同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟相互独立。

5、FPGA和CPLD的区别?

答:FPGA是可编程的ASCI。(ASCI:专用集成电路)。从构成上讲:FPGA为查找表结构,程序存储通过SRAM或者外挂器件,触发器资源丰富,使用场合多用与时序逻辑,处理速度快,其他资源包括,PLL资源,乘法器除法器资源,IO资源,一般不能加密。
CPLD是基于乘积项(实际就是与或阵列)的PLD基本都是由EEPROM和FLASH制造,一上电就可以工作,需其他芯片配合。布线方式是全局,所以延时可以预测。CPLD适合做逻辑设计。FPGA基于SRAM工艺,掉电丢失配置。无

6、FPGA的构成,查找表LUT的原理与结构?

答:FPGA主要由可编程输入输出单元,基本可编程逻辑单元,完整的时钟管理(PLL),嵌入的RAM,ROM资源,丰富的布线资源,以及底层的功能单元以及内嵌的功能模块。LUT其本质就是一个RAM,当用户通过原理图,或者HDL描述一个逻辑电路以后,FPGA开发工具会自动计算逻辑电路的所有可能结果输入写入RAM中,这样每输入一个信号进行逻辑运算就相当于给RAM输入对应的地址,取出相应的内容即可。

7、FPGA设计流程?

答:1,功能定义,器件选型。2,设计输入。3、功能仿真(前仿真modelsim)。4综合优化。5布线。6,时序仿真。

8、FPGA芯片内部存储资源?

答、FPGA芯片内有两种存储资源:一种是BRAM,一种是由LUT配置成的内部存储器DRAM(分布式的ram)。BRAM由一定数量的存储块构成,使用BRAM资源,不占用一定的逻辑资源,速度快。但是使用的时候消耗的逻辑资源是其逻辑资源块的整数倍。(意思就是如果需要存储的信息量不是很大,使用BRAM就会造成逻辑资源的浪费)。
FPGA中可以综合为RAM/ROM/CAM:BRAM/触发器(FF)/查找表。

9、FPGA上电方式?

答:JTAG边界扫描模式,从并模式,主串模式(SPI_FLASH),从串模式,PROM配置

10、关于MOS管?

答:NMOS管当G极为高,管子导通;PMOS管当G极为低时,管子导通。

11、什么是竞争和冒险?怎样判断?如何消除?

答:竞争:组合电路中,某一信号经过不同的路径,到达输入节点的时间不一致,这种现象叫做竞争。
冒险:由竞争而造成可能产生输出干扰的现象叫冒险。怎样判断?1、代数法:如果逻辑表达式中出现相反的信号可能产生竞争,冒险现象。F=A&~A。2、卡罗图法:有两个相切的卡诺圈,并且相切处没有其他卡诺圈包围,可能出现竞争与冒险。如何消除?1、加滤波电路,消除毛刺。2、加选通信号,避开毛刺。3、增加冗余项,消除逻辑冒险。

12、什么是流水线设计?

答:流水线设计就是将组合逻辑系统分割,并在各个部分之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干小操作,每一步小操作的时间较小,所以能提高频率,各操作能并行运行,所以能提高数据的吞吐量。

13、数字IC设计流程?

答:IC设计分为前端和后端。前端设计主要将HDL语言–>网表,后端设计网表–>版图。
前端设计主要有需求分析与架构设计,RTL设计,仿真验证,逻辑综合,STA,形式验证。后端主要包括DFT,布局规划,布线,以及版图物理验证。

14、时序约束的目的是什么?

答:为设计服务,为了设计满足对应的时序要求,指导FPGA进行工作和实现。时序约束中最基本的有,时钟偏移,抖动,占空比失真。

15、MCU结构?

答:CPU、ROM、RAM、各种IO端口,基本功能单元组成。

16、系统最高速度计算(最快时钟频率)和流水线设计思想?

答:同步电路的速度是指同步系统时钟的速度,同步时钟越快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量越大。
Tco:是数据输入数据被时钟打入到触发器到数据到达触发器输出端的延迟。
Tdelay:是组合逻辑延迟。
Tsetup:触发器D的建立时间。
假设数据已被时钟打入D触发器,那么数据到达第一触发器的Q端的时间为Tco,经过组合逻辑的时间为Tdelay,然后到达第二个触发器的D端。要希望时钟能再第二个触发器稳定的打入触发器,则时钟延迟必须大于Tco+Tdelay+Tsetup。也就是最小时钟周期min >=Tco+Tdelay+Tsetup.

17、门控时钟?

答:“门控”是指一个时钟信号和另外一个非时钟信号作逻辑输出时钟。列入用一个信号&一个时钟,可以控制时钟起作用的时间。可以通过关闭芯片上暂时用不到的时钟,来降低芯片功耗,节省用电。

18、如果不满足建立时间,应该用哪几种方法来解决?

答:setup_violation,主要设法剪掉critical path的delay,要么pipeline,要么retiming,要么把combination往前后级移动一下。
holdup_timeviolation是clock tree的skew引起。主要宗旨是设法在前面一级combination加delay,比如加buffer什么的。

19、什么是recovery time和removal time?

答:在同步电路中,输入数据需要与时钟满足“setup time”和“holdup time”才能进行数据正常传输,防止亚稳态。同样的道理,对于一个异步复位寄存器,同样异步复位信号同样需要和时钟满足recovery time 和 removal time 才能有效进行复位操作和复位释放操作,防止输出亚稳态。
recovery time:恢复时间,撤销复位时,恢复到非复位状态的电平必须在时钟有效沿来临之前的一段时间到来,才能保证,时钟信号恢复到非复位电平状态。
removal time:去除时间,在时钟沿来临之后,复位信号还需要保持的一段时间。类似于同步时钟hold time.

20.IIC时钟速率

答:标准模式100k,快速模式400k,高速模式3.4Mhz,SPI传输速度可以达到M级,usart传输速度9600,115200波特每秒。

21.N位二进制补码能表示的数据范围。

答:-2^(N-1) - 2^(N-1)-1.

22.低功耗技术

答:a.控制工作频率:降低频率增大数据路径宽度,动态频率调整,门控时钟(时钟使能有效,时钟才进入对应的触发器引脚)。
b.减少电容负载:使用几何尺寸更小的逻辑门,其电容负载较小,功率也随之减小。
c.降低工作电压:动态改变工作电压、零操作电压。

23.verilog中assign和always@(*)两者描述组合逻辑时的差别。

答:被assign赋值的信号定义为wire型,被always@()结构块下定义的信号为reg型,值得注意的是这里的reg并不是真正的触发器,只有敏感变量为上升沿的写法时才会综合为触发器。assign是并行,相当于描述的是一条线。always@()块后面是串行,begin,end之间的语句是一句一句执行的。其中wire型需要持续的驱动,reg型只需要赋值一次数据。

24.always和always@(*)的区别?

答:always@后面是敏感变量,always@(*),意思是说敏感变量由综合器根据器always块中的输入变量自动添加,不用自己考虑。如果没有@那就是不会需要满足条件才执行相对应的语句,而是执行过后就一直执行。

25.MOSFET与双极性晶体管的性能优势。

答:MOSFET是一种高输入阻抗,电压控制器件。而BJT则是一种低输入阻抗,电流控制器件。

二 选择题

1、以下对FIR和IIR滤波器特性不正确的是(A)
A、FIR滤波器主要采用递归结构;
B、IIR滤波器不易做到线性相位;
C、FIR滤波器总是稳定的;
D、IIR滤波器主要用来设计频率特性为分段常数的标准滤波器;
2、若滤波器的单位脉冲响应h(n)是对称的,长度为n,则它的对称中心是(B)
A、N/2;
B、(N-1)/2;
3、综合是EDA设计流程关键步骤,综合就是把抽象设计层次中的一种转化为另一种表示的过程;在下面对综合的描述中,(D)是错误的。
A、综合是将电路的高级语言转化为低级语言,可与FPGA/CPLD的基本结构相映射的网表文件;
B、为实现对系统的速度,面积,性能的要求,需要对综合加以约束,称为综合约束;
C、综合可以理解为,将软件描述与给定的硬件结构用电路网表文件表示的映射过程,并且这种映射关系不是唯一的;
D、综合为纯软件的转换过程与硬件结构无关;
4、QUARTUSII中下列哪项步骤可以检验设计电路的错误(B)
A、create default symbol
B、compiler/编译
C、simulator/时序仿真
D、timing analyzer/时序分析
5、FPGA设计优化,主要考虑提高资源利用率和减少功耗(即面积优化),和提高运行速度(即速度优化),下列方法不属于面积优化的是(C)
A、资源共享
B、逻辑优化
C、流水线设计
D、串行化
6、下列哪一项不属于FPGA内部固有资源,但是可以利用内部固有资源实现(A)
A、FIFO
B、嵌入式块RAM
C、可编程连线资源
D、可编程IO
7、vlib、vmap、vcom、vsim、属于modelsim命令
8、generate,for,while语句可以被综合,wait语句不能被综合
9、FPGA的时序约束主要有(周期约束、偏移约束、引脚约束)
10、BRAM和DRAM的区别,占用硬件资源不同,BRAM主要占用块状的存储空间,一旦使用就无法再利用;DRAM用寄存器堆成。如果需要的RAM空间比较大,就需要用BRAM;如果需要的空间比较小,就需要DRAM。
11、差分时钟和单端时钟的区别,差分时钟可以抵消干扰信号,使时钟信号更加稳定。
12、如果建立时间不满足,应该通过哪几种方式进行优化,至少三种?
答:重新综合设计,并以违例目标为目标进行优化。查看是否时钟歪斜很大,查看时钟路径问题。
13、温度和电压对器件时间延迟的影响?
答:温度越低,电压越高,时间延迟越小。

三 编程题

1、第一题 : 数据提取模块
//
// 输入:
// clk
// rst_n
// din[255:0]
// offset[6:0]
// 输出
// dout[127:0]
//
// 要求:
// 1. 要求根据偏移量offset,从din中提取出128bit到dout中。用伪代码表示如下:
// dout = din[offset+128:offset]
// 2. 可以流水线操作,din和offset每个时钟都会变化
// 3. 在合理的延迟下,尽可能的降低资源的使用
//
module test1 (

input               clk,
input               rst_n,
input       [255:0] din,
input       [6:0]   offset,

output  reg [127:0] dout

);

always @(posedge clk ) begin
if(!rst_n)
dout <= 128’b0;
else case(offset[6:4])
0: dout <= din[0+offset[3:0]+:128]
1: dout <= din[16+offset[3:0]+:128]
2: dout <= din[32+offset[3:0]+:128]
3: dout <= din[48+offset[3:0]+:128]
4: dout <= din[64+offset[3:0]+:128]
5: dout <= din[80+offset[3:0]+:128]
6: dout <= din[96+offset[3:0]+:128]
7: dout <= din[112+offset[3:0]+:128]
default:;
endcase
end

endmodule

你可能感兴趣的:(学习笔记)