FPGA工程师面试笔试试题_第1页
FPGA工程师面试笔试试题_第2页
FPGA工程师面试笔试试题_第3页
FPGA工程师面试笔试试题_第4页
FPGA工程师面试笔试试题_第5页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA 工程师面试试题 001、 同步电路和异步电路的区别是什么?(仕兰微电子)2、 什么是同步逻辑和异步逻辑?(汉王笔试)整个设计中只有一个全局时钟成为同步逻辑。多时钟系统逻辑设计成为异步逻辑。同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.3、什么是"线与 "逻辑 ,要实现它,在硬件特性上有什么具体要求?(汉王笔试)线与逻辑是两个输出信号相连可以实现与的功能.在硬件上,要用 oc 门来实现,由于不用oc 门可能使灌电流过大,而烧坏逻辑门. 同时在输出端口应加一个上拉电阻.4、什么是Setup 和 Holdup 时间 ?(汉王笔试)5、 se

2、tup 和 holdup 时间 ,区别.(南山之桥)6、解释setup time 和 hold time 的定义和在时钟信号延迟时的变化 .(未知 )7、解释setup和hold time violation,画图说明,并说明解决办法.(威盛VIA2003.11.06 上海笔试试题 )Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求.建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间.输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下

3、一个时钟上升沿,数据才能被打入触发器. 保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间.如果hold time 不够 ,数据同样不能被打入触发器 .建立时间(Setup Time)和保持时间(Hold time).建立时间是指在时钟边沿前,数据信号需要保持不变的时间.保持时间是指时钟跳变边沿后数据信号需要保持不变的时间.如果不满足建立和保持时间的话,那么 DFF 将不能正确地采样到数据,将会出现metastability 的情况 .如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间 ,那么超过量就分别被称为建立时间裕量和保持时间裕量.8、说说对数字逻辑中的竞争和冒险的理

4、解,并举例说明竞争和冒险怎样消除.(仕兰微电子 )9、什么是竞争与冒险现象?怎样判断?如何消除?(汉王笔试)在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争 .产生毛刺叫冒险.如果布尔式中有相反的信号则可能产生竞争和冒险现象.解决方法:一是添加布尔式的消去项,二是在芯片外部加电容.10、你知道那些常用逻辑电平?TTL 与 COMS 电平可以直接互连吗?(汉王笔试)RS232负逻辑 -15-3 1; +3+15 0; 20kbps;双向,全双工RS485/422 差分传输+2+61 ; -2-60;双向,半双工/单向,半双工;10M常用逻辑电平:12V,5V,

5、3.3V;TTL 和 CMOS 不可以直接互连,由于 TTL 是在 0.3-3.6V 之间 ,而CMOS则是有在12V的有在5V的.CMOS输出接到 TTL是可以直接互连.TTL接到CMOS 需要在输出端口加一上拉电阻接到 5V 或者 12V.TTL,cmos ,不能直连LVDS:LVDS ( Low Voltage Differential Signal )即低电压差分信号, LVDS 接口又称 RS644 总线接口,是20 世纪 90 年代才出现的一种数据传输和接口技术。ECL : (EmitterCoupled Logic) 即射极耦合逻辑,是带有射随输出结构的典型输入输出接口电路CML

6、: CML 电平是所有高速数据接口中最简单的一种。其输入和输出是匹配好的,减少了外围器件,适合于更高频段工作。11、如何解决亚稳态.(飞利浦-大唐笔试)稳态时 ,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上.在这个稳定期间 ,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去.12、 IC 设计中同步复位与异步复位的区别.(南山之桥)13、 MOORE 与 MEELEY 状态机的特征.(南山之桥)14、多时域设计中,如何处理信号跨时域.(南山之桥)15、给了reg 的 setup,hold 时间 ,求中间

