1、什么是同步逻辑和异步逻辑?
同步逻辑是时钟之间有固定的因果关系;异步逻辑是各时钟之间没有固定的因果关系。

2、同步电路和异步电路的区别是什么?
同步电路:存储电路中所有触发器的时钟输入端都接同一时钟脉冲源,因而所有触发器的状态变化都与所加的时钟脉冲信号同步;
异步电路:电路中没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,这些触发器的状态变化与时钟脉冲同步,而其它触发器的状态变化不与时钟脉冲同步。

同步就是双方有一个共同的时钟,当发送时,接收方同时准备接收;
异步双方不需要共同的时钟,也就是接收方不知道对方什么时候发送,所以在发送信息中就要有提示接收方开始接收的信息,如开始位,结束时有停止位。

3、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?
线与逻辑是两个或多个输出信号相连可以实现与的功能。在硬件上,要用OC门来实现(漏极或者集电极开路),为了防止因灌电流过大而烧坏OC门,应在OC门输出端接一上拉电阻(线或则是下拉电阻)。
漏极开路(OD),集电极开路(OC)

4、什么是Setup 和Holdup时间?
在理想情况下,只要在时钟沿来临时,有效数据也来临(时钟沿之前或同时),则能够正确采集到数据;而在时钟沿之后(或同时),即使数据发生变化,也不会影响DFF(D触发器)的输出了。然而在实际中,上升沿打开开关需要时间,逻辑门的状态改变(电容充放电等)都需要时间,因此数据的采集是需要一定时间的,在这个时间内数据不能发生变化。上升沿时候开关关闭也需要时间,如果在这个时间段内数据有变化的话,那么新数据就有可能被传递到下一级,进而发生错误,所以数据必须保持一定时间不变。
建立时间(setup time):在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;
保持时间(hold time):在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器。

5、解释setup和hold time violation,画图说明,并说明解决办法
Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间.输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间.如果hold time 不够,数据同样不能被打入触发器。
如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现 metastability的情况.如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时 间,那么超过量就分别被称为建立时间裕量和保持时间裕量。

满足建立和保持时间要求,电路状态改变就是正确的,电路功能就不会发生错误;如果不满足,电容就没有足够的时间充放电,造输出点的电平可能既非0也非1,造成“亚稳态“输出。如果前级驱动够强劲,电路就能按照趋势变化下去,一定时间后该点的值就会变化为“正确值”,如果驱动不够强劲,电路就会恢复之前的值,最终得到何值是不可控的,所以我们要避免亚稳态。在使用DFF时,必须满足其建立时间和保持时间的要求。

消除方法
竞争冒险修改设计法:
a、代数法,在产生冒险现象的逻辑表达式上,加上冗余项或乘上冗余因子;
b、卡诺图法,将卡诺图中相切的圈用一个多余的圈连接起来。
竞争冒险选通法:
在电路中加入选通信号,在输出信号稳定后,选通允许输出,从而产生正确输出。
滤出法: 由于冒险脉冲是一个非常窄的脉冲,可以在输出端接一个几百微法的电容将其滤出掉。
竞争冒险常用消除方法:
(1)接入滤波电容;
(2)引入选通脉冲;
(3)修改逻辑设计;
(4)利用可靠性编码;
(5)引入封锁脉冲。

6、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。
产生毛刺叫冒险。
如果布尔式中有相反的信号则可能产生竞争和冒险现象。
解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。

7、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?
常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。

8、如何解决亚稳态
(1)亚稳态发生原因
在FPGA系统中,如果数据传输中不满足触发器的Tsu和Th不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recovery time)不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值。这段时间称为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是稳定到0或者1,是随机的,与输入没有必然的关系。
(2) 亚稳态发生场合
只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。
(3) 亚稳态危害
由于产生亚稳态后,寄存器Q端输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值。在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。在复位电路中产生亚稳态可能会导致复位失败。怎么降低亚稳态发生的概率成了FPGA设计需要重视的一个注意事项。
(4)有亚稳态产生,我们就要对亚稳态进行消除,常用对亚稳态消除有三种方式:
a、 对异步信号进行同步处理;
对异步信号进行同步提取边沿,在异步通信或者跨时钟域通信过程中,最常用的就是对异步信号进行同步提取边沿处理。对一个异步信号进行提取上升沿通常采用以下程序:

