数字电路FPGA笔试大全.doc_第1页
数字电路FPGA笔试大全.doc_第2页
数字电路FPGA笔试大全.doc_第3页
数字电路FPGA笔试大全.doc_第4页
数字电路FPGA笔试大全.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

FPGA设计一个很重要的设计是时序设计,而时序设计的实质就是满足每一个触发器的建立(Setup)/保持(Hold)时间的要求。建立时间(Setup Time):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(Hold Time):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不够,数据同样不能被打入触发器。FPGA设计分为同步电路设计和同步电路设计,然而很多异步电路设计都可以转化为同步电路设计,在设计时尽量采用同步电路进行设计。对于同步电路可以转化的逻辑必须转化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。为了让同步电路可靠地运行,就要对时钟偏差进行控制,以使时钟偏差减小到可用的范围。影响时钟偏差的主要有以下几个因素: 用于连接时钟树的连线 钟树的拓扑结构 时钟的驱动 时钟线的负载 时钟的上升及下降时间在通常的FPGA设计中对时钟偏差的控制主要有以下几种方法: 控制时钟信号尽量走可编程器件的的全局时钟网络。在可编程器件中一般都有专门的时钟驱动器及全局时钟网络,不同种类、型号的可编程器件,它们中的全局时钟网络数量不同,因此要根据不同的设计需要选择含有合适数量全局时钟网络的可编程器件。一般来说,走全局时钟网络的时钟信号到各使用端的延时小,时钟偏差很小,基本可以忽略不计。 若设计中时钟信号数量很多,无法让所有的信号都走全局时钟网络,那么可以通过在设计中加约束的方法,控制不能走全局时钟网络的时钟信号的时钟偏差。 异步接口时序裕度要足够大。局部同步电路之间接口都可以看成是异步接口,比较典型的是设计中的高低频电路接口、I/O接口,那么接口电路中后一级触发器的建立-保持时间要满足要求,时序裕度要足够大。 在系统时钟大于30MHz时,设计难度有所加大,建议采用流水线等设计方法。采用流水线处理方式可以达到提高时序电路的速度,但使用的器件资源也成倍增加。 要保证电路设计的理论最高工作频率大于电路的实际工作频率。FPGA工程师面试试题001、同步电路和异步电路的区别是什么?(仕兰微电子)2、什么是同步逻辑和异步逻辑?(汉王笔试)同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.3、什么是线与逻辑,要实现它,在硬件特性上有什么具体要求?(汉王笔试)线与逻辑是两个输出信号相连可以实现与的功能.在硬件上,要用oc门来实现,由于不用 oc门可能使灌电流过大,而烧坏逻辑门. 同时在输出端口应加一个上拉电阻.4、什么是Setup 和Holdup时间?(汉王笔试)5、setup和holdup时间,区别.(南山之桥)6、解释setup time和hold time的定义和在时钟信号延迟时的变化.(未知)7、解释setup和hold time violation,画图说明,并说明解决办法.(威盛VIA2003.11.06 上海笔试试题)Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求.建立时间是指触发 器的时钟信号上升沿到来以前,数据稳定不变的时间.输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器. 保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间.如果hold time 不够,数据同样不能被打入触发器.建立时间(Setup Time)和保持时间(Hold time).建立时间是指在时钟边沿前,数据信 号需要保持不变的时间.保持时间是指时钟跳变边沿后数据信号需要保持不变的时间.如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现 metastability的情况.如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时 间,那么超过量就分别被称为建立时间裕量和保持时间裕量.8、说说对数字逻辑中的竞争和冒险的理解,并举例说明竞争和冒险怎样消除.(仕兰微 电子)9、什么是竞争与冒险现象?怎样判断?如何消除?(汉王笔试)在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争.产生毛刺叫冒险.如果布尔式中有相反的信号则可能产生竞争和冒险现象.解决方法:一是添加布尔式的消去项,二是在芯片外部加电容.10、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?(汉王笔试)常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的.CMOS输出接到TTL是可以直接互连.TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V.11、如何解决亚稳态.(飞利浦-大唐笔试)亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态.当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上.在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去.12、IC设计中同步复位与 异步复位的区别.(南山之桥)13、MOORE 与 MEELEY状态机的特征.(南山之桥)14、多时域设计中,如何处理信号跨时域.(南山之桥)15、给了reg的setup,hold时间,求中间组合逻辑的delay范围.(飞利浦-大唐笔试)Delay q,还有 clock的delay,写出决定最大时钟的因素,同时给出表达式.(威盛VIA 2003.11.06 上海笔试试题)18、说说静态、动态时序模拟的优缺点.(威盛VIA 2003.11.06 上海笔试试题)19、一个四级的Mux,其中第二级信号为关键信号 如何改善timing.(威盛VIA2003.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-well process.Plot its transfer curve (Vout-Vin) And also explain theoperation region of PMOS and NMOS for each segment of the transfer curve? (威盛笔试题circuit design-beijing-03.11.09)25、To design a CMOS invertor with balance rise and fall time,please definethe ration of channel width of PMOS and NMOS and 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-03.11.09)29、画出NOT,NAND,NOR的符号,真值表,还有transistor 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+xxxx用最少数量的与非门实现(实际上就是化简).37、给出一个简单的由多个NOT,NAND,NOR组成的原理图,根据输入波形画出各点波形.(Infineon笔试)38、为了实现逻辑(A XOR B)OR (C AND D),请选用以下逻辑中的一种,并说明为什么?1)INV 2)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的个数比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与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和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);input clk;input reset;input 7:0 d;output 7:0 q;reg 7:0 q;always (posedge clk or posedge reset) if(reset) q = 0; else q = d;endmodule63、用D触发器实现2倍分频的Verilog描述? (汉王笔试)module divide2( clk , clk_o, reset); input clk , reset; output clk_o; wire in;reg out ; always ( posedge clk or posedge reset) if ( reset) out = 0; else out = 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);input clk;input reset;input d;output q;reg q;always (posedge clk or posedge reset) if(reset) q = 0; else q = 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水的,只能投进三种硬币,要正确的找回钱数. (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,否则为0.例如a: 0001100110110100100110 b: 0000000000100100000000 请画出state machine;请用RTL描述其state machine.(未知)75、用verilog/vddl检测stream中的特定字符串(分状态用状态机写).(飞利浦-大唐笔试)76、用verilog/vhdl写一个fifo控制器(包括空,满,半满信号).(飞利浦-大唐笔试)77、现有一用户需要一种集成电路产品,要求该产品能够实现如下功能:y=lnx,其中,x为4位二进制整数输入信号.y为二进制小数输出,要求保留两位小数.电源电压为35v假设公司接到该项目后,交由你来负责该产品的设计,试讨论该产品的设计全程.(仕兰微电子)78、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? (威盛笔试题circuit design-beijing-03.11.09)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,BIOS,USB,VHDL,VLSI VCO(压控振荡器) RAM (动态随机存储器),FIR IIR DFT(离散傅立叶变换)或者是中文的,比如:a.量化误差 b.直方图 c.白平衡FPGA工程师面试试题011 什么是Setup 和Holdup时间?2 什么是竞争与冒险现象?怎样判断?如何消除?3 用D触发器实现2倍分频的逻辑电路?.4 什么是线与逻辑,要实现它,在硬件特性上有什么具体要求?5 什么是同步逻辑和异步逻辑?6 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。7 你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?8 可编程逻辑器件在现代电子设计中越来越重要,请问:你所知道的可编程逻辑器件有哪些?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控制器16 用verilog/vddl检测stream中的特定字符串17 用mos管搭出一个二输入与非门。18 集成电路前段设计流程,写出相关的工具。19 名词IRQ,BIOS,USB,VHDL,SDR20 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)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。见图1。如果不满足建立和保持时间的话,那么DFF将不能正确地采样到数据,将会出现metastability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。图1 建立时间和保持时间示意图2什么是竞争与冒险现象?怎样判断?如何消除?在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。3 用D触发器实现2倍分频的逻辑电路?Verilog描述:module divide2( clk , clk_o, reset); input clk , reset; output clk_o; wire in;reg out ; always ( posedge clk or posedge reset) if ( reset) out = 0; else out = in; assign in = out; assign clk_o = out; endmodule图形描述:4 什么是线与逻辑,要实现它,在硬件特性上有什么具体要求? 线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用oc门来实现,由于不用oc门可能使灌电流过大,而烧坏逻辑门。 同时在输出端口应加一个上拉电阻。5 什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。6 请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。7 你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗? 12,5,3.3TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。8 可编程逻辑器件在现代电子设计中越来越重要,请问:你所知道的可编程逻辑器件有哪些?PAL,PLD,CPLD,FPGA。9 试用VHDL或VERILOG、ABLE描述8位D触发器逻辑。module dff8(clk , reset, d, q);input clk;input reset;input 7:0 d;output 7:0 q;reg 7:0 q;always (posedge clk or posedge reset) if(reset) q = 0; else q = d;endmodule10 设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设计(包括原理图和PCB图)到调试出样机的整个过程。在各环节应注意哪些问题? 电源的稳定上,电容的选取上,以及布局的大小。11 用逻辑门和cmos电路实现ab+cd 12 用一个二选一mux和一个inv实现异或13 给了reg的setup,hold时间,求中间组合逻辑的delay范围。Delay period - setup - hold14 如何解决亚稳态亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。 15 用verilog/vhdl写一个fifo控制器包括空,满,半满信号。16 用verilog/vddl检测stream中的特定字符串分状态用状态机写。17 用mos管搭出一个二输入与非门。18 集成电路前段设计流程,写出相关的工具。19 名词IRQ,BIOS,USB,VHDL,SDRIRQ: Interrupt 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);input clk;input reset;input d;output q;reg q;always (posedge clk or posedge reset) if(reset) q = 0; else q = d;endmodule23 What is PC Chipset?芯片组(Chipset)是主板的核心组成部分,按照在主板上的排列位置的不同,通常分为北桥芯片和南桥芯片。北桥芯片提供对CPU的类型和主频、内存的类型和最大容量、ISA/PCI/AGP插槽、ECC纠错等支持。南桥芯片则提供对KBC(键盘控制器)、RTC(实时时钟控制器)、USB(通用串行总线)、Ultra DMA/33(66)EIDE数据传输方式和ACPI(高级能源管理)等的支持。其中北桥芯片起着主导性的作用,也称为主桥(Host Bridge)。除了最通用的南北桥结构外,目前芯片组正向更高级的加速集线架构发展,Intel的8xx系列芯片组就是这类芯片组的代表,它将一些子系统如IDE接口、音效、MODEM和USB直接接入主芯片,能够提供比PCI总线宽一倍的带宽,达到了266MB/s。24 用传输门和反向器搭一个边沿触发器25 画状态机,接受1,2,5分钱的卖报机,每份报纸5分钱2这段时间去面试了几家公司,发现比较大的公司相对于重视基础问题。这里边又有几个问题特别的突出。他们是:同步时钟设计、亚稳态、异步FIFO。可以说,这些个问题要是弄清楚了,就至少满足了技术方面1/3的要求,另外的2/3是什么,我就说不清楚了。又有人发了竞争冒险毛刺的问题,不过,对于采用同步设计方法的系统,这些问题一般不会遇到。下面就谈谈我对这些问题的看法,要是你觉得看这些东西觉得类似一堆狗屎,那么恭喜你,你面试成功的机会增加了1/3;要是你你觉得阿,什么样的牛人拉了一堆牛屎,那么不好意思,还是再去补补课把。这里推荐一本数字设计原理和实践(John F.Wakerly)的书,仔细看一遍吧。 同步时钟设计 简单说就是一个系统中(或系统中的一部分)都采用同一个时钟触发。系统中的(D)触发器全部都连接到一个时钟,而且只控制触发器的同步端(输入,同步置位,同步复位)。这样的系统是相对于异步系统而言的,异步系统并不是不同的触发器时钟端连接到不同的时钟信号的系统(一般的这样叫做跨时钟系统,是相对几个较小的同步系统的组合),而是更本没有了时钟的概念,依靠和触发器构造一样的反馈电路组成。相对于异步系统,同步系统更好设计(异步设计则象一个魔术,类似于汇编和高级语言的关系),更容易进行时序分析(为什么要用D触发器而不用D锁存器)在这里组合逻辑的竞争冒险毛刺问题都不存在了。应该说,同步系统最大的问题在于时钟的偏斜(skew)。同步时钟系统也存在一些涉及的技巧,这些技巧一般围绕着降低关键路径的延时和时间和空间的平衡。这些都是平衡的艺术(了解了基本的部件之后,剩下的工作就是一个字平衡),这里边的方法就太具体,而且本人也知道得不多,不敢乱说了。不过,只要你用过一种方法,就可以体会到其中的精神了。 亚稳态 这是跨时钟设计中最基础的一个问题(宏观的问题是FIFO),按照我的观察,上论坛问问题多的一般不明白这个,请一定要注意了。 什么是亚稳态?数字电路中的简单双稳态电路就是两个反相器首尾相连组成(加一些控制逻辑变成了锁存器,触发器),然而并不像名字显示的,这种电路其实还有第三种半稳定态就是当两个反相器都处于中间值得情况这称之为亚稳态。我们知道反相器在非逻辑值范围的反馈系数是相当大的,一旦因为干扰或者噪音离开了这个中心点,就会很快地进入逻辑值范围(稳态)。数学分析,从亚稳态进入稳态,正如放射元素的衰变,是一个指数的规律(为什么是指数的规律?你要是想不明白,说明你还没有搞明白亚稳态)。那么,亚稳态的危害到底是什么呢?消耗功率;),其实不是(虽然亚稳态消耗很大的功率),亚稳态的问题在于其电平并不处于有效逻辑电平范围内,而且在变化。这就导致与其相连其他数字部件将其作出不同的判断(注意,不同),有的作为1,有的作为0,有的也进入了亚稳态,数字部件就会逻辑混乱。那么究竟如何避免(或者减小)亚稳态的危险呢?注意到亚稳态的触发器继续停留在亚稳态的几率按照指数减少,那么办法就是等等足够长的时间,直到这个几率变得小的实际上不会发生。到底需要有多长呢?有的厂商有一个数据,有的没有,按照普通的做法,至少等一个时钟周期这也就是所谓的异步数据要用两个触发器打一下。这一段有点糊涂,不容易说明白,你看了要是觉得云里雾里,不知所云,那们你只有找一本书学习了;要是觉得作者表达不清,那么恭喜你,面试通过了的几率增加了。关于这个问题有很多糊涂的认识,要是你的主考官和你争论,你就顺着他的意思,毕竟没有人想找一个管教不了的手下。 异步FIFO 异步FIFO是跨时钟域设计方法的集中体现,体现了很多的方法。不过,其中最重要的有两点,一个就是亚稳态,一个就是和亚稳态类似但不相同的多个控制/状态信号的跨时钟传递。具体地说,就是当你把一组信号传递到另外一个时钟域的话,这一组信号可能因为延迟不同,这样到达新时钟域之后,得到的数据相差一个老时钟域的时钟周期。兴好,对于FIFO,需要传递的是一个计数器,这个计数器可以编码成格雷码(gray code),这样的编码每次只变化一个位,正好解决了上面的问题(要是没有画过图,最好画一个图看一下)。真不清楚这是怎么发明的!注意,这里其实还对格雷码的相对延迟和相关的时钟周期有一个要求。这就是异步FIFO中最关键的一点,至于指针如何控制,稍微考虑一下都很容易清楚。需要注意的事,这些东西不是用嘴能说清楚的,最好画一个示意图,不要因为没有说清楚,让主考官觉得你没有清楚。 当然,除此之外还有很多很多的东西。比如组合逻辑的设计技巧,俺就没有研究。比如高速布线信号完整性问题,俺也不敢多说。至于整个系统的设计思想,更不敢妄语。不过如果只要你有一个问题了解到了相当的深度,相信你很容易搞清楚其他问题FPGA与CPLD内部结构区别? CPLD 以altraMAX7000这种PLD为例,可分为三块结构:宏单元(Marocell),可编程连线(PIA)和I/O控制块。宏单元是PLD的基本结构,由它来实现基本的逻辑功能。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。 这种基于乘积项(实际就是与或阵列)的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他芯片配合。布线方式是全局的,所以延时可预测。CPLD适合做逻辑设计。 FPGA FPGA基于LUT,LUT本质上就是一个RAM,每一个LUT可以看成一个有4位地址线的16x1的RAM。这也是为什么FPGA需要外接一个rom来上电配置。 以xilinx的Spartan-II为例,主要包括CLBs,I/O块,RAM块和可编程连线。在spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。 Slices可以看成是SpartanII实现逻辑的最基本结构。 FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。 所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好选择。2.Latch和Register区别?行为描述中Latch如何产生? 本质的区别在于:latch是电平触发,reg是边沿触发。时序设计中尽量使用reg触发。行为描述中,如果对应所有可能输入条件,有的输入没有对应明确的输出,系统会综合出latch。比如:always( a or b) /缺少else语句 begin if(a=1) q = b; end3.对竞争冒险的理解,以及如何消除? 在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项,二是在芯片外部加电容。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;output2:0 coutpose;output2:0 coutnege;reg clk1xpose;reg clk1xnege;reg2:0 coutpose;reg2:0 coutnege;parameter div1 = 2 , div2 = 4; / div1 5 / 2, div2 = 5 - 1assign clk1x = clk1xpose | clk1xnege;always(posedge clk or negedge rst)begin if(!rst) clk1xpose = 0; else if(coutpose = div1) clk1xpose = clk1xpose; else if(coutpose = div2) clk1xpose = clk1xpose; else clk1xpose = clk1xpose;endalways(negedge clk or negedge rst)begin if(!rst) clk1xnege = 0; else if(coutnege = div1) clk1xnege = clk1xnege; else if(coutnege = div2) clk1xnege = clk1xnege; else clk1xnege = clk1xnege;endalways(posedge clk or negedge rst)begin if(!rst) coutpose = 0; else if(coutpose = div2) coutpose = 0; else coutpose = coutpose + 1;endalways(negedge clk or negedge rst)begin if(!rst) coutnege = 0; else if(coutnege = div2) coutnege = 0; else coutnege = coutnege + 1;endendmodule1:什么是同步逻辑和异步逻辑?(汉王)同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。 答案应该与上面问题一致补充:同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入 x 有无变化,状态表中的每个状态都是稳定的。 异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外部输入的变化直接引起。2:同步电路和异步电路的区别: 同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,这有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。3:时序设计的实质: 电路设计的难点在时序设计,时序设计的实质就是满足每一个触发器的建立/保持时间的而要求。4:建立时间与保持时间的概念? 建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的时间。 保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的时间。不考虑时钟的skew,D2的建立时间不能大于(时钟周期T - D1数据最迟到达时间T1max+T2max);保持时间不能大于(D1数据最快到达时间T1min+T2min);否则D2的数据将进入亚稳态并向后级电路传播(修改)5:为什么触发器要满足建立时间和保持时间?因为触发器内部数据的形成是需要一定的时间的,如果不满足建立和保持时间,触发器将进入亚稳态,进入亚稳态后触发器的输出将不稳定,在0和1之间变化,这时需要经过一个恢复时间,其输出才能稳定,但稳定后的值并不一定是你的输入值。这就是为什么要用两级触发器来同步异步输入信号。这样做可以防止由于异步输入信号对于本级时钟可能不满足建立保持时间而使本级触发器产生的亚稳态传播到后面逻辑中,导致亚稳态的传播。(比较容易理解的方式)换个方式理解:需要建立时间是因为触发器的D段像一个锁存器在接受数据,为了稳定的设置前级门的状态需要一段稳定时间;需要保持时间是因为在时钟沿到来之后,触发器要通过反馈来所存状态,从后级门传到前级门需要时间。6:什么是亚稳态?为什么两级触发器可以防止亚稳态传播? 这也是一个异步电路同步化的问题,具体的可以参考EDACN技术月刊20050401。亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。使用两级触发器来使异步电路同步化的电路其实叫做“一步同位器”,他只能用来对一位异步信号进行同步。两级触发器可防止亚稳态传播的原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。同步器有效的条件:第一级触发器进入亚稳态后的恢复时间+第二级触发器的建立时间 =时钟周期。更确切地说,输入脉冲宽度必须大于同步时钟周期与第一级触发器所需的保持时间之和。最保险的脉冲宽度是两倍同步时钟周期。 所以,这样的同步电路对于从较慢的时钟域来的异步信号进入较快的时钟域比较有效,对于进入一个较慢的时钟域,则没有作用 。7:系统最高速度计算(最快时钟频率)和流水线设计思想: 同步电路的速度是指同步系统时钟的速度,同步时钟愈快,电路处理数据的时间间隔越短,电路在单位时间内处理的数据量就愈大。假设Tco是触发器的输入数据被时钟打入到触发器到数据到达触发器输出端的延时时间;Tdelay是组合逻辑的延时;Tsetup是触发器的建立时间。假设数据已被时钟打入D触发器,那么数据到达第一个触发器的输出端需要的延时时间是Tco,经过组合逻辑的延时时间为Tdelay,然后到达第二个触发器的端,要希望时钟能在第二个触发器再次被稳定地打入触发器,则时钟的延迟必须大于TcoTdelayTsetup,也就是说最小的时钟周期Tmin =TcoTdelayTsetup,即最快的时钟频率Fmax =1/Tmin。FPGA开发软件也是通过这种方法来计算系统最高运行速度Fmax。因为Tco和Tsetup是由具体的器件工艺决定的,故设计电路时只能改变组合逻辑的延迟时间Tdelay,所以说缩短触发器间组合逻辑的延时时间是提高同步电路速度的关键所在。由于一般同步电路都大于一级锁存,而要使电路稳定工作,时钟周期必须满足最大延时要求。故只有缩短最长延时路径,才能提高电路的工作频率。可以将较大的组合逻辑分解为较小的N块,通过适当的方法平均分配组合逻辑,然后在中间插入触发器,并和原触发器使用相同的时钟,就可以避免在两个触发器之间出现过大的延时,消除速度瓶颈,这样可以提高电路的工作频率。这就是所谓流水线技术的基本设计思想,即原设计速度受限部分用一个时钟周期实现

温馨提示

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

最新文档

评论

0/150

提交评论