7、组合逻辑的delay 范围.(飞利浦-大唐笔试 )Delay < period - setup - hold迟为T2max,最小为T2min.问,触发器D2的建立时间T3和保持时间应满足什么条件.(华为)17、给出某个一般时序电路的图,有Tsetup,Tdelay,Tck->q,还有clock的delay,写出决定最大时钟的因素,同时给出表达式.(威盛VIA 2003.11.06 上海笔试试题 )18、说说静态、动态时序模拟的优缺点.(威盛VIA 2003.11.06 上海笔试试题 )19、一个四级的Mux, 其中第二级信号为关键信号如何改善 timing.( 威盛 VIA2003

8、.11.06 上海笔试试题 )20、给出一个门级的图,又给了各个门的传输延时,问关键路径是什么,还问给出输入,使得输出依赖于关键路径.(未知 )21、逻辑方面数字电路的卡诺图化简,时序 (同步异步差异),触发器有几种(区别,优点),全加器等等 .(未知 )22、卡诺图写出逻辑表达使.(威盛VIA 2003.11.06 上海笔试试题 )23、化简F(A,B,C,D)= m(1,3,4,5,10,11,12,13,14,15) 的和 .(威盛 )24、 please show the CMOS inverter schmatic,layout and its cross sectionwith P

9、-well process.Plot its transfer curve (V out-Vin) And also explain theoperation region of PMOS and NMOS for each segment of the transfer curve? ( 威盛笔试题 circuit design-beijing-)25、 To design a CMOS invertor with balance rise and fall time,please define the ration of channel width of PMOS and NMOS and

10、 explain?26、为什么一个标准的倒相器中P 管的宽长比要比N 管的宽长比大?(仕兰微电子)27、用mos 管搭出一个二输入与非门.(扬智电子笔试)28、 please draw the transistor level schematic of a cmos 2 input AND gate andexplain which input has faster response for output rising edge.(less delaytime).(威盛笔试题 circuit design-beijing-)29、画出 NOT,NAND,NOR 的符号 ,真值表,还有trans

11、istor level 的电路 .(Infineon 笔试)30、画出 CMOS的图,画出tow-to-one mux gate.(威盛 VIA 2003.11.06 上海笔试试题)31、用一个二选一mux 和一个 inv 实现异或.(飞利浦-大唐笔试)32、画出 Y=A*B+C 的 cmos 电路图.(科广试题)33、用逻辑们和 cmos电路实现ab+cd.(飞利浦-大唐笔试)34、画出CMOS 电路的晶体管级电路图,实现Y=A*B+C(D+E).( 仕兰微电子)35、利用4 选 1 实现 F(x,y,z)=xz+yz .(未知 )36、给一个表达式f=xxxx+xxxx+xxxxx+xxx

12、x 用最少数量的与非门实现(实际上就是化简).37、给出一个简单的由多个NOT,NAND,NOR 组成的原理图,根据输入波形画出各点波形(Infineon 笔试 )38、为了实现逻辑(A XOR B)OR (C AND D), 请选用以下逻辑中的一种,并说明为什么?1)INV2)AND 3)OR 4)NAND 5)NOR 6)XOR 答案:NAND(未知)39、用与非门等设计全加法器.(华为 )40、给出两个门电路让你分析异同.(华为 )41、用简单电路实现,当A为输入时输出B波形为(仕兰微电子)42、A,B,C,D,E进行投票,多数服从少数,输出是F(也就是如果A,B,C,D,E中1的个数比

13、0 多,那么F输出为1,否则F为0),用与非门实现,输入数目没有限制.(未知)43、用波形表示D 触发器的功能.(扬智电子笔试)44、用传输门和倒向器搭一个边沿触发器.(扬智电子笔试)45、用逻辑们画出D 触发器 .(威盛 VIA 2003.11.06 上海笔试试题 )46、画出DFF 的结构图 ,用 verilog 实现之 .(威盛 )47、画出一种CMOS 的 D 锁存器的电路图和版图 .(未知 )48、 D 触发器和 D 锁存器的区别.(新太硬件面试)49、简述latch 和 filp-flop 的异同.(未知 )50、 LATCH 和 DFF 的概念和区别.(未知 )51、latch与

14、register的区别,为什么现在多用register.行为级描述中latch如何产生的.(南山之桥 )52、用D 触发器做个二分颦的电路.又问什么是状态图.(华为 )53、请画出用D 触发器实现2 倍分频的逻辑电路?(汉王笔试)54、怎样用D 触发器、与或非门组成二分频电路?(东信笔试)55、 How many flip-flop circuits are needed to divide by 16? (Intel) 16 分频 ?56、用 filp-flop 和 logic-gate 设计一个 1 位加法器,输入 carryin 和 current-stage,输出 carryout 和

