下载

2下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 FPGA笔试面试题目

FPGA笔试面试题目.pdf

FPGA笔试面试题目

xuesong
2011-09-03 0人阅读 举报 0 0 暂无简介

简介:本文档为《FPGA笔试面试题目pdf》,可适用于IT/计算机领域

什么是Setup和Holdup时间?建立时间(SetupTime)和保持时间(Holdtime)。建立时间是指在时钟边沿前数据信号需要保持不变的时间。保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。见图。如果不满足建立和保持时间的话那么DFF将不能正确地采样到数据将会出现metastability的情况。如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间那么超过量就分别被称为建立时间裕量和保持时间裕量。图建立时间和保持时间示意图什么是竞争与冒险现象?怎样判断?如何消除?在组合逻辑中由于门的输入信号通路中经过了不同的延时导致到达该门的时间不一致叫竞争。产生毛刺叫冒险。如果布尔式中有相反的信号则可能产生竞争和冒险现象。解决方法:一是添加布尔式的消去项二是在芯片外部加电容。用D触发器实现倍分频的逻辑电路?Verilog描述:moduledivide(clk,clko,reset)inputclk,resetoutputclkowireinregoutalways(posedgeclkorposedgereset)if(reset)out<=elseout<=inassignin=~outassignclko=outendmodule图形描述:什么是"线与"逻辑要实现它在硬件特性上有什么具体要求?线与逻辑是两个输出信号相连可以实现与的功能。在硬件上要用oc门来实现由于不用oc门可能使灌电流过大而烧坏逻辑门。同时在输出端口应加一个上拉电阻。什么是同步逻辑和异步逻辑?同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。请画出微机接口电路中典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器缓冲器)。你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?TTL和CMOS不可以直接互连由于TTL是在V之间而CMOS则是有在V的有在V的。CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到V或者V。可编程逻辑器件在现代电子设计中越来越重要请问:你所知道的可编程逻辑器件有哪些?PALPLDCPLDFPGA。试用VHDL或VERILOG、ABLE描述位D触发器逻辑。moduledff(clk,reset,d,q)inputclkinputresetinput:doutput:qreg:qalways(posedgeclkorposedgereset)if(reset)q<=elseq<=dendmodule设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设计(包括原理图和PCB图)到调试出样机的整个过程。在各环节应注意哪些问题?电源的稳定上电容的选取上以及布局的大小。用逻辑门和cmos电路实现abcd用一个二选一mux和一个inv实现异或给了reg的setup,hold时间求中间组合逻辑的delay范围。Delay<periodsetuphold如何解决亚稳态亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时既无法预测该单元的输出电平也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间触发器输出一些中间级电平或者可能处于振荡状态并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。用verilogvhdl写一个fifo控制器包括空满半满信号。用verilogvddl检测stream中的特定字符串分状态用状态机写。用mos管搭出一个二输入与非门。集成电路前段设计流程写出相关的工具。名词IRQ,BIOS,USB,VHDL,SDRIRQ:InterruptReQuestBIOS:BasicInputOutputSystemUSB:UniversalSerialBusVHDL:VHICHardwareDescriptionLanguageSDR:SingleDataRateunix命令cpr,rm,uname用波形表示D触发器的功能写异步D触发器的verilogmodulemoduledff(clk,reset,d,q)inputclkinputresetinputdoutputqregqalways(posedgeclkorposedgereset)if(reset)q<=elseq<=dendmoduleWhatisPCChipset芯片组(Chipset)是主板的核心组成部分按照在主板上的排列位置的不同通常分为北桥芯片和南桥芯片。北桥芯片提供对CPU的类型和主频、内存的类型和最大容量、ISAPCIAGP插槽、ECC纠错等支持。南桥芯片则提供对KBC(键盘控制器)、RTC(实时时钟控制器)、USB(通用串行总线)、UltraDMA()EIDE数据传输方式和ACPI(高级能源管理)等的支持。其中北桥芯片起着主导性的作用也称为主桥(HostBridge)。除了最通用的南北桥结构外目前芯片组正向更高级的加速集线架构发展Intel的xx系列芯片组就是这类芯片组的代表它将一些子系统如IDE接口、音效、MODEM和USB直接接入主芯片能够提供比PCI总线宽一倍的带宽达到了MBs。用传输门和反向器搭一个边沿触发器画状态机接受分钱的卖报机每份报纸分钱libraryieeeuseieeestdlogicalluseieeestdlogicunsignedallentitypdivisport(clk:instdlogicy:outstdlogic)endpdivarchitecturebhofpdivissignalloadn,loadm,a,b:stdlogicsignalqn,qm:stdlogicvector(downto)beginprocess(clk,loadn,loadm)beginifloadn=''thenqn<=""elsifclk'eventandclk=''thenqn<=qnendififloadm=''thenqm<=""elsifclk'eventandclk=''thenqm<=qmendifendprocessloadn<=qn()loadm<=qm()a<=qn()b<=qm()y<=anorbendbh汉王笔试下面是一些基本的数字电路知识问题请简要回答之。a)什么是Setup和Holdup时间?b)什么是竞争与冒险现象?怎样判断?如何消除?c)请画出用D触发器实现倍分频的逻辑电路?d)什么是"线与"逻辑要实现它在硬件特性上有什么具体要求?e)什么是同步逻辑和异步逻辑?f)请画出微机接口电路中典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器缓冲器)。g)你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?、可编程逻辑器件在现代电子设计中越来越重要请问:a)你所知道的可编程逻辑器件有哪些?b)试用VHDL或VERILOG、ABLE描述位D触发器逻辑。、设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设计(包括原理图和PCB图)到调试出样机的整个过程。在各环节应注意哪些问题?飞利浦-大唐笔试归来用逻辑们和cmos电路实现abcd用一个二选一mux和一个inv实现异或给了reg的setup,hold时间求中间组合逻辑的delay范围。Setupholdtime是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前数据稳定不变的时间。输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片这个T就是建立时间Setuptime如不满足setuptime,这个数据就不能被这一时钟打入触发器只有在下一个时钟上升沿数据才能被打入触发器。保持时间是指触发器的时钟信号上升沿到来以后数据稳定不变的时间。时holdtime不够数据同样不能被打入触发器。如何解决亚稳态用verilogvhdl写一个fifo控制器用verilogvddl检测stream中的特定字符串信威dsp软件面试题~)DSP和通用处理器在结构上有什么不同请简要画出你熟悉的一种DSP结构图)说说定点DSP和浮点DSP的定义(或者说出他们的区别))说说你对循环寻址和位反序寻址的理解)请写出【-】的二进制补码和二进制偏置码。用Q表示出和-扬智电子笔试第一题:用mos管搭出一个二输入与非门。第二题:集成电路前段设计流程写出相关的工具。第三题:名词IRQ,BIOS,USB,VHDL,SDR第四题:unix命令cpr,rm,uname第五题:用波形表示D触发器的功能第六题:写异步D触发器的verilogmodule第七题:WhatisPCChipset第八题:用传输门和倒向器搭一个边沿触发器第九题:画状态机接受分钱的卖报机每份报纸分钱。华为面题(硬件)全都是几本模电数电信号单片机题目用与非门等设计全加法器给出两个门电路让你分析异同名词:sram,ssram,sdram信号与系统:在时域与频域关系信号与系统:和题差不多晶体振荡器,好像是给出振荡频率让你求周期(应该是单片机的,分之一周期串行通信与同步通信异同,特点,比较RSc高电平脉冲对应的TTL逻辑是(负逻辑)延时问题,判错史密斯特电路,求回差电压VCO是什么,什么参数(压控振荡器)用D触发器做个二分颦的电路又问什么是状态图什么耐奎斯特定律,怎么由模拟信号转为数字信号用D触发器做个进制的计数那种排序方法最快一、研发(软件)用C语言写一个递归算法求N!给一个C的函数关于字符串和数组找出错误防火墙是怎么实现的?你对哪方面编程熟悉?新太硬件面题接着就是专业题目啦()d触发器和d锁存器的区别()有源滤波器和无源滤波器的原理及区别()sramfalshmemory及dram的区别?()iirfir滤波器的异同()冒泡排序的原理()操作系统的功能()学过的计算机语言及开发的系统()拉氏变换和傅立叶变换的表达式及联系。如果电路中一定要使用组合逻辑如何提高电路的可靠性你认为ASIC成功的关键是什么?一开始还以为会让自我介绍一下(以前所有的面试都如此开场)没想到刚一坐下来就是技术问题有点蒙。大致如下:、同步异步电路的区别(虽然经常提到这个概念可是真细致的问起来感觉不好说)、异步电路设计要注意哪些问题(同上)、怎么提高设计频率、数字锁相环的概念和设计要点(这个我前两天拿到资料看了一下但没仔细看结果答的比较含糊唉)、用运放画一个放大器(汗早忘了)就记得这些了接着给欧一份考卷我答得还可以能想起下面这些:、传输线固有输入阻抗和传输线长度和宽度的关系?、漂移发生在多大的频率上?(好像也是锁相环方面的概念记不太清了)、什么狼、羊、仓的逻辑题很容易、ttl高电平得最低输入电压、低点平的最高输入电压是多少?、冒险的概念、几个数字电路让你分析不难没法画就不说了。、k*bit的ram有几根地址线数据线?(今天面试最容易的题)、什么SDH和PDH的区别?(因为听都没听说过也不知道记得对不对知道的人纠正一下哈)、pci是同步还是异步总线?总之这块还是容易的但是考得范围比较广欢迎补充嗬嗬大概的印象可能有点出入大家参考最好大牛能给出答案hoho。setuptime和holdtime不满足情况下应该如何解决?什么叫做亚稳态如何解决?Verilog中=>和=有什么区别?画一个D触发器的原理图(门级)并且用veriloggatelevel表示出来用最少的Mos管画出一个与非门写一段finitestatemachine(主要考察codingstyle)如果触发器的setuptimeholdtime不满足,这个数据就不能被这一时钟打入触发器只有在下一个时钟上升沿到来时数据才能被打入触发器。在同步系统中如果触发器的setuptimeholdtime不满足就可能产生亚稳态(Metastability)导致采样错误。此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态在这段时间里Q端毛刺、振荡、固定的某一电压值而不是等于数据输入端D的值。这段之间成为决断时间(resolutiontime)。经过resolutiontime之后Q端将稳定到或上但是究竟是还是这是随机的与输入没有必然的关系。只要系统中有异步元件亚稳态就是无法避免的因此设计的电路首先要减少亚稳态导致错误的发生其次要使系统对产生的错误不敏感。前者需要同步来实现而后者根据不同的设计应用有不同的处理办法题目是都用英文写的我用汉字来表达a为输入端b为输出端如果a连续输入为则b输出为否则为例如a:b:请画出statemachine请用RTL描述上题statemachinelibraryIEEEuseIEEESTDLOGICALLuseIEEESTDLOGICARITHALLuseIEEESTDLOGICUNSIGNEDALLentitycheckisPort(a:instdlogicclk:instdlogicb:outstdlogic)endcheckarchitectureBehavioralofcheckissignalp:stdlogicvector(to)beginserialparallel:process(clk)beginifclk'eventandclk=''thenp<=ap(to)endifendprocesscheck:process(clk,p)beginifclk'eventandclk=''thenifp=""thenb<=''elseb<=''endifendifendprocessendBehavioral我的一个同事说的。你的p其实就是一个状态应该是设两个状态就足够了:和OTHERS这只是一个典型的设计题目而且用状态机做并没有使设计复杂化你下面的设计会实现有两个延时不过我相信出题的人不会在意这个的。还有就是状态机设计一般都有reset的你要加上这个端口才比较好当然不加也不算不完整吧此题scholes描述的只有一个延时。修改如下:libraryieeeuseieeestdlogicalluseieeeSTDLOGICARITHalluseieeeSTDLOGICUNSIGNEDallentitytestisport(rst:instdlogicclk:instdlogica:instdlogicb:outstdlogic)endtestarchitecturetestoftestissignalp:stdlogicvector(downto)beginStart:process(rst,clk,p,a)beginprocessifrst=''thenifclk'eventandclk=''thenp<=p(downto)aendifelsep<=""endifendprocessStart:process(rst,clk,p)beginprocessifrst=''thenifclk'eventandclk=''thenifp=""thenb<=''elseb<=''endifendifelseb<=''endifendprocessendtest本题考察利用有限状态机进行时序逻辑的设计下面用verilog进行描述:(有限状态机提供个状态)modulesequencedetect(in,out,clk,rst,state)outputoutoutput:stateinputclkinputrstinputinreg:statewireoutparameterIDLE='d,A='d,B='d,C='d,D='d,E='dassignout=((state==D)(in==)):always(posedgeclk)beginif(!rst)beginstate<=IDLEendelsecase(state)IDLE:if(in==)thefirstcodeisright,storingthestateAbeginstate<=AendA:if(in==)thesecondcodeisright,storingthestateBbeginstate<=Bendelsebeginstate<=IDLEendB:if(in==)thethirdcodeisright,storingthestateCbeginstate<=Cendelsebeginstate<=EendC:if(in==)thefourthcodeisright,storingthestateDbeginstate<=Dout<=endelsebeginstate<=IDLEout<=endD:if(in==)connectingthefrontinputtedsequence,againintroducingone,storingstateBbeginstate<=Bendelsebeginstate<=IDLEendE:if(in==)beginstate<=Cendelsebeginstate<=Benddefault:state=IDLEendcaseendendmodulelibraryieeeuseieeestdlogicalluseieeeSTDLOGICARITHalluseieeeSTDLOGICUNSIGNEDallentitytestisport(rst:instdlogicclk:instdlogica:instdlogicb:outstdlogic)endtestarchitecturetestoftestissignalp:stdlogicvector(downto)beginStart:process(rst,clk)beginifrst=''thenp<=""ifclk'eventandclk=''thenp<=p(downto)aendifendifendprocessStart:process(rst,clk)beginprocessifrst=''thenb<=''ifclk'eventandclk=''thenifp=""anda=''thenb<=''elseb<=''endifendifendifendprocessendtest有两段代码。proceee(a,b,c,sel,y)beginif(sel)y=abelsey=acendy=selab:ac面试官说第一中表达方法是先选后加所以电路实现是一个选择器和一个加法器第二种方法是先加后选用到两个加法器和一个选择器所以他说第一种表达方式要好一些。查了一下书发现面试官说的并不全对一般来说综合工具会自动的优化一般只会综合出一个加法器和一个选择器先选后加是加法器共用节省面积先加后选是用面积换时间电路的工作速度更快些。为了实现逻辑(AXORB)OR(CANDD)请选用以下逻辑中的一种并说明为什么?)INV)AND)OR)NAND)NOR)XOR我没有做出来请大家帮忙看看我想了一下用与非是肯定可以实现的。与非门的两个输入连在一起就成了非门。或门可以用与非和非门搭建或非其实也可以。或非的两个输入PAD连在一起成非门。与门可以用或非门和非门搭建奇数分频(或者)modules({{ALTERAARGSBEGIN}}DONOTREMOVETHISLINE!clkin,clkout,s,s{{ALTERAARGSEND}}DONOTREMOVETHISLINE!)PortDeclaration{{ALTERAIOBEGIN}}DONOTREMOVETHISLINE!inputclkinoutputclkout,s,s{{ALTERAIOEND}}DONOTREMOVETHISLINE!wires,sreg:step,stepalways(posedgeclkin)begincase(step)'b:step<='b'b:step<='b'b:step<='bdefault:step<='bendcaseendalways(negedgeclkin)begincase(step)'b:step<='b'b:step<='b'b:step<='bdefault:step<='bendcaseendassignclkout=step|stepassigns=stepassigns=stependmoduletestbench:`timescalensnsmodulestbregclkinwireclkout,s,salways#clkin=~clkininitialbeginclkin=#$stopendss(clkin(clkin),clkout(clkout),s(s),s(s))endmodule独立晶振一个m一个mm向m的传输数据问怎么实现我说小数分频成m内部时钟再采样求正解数据量少用握手信号,数据量多用FIFO,如果有很高的时钟资源可以考虑用高时钟采样,但是不是很好的方法,分频成M是肯定不行的,分成相同频率也是异步信号setup和holdup时间,区别多时域设计中,如何处理信号跨时域latch与register的区别,为什么现在多用register行为级描述中latch如何产生的BLOCKINGNONBLOCKING赋值的区别MOORE与MEELEY状态机的特征IC设计中同步复位与异步复位的区别实现N位JohnsonCounter,N=用FSM实现的序列检测模块多时域设计中,如何处理信号跨时域:情况比较多如果简单回答的话就是:跨时域的信号要经过同步器同步防止亚稳态传播。例如:时钟域中的一个信号要送到时钟域那么在这个信号送到时钟域之前要先经过时钟域的同步器同步后才能进入时钟域。这个同步器就是两级d触发器其时钟为时钟域的时钟。这样做是怕时钟域中的这个信号可能不满足时钟域中触发器的建立保持时间而产生亚稳态因为它们之间没有必然关系是异步的。这样做只能防止亚稳态传播但不能保证采进来的数据的正确性。所以通常只同步很少位数的信号。比如控制信号或地址。当同步的是地址时一般该地址应采用格雷码因为格雷码每次只变一位相当于每次只有一个同步器在起作用这样可以降低出错概率象异步FIFO的设计中比较读写地址的大小时就是用这种方法。如果两个时钟域之间传送大量的数据可以用异步FIFO来解决问题。IC设计中同步复位与异步复位的区别如果光说概念的话:同步复位在时钟沿采复位信号完成复位动作。异步复位不管时钟只要复位信号满足条件就完成复位动作。象芯片的上电复位就是异步复位因为这时时钟振荡器不一定起振了可能还没有时钟脉冲。异步复位很容易受到复位端信号毛刺的影响比如复位端信号由组合逻辑组成那组合逻辑输出产生的冒险就会使触发器错误的复位。BLOCKINGNONBLOCKING赋值的区别这个问题可参考的资料很多讲的都很透彻可以找一下。基本用法就是常说的“组合逻辑用BLOCKING时序逻辑用NONBLOCKING”。latch与register的区别,为什么现在多用register行为级描述中latch如何产生的区别不多说。为什么避免使用latch因为设计中用latch会使设计后期的静态时序分析变的困难(必须用的地方当然另当别论)。行为级描述中latch产生的原因:多由于构造组合逻辑电路时使用if或case语句没有把所有的条件给足导致没有提到的条件其输出未知。或者是每个条件分支中没有给出所有输出的值这就会产生latch。所以构造组合逻辑电路时其always语句中的敏感信号必须包括所有的输入端每个条件分支必须把所有的输出端的值都给出来。setup和holdup时间,区别建立时间:触发器在时钟沿来到前其数据输入端的数据必须保持不变的时间保持时间:触发器在时钟沿来到后其数据输入端的数据必须保持不变的时间模拟电路设计基础知识(笔试时候容易遇到的题目)最基本的如三极管曲线特性(太低极了点)基本放大电路种类优缺点特别是广泛采用差分结构的原因反馈之类如:负反馈的优点(带宽变大)频率响应如:怎么才算是稳定的如何改变频响曲线的几个方法锁相环电路组成振荡器(比如用D触发器如何搭)AD电路组成,工作原理如果公司做高频电子的可能还要RF知识调频鉴频鉴相之类不一一列举太底层的MOS管物理特性感觉一般不大会作为笔试面试题因为全是微电子物理公式推导太罗索除非面试出题的是个老学究ic设计的话需要熟悉的软件adence,Synopsys,AdvantUNIX当然也要大概会操作实际工作所需要的一些技术知识(面试容易问到)如电路的低功耗稳定高速如何做到调运放布版图注意的地方等等,一般会针对简历上你所写做过的东西具体问肯定会问得很细(所以别把什么都写上精通之类的词也别用太多了)这个东西各个人就不一样了不好说什么了。数字电路设计当然必问VerilogVHDL如设计计数器逻辑方面数字电路的卡诺图化简时序(同步异步差异)触发器有几种(区别优点)全加器等等比如:设计一个自动售货机系统卖soda水的只能投进三种硬币要正确的找回钱数画出fsm(有限状态机)用verilog编程语法要符合fpga设计的要求系统方面:如果简历上还说做过cpu之类就会问到诸如cpu如何工作流水线之类的问题单片机、DSP、FPGA、嵌入式方面(从没碰过就大概知道几个名字胡扯几句欢迎拍砖也欢迎牛人帮忙补充)如单片机中断几个类型编中断程序注意什么问题DSP的结构(冯诺伊曼结构吗?)嵌入式处理器类型(如ARM)操作系统种类(Vxworks,ucos,winCE,linux)操作系统方面偏CS方向了在CS篇里面讲了信号系统基础拉氏变换与Z变换公式等类似东西随便翻翻书把如h(n)=a*h(n)b*δ(n)a求h(n)的z变换b问该系统是否为稳定系统c写出FIR数字滤波器的差分方程以往各种笔试题举例利用选实现F(x,y,z)=xzyz'用mos管搭出一个二输入与非门。用传输门和倒向器搭一个边沿触发器用运算放大器组成一个倍的放大器微波电路的匹配电阻。名词解释无聊的外文缩写罢了比如PCI、ECC、DDR、interrupt、pipelineIRQ,BIOS,USB,VHDL,VLSIVCO(压控振荡器)RAM(动态随机存储器)FIRIIRDFT(离散傅立叶变换)或者是中文的比如a量化误差b直方图c白平衡共同的注意点一般情况下面试官主要根据你的简历提问所以一定要对自己负责把简历上的东西搞明白个别招聘针对性特别强就招目前他们确的方向的人这种情况下就要投其所好尽量介绍其所关心的东西。其实技术面试并不难但是由于很多东西都忘掉了才觉得有些难。所以最好在面试前把该看的书看看。虽然说技术面试是实力的较量与体现但是不可否认由于不用面试官公司所专领域及爱好不同也有面试也有很大的偶然性需要冷静对待。不能因为被拒就否认自己或责骂公司。面试时要takeiteasy对越是自己钟情的公司越要这样。.集成电路设计前端流程及工具。。FPGA和ASIC的概念他们的区别。LATCH和DFF的概念和区别。用DFF实现二分频。。用VERILOG或VHDL写一段代码实现消除一个glitch。给一个表达式f=xxxxxxxxxxxxxxxxx用最少数量的与非门实现(实际上就是化简)。用VERILOG或VHDL写一段代码实现进制计数器。。给出一个门级的图又给了各个门的传输延时问关键路径是什么还问给出输入使得输出依赖于关键路径。。A,B,C,D,E进行投票多数服从少数输出是F(也就是如果A,B,C,D,E中的个数比多那么F输出为否则F为)用与非门实现输入数目没有限可参考各EDA厂商的开发工具FPGA与ASIC的可参阅各种EDA相关书籍。LATC是H锁存器DFF是触发器其电路形式完全不同。always(posedgeclk)if(reset)beginsel<=clk<=clk<=endelsebeginsel<=~selif(sel)clk<=~clkelseclk<=~clkendglitch主要发生在组合逻辑电路输出可以加DFF输出稳定信号:。。。制。.负数与正数相乘的问题.()*()用补码相乘时应该进行相应的符号扩展比如上面是bit相乘结果应该为bit。这样符号扩展后分别为和然后再用这两个数直接相乘结果为取其低位作为*的结果。这也是个补码形式再判断一下高位恢复为原码得到结果。以前讨论过相关问题可以翻出来看看检测信号的上升沿LIBRARYieeeUSEieeestdlogicallENTITYsyncISPORT(clk:INSTDLOGICrst:INSTDLOGICsyncin:INSTDLOGICsyncout:OUTSTDLOGIC)ENDsyncARCHITECTUREarchOFsyncISSIGNALsyncint,syncint:STDLOGICBEGINPROCESS(clk,rst,syncin)BEGINIFrst=''THENsyncout<=''ELSIFrisingedge(clk)THENsyncint<=syncinsyncint<=syncintIF(syncint=''ANDsyncint='')THENsyncout<=''ELSEsyncout<=''ENDIFENDIFENDPROCESSENDarch并入串出?libraryIEEEuseIEEESTDLOGICALLuseIEEESTDLOGICARITHALLuseIEEESTDLOGICUNSIGNEDALLentitypisoisport(datain:instdlogicvector(downto)clk:instdlogicnLoad:instdlogicdataout:outstdlogic)endpisoarchitectureBehavioralofpisoissignalq:stdlogicvector(downto)beginprocess(nLoad,clk)beginifnLoad=''thenq<=datainelsifclk'eventandclk=''thenq()<=q()foriintoloopq(i)<=q(i)endloopendifendprocessprocess(nLoad,clk)beginifnLoad=''thendataout<=''elsifclk'eventandclk=''thendataout<=q()endifendprocessendBehavioral把所有的改成就可以了有一些基本概念我可能还不太清楚说错的地方请大家批评指教。我要设计的是is-cdma系统的阶fir滤波器。输入串行数据(每个clk输入位)输入数据宽度为位系数h=(十进制)=(位二进制为小数点位置前面是符号扩展)h=+(十进制)(位二进制)。其他系数略。我用的是映射的方法即不用乘法只对应由查找表查出的结果输入时映射为+查表输出h输入时映射为-查表输出-h。再送入加法器求个系数的和。系数宽度位输出宽度位(防溢出)datain=,dataout=a(十六进制)=(位二进制)这是个正系数的和(这里的正系数不一定全是正数而只是标准所以把它看作“正数”)datain=,dataout=ee(十六进制)=(位二进制)这是个负系数的和。这个结果我对照十进制的数运算结果验证了一下是对的但是只能取位的后位来计算因为高位的都是加法的进位溢出。我主要由两个问题:)这种映射法恕我愚钝根本没明白(我也是看的论文但没有明白其真正含义)因为它和普通的比如m位输入和n位的系数相乘得到m+n位的结果思路完全不一样。这个映射为+-和普通的输入(m位二进制数代表一个x(n))有何关系?我的到aee这些结果还要累加吗?(此问题可能比较愚蠢欢迎扔鸡蛋))我运算的是有符号数那溢出的这些多出的位怎么处理?因为下一步这些数据还要送到下一个模块处理。保留的话多出的哪些位显然没用。扔掉的话行吗?学了FORLOOP的用法以后,有点想法那么在此基础上怎么实现并口的输出呢如:Q()<=DINFORIINDOWNTOLOOPQ(I)<=Q(I)ENDLOOPOP<=QOP定义为STDLOGICvector(downto)我总感觉每次触发输出的都是在Q()口,而且该值就是DIN在个周期前的值那么要是想实现DIN个连续数据的同时输出,应该怎么做感觉每次触发输出的都是在Q()口这句话不是很明白。反正这样的转换很快的只要有触发马上可以完成分析如下:q()>q(),然后q()>q(),然后q()>q()q()>q()实际上只是延迟了几个周期,也就是q()<=din,并没有实现串行向并行的转换不大理解用这个forloop语句如何实现串并转换的望告知把Q()<=DINFORIINDOWNTOLOOPQ(I)<=Q(I)ENDLOOP放在进程里面就可以。同志做cpldfpga设计的时候需要记住一点verilog是硬件设计而不是软件编程所以做好不要使用for循环这样的语句太浪费资源了!思考的时候要学会使用DFF这应该是个移位寄存的电路也是DIN个连续数据的同时输出只不过是移位次就并处一次。其实隔个周期看一下输出就是你要的结果了。真要串入位并出次要一个计数器或状态机也行啊去构建自己想要的电路!这是我写的分频的改变计数器可以是别的奇数分频libraryIEEEuseIEEESTDLOGICALLuseIEEESTDLOGICARITHALLuseIEEESTDLOGICUNSIGNEDALLendprocessclk<=candcendBehavioralc,c一个在时钟的上升沿变化一个在下降沿变化所

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/17

FPGA笔试面试题目

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利