概述
1、什么是Setup 和Holdup时间?
答:Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time。如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果holdtime不够,数据同样不能被打入触发器。
2、什么是竞争与冒险现象?解决办法?
答:在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。
解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。三加选通信号。用D触发器,格雷码计数器,同步电路等优秀的设计方案可以消除。
3、如何解决亚稳态?Metastability
答:亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
解决方法:
1 、降低系统时钟频率
2 、用反应更快的Flip-Flop
3 、引入同步机制,防止亚稳态传播
4 、改善时钟质量,用边沿变化快速的时钟信号
关键是器件使用比较好的工艺和时钟周期的裕量要大。
4、说说静态、动态时序模拟的优缺点
静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误.它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。
动态时序模拟就是通常的仿真,因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径.因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题;
静态时序分析缺点:
1、无法识别伪路径
2、不适合异步电路
3、不能验证功能
5、用VERILOG写一段代码,实现消除一个glitch。
滤掉小于1个周期glitch的原理图如下:
verilog代码实现如下:
module digital_filter_(clk_in,rst,host_rst,host_rst_filter);input clk_in;input rst;input host_rst;output host_rst_filter;reg host_rst_d1;reg host_rst_d2;
always@(posedge clk_in or negedge rst) begin if(~rst) begin host_rst_d1 <= 1'b1; host_rst_d2 <= 1'b1; end else begin host_rst_d1 <= host_rst; host_rst_d2 <= host_rst_d1; end end assign host_rst_filter = host_rst_d1 | host_rst_d2;endmodule
滤掉大于1个周期且小于2个周期glitch的原理图如下:
verilog代码实现如下:
module digital_filter_(clk_in,rst,host_rst,host_rst_filter);input clk_in;input rst;input host_rst;output host_rst_filter;reg host_rst_d1;reg host_rst_d2;reg host_rst_d3;
always@(posedge clk_in or negedge rst) begin if(~rst) begin host_rst_d1 <= 1'b1; host_rst_d2 <= 1'b1; host_rst_d3 <= 1'b1; end else begin host_rst_d1 <= host_rst; host_rst_d2 <= host_rst_d1; host_rst_d3 <= host_rst_d2; end end assign host_rst_filter = host_rst_d1 | host_rst_d2 | host_rst_d3;endmodule
6、简述建立时间和保持时间
建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。
保持时间Th(hold):触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。
7、简述触发器和锁存器之间的差别
锁存器对电平信号敏感,在输入脉冲的电平作用下改变状态。
D触发器对时钟边沿敏感,检测到上升沿或下降沿触发瞬间改变状态。
8、计算最小周期
Tco:寄存器时钟输入到数据输出的时间
Tdata:寄存器间的走线延迟
Tsu :建立时间
Tskew:时钟偏斜
最小时钟周期:
Tmin = Tco + Tdata + Tsu - Tskew。最快频率Fmax = 1/TminTskew = Tclkd – Tclks。
9、时钟抖动和时钟偏移的概念及产生原因,如何避免?
时钟抖动jitter:指时钟信号的跳变沿不确定,故是时钟频率上的不一致。
时钟偏移Skew:指全局时钟产生的各个子时钟信号到达不同触发器的时间点不同,是时钟相位的不一致。
jitter主要受外界干扰引起,通过各种抗干扰手段可以避免。而skew由数字电路内部各路径布局布线长度和负载不同导致,利用全局时钟网络可尽量将其消除。
10、同步复位和异步复位的区别
同步复位是复位信号随时钟边沿触发有效。异步复位是复位信号有效和时钟无关。
如异步复位:
同步复位:
同步逻辑和异步逻辑的区别
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系
同步电路和异步电路区别
同步电路有统一的时钟源,经过PLL分频后的时钟驱动的模块,因为是一个统一的时钟源驱动,所以还是同步电路。异步电路没有统一的时钟源。
同步复位和异步复位的优缺点:
同步复位优点:
1、有利于仿真器的仿真
2、可以使所设计的系统100%成为同步电路,这有利于时序分析,而且综合出来的Fmax一般较高
3、因为它只有走有效的时钟沿到来时才有效,所有滤除了高于时钟周期频率的毛刺
缺点:
1、复位信号必须大于时钟周期,才能使其真正被系统识别并完成复位任务。同时还要考虑诸如时钟偏斜、组合逻辑路径延迟等因素。
2、由于大部分的逻辑器件库中的DFF都只有异步复位端口,所以采用同步复位的情况下,综合器就会在寄存器的数据输入端口插入组合逻辑,这样会耗费更多的逻辑资源。
异步复位的优点:
1、大部分的逻辑器件库中的DFF都只有异步复位端口,因此采用异步复位更省资源
2、设计相对简单
3、异步复位信号识别方便,可以很方便的使用FPGA的全局复位端口GSR
缺点:
1、在异步复位释放的时候容易出问题,具体来说就是:假如复位释放时正好在时钟有效沿附近,就很容易出现亚稳态
2、复位信号容易受毛刺影响
11、什么是线与逻辑?在硬件电路上有什么要求?
线与逻辑是指两根线直接相连能够实现与的功能。在硬件上需要OC门,如果不采用OC门会会导致门电路管电流过大而烧坏逻辑门。用OC门实现线与,应在输出端口加一个上拉电阻。
12、什么是竞争冒险?如何判断?怎么样消除?
在组合逻辑电路中,同一信号经过不同的路径到达某一汇合点的时间有先有后,这种现象称为竞争。
由于竞争而使电路发生瞬时错误的现象称为冒险。
消除方法:
1、输出端加滤波电容。在输出端和地直接接一个几十皮法的电容可以吸收掉尖峰干扰脉冲。
2、加选通脉冲
3、修改逻辑设计
4、利用格雷码每次只有一位跳变,消除了竞争冒险产生的条件。
举例:
下面这个电路,使用了两个逻辑门,一个非门和一个与门,本来在理想情况下F的输出应该是一直稳定的0输出,但是实际上每个门电路从输入到输出是一定会有时间延迟的,这个时间通常叫做电路的开关延迟。而且制作工艺、门的种类甚至制造时微小的工艺偏差,都会引起这个开关延迟时间的变化。 F = A & ~A
-
有竞争不一定产生冒险,如红线处。有冒险一定存在竞争。
-
F = A & ~A
-
有竞争不一定产生冒险,如红线处。有冒险一定存在竞争。
13、异步FIFO深度计算
如果数据流连续不断则FIFO深度无论多少,只要读写时钟不同源同频则都会丢数;
FIFO用于缓冲块数据流,一般用在写快读慢时,
FIFO深度 / (写入速率 - 读出速率) = FIFO被填满时间 应大于 数据包传送时间= 数据量 / 写入速率
例:A/D采样率50MHz,dsp读A/D读的速率40MHz,要不丢失地将10万个采样数据送入DSP,在A/D在和DSP之间至少加多大容量(深度)的FIFO才行?
100,000 / 50MHz = 1/ 500 s = 2ms
(50MHz - 40MHz) * 1/500 = 20k既是FIFO深度。
14、画出用D触发器实现2倍分频的逻辑电路
将D触发器的Q非端接到数据输入端D即可实现二分频,说白了就是CLK时钟信号的一个周期Q端电平反转一次。Q和~Q输出的都是二分频电路,只不过是反相的。~Q是先高后低。
四分频电路:
15、系统最高速度计算(最快时钟频率)和流水线设计思想:
同步电路的速度是指同步系统时钟的速度,同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量就愈大。假设Tco是触发器的输入数据被时钟打入到触发器到数据到达触发器输出端的延时时间(Tco=Tsetpup+Thold);Tdelay是组合逻辑的延时;Tsetup是D触发器的建立时间。假设数据已被时钟打入D触发器,那么数据到达第一个触发器的Q输出端需要的延时时间是Tco,经过组合逻辑的延时时间为Tdelay,然后到达第二个触发器的D端,要希望时钟能在第二个触发器再次被稳定地打入触发器,则时钟的延迟必须大于Tco+Tdelay+Tsetup,也就是说最小的时钟周期Tmin =Tco+Tdelay+Tsetup,即最快的时钟频率Fmax =1/Tmin。FPGA开发软件也是通过这种方法来计算系统最高运行速度Fmax。因为Tco和Tsetup是由具体的器件工艺决定的,故设计电路时只能改变组合逻辑的延迟时间Tdelay,所以说缩短触发器间组合逻辑的延时时间是提高同步电路速度的关键所在。由于一般同步电路都大于一级锁存,而要使电路稳定工作,时钟周期必须满足最大延时要求。故只有缩短最长延时路径,才能提高电路的工作频率。可以将较大的组合逻辑分解为较小的N块,通过适当的方法平均分配组合逻辑,然后在中间插入触发器,并和原触发器使用相同的时钟,就可以避免在两个触发器之间出现过大的延时,消除速度瓶颈,这样可以提高电路的工作频率。这就是所谓"流水线"技术的基本设计思想,即原设计速度受限部分用一个时钟周期实现,采用流水线技术插入触发器后,可用N个时钟周期实现,因此系统的工作速度可以加快,吞吐量加大。注意,流水线设计会在原数据通路上加入延时,另外硬件面积也会稍有增加。
16、FPGA设计工程师努力的方向:
SOPC、SOC,高速串行I/O,低功耗,可靠性,可测试性和设计验证流程的优化等方面。
随着芯片工艺的提高,芯片容量、集成度都在增加,FPGA设计也朝着高速、高度集成、低功耗、高可靠性、高可测、可验证性发展。芯片可测、可验证,正在成为复杂设计所必备的条件,尽量在上板之前查出bug,将发现bug的时间提前,这也是一些公司花大力气设计仿真平台的原因。另外随着单板功能的提高、成本的压力,低功耗也逐渐进入FPGA设计者的考虑范围,完成相同的功能下,考虑如何能够使芯片的功耗最低,据说altera、xilinx都在根据自己的芯片特点整理如何降低功耗的文档。高速串行IO的应用,也丰富了FPGA的应用范围,像xilinx的v2pro中的高速链路也逐渐被应用。
17、异步信号同步处理
对于单bit信号:
慢时钟域到快时钟域信号的转换,用沿同步:
要求输入异步信号的宽度应该有两个快速时钟域的时钟周期(在快时钟域下打两拍,采上升沿。需要前面的限制吗?)。
快时钟域到慢时钟域信号的转换,用脉冲同步:
要求输入异步脉冲信号之间的间隔至少要在两个慢速时钟的时钟周期之上,如果小于这个值,两个快时钟域的单bit信号转到慢时钟域可能就变成了一个两周期宽度的信号了。
18、FPGA中可以综合实现为RAM/ROM/CAM的三种资源及其注意事项?
三种资源:BLOCK RAM,触发器(FF),查找表(LUT);
注意事项:
1:在生成RAM等存储单元时,应该首选BLOCK RAM 资源;其原因有二:第一:使用BLOCK RAM等资源,可以节约更多的FF和4-LUT等底层可编程单元。使用BLOCK RAM可以说是“不用白不用”,是最大程度发挥器件效能,节约成本的一种体现;第二:BLOCK RAM是一种可以配置的硬件结构,其可靠性和速度与用LUT和REGISTER构建的存储器更有优势。
2:弄清FPGA的硬件结构,合理使用BLOCK RAM资源;
3:分析BLOCK RAM容量,高效使用BLOCK RAM资源;
4:分布式RAM资源(DISTRIBUTE RAM)
查找表(look-up-table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4(V7和A7都是6输入)输入的LUT,所以每一个LUT可以看成一个有 4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可
19、HDL语言的层次概念?
HDL语言是分层次的、类型的,最常用的层次概念有系统与标准级、功能模块级,行为级,寄存器传输级和门级。系统级,算法级,RTL级(行为级),门级,开关级
20、IC设计前端到后端的流程和EDA工具?
设计前端也称逻辑设计,后端设计也称物理设计,两者并没有严格的界限,一般涉及到与工艺有关的设计就是后端设计。
1:规格制定:客户向芯片设计公司提出设计要求。
2:详细设计:芯片设计公司(Fabless)根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。目前架构的验证一般基于systemC语言,对价后模型的仿真可以使用systemC的仿真工具。例如:CoCentric和Visual Elite等。
3:HDL编码:设计输入工具:ultra ,visual VHDL等
4:仿真验证:modelsim
5:逻辑综合:synplify
6:静态时序分析:synopsys的Prime Time
7:形式验证:Synopsys的Formality.
IC设计分为前端和后端。前端设计主要将HDL语言-->网表,后端设计是网表-->芯片版图。
前端主要有需求分析与架构设计、RTL设计、仿真验证、逻辑综合、STA、形式验证。后端主要包括DFT、布局规划、布线以及版图物理验证。
21、MOORE 与 MEELEY状态机的特征?
Moore 状态机的输出仅与当前状态值有关, 且只在时钟边沿到来时才会有状态变化。
Mealy 状态机的输出不仅与当前状态值有关, 而且与当前输入值有关。
22、说说静态、动态时序模拟的优缺点?
静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。
动态时序模拟就是通常的仿真,因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题;
23、FPGA内部结构及资源:
FPGA主要由可编程单元、可编程I/O单元及布线资源构成。
可编程逻辑单元(可配置逻辑单元,CLB)由两个SLICE构成,SLICE主要包括实现组合逻辑的LUT和实现时序逻辑的触发器。FPGA内部还包含专用存储单元BRAM,运算单元DSP Slice,及专用内嵌功能单元,如:PLL、Serdes等。
24、名词解释,写出下列缩写的中文(或者英文)含义:
FPGA :Field Programmable Gate Array 现场可编程门阵列
VHDL:( Very-High-Speed Integrated Circuit Hardware Description Language) 甚高速集成电路硬件描述语言
HDL :Hardware Description Language硬件描述语言
EDA:Electronic Design Automation 电子设计自动化
CPLD:Complex Programmable Logic Device 复杂可编程逻辑器件
PLD :Programmable Logic Device 可编程逻辑器件
GAL:generic array logic 通用阵列逻辑
LAB:Logic Array Block 逻辑阵列块
CLB :Configurable Logic Block 可配置逻辑模块
EAB: Embedded Array Block 嵌入式阵列块
SOPC: System-on-a-Programmable-Chip可编程片上系统
LUT :Look-Up Table 查找表
JTAG: Joint Test Action Group 联合测试行为组织
IP: Intellectual Property 知识产权
ASIC :Application Specific Integrated Circuits 专用集成电路
ISP :In System Programmable 在系统可编程
ICR :In Circuit Re-config 在电路可重构
RTL: Register Transfer Level 寄存器传输级
25、FPGA内部LUT实现组合逻辑的原理:
LUT相当于存放逻辑表达式对应真值表的RAM。软件将逻辑表达式所有可能结果列出后存放在RAM中,输入作为RAM地址,输出为逻辑运算结果。如使用LUT模拟二输入“与”逻辑。列出真值表:00 – 0,01 – 0,10 – 0,11 – 1。此时将00 01 10 11作为地址线,依次将结果0 0 0 1存放在RAM中。当输入00时及输出0&0=0.
26、 低功耗技术:
功耗可用公式描述:Power = KFCV^2,即功率等于常数系数工作频率负载电容值*电压的平方。
故从以下几个方面降低功耗方式:
a.控制工作频率:降低频率增大数据路径宽度,动态频率调整,门控时钟(时钟使能有效时钟才进入寄存器时钟输入引脚)
b.减少电容负载:使用几何尺寸更小的逻辑门,其电容负载较小,功率也随之减少。
c.降低工作电压:动态改变工作电压、零操作电压(直接关闭系统中一部分的电源)
27、MOS管基本概念及画图:
MOS中文意思是金属氧化物半导体场效应管,由栅极(G)、漏级(D)、源级(S)组成。分为PMOS和NMOS两种类型,区别在于G级高电平时,N型管导通,P型管截止。两者往往是成对出现的,即CMOS。只要一只导通,另一只则不导通,现代单片机主要是采用CMOS工艺制成的。
画图一般需要根据一个简单的逻辑表达式,画出CMOS电路图结构。需要掌握常用逻辑门的实现方式。
‘
总体来看还是挺好记的,与非门和或非门都是上下各两个MOS管,且上面是PMOS,下面是NMOS。不同之处在于与非是“上并下串”,或非是“上串下并”。
28、FPGA详细设计流程(面试提问)
与数字IC设计流程类似,以xilinx vivado工具为例,主要有以下步骤:系统规划、RTL输入、行为仿真、逻辑综合、综合后仿真(可选)、综合后设计分析(时序及资源)、设计实现(包括布局布线及优化)、实现后设计分析(时序及资源)、板级调试、bitstream固化。
29、时序约束相关有哪几种时序路径:
input paths:外部引脚到内部寄存器
register-to-register paths:系统内部寄存器到寄存器路径
output paths:内部寄存器到外部引脚的路径
port to port paths:FPGA输入端口到输出端口路径(不常用)
30、创建时序约束的关键步骤:
baseline约束:create clocks define clocks interactions
I/O约束:set input and output delays
例外约束:set timing execptions(set_max_delay/set_min_delay、set_multicycle_path、set_false_path)
设计初期可先不加I/O约束,但baseline约束要尽早建立。
31、 SRAM和DRAM的区别
SRAM是静态随机访问存储器,由晶体管存储数据,无需刷新,读写速度快。DRAM是动态随机访问存储器,由电容存储数据,由于电容漏电需要动态刷新,电容充放电导致读写速度较SRAM低。但DRAM成本较低,适合做大容量片外缓存。
32、CMOS和TTL电路区别是什么?
两者区别主要体现在三个方面:
结构:CMOS电路由场效应管构成,TTL由双极性晶体管构成。
电平范围:CMOS逻辑电平范围大(5~15V),TTL只工作在5V以下,因此CMOS噪声容限比TTL大,抗干扰能力强。
功耗与速率:CMOS的功耗比TTL小,但工作频率低于TTL。
TTL不能直接驱动CMOS电平,需要加上拉电阻,而CMOS可以直接驱动TTL
33、JTAG接口信号及功能
JTAG实际上使用的只有四个信号:时钟TCK、状态机控制信号TMS、数据输入信号TDI、数据输出信号TDO。
34、上拉电阻用途:
1、当 TTL 电路驱动 COMS 电路时,如果 TTL 电路输出的高电平低于 COMS 电路的最低 高电平 (一般为 3.5V ) , 这时就需要在 TTL 的输出端接上拉电阻, 以提高输出高电平的值。
2、 OC 门电路必须加上拉电阻,以提高输出的高 电平值。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。
4、在 COMS 芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。
6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰
35、有四种复用方式,频分多路复用,写出另外三种
四种复用方式:频分多路复用( FDMA ),时分多路复用( TDMA ),码分多路复用(CDMA ),波分多路复用( WDM A) 。
36、基尔霍夫定理的内容
基尔霍夫定律包括电流定律和电压定律:
电流定律:在集总电路中, 在任一瞬时, 流向某一结点的电流之和恒等于由该结点流出的电流之和 。
电压定律:在集总电路中,在任一瞬间, 沿电路中的任一回路绕行一周,在该回路上电动势之和恒等于各电阻上的电压降之和
37、三段式状态机
一段式:
只有一个always block,把所有的逻辑(输入、输出、状态)都在一个always block的时序逻辑中实现。这种写法看起来很简洁,但是不利于维护,如果状态复杂一些就很容易出错,不推荐这种方法。
在简单的状态机可以使用。
二段式:
有两个always block,把时序逻辑和组合逻辑分隔开来。时序逻辑里进行当前状态和下一状态的切换,组合逻辑实现各个输入、输出以及状态判断。这种写法不仅便于阅读、理解、维护,而且利于综合器优化代码,利于用户添加合适的时序约束条件,利于布局布线器实现设计。在两段式描述中,当前状态的输出用组合逻辑实现,可能存在竞争和冒险,产生毛刺。
要求对状态机的输出用寄存器打一拍,但很多情况不允许插入寄存器节拍,此时使用三段式描述。其优势在于能够根据状态转移规律,在上一状态根据输入条件判断出当前状态的输出,从而不需要额外插入时钟节拍。
三段式:
有三个always block,一个时序逻辑采用同步时序的方式描述状态转移,一个采用组合逻辑的方式判断状态转移条件、描述状态转移规律,第三个模块使用同步时序的方式描述每个状态的输出。代码容易维护,时序逻辑的输出解决了两段式组合逻辑的毛刺问题,但是从资源消耗的角度上看,三段式的资源消耗多一些。
二段式和三段式的区别主要是每个状态的输出使用组合逻辑还是用时序逻辑,组合逻辑实现,可能存在竞争和冒险,产生毛刺。
38、什么是状态图?
状态图是以几何图形的方式来描述时序逻辑电路的状态转移规律以及输出与输入的关系。
39、用你熟悉的设计方式设计一个可预置初值的 7 进制循环计数器 ,15 进制的呢?
module counter7(clk,rst,load,data,cout);
input clk,rst,load;
input [2:0] data;
output reg [2:0] cout;
always@(posedge clk) begin
if(!rst)
cout<=3 ’ d0;
else if(load)
cout<=data;
else if(cout>=3 ’ d6)
cout<=3 ’ d0;
else
cout<=cout+3 ’ d1;
end
endmodule
40、你所知道的可编程逻辑器件有哪些?
PAL , PLA , GAL , CPLD , FPGA
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
41、SRAM,FALSH MEMORY,DRAM , SSRAM及 SDRAM的区别 ?
SRAM :静态随机存储器,存取速度快,但容量小,掉电后数据会丢失,不像DRAM需要不停的 REFRESH ,制造成本较高,通常用来作为快取(CACHE)记忆体使用。
FLASH :闪存,存取速度慢,容量大,掉电后数据不会丢失
DRAM :动态随机存储器,必须不断的重新的加强 (REFRESHED) 电位差量,否则电位差将降低至无法有足够的能量表现每一个记忆单位处于何种状态。价格比 SRAM 便宜,但访问速度较慢,耗电量较大,常用作计算机的内存使用。
SSRAM :即同步静态随机存取存储器。对于 SSRAM 的所有访问都在时钟的上升 /下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。
SDRAM :即同步动态随机存取存储器。
42、有源滤波器和无源滤波器的区别
无源滤波器:这种电路主要有无源元件 R、 L 和 C组成
有源滤波器:集成运放和 R、C 组成,具有不用电感、体积小、重量轻等优点。集成运放的开环电压增益和输入阻抗均很高, 输出电阻小, 构成有源滤波电路后还具有一定的电压放大和缓冲作用。但集成运放带宽有限, 所以目前的有源滤波电路的工作 频率难以做得很高。
43. 什么是同步逻辑和异步逻辑?
同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统 时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入有无变化,状态表中的每个状态都是稳定的。
异步时序逻辑电路的特点:
电路中除可以使用带时钟的触发器外,还可以使用不带 时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外 部输入的变化直接引起。
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。
44. 同步复位和异步复位的区别
同步复位是在时钟沿变化时,完成复位动作。
优点:
1)抗干扰能力高,可以提出复位信号中周期短于时钟周期的毛刺;
2)有利于静态时序分析工具的分析;
3)有利于基于周期的仿真工具的仿真。
缺点:
1)占用更多资源;
2)对复位信号的脉冲宽度有要求,由于线路上的延迟;可能需要多个时钟周期的复位脉冲的宽度,而且很难保证复位信号到达各个寄存器的时序;
3)同步复位依赖时钟,如果电路中时钟信号出现问题则无法复位。
异步复位是只要复位信号满足条件就完成复位动作。
优点:
1)不需要额外的逻辑资源,实现简单;
2)复位信号不依赖于时钟。
缺点:
1)复位信号易受外界干扰,并对电路内的毛刺敏感;
2)复位信号的随机性可能导致时序违规,也就是复位信号释放时在时钟有效沿附近,会使电路处于亚稳态。
45. FPGA芯片内有哪两种储存器资源?
FPGA 芯片内有两种存储器资源:一种叫block ram,另一种是由 LUT 配置成的内部存储器(也就是分布式ram)。Blockram由一定数量固定大小的存储块构成的,使用BLOCK RAM资源不占用额外的逻辑资源,并且速度快。但是使用的时候消耗BLOCKRAM的资源是其块大小的整数倍。
46. 什么是竞争与冒险现象?怎样判断?怎样消 除?
竞争:在组合逻辑中,由于门的输入信号通路 中经过了不同的延时,导致到达该门的时间不一致叫竞争。
冒险:
由于竞争而使电路输出发生瞬时错误的现象叫做冒险。(也就是由于竞争产生的毛刺叫做冒险)
判断方法:
1)代数法:如果布尔式中有相反的信号则很有可能产生竞争和冒险现象;
2)图形法:有两个相切的卡诺圈并且相切处没有被其他卡诺圈包围,就有可能出现竞争和冒险现象;
3)实验法:使用示波器观测。
解决方法:
1)加滤波电路,消除毛刺影响;
2)加选通信号,避开毛刺;
3)增减冗余项消除逻辑冒险。
- END -
NOW现在行动!
推荐阅读
【Vivado那些事】如何查找官网例程及如何使用官网例程【Vivado使用误区与进阶】总结篇【Vivado那些事】Vivado中常用的快捷键(一)F4键【Vivado那些事】Vivado中常用的快捷键(二)其他常用快捷键
SystemVerilog数字系统设计_夏宇闻 PDFVerilog 里面,always,assign和always@(*)区别图书推荐|ARM Cortex-M0 全可编程SoC原理及实现
简谈:如何学习FPGARISC-V再进阶!世界首款5纳米RISC-V SOC成功流片!
几款开源SDR平台Vitis尝鲜(一)
SDR/无线设计中LNA和PA的基本原理
拆解1968年的美国军用电脑,真的怀疑是“穿越”啊!
一文最全科普FPGA技术知识你见过1-bit CPU吗?高级FPGA设计技巧!多时钟域和异步信号处理解决方案
【Vivado那些事】Vivado中电路结构的网表描述
ZYNQ中裸机开发和Linux开发有什么区别?
现代计算机的雏形-微型计算机MCS-4
世界上第一个微处理器真的是Intel 4004吗?其实这是个很复杂的故事…
【每周一问】如何控制加载FPGA程序时,Xilinx FPGA的IO管脚输出高低电平
【Vivado那些事】vivado生成.bit文件时报错-ERROR: [Drc 23-20]
AD9361 和Zynq及其参考设计说明1202年了,还在使用虚拟机吗?Win10安装Ubuntu子系统及图形化界面详细教程谈谈Xilinx FPGA设计的实现过程
Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目
AD936x+ZYNQ搭建收音机(一)
AD936x+ZYNQ搭建收音机(二)含视频演示
AD936x+ZYNQ搭建收音机(三)-终篇
AD936x+ZYNQ搭建OpenWIFI
Verilog 版本:Verilog-95、Verilog-2001与System Verilog区别简谈
FPGA时钟设计方案无招胜有招-Vivado非工程模式下的详细设计
追寻ARM的起源-Acorn电脑简史及FPGA实现
点击上方字体即可跳转阅读
最后
以上就是陶醉紫菜为你收集整理的面试中经常会遇到的FPGA基本概念,你会几个?的全部内容,希望文章能够帮你解决面试中经常会遇到的FPGA基本概念,你会几个?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复