15、 next-stage. (未知 )57、用D 触发器做个4 进制的计数.(华为 )58、实现 N 位 Johnson Counter,N=5.(南山之桥)59、用你熟悉的设计方式设计一个可预置初值的7 进制循环计数器,15进制的呢?(仕兰微电子 )60、数字电路设计当然必问Verilog/VHDL, 如设计计数器.(未知 )61、 BLOCKING NONBLOCKING 赋值的区别.(南山之桥)62、写异步D 触发器的 verilog module.( 扬智电子笔试)module dff8(clk , reset, d, q);inputclk;inputreset;input 7:0 d

16、;output 7:0 q;reg 7:0 q;always (posedge clk or posedge reset)if(reset)q <= 0; elseq <= d; endmodule63、用D 触发器实现2 倍分频的 Verilog 描述 ? (汉王笔试)module divide2( clk , clk_o, reset);inputclk , reset;outputclk_o;wire in;reg out ;always ( posedge clk or posedge reset)if ( reset)out <= 0; else out <=

17、 in;assign in = out;assign clk_o = out; endmodule64、可编程逻辑器件在现代电子设计中越来越重要,请问 :a) 你所知道的可编程逻辑器件有哪些 ? b) 试用 VHDL 或 VERILOG 、 ABLE 描述 8 位 D 触发器逻辑.(汉王笔试 )PAL,PLD,CPLD,FPGA.module dff8(clk , reset, d, q);inputclk;inputreset;input d;output q;reg q;always (posedge clk or posedge reset)if(reset)q <= 0; els

18、eq <= d; endmodule65、请用HDL 描述四位的全加法器、 5 分频电路.(仕兰微电子)66、用VERILOG 或 VHDL 写一段代码,实现10进制计数器.(未知 )67、用VERILOG 或 VHDL 写一段代码,实现消除一个glitch.( 未知 )68、一个状态机的题目用verilog 实现(不过这个状态机画的实在比较差,很容易误解的).(威盛VIA 2003.11.06 上海笔试试题 )69、描述一个交通信号灯的设计.(仕兰微电子)70、画状态机,接受1,2,5 分钱的卖报机,每份报纸 5 分钱 .(扬智电子笔试)71、设计一个自动售货机系统,卖soda水的,只

19、能投进三种硬币,要正确的找回钱数.(1)画出fsm(有限状态机);(2)用verilog编程,语法要符合fpga设计的要求.(未知 )72、设计一个自动饮料售卖机,饮料10 分钱 ,硬币有 5 分和 10 分两种 ,并考虑找零:(1) 画出fsm(有限状态机);(2)用verilog编程,语法要符合fpga设计的要求;(3)设计工程中可使用的工具及设计大致过程.(未知 )73、画出可以检测10010 串的状态图,并 verilog 实现之.(威盛)74、用FSM 实现 101101 的序列检测模块.(南山之桥)a 为输入端 ,b 为输出端 ,如果 a 连续输入为 1101 则 b 输出为 1,

20、否则为 0.请画出 state machine;请用 RTL 描述其 state machine.(未知)75、用verilog/vddl 检测 stream 中的特定字符串 (分状态用状态机写).(飞利浦-大唐笔试 )76、用verilog/vhdl 写一个 fifo 控制器(包括空,满 ,半满信号).(飞利浦-大唐笔试)77、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y=lnx, 其中 ,x为 4 位二进制整数输入信号 .y 为二进制小数输出,要求保留两位小数.电源电压为35v 假设公司接到该项目后 ,交由你来负责该产品的设计,试讨论该产品的设计全程.(仕兰微电子 )78

21、、sram,falsh memory,及dram的区别?(新太硬件面试)79、给出单管DRAM 的原理图(西电版数字电子技术基础作者杨颂华、冯毛官205 页图9-14b),问你有什么办法提高refresh time,总共有5个问题,记不起来了 .(降低温度,增大电容存储容量)(Infineon 笔试 )80、 Please draw schematic of a common SRAM cell with 6 transistors,point outwhich nodes can store data and which node is word line control? ( 威盛笔试题c

22、ircuit design-beijing-)81、名词:sram,ssram,sdram名词 IRQ,BIOS,USB,VHDL,SDRIRQ:Interrupt ReQuestBIOS:Basic Input Output SystemUSB:Universal Serial BusVHDL: VHIC Hardware Description LanguageSDR:Single Data Rate压控振荡器的英文缩写 (VCO).动态随机存储器的英文缩写 (DRAM).名词解释 ,无聊的外文缩写罢了,比如PCI、 ECC、 DDR 、 interrupt、 pipeline 、IRQ,