// 双极寄存器提取边沿
input sig_nsyn
wire sig_nsyn_p;
reg[1:0] sig_nsyn_r;
always @(posedge clk or negedge rst_n)begin
if(!rst_n)
sig_nsyn_r <= 2’d0;
else
sig_nsyn_r <= { sig_nsyn_r [0], sig_nsyn };
end
assign sig_nsyn_p = sig_nsyn_r[0] & ~sig_nsyn_r[1];

根据亚稳态产生概率,如果在100M时种下那第一级寄存器产生亚稳态的概率约为10%,随着系统采集频率升高,那产生亚稳态的概率也会随之上升。因此,在进行异步信号跨频提取边沿时候,一般采用多进行一级寄存器消除亚稳态,可能在系统稳定性要求高的情况下,采用更多级寄存器来消除亚稳态,如下程序所示,即为采用4级寄存器消除亚稳态,相应的边沿信号产生的时间就晚了两个时钟周期。

input      sig_nsyn;
wire        sig_nsyn_p;
reg[3:0]   sig_nsyn_r;
always @(posedge clk or negedge rst_n)  beginif(!rst_n) sig_nsyn_r <= 2’d0;else      sig_nsyn_r <= { sig_nsyn_r [2::0], sig_nsyn };
end
assign     sig_nsyn_p = sig_nsyn_r[2] & ~sig_nsyn_r[3];

b、 采用FIFO对跨时钟域数据通信进行缓冲设计;
当数据流从一个时钟域到另一个时钟域的时候,绝大多数情况下都采用FIFO来作为中间缓冲,采用双时钟对数据缓冲,就可以避免亚稳态的发生。
c、 对复位电路采用异步复位、同步释放方式处理。
对于复位情况下的亚稳态,常常是由于恢复时间和移除时钟不满足造成的,因此,最常用的处理方式是采用异步复位、同步释放。常用电路模型如所示。采用第二级寄存器输出作为全局复位信号输出。

//  异步复位处理
wire        sys_rst_n;
reg [1:0]  rst_r;
always @(posedge clk or negedge rst_n)  beginif(!rst_n)rst_r <= 2’d0;else     rst_r <= {rst_r[0], 1’b1};
end
assign sys_rst_n = rst_r[1];

通过上面三种方式处理异步信号、异步数据、以及异步复位可有效的提高系统的稳定性。减少亚稳态的产生。

9、sram,falsh memory,及dram的区别?(新太硬件面试)

EEPROM、EPROM、FLASH、SRAM、DRAM、SDRAM的区别

EEPROM,EPROM,FLASH 都是基于一种浮栅管单元(Floating gate transister)的结构。EPROM的浮栅处于绝缘的二氧化硅层中,充入的电子只能用紫外线的能量来激出,EEPROM的单元是由FLOTOX(Floating- gate tuneling oxide transister)及一个附加的Transister组成,由于FLOTOX的特性及两管结构,所以可以单元读/写。技术上,FLASH是结合EPROM和EEPROM技术达到的,很多FLASH使用雪崩热电子注入方式来编程,擦除和EEPROM一样用 Fowler-Nordheim tuneling。但主要的不同是,FLASH对芯片提供大块或整块的擦除,这就降低了设计的复杂性,它可以不要 EEPROM单元里那个多余的Tansister,所以可以做到高集成度,大容量,另FLASH的浮栅工艺上也不同,写入速度更快。

