FPGA学习笔面试记录(二)——FPGA基础

 

 这里我罗列了一个学习思维导图,笔面试过程中遇到的问题,大都涵盖在内,可以参考。基础知识记录如下:

目录

FPGA部分

1.典型FPGA的开发流程

2.FPGA内部资源包括哪些及作用?

3.查找表LUT的原理

4.FPGA芯片内的存储器资源是哪些?

5.选择FPGA时考虑的因素有哪些? 

6.FPGA和CPLD的区别?

7.FPGA和ASIC的区别?

8.FPGA、CPLD、ASIC的区别?

数电部分

1.逻辑函数的表示方法

2.什么是格雷码?

3.为什么要使用格雷码?

4.格雷码有哪些特点?

5.格雷码和独热码的区别

6.二进制转格雷码

7.下面那些是格雷码的特性?(ACD)

8.设计一电路,其输入端为A,B,C,输出端为Y,

Verilog部分 

1.HDL语言的层次概念?

2.FPGA的可综合和不可综合有哪些?

3.verilog基础描述

4.块语句有两种

5.Verilog的3种语言描述方式? 

6.task和function的区别?


FPGA部分

1.典型FPGA的开发流程

2.FPGA内部资源包括哪些及作用

1)输入输出单元(IOB)

可编程输入/输出单元简称 I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求。

2)可编程逻辑块(CLB)

FPGA的基本可编程逻辑单元是由查找表和寄存器组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置成触发器或锁存器。Altera基本可编程单元LE配置为寄存器加一个查找表。

3)底层内嵌功能单元DLL

内嵌功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP 和CPU等软处理核(Soft Core)。

4)丰富的布线资源可编程布线矩阵

布线资源连通FPGA内部的所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。可划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。

5)嵌入式块 RAM(BRAM)

RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。Block RAM由一定数量固定大小的存储块构成,使用BRAM不占用额外逻辑资源,并且速度快。

6)内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。

3.查找表LUT的原理

查找表(look-up-table)简称为LUT,本质上是一个RAM。目前FPGA 中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM,多于4输入逻辑可以使用多个LUT实现。

原理:当用户通过原理图或HDL语言描述了一个逻辑电路以后,CPLD/FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM中,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。LUT可以配置成内部存储器,即分布式RAM。

4.FPGA芯片内的存储器资源是哪些?

FPGA芯片内有两种存储器资源:一种叫block ram,另一种是由LUT配置成的内部存储器(也就是分布式ram)。block ram由一定数量固定大小的存储块构成的,使用block ram,不占用额外的逻辑资源,并且速度快。但是使用的时钟消耗block ram的资源是其大小的整数倍。

FPGA中可以综合实现为RAM/ROM/CAM的三种资源:BLOCK RAM,查找表,FF触发器。

(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)

5.选择FPGA时考虑的因素有哪些? 

6.FPGA和CPLD的区别?

7.FPGA和ASIC的区别?

FPGA,即现场可编程门阵列,是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。在修改和升级时,不需额外地改变PCB 电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本。

ASIC(Application Specific Integrated Circuit),即专用集成电路,是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求, ASIC分为全定制和半定制。亮点在于专用,量身定制所以执行速度较快。一句话总结就是,市场上买不到的芯片。水果的A系列处理器就是典型的ASIC。

8.FPGA、CPLD、ASIC的区别?

数电部分

1.逻辑函数的表示方法

常用的逻辑函数表示方法有逻辑真值表,逻辑函数式,逻辑图,波形图,卡诺图和硬件描述语言等。

2.什么是格雷码?

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码反射码。格雷码(Gray Code)又称Grey Code、葛莱码、格莱码、戈莱码、循环码、反射二进制码、最小差错码等。

3.为什么要使用格雷码?

格雷码是一种具有反射特性和循环特性的单步自补码,其循环和单步特性消除了随机取数时出现重大错误的可能,其反射和自补特性使得对其进行求反操作也非常方便。格雷码属于一种可靠性编码,它在相邻间转换时,只有一位产生变化,它大大减少了一个状态到另一个状态时逻辑的混淆,因此格雷码在通信和测量技术中得到广泛应用。

4.格雷码有哪些特点?

(1)格雷码具有反射特性;

(2)格雷码具有循环特性;

(3)格雷码是一种准权码;

(4)格雷码相邻的码组间仅有一位不同;

(5)格雷码从编码形式上杜绝了逻辑冒险的发生;

(6)卡诺图是按格雷码来画的;

(7)格雷码不是一种二进制;(易错)

5.格雷码和独热码的区别

独热编码占用较多的位,也就是消耗较多的触发器,但这些额外触发器占用的面积可与译码电路省下来的面积相抵消。

6.二进制转格雷码

Gray = (bin>>1) ^ bin;(右移一位后和自身异或)