23、BIOS,USB,VHDL,VLSI VCO( 压控振荡器) RAM ( 动态随机存储器),FIR IIR DFT( 离散FPGA 工程师面试试题 011 什么是 Setup 和 Holdup 时间?2 什么是竞争与冒险现象?怎样判断?如何消除?3 用 D 触发器实现2 倍分频的逻辑电路? 4 什么是 " 线与 " 逻辑,要实现它,在硬件特性上有什么具体要求?5 什么是同步逻辑和异步逻辑?6 请画出微机接口电路中, 典型的输入设备与微机接口逻辑示意图 (数据接口、 控制接口、 所存器/缓冲器)。7 你知道那些常用逻辑电平? TTL 与 COMS 电平可以直接互连吗?8 可编

24、程逻辑器件在现代电子设计中越来越重要,请问:你所知道的可编程逻辑器件有哪些?9 试用 VHDL 或 VERILOG 、 ABLE 描述 8位 D 触发器逻辑。10 设想你将设计完成一个电子电路方案。 请简述用 EDA 软件 (如 PROTEL ) 进行设计 (包 括原理图和 PCB 图)到调试出样机的整个过程。在各环节应注意哪些问题?11 用逻辑门和 cmos 电路实现 ab+cd12 用一个二选一mux 和一个 inv 实现异或13 给了 reg 的 setup,hold 时间,求中间组合逻辑的 delay 范围。14 如何解决亚稳态15 用 verilog/vhdl 写一个 fifo 控制

25、器16 用 verilog/vddl 检测 stream 中的特定字符串17 用 mos 管搭出一个二输入与非门。18 集成电路前段设计流程,写出相关的工具。19 名词 IRQ,BIOS,USB,VHDL,SDR 20 unix 命令 cp -r, rm,uname21 用波形表示D 触发器的功能22 写异步 D 触发器的 verilog module23 What is PC Chipset?24 用传输门和反向器搭一个边沿触发器25 画状态机,接受 1 , 2 , 5 分钱的卖报机,每份报纸5 分钱答案1 什么是 Setup 和 Holdup 时间?建立时间(Setup Time)和保持时

26、间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。见图 1 。如果不满足建立和保持时间的话, 那么 DFF 将不能正确地采样到数据, 将会出现 metastability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间, 那么超过量就分别被称为建立时间裕量和保持时间裕量。图 1 建立时间和保持时间示意图2 什么是竞争与冒险现象?怎样判断?如何消除?在组合逻辑中, 由于门的输入信号通路中经过了不同的延时, 导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒

27、险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。3 用 D 触发器实现2 倍分频的逻辑电路?Verilog 描述:module divide2( clk , clk_o, reset);input clk , reset;outputclk_o;wire in;reg out ;always ( posedge clk or posedge reset)if ( reset)out <= 0;elseout <= in;assign in = out;assign clk_o = out;endmodule图形描述:4 什么是 " 线与 " 逻辑

28、,要实现它,在硬件特性上有什么具体要求?线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用 oc 门来实现,由于不用 oc 门可能使灌电流过大,而烧坏逻辑门。同时在输出端口应加一个上拉电阻。5 什么是同步逻辑和异步逻辑?同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。6 请画出微机接口电路中, 典型的输入设备与微机接口逻辑示意图 (数据接口、 控制接口、所存器/缓冲器)。7 你知道那些常用逻辑电平? TTL 与 COMS 电平可以直接互连吗?TTL 和 CMOS 不可以直接互连,由于TTL 是在 0.3-3.6V 之间,而 CMOS 则是有在 12V 的有在

29、 5V 的。 CMOS 输出接到 TTL 是可以直接互连。 TTL 接到 CMOS 需要在输出端口加一 上拉电阻接到 5V 或者 12V 。8 可编程逻辑器件在现代电子设计中越来越重要,请问:你所知道的可编程逻辑器件有哪些?PAL, PLD , CPLD , FPGA 。9 试用 VHDL 或 VERILOG 、 ABLE 描述 8位 D 触发器逻辑。module dff8(clk , reset, d, q);inputclk;inputreset;input 7:0 d;output 7:0 q;reg 7:0 q;always (posedge clk or posedge reset)

30、if(reset)q <= 0;elseq <= d;endmodule10 设想你将设计完成一个电子电路方案。 请简述用 EDA 软件 (如 PROTEL ) 进行设计 (包括原理图和 PCB 图)到调试出样机的整个过程。在各环节应注意哪些问题?电源的稳定上,电容的选取上,以及布局的大小。11 用逻辑门和 cmos 电路实现 ab+cd12 用一个二选一mux 和一个 inv 实现异或13 给了 reg 的 setup,hold 时间,求中间组合逻辑的 delay 范围。Delay < period - setup - hold14 如何解决亚稳态亚稳态是指触发器无法在某个

31、规定时间段内达到一个可确认的状态。 当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间, 触发器输出一些中间级电平, 或者可能处于振荡状态, 并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。15 用 verilog/vhdl 写一个 fifo 控制器 包括空,满,半满信号。16 用 verilog/vddl 检测 stream 中的特定字符串 分状态用状态机写。17 用 mos 管搭出一个二输入与非门。18 集成电路前段设计流程,写出相关的工具。19 名词 IRQ,BIOS,USB,VHDL,SDRIRQ:Int

32、errupt ReQuestBIOS: Basic Input Output SystemUSB: Universal Serial BusVHDL: VHIC Hardware Description LanguageSDR: Single Data Rate20 unix 命令 cp -r, rm,uname21 用波形表示D 触发器的功能22 写异步 D 触发器的 verilog modulemodule dff8(clk , reset, d, q);inputclk;inputreset;input d;output q;reg q;always (posedge clk or po

33、sedge reset)if(reset)q <= 0;elseq <= d; endmodule23 What is PC Chipset?芯片组(Chipset )是主板的核心组成部分,按照在主板上的排列位置的不同,通常分为北桥芯片和南桥芯片。北桥芯片提供对CPU 的类型和主频、内存的类型和最大容量、ISA/PCI/AGP插槽、ECC纠错等支持。南桥芯片则提供对KBC (键盘控制器)、RTC (实时时钟控制器) 、 USB (通用串行总线) 、 Ultra DMA/33(66)EIDE 数据传输方式和 ACPI (高级能源管理)等的支持。其中北桥芯片起着主导性的作用,也称为主桥

34、( Host Bridge ) 。除了最通用的南北桥结构外, 目前芯片组正向更高级的加速集线架构发展, Intel 的 8xx系列芯片组就是这类芯片组的代表,它将一些子系统如 IDE 接口、音效、 MODEM 和 USB 直接接入主芯片,能够提供比 PCI 总线宽一倍的带宽,达到了 266MB/s 。24 用传输门和反向器搭一个边沿触发器25 画状态机,接受 1 , 2 , 5 分钱的卖报机,每份报纸5 分钱FPGA 工程师面试试题 02这段时间去面试了几家公司, 发现比较大的公司相对于重视基础问题。 这里边又有几个问题特别的突出。他们是:同步时钟设计、亚稳态、异步 FIFO 。可以说,这些个

35、问题要是弄清楚了,就至少满足了技术方面1/3 的要求,另外的 2/3 是什么,我就说不清楚了。又有人发了竞争冒险毛刺的问题, 不过, 对于采用同步设计方法的系统,这些问题一般不会遇到。下面就谈谈我对这些问题的看法, 要是你觉得看这些东西觉得类似一堆狗屎, 那么恭喜你, 你面试成功的机会增加了 1/3 ; 要是你你觉得阿, 什么样的牛人拉了一堆牛屎, 那么不好意思,还是再去补补课把。这里推荐一本数字设计原理和实践 (John F.Wakerly) 的书,仔细看一遍吧。同步时钟设计简单说就是一个系统中 (或系统中的一部分) 都采用同一个时钟触发。 系统中的(D)触发器全部都连接到一个时钟,而且只控

36、制触发器的同步端(输入,同步置位,同步复位) 。这样的系统是相对于异步系统而言的,异步系统并不是不同的触发器时钟端连接到不同的时钟信号的系统 (一般的这样叫做跨时钟系统, 是相对几个较小的同步系统的组合) ,而是更本没有了时钟的概念, 依靠和触发器构造一样的反馈电路组成。 相对于异步系统, 同步系统更好设计(异步设计则象一个魔术, 类似于汇编和高级语言的关系) ,更容易进行时序分析(为什么要用D 触发器而不用 D 锁存器 ) 在这里组合逻辑的竞争冒险毛刺问题都不存在了。应该说,同步系统最大的问题在于时钟的偏斜(skew) 。同步时钟系统也存在一些涉及的技巧, 这些技巧一般围绕着降低关键路径的延

37、时和时间和空间的平衡。 这些都是平衡的艺术(了解了基本的部件之后,剩下的工作就是一个字"平衡 "),这里边的方法就太具体,而且本人也知道得不多, 不敢乱说了。不过, 只要你用过一种方法,就可以体会到其中的精神了。亚稳态这是跨时钟设计中最基础的一个问题(宏观的问题是FIFO) ,按照我的观察,上论坛问问题多的一般不明白这个, 请一定要注意了。 什么是亚稳态?数字电路中的简单双稳态电路就是两个反相器首尾相连组成(加一些控制逻辑变成了锁存器,触发器) ,然而并不像名字显示的, 这种电路其实还有第三种半稳定态就是当两个反相器都处于中间值得情况这称之为亚稳态。 我们知道反相器在非逻辑

38、值范围的反馈系数是相当大的, 一旦因为干扰或者噪音离开了这个中心点,就会很快地进入逻辑值范围(稳态) 。数学分析,从亚稳态进入稳态, 正如放射元素的衰变, 是一个指数的规律 (为什么是指数的规律?你要是想不明白,说明你还没有搞明白亚稳态) 。那么,亚稳态的危害到底是什么呢?消耗功率; ) ,其实不是(虽然亚稳态消耗很大的功率) ,亚稳态的问题在于其电平并不处于有效逻辑电平范围内,而且在变化。这就导致与其相连其他数字部件将其作出不同的判断(注意,不同) ,有的作为'1',有的作为'0',有的也进入了亚稳态,数字部件就会逻辑混乱。那么究竟如何避免(或者减小 )亚稳态

