您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > eetop[1]cn_Xilinx fpga 设计培训中文教程-同步设计技术
©2002Xilinx公司版权所有同步设计技术同步设计技术-11-3©2002Xilinx公司版权所有目标完成本单元的学习后你将会:•有效地利用层次•通过采用同步设计技术提高电路可靠性及性能同步设计技术-11-4©2002Xilinx公司版权所有概览•层次化设计•XilinxFPGA的同步设计•总结同步设计技术-11-5©2002Xilinx公司版权所有层次化设计计数器加法器/减法器移位器累加器数据通路流水多路选择/解多路选择算术•利用层次化设计可以提高设计可读性,可重用性,以及可调试性状态机一位有效二进制枚举型设计顶层在此处推知或例化I/O建立块标准宽度流水RAM特定功能块逻辑块RAM其它的IP/核核生成器参数化功能块FIFOsFIR滤波器RAM特定技术功能同步设计技术-11-6©2002Xilinx公司版权所有使用层次化设计的益处•为每种类型的逻辑选用最适宜的设计输入方法•设计可读性–更易理解设计功能性和数据流–更易调试•易于复用一个设计中的各部分•综合工具获益–在稍后的小节中有涉及同步设计技术-11-7©2002Xilinx公司版权所有设计输入方法•将HDL用于–状态机–控制逻辑–总线函数•将原理图用于–顶层设计–手动优化逻辑•“混合模式”设计可以利用两者中最好的–但是它们比全HDL设计要难移植•现在的大部分设计是在纯HDL没有原理图方式下做成的–纯HDL设计总体而言较易移植–在大型设计中原理图顶层优势将丧失同步设计技术-11-8©2002Xilinx公司版权所有设计可读性技巧•选择层次化的块具备:–块与块之间的布线最少–块与块之间的逻辑数据流•为功能块和信号选择描述性的名称•保持时钟域间彼此独立–使时钟间的相互作用很明晰•保持每个源文件的长度可管理–更易于读综合和调试同步设计技术-11-9©2002Xilinx公司版权所有设计复用性技巧•建立一组所有设计者可用的块–寄存器组–FIFOs–其它的标准函数–在应用中被普遍采用的用户函数•按功能和Xilinx目标器件系列命名块–易于定位你要的块–示例REG_4X8_SP以Spartan作为目标器件的四个8-bit的寄存器组•存储在独立于Xilinx工具的一个子目录中–防止更新工具时意外的删除同步设计技术-11-10©2002Xilinx公司版权所有概览•层次化设计•XilinxFPGA的同步设计•总结同步设计技术-11-11©2002Xilinx公司版权所有为何要同步设计•同步电路更可靠–事件在确定的间隔的时钟边沿触发–一个逻辑级的输出传递到下一级需要一整个时钟周期•数据到达时间的偏差如果在同一个时钟周期内则被容许•异步电路较不可靠–时延需为一个特定值如12ns–多时延可能需要保持一个特定的关系如:DATA在SELECT的5ns前到达同步设计技术-11-12©2002Xilinx公司版权所有异步设计个案学习•我两年前做成的一个设计不再能工作了Xilinx在他们的FPGA中做过哪些变动–SRAM工艺改进以及几何收缩提高了速度–晶圆批次间的正常差异•我的设计通过了一个时序仿真测试但是在电路实现阶段却失败了时序仿真精确吗是的–时序仿真采用最差情况下的时延–实际的板级条件通常会好些同步设计技术-11-13©2002Xilinx公司版权所有时钟偏差DQ_BQ_CINPUTCLOCKDDQ_A3.13.03.13.312.53.0ABC•因为时钟偏差这个移位寄存器将不能工作期望操作ClockQ_AQ_BQ_C3cycles时钟偏差情形A&CClockQ_AQ_BQ_CBClock2cycles同步设计技术-11-14©2002Xilinx公司版权所有使用全局时钟缓冲器降低时钟偏差•全局缓冲器与专用的布线相连–这种布线网络被平衡到最小偏差•所有的Xilinx的FPGA都有全局缓冲器–Virtex-II器件有16个BUFGMUX–Virtex和Spartan-II有4个BUFG•你可以一直利用一个BUFG符号并且软件将选择一个合适的缓冲器类型–所有的主流的综合工具都可以为片外的时钟信号推知全局缓冲器同步设计技术-11-15©2002Xilinx公司版权所有使用全局线•大多数综合工具会识别设计中的时钟信号并且自动地推知为BUFG•示例BUFGMUX例化•BUFGMUXU_BUFGMUX•(.I0(),//插入当选择信号S为低时需要的时钟输入信号•.I1(),//插入当选择信号S为高时需要的时钟输入信号•.S(),//插入多路选择输入信号•.O()//插入时钟输出信号);•按照注释提示进行VHDL的声明和例化•注意这些模板以及BUFGMUX的其它配置模式模版在ISE语言模板中可以获得同步设计技术-11-16©2002Xilinx公司版权所有传统的时钟分频器•在CLK1和CLK2之间引入时钟偏差•利用一个额外的BUFG降低CLK2上的时钟偏差DQCLK2DQBUFGCLK1BUFG同步设计技术-11-17©2002Xilinx公司版权所有推荐的时钟分频器•在触发器之间没有时钟偏差DQCLK2_CECLK1DCEQBUFG同步设计技术-11-18©2002Xilinx公司版权所有避免时钟毛刺•因为目前的FPGA中的触发器的响应速度很快它们可以响应很窄的时钟脉冲•绝对不要用从组合逻辑产生的信号作为时钟信号源–也称为“门控时钟”较短的布线MSB01111000瞬变可能会变成011111111000瞬变由于更快的MSBMSBLSBFF毛刺也许会在这里出现二进制计数器同步设计技术-11-19©2002Xilinx公司版权所有避免时钟毛刺续•本电路有着同样的功能但不会有时钟毛刺DQ3INPUTCLOCKQ2Q1Q0CEQDCounterFF同步设计技术-11-20©2002Xilinx公司版权所有带时钟使能的编码VHDLFF_AR_CE:process(CLK)beginif(CLK’eventandCLK=‘1’)thenif(ENABLE=‘1’)thenQ=D_IN;endif;endif;endprocessVerilogalways@(posedgeCLOCK)if(ENABLE)Q=D_IN;在另一个进程中编写使能切换代码同步设计技术-11-21©2002Xilinx公司版权所有避免置位/复位毛刺•异步置位/复位输入信号中的毛刺可以导致错误的电路行为QFFDCLRINPUT异步复位二进制计数器CLOCKQ[x]Q[0]RESET同步设计技术-11-22©2002Xilinx公司版权所有避免置位/复位毛刺续•可能时变为同步置位/复位QFFDRINPUT同步复位CLOCKQ[x]计数器Q[0]RESET同步设计技术-11-23©2002Xilinx公司版权所有同步触发器的编码•同步复位process(CLK)beginif(CLK’eventandCLK=‘1’)thenif(RESET=‘1’)thenQ=‘0’;elseQ=D_IN;endif;endif;endprocess•异步复位process(CLK,RESET)beginif(RESET=‘1’)thenQ=‘0’;elsif(CLK’eventandCLK=‘1’)thenQ=D_IN;endif;endprocess同步设计技术-11-24©2002Xilinx公司版权所有概览•层次化设计•XilinxFPGA的同步设计•总结同步设计技术-11-25©2002Xilinx公司版权所有问题回顾•列出层次化设计的三个好处•为什么你必须为时钟信号选用全局缓冲器•用什么替换门控时钟的方法同步设计技术-11-26©2002Xilinx公司版权所有回答•列出层次化设计的三个好处–允许你利用不同的设计输入方法–设计可读性–设计复用•为什么你必须为时钟信号选用全局缓冲器–为了减少时钟偏差•用什么替换门控时钟的方法–采用时钟使能信号同步设计技术-11-27©2002Xilinx公司版权所有总结•层次的正确采用有助提高设计可读性和调试性•同步设计比异步设计更可靠•FPGA设计技巧–采用全局时钟缓冲器以及DLL来消除偏差–避免时钟信号中的毛刺以及异步置位/复位同步设计技术-11-28©2002Xilinx公司版权所有从何处可以了解更多•网页上的应用指南–设计条下点击应用指南•软件技术文档–开发系统参考指南的第2章“设计流程”中FPGA设计技术部分–库指南–用于综合工具的技术文档
本文标题:eetop[1]cn_Xilinx fpga 设计培训中文教程-同步设计技术
链接地址:https://www.777doc.com/doc-957775 .html