7.下面那些是格雷码的特性?(ACD)

A、格雷码具有反射特性

B、格雷码是一种二进制

C、格雷码可以减少干扰

D、格雷码相连码组之间只有一个码元不同

8.设计一电路,其输入端为A,B,C,输出端为Y,

要求其功能为:当A=1时,Y=B;当A=0时,Y=C;设计内容包括:

(1)列出真值表;(2)写出Y的最简与或表达式(3)用最少的与非门画出逻辑图。

解:(1)真值表

        A B C Y

        0 0 0 0

        0 0 1 1

        0 1 0 0

        0 1 1 1

        1 0 0 0

        1 0 1 0

        1 1 0 1

        1 1 1 1

(2)Y的与或表达式

  根据(1)真值表,将Y=1里含有1的加起来就行,Y = A’B’C + A’BC + ABC’+ ABC = AB+A’C=AB+A’C,忘了公式也可以画卡诺图,很快就得到答案了。

(3)Y=AB+A’C=((AB)’(A’C)’)’所以只需要4个与非门即可。

Verilog部分 

1.HDL语言的层次概念?

HDL语言是分层次的、类型的,最常用的层次概念有系统与标准级、功能模块级,行为级,寄存器传输级和门级。

系统级,算法级,RTL级(行为级),门级,开关级

2.FPGA的可综合和不可综合有哪些?

可综合:aupply0、supply1、buf、buff0、buff1、notif0、notif1、integer、for、function、instantitation、operators。

不可综合:defparam、$finish、initial、events、real、time、force、release、fork、join、delays、wait、#。

3.verilog基础描述

(1)如果A=1’b1,B=1’b0,F=A&~B|B&~A|B,则F=1’b1。 

(2)y=a+b;属于阻塞赋值语句,执行该语句时,先计算a+b值,然后更新y值,在此过程中不能运算其他语句。

(3)generate,for,function语句可以综合(for循环可综合时,循环变量必须是固定值)。

(4)如果A=4’hb,则^A=1’b1。

解析:~优先级最高,&第二高,|第三高

4.块语句有两种

begin-end语句是(顺序)执行语句;fork-join是(并行)执行语句。

5.Verilog的3种语言描述方式? 

6.task和function的区别?

(1)task可以定义自己的仿真时间单位;

    function只能与主模块共用仿真时间单位;

(2)task是过程性语句,要出现在always块或initial块中;

    function不是过程性语句,不能出现在always块或initial块中;

(3)task可以有时间控制语句,如#,@,wait;

    function不能有时间控制语句;

(4)task可以没有输入输出端口;

    function至少要有一个输入参量;

(5)task不返回值;

    function返回一个值;

(6)task可以调用function;

    function不能调用task;

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1. 2 2. 什么是同步逻辑和异步逻辑? 2 3. 同步电路和异步电路的区别: 2 4. 时序设计的实质: 2 5. 建立时间与保持时间的概念? 2 6. 为什么触发器要满足建立时间和保持时间? 2 7. 什么是亚稳态?为什么两级触发器可以防止亚稳态传播? 2 8. 系统最高速度计算(最快时钟频率)和流水线设计思想: 2 9. 同步复位和异步复位的有何区别? 3 10. 写出一段代码,用来消除亚稳态。 3 11. 写出一段代码,对时钟进行3分频。 4 12. 设计一个glitch free的时钟切换电路逻辑,比如从20m切到50m,讲明理由。 4 13. 如何跨时钟域同步多位信号?有哪些技术? 4 14. 异步FIFO为什么用格雷码 5 15. 时序约束的概念和基本策略? 5 16. 附加约束的作用? 6 17. 锁存器(latch)和触发器(flip-flop)区别? 6 18. FPGA 芯片内有哪两种存储器资源? 6 19. 什么是时钟抖动? 6 20. FPGA 设计中对时钟的使用?(例如分频等) 6 21. IC 设计中同步复位与异步复位的区别 6 22. MOORE 与 MEELEY 状态机的特征 6 23. FPGA 中可以综合实现为 RAM/ROM/CAM 的三种资源及其注意事项? 6 24. 什么是竞争与冒险现象?怎样判断?如何消除? 7 25. 查找表的原理与结构 7 26. 寄生效应在IC设计中怎样加以克服和利用 7 27. 设计一个自动饮料售卖机,饮料10分钱,硬币有5分和10分两种,并考虑找零, 7 28. 数字IC(ASIC)设计流程: 8 29. SERDES的高速串行接口 8 30. 什么是状态编码技术? 解释一下。 8 31. FIFO简单讲解(*) 9 32. IC设计前端到后端的流程和EDA工具? 12 33. FPGA设计中如何实现同步时序电路的延时? 12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是刺猬吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值