39、的危险呢?注意到亚稳态的触发器继续停留在亚稳态的几率按照指数减少,那么办法就是等等足够长的时间,直到这个几率变得小的实际上不会发生。到底需要有多长呢?有的厂商有一个数据, 有的没有, 按照普通的做法, 至少等一个时钟周期这也就是所谓的异步数据要用两个触发器打一下。 这一段有点糊涂, 不容易说明白, 你看了要是 觉得云里雾里, 不知所云,那们你只有找一本书学习了; 要是觉得作者表达不清, 那么恭喜你, 面试通过了的几率增加了。 关于这个问题有很多糊涂的认识, 要是你的主考官和你争论,你就顺着他的意思,毕竟没有人想找一个管教不了的手下。异步 FIFO 异步 FIFO 是跨时钟域设计方法的集中体现,

40、体现了很多的方法。不过,其中最重要的有两点, 一个就是亚稳态,一个就是和亚稳态类似但不相同的多个控制/状态信号的跨时钟传递。 具体地说, 就是当你把一组信号传递到另外一个时钟域的话, 这一组信号可能因为延迟不同, 这样到达新时钟域之后, 得到的数据相差一个老时钟域的时钟周期。 兴好,对于 FIFO ,需要传递的是一个计数器,这个计数器可以编码成格雷码(gray code) ,这样的编码每次只变化一个位,正好解决了上面的问题(要是没有画过图,最好画一个图看一下) 。真不清楚这是怎么发明的!注意,这里其实还对格雷码的相对延迟和相关的时钟周期有一个要求。这就是异步 FIFO 中最关键的一点,至于指针