其实对于用户来说,EEPROM和FLASH 的最主要的区别就是
1。EEPROM 可以按“位”擦写,而FLASH 只能一大片一大片的擦。
2。EEPROM 一般容量都不大,如果大的话,EEPROM相对与FLASH 就没有价格上的优势了。市面上卖的stand alone 的EERPOM 一般都是在64KBIT 以下,而FLASH 一般都是8MEG BIT 以上(NOR 型)。
3。读的速度的话,应该不是两者的差别,只是EERPOM一般用于低端产品,读的速度不需要那么快,真要做的话,其实也是可以做的和FLASH差不多。
4。因为EEPROM的存储单元是两个管子而FLASH 是一个(SST的除外,类似于两管),所以CYCLING 的话,EEPROM比FLASH 要好一些,到1000K次也没有问题的。
总的来说,对与用户来说,EEPROM和FLASH没有大的区别,只是EEPROM是低端产品,容量低,价格便宜,但是稳定性较FLASH要好一些。但对于EEPROM和FLASH的设计来说,FLASH则要难的多,不论是从工艺上的还是从外围电路设计上来说。

Flash memory指的是“闪存”,所谓“闪存”,它也是一种非易失性的内存,属于EEPROM的改进产品。它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而EEPROM则可以一次只擦除一个字节(Byte)。目前“闪存”被广泛用在PC机的主板上,用来保存BIOS程序,便于进行程序的升级。其另外一大应用领域是用来作为硬盘的替代品,具有抗震、速度快、无噪声、耗电低的优点,但是将其用来取代RAM就显得不合适,因为RAM需要能够按字节改写,而Flash ROM做不到。

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。
RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
DRAM分为很多种,常见的主要有FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等,这里介绍其中的一种DDR RAM。DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势,事实上击败了Intel的另外一种内存标准-Rambus DRAM。在很多高端的显卡上,也配备了高速DDR RAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。
举个例子,手机软件一般放在EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM中的,不是马上写入通过记录(通话记录保存在EEPROM中),因为当时有很重要工作(通话)要做,如果写入,漫长的等待是让用户忍无可忍的。
FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据 (NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NADN Flash。NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。
一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。目前市面上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash的主要厂家有Samsung和Toshiba。

SRAM,DRAM,SDRAM
SRAM 是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。"静态"是指只要不掉电,存储在SRAM中的数据就不会丢失。这一点与动态RAM(DRAM)不同,DRAM需要进行周期性的刷新操作。 然后,我们不应将SRAM与只读存储器(ROM)和Flash Memory相混淆,因为SRAM是一种易失性存储器,它只有在电源保持连续供应的情况下才能够保持数据。"随机访问"是指存储器的内容可以以任何顺序访问,而不管前一次访问的是哪一个位置。
SRAM中的每一位均存储在四个晶体管当中,这四个晶体管组成了两个交叉耦合反向器。这个存储单元具有两个稳定状态,通常表示为0和1。另外还需要两个访问晶体管用于控制读或写操作过程中存储单元的访问。因此,一个存储位通常需要六个MOSFET。对称的电路结构使得SRAM的访问速度要快于DRAM。 SRAM比DRAM访问速度快的另外一个原因是SRAM可以一次接收所有的地址位,而DRAM则使用行地址和列地址复用的结构。
SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。
从晶体管的类型分,SRAM可以分为双极性与CMOS两种。从功能上分,SRAM可以分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。

参考:
(1)https://blog.csdn.net/qq_37363005/article/details/97890745
(2)https://blog.csdn.net/shanekong/article/details/29638699
(3)http://xfjane.spaces.eepw.com.cn/articles/article/item/77910

FPGA工程师笔试面试题(一)相关推荐

  1. 测试工程师---笔试面试题

    测试工程师-笔试面试题 文章目录 测试工程师---笔试面试题 前言 一.代码题 二.问答题 前言 目前面试了大大小小很多公司,投的简历也是数不胜数,看的大部分是校招,尽管如此,还是感觉笔试有一些难度, ...

  2. C语言开发工程师笔试面试题整理(七)——数据库SQL

    1.简述一下数据库的三大范式(2020兴业数金面试题) 答:第一范式(1NF):原子性 字段不可再分,否则就不是关系数据库; 第二范式(2NF):唯一性 一个表只说明一个事物; 第三范式(3NF):每 ...

  3. 软件测试工程师笔试面试题带答案(一)

    笔试部分: 1.列举你常用的测试工具和bug管理工具,并分别说明他们的特点: 2.http请求和http响应的内容是什么? 答:HTTP请求的四个部分:1.HTTP请求的方法或者动作,GET或者POS ...

  4. 嵌入式软件工程师笔试面试题

    题目一 上个星期,去深圳一家搞ARM开发的公司面试,HR叫我做了一份卷子,里面都是C编程,心中暗喜,因为这些题基本上都在程序员面试宝典里见过.后来回到学校,在网上搜索,原来这些题都是嵌入式工程师的经典 ...

  5. java工程师笔试面试题

    1. J2EE 是什么?它包括哪些技术? 解答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的 J2 ...

  6. IC/FPGA笔试/面试题分析(九)关于FIFO最小深度计算的问题

    IC/FPGA逻辑设计笔试题中最常见的体型莫过于FIFO最小深度的计算了,以前看到过计算FIFO最小深度,需要代入公式,直到看到这篇文档,才觉得使用逻辑分析的方法来看更能让人理解的更为深刻. 文档把计 ...

  7. IC/FPGA笔试/面试题分析(八)近期IC/FPGA笔试面试讨论群题目汇总解析

    背景:IC前端设计/FPGA笔(面)试交流群,欢迎同行加入 自从开始邀请同行加入笔试面试交流群之后,目前已经有40多位同行加入,大家踊跃发言,各抒己见,让各自受益匪浅. 今天的这篇博文是将近期部分题目 ...

  8. IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析

    自从召集2020届校招同行加入新建立的"IC/FPGA校招笔试面试交流群",见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知 ...

  9. 常见数字IC设计、FPGA工程师面试题

    转载自:常见数字IC设计.FPGA工程师面试题 我怕弄丢了,找不到了,所以转载过来吧,回答的还挺具有参考意义. 借个位置,顺便把另外一篇好文的地址附上:FPGA中的亚稳态 1:什么是同步逻辑和异步逻辑 ...

  10. (35)FPGA面试题FPGA工程师努力的方向

    1.1 FPGA面试题FPGA工程师努力的方向 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题FPGA工程师努力的方向: 5)结束语. 1.1.2 本节引 ...