41、如何控制,稍微考虑一下都很容易清楚。需要注意的事, 这些东西不是用嘴能说清楚的, 最好画一个示意图,不要因为没有说清楚,让主考官觉得你没有清楚。当然, 除此之外还有很多很多的东西。比如组合逻辑的设计技巧, 俺就没有研究。 比如高速布线信号完整性问题,俺也不敢多说。至于整个系统的设计思想, 更不敢妄语。不过如果只要你有一个问题了解到了相当的深度,相信你很容易搞清楚其他问题。FPGA 工程师面试试题 034 个 FPGA 工程师面试题目(经历)FPGA 与 CPLD 内部结构区别? CPLD以 altraMAX7000 这种 PLD 为例,可分为三块结构:宏单元( Marocell) ,可编程连线

42、( PIA) 和 I/O 控制块。宏单元是PLD 的基本结构,由它来实现基本的逻辑功能。可编程连线负责信号传递,连接所有的宏单元。 I/O 控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。这种基于乘积项(实际就是与或阵列)的 PLD 基本都是由 EEPROM 和 Flash 工艺制 造的, 一上电就可以工作, 无需其他芯片配合。 布线方式是全局的, 所以延时可预测。 CPLD 适合做逻辑设计。FPGAFPGA 基于 LUT , LUT 本质上就是一个RAM ,每一个 LUT 可以看成一个有4 位地址线的 16x1 的 RAM 。这也是为什么 FPGA 需要外

43、接一个rom 来上电配置。以 xilinx 的 Spartan-II 为例, 主要包括 CLBs , I/O 块, RAM 块和可编程连线。 在 spartan-II 中,一个CLB包才2个Slices,每个slices包括两个LUT ,两个触发器和相关逻辑。Slices可以看成是SpartanII实现逻辑的最基本结构。FPGA 的制造工艺确定了FPGA 芯片中包含的LUT 和触发器的数量非常多, 往往都是几千上万,PLD 一般只能做到512 个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA 的平均逻辑单元成本大大低于 PLD 。 所以如果设计中使用到大量触发器, 例如设计一 个复杂的

44、时序逻辑,那么使用 FPGA 就是一个很好选择。2 .Latch 和 Register 区别?行为描述中 Latch 如何产生?本质的区别在于: latch 是电平触发, reg 是边沿触发。时序设计中尽量使用 reg 触发。行为描述中,如果对应所有可能输入条件,有的输入没有对应明确的输出,系统会综合出latch。比如:always( a or b) 缺少 else 语句beginif(a=1)q <= b;end3 .对竞争冒险的理解,以及如何消除?在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。 产生毛刺叫冒险。 如果布尔式中有相反的信号则可能产

45、生竞争和冒险现象。 解 决方法:一是添加布尔式的消去项,二是在芯片外部加电容。4 .用 Verilog 设计一个 5 分频器。5 分频,奇数分频都可以类似这么做, 只需要改 div1 和 div2 的参数。 div1 为奇数分频除 2 的余数。采用上升延和下降延分别触发不同波形,最后叠加的方式产生奇数分频。module divfreq(clk, clk1x, rst, clk1xpose, clk1xnege, coutpose, coutnege);input clk;input rst;output clk1x;output clk1xpose;output clk1xnege;outpu

46、t2:0 coutpose;output2:0 coutnege;reg clk1xpose;reg clk1xnege;reg2:0 coutpose;reg2:0 coutnege;parameter divl = 2 , div2 = 4;/ divl = 5 / 2, div2 = 5 - 1assign clk1x = clk1xpose | clk1xnege;always(posedge clk or negedge rst)beginif(!rst)clk1xpose = 0;else if(coutpose = div1)clk1xpose = clk1xpose;else

47、if(coutpose = div2)clk1xpose = clk1xpose;elseclk1xpose = clk1xpose;endalways(negedge clk or negedge rst) beginif(!rst)clk1xnege = 0;else if(coutnege = div1)clk1xnege = clk1xnege;else if(coutnege = div2)clk1xnege = clk1xnege;elseclk1xnege = clk1xnege;endalways(posedge clk or negedge rst)beginif(!rst)

48、coutpose = 0;else if(coutpose = div2)coutpose = 0;elsecoutpose = coutpose + 1;endalways(negedge clk or negedge rst)beginif(!rst)coutnege = 0;else if(coutnege = div2)coutnege = 0;elsecoutnege = coutnege + 1;endendmodule一、填空题:1、 FPGA 结构一般分为三部分: 可编程逻辑块(CLB)、 可编程 I/O 模块和可编程内部连线。2、 CPLD 的内部连线为连续式布线互连结构,任

49、意一对输入、输出端之间的延时是固定FPGA 的内部连线为分段式布线互连结构,各功能单元间的延时不定(不可预测 )。3、 大规模可编程器件主要有CPLD 和 FPGA 两类, 其中 CPLD 通过可编程乘积项逻辑实现其逻辑功能。 基于 SRAM 的 FPGA 器件,每次上电后必须进行一次配置。 FPGA 内部阵列的配置一般采用在电路可重构技术,编程数据保存在静态存储器(SRAM) ,掉电易失。4、 目前世界上有十几家生产 CPLD/FPGA 的公司,最大的两家是: Altera , Xilinx 。5、 硬件描述语言(HDL) 是 EDA 技术的重要组成部分, 是电子系统硬件行为描述、 结构描述