最新文章

  1. MLIR算子量化Quantization
  2. hyperopt中文文档:Parallelizing-Evaluations-During-Search-via-MongoDB
  3. 11. 盛最多水的容器 golang
  4. [美团 CodeM 初赛 Round A]最长树链
  5. 史上最经典CAP讲解
  6. 越狱解决iphone4s外放无声音
  7. 梦幻粉色空间手机背景素材,爱梦想的设计师
  8. 苏州科技学院计算机组成原理考试,苏州科技学院计算机组成原理复习提纲.doc...
  9. Visual Studio Code for DBA的介绍
  10. SNS类游戏cache server设计浅析
  11. Centos 7忘记密码,如何重置
  12. win10隐藏桌面功能
  13. 揭密360急速免杀系列教程
  14. 手机刷入面具_【手机改造计划】搞机助手 - 小白刷机必备工具,搞机一条龙:解锁、root、刷面具、刷xposed框架、模块下载安装、自动救砖...
  15. vue实现登录验证码
  16. 编译原理 --- 正规式和有限自动机
  17. 计算机无法复制大文件格式,U盘复制文件电脑提示文件过大无法复制怎么解决?...
  18. 树莓派安装MPlayer播放器
  19. 鸽巢排序Pigeonhole sort
  20. 微型计算机中什么是小随机储存器,随机存取存储器

热门文章

  1. Java并发编程系列文章目录帖及源码
  2. 快速入门丨篇八:如何进行运动控制器EtherCAT总线的基础使用?
  3. html中所用到的英语单词怎么写,8的英语单词怎么写
  4. cad批量打印快捷键_基础教程——CAD的批量打印功能
  5. Java面试题2.0--solr
  6. Xshell连接服务器编写代码(windows+Xshell+阿里云主机)
  7. 校园邮箱免费激活idea教程
  8. JAVA读取NC文件的工具包
  9. 在virtualbox安装xp系统及安装oracle
  10. javascript视频教程下载