50、、数据流描述的语言,它的种类很多,如 VHDL 、 Verilog HDL 、 AHDL6、 WHEN_ELSE 条件信号赋值语句 和 IF_ELSE 顺序语句的异同:* WHEN_ELSE 条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。 * IF_ELSE 顺序语句中有分号;是顺序语句,必须放在进程中7、 可编程逻辑器件设计输入有原理图输入、硬件描述语言输入和波形输入三种方式。原理图输入方式是一种最直接的设计描述方式, 波形设计输入适用于时序逻辑和有重复性的逻辑函数。 硬件描述语言的突出优点是:* 语言与工艺的无关性;语言的公开可利用性,便于实现大规模

51、系统的设计;* 具有很强逻辑描述和仿真功能,而且输入效率高,在不同设计输入库之间的转换非常方便,用不着对底层的电路和 PLD 结构的熟悉。8、用VHDL/Veilog HDL 语言开发可编程逻辑电路的完整流程:文本编辑-功能仿真-逻 辑综合-布局布线-时序仿真。* 所谓综合,就是根据设计功能和实现该设计的约束条件(如面积、速度、功耗和成本等) ,将设计输入转换成满足要求的电路设计方案,该方案必须同时满足与其的功能和约束条件。综合的过程也是设计目标的优化过程,其目的是将多个模块化设计文件合并为一个网表文件,供布局布线使用,网表中包含了目标器件中的逻辑单元和互连的信息。* 布局布线就是根据设计者指

52、定的约束条件(如面积、延时、时钟等) 、目标器件的结构资源和工艺特性, 以最优的方式对逻辑元件布局, 并准确地实现元件间的互连, 完成实现方案( 网表)到使实际目标器件(FPGA 或 CPLD) 的变换。/*9、基于EDA软件的FPGA / CPLD设计流程为:原理图/HDL文本输入-功能仿真-综合-适配-时序仿真-编程下载-硬件测试。*综合是EDA设计的关键步骤,综合就是将电路的高级语言转换成低级的, 可与 FPGA/CPLD 相映射的功能网表文件。 为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束。10 、构成一个完整的VHDL 语言程序的五个基本结构:实体 (ENTI

53、TY) 、 结构体 (ARCHITECURE) 、 配置 (CONFIGURATION) 、 库 (LIBRARY) 、 程 序包 (PACKAGE) 。* 实体的由实体说明和结构体两部分组成。实体说明部分用于描述所设计系统的外部端口信号和参数的属性和设置, 而结构体部分则定义了设计单元的具体功能、 行为、 数据流程或内部结构。* 结构体的三种描述方式,即行为级描述、数据流级描述和结构级描述。 * 结构体通常由结构体名称、 定义语句和并行处理语句构成。 * 程序包用于存放各设计模块能共享的数据类型、常数、子程序等。* 库用于存放已编译的实体、结构体、程序包和配置,可以通过其目录进行查询和调用。

54、在VHDL语言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。它可由用户生成或由ASIC芯片制造商提供,以便于在设计中为大家所共享。* 库用于存放已编译的实体、结构体、程序包和配置,可以通过其目录进行查询和调用。在VHDL语言中,可以存在多个不同的库,但是库与库之间是独立的,不能互相嵌套。它可由用户生成或由 ASIC 芯片制造商提供,以便于在设计中为大家所共享。 常用库:(1)IEEE 库: IEEE 库主要包括std_logic_1164 、 numeric_bit 、 numeric_std 等程序包,还有一些 程 序 包 非 IEEE 标 准 , 但 并 入 IEEE 库

55、 , 如 std_logic_arich 、 std_logic_unsigned 、 std_logic_signed 。使用 IEEE 程序包,必须声明。 (2) std 库:包含 standard textio 程序包。Std 库符合 IEEE 标准,应用中不必声明。 (3) work 库: 用户的 VHDL 设计先行工作库。(4) vital 库:包含时序程序包 vital_timing 和 vital_primitives 。设计开发过程通常不用,每个设计实体都必须有各自完整的库说明语句和use语句。Use语句的使用将使说明的程序包对本设计实体部分全部开放,即是可视的。/*11、 VHDL 的数据对象包括常量(constant)、 变量 (varuable) 和 信号 (signal) ,它们是用来存放各种类型数据的容器。12、在VHDL 的端口声明语句中,端口方向包括 in 、 out 、 buffer 、 inout 、 linkage 。“BUFFER”为缓冲端口,与 OUT类似,只是缓冲端口允许实体内部使用该端口信号,它可以用于输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论