




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Verilog写状态机大概有这样几点要求:1、组合逻辑完成状态转移的条件判断,时序逻辑完成状态机的状态转移。2、组合逻辑和时序逻辑分别在两个不同的always块中完成,根据状态机状态通过译码逻辑产生的与状态机无关的逻辑部分不要放在专用的状态机always块中。3、状态编码预先定义为parameter,状态较少的状态机推荐使用one-hot方式编码,以减小译码逻辑的复杂度,提高性能。4、建议单独使用一个模块来描述状态机。5、状态机应有一个default状态,在上电复位的时候作为初始状态。6、注意状态机组合逻辑中的if.else语句,不要出现latch。7、对于复杂状态机,最好采用状态机嵌套方式完成。其实上面很多都是按照Synopsys LEDA的coding style的要求的,状态机的写法相对固定,因此很多Design entry的工具可以自动生成状态机代码,Xilinx也有工具支持直接由状态转移图输入完成状态机的编码。所以关键还是画好状态转移图,其他就相对简单了。 visual hdlISEsynplify Promodelsim! 1.设计输入1)设计的行为或结构描述。2)典型文本输入工具有UltraEdit-32和Editplus.exe.。3)典型图形化输入工具-Mentor的Renoir。4)我认为UltraEdit-32最佳。2.代码调试1)对设计输入的文件做代码调试,语法检查。2)典型工具为Debussy。3.前仿真1)功能仿真2)验证逻辑模型(没有使用时间延迟)。3)典型工具有Mentor公司的ModelSim、Synopsys公司的VCS和VSS、Aldec公司的Active、Cadense公司的NC。4)我认为做功能仿真Synopsys公司的VCS和VSS速度最快,并且调试器最好用,Mentor公司的ModelSim对于读写文件速度最快,波形窗口比较好用。4.综合1)把设计翻译成原始的目标工艺2)最优化3)合适的面积要求和性能要求4)典型工具有Mentor公司的LeonardoSpectrum、Synopsys公司的DC、Synplicity公司的Synplify。5)推荐初学者使用Mentor公司的LeonardoSpectrum,由于它在只作简单约束综合后的速度和面积最优,如果你对综合工具比较了解,可以使用Synplicity公司的Synplify。5.布局和布线 1)映射设计到目标工艺里指定位置 2)指定的布线资源应被使用3)由于PLD市场目前只剩下Altera,Xilinx,Lattice,Actel,QuickLogic,Atmel六家公司,其中前5家为专业PLD公司,并且前3家几乎占有了90的市场份额,而我们一般使用Altera,Xilinx公司的PLD居多,所以典型布局和布线的工具为Altera公司的Quartus II和Maxplus II、Xilinx公司的ISE和Foudation。4)Maxplus II和Foudation分别为Altera公司和Xilinx公司的第一代产品,所以布局布线一般使用Quartus II和ISE。6.后仿真1)时序仿真2)验证设计一旦编程或配置将能在目标工艺里工作(使用时间延迟)。3)所用工具同前仿真所用软件。7.时序分析4)一般借助布局布线工具自带的时序分析工具,也可以使用Synopsys公司的 PrimeTime软件和Mentor Graphics公司的Tau timing analysis软件。8.验证合乎性能规范1)验证合乎性能规范,如果不满足,回到第一步。9.版图设计1)验证版版图设计。2)在板编程和测试器件。 FPGA to ASIC有很多问题都要重新考虑。随便举几个例子:1。时钟设计:FPGA一般使用全局时钟资源,严格避免使用门控时钟。而ASIC考虑到功耗等因素,应该建立时钟树结构。2。RAM,FIFO等基本模块;FPGA设计一般用vendor提供的IP,认为vendor的IP的效率、稳定性、健壮性都很好。但是ASCI中除非你购买,一般是没有免费的RAM,FIFO等IP,自己用HDL语言描述,要考虑很多问题,比如bist等,要对RAM的健壮性等加以测试,保障。3。同步时序设计:FPGA提倡使用全同步时序设计,因为FPGA的基本可编程单元都是由固定比例的FF和4LUT构成的。而ASCI一切都是用逻辑门实现的,一个D触发器大概要消耗7个门左右(最少),而一个与非门用一个逻辑门就够了,所以大量使用FF,会造成规模的大幅度膨胀。所以ASCI经常要使用大面积的组合逻辑。4。实现约束和设计思想,由于3所述的原因,ASIC与FPGA在时序约束和设计思想上都有很大的差异。 以前由于工作的需要,花了一些时间看了加法器设计方面的资料,当时就想稍为整理一下,只是太忙顾不上。前几天有网友想讨论一下加法器的设计问题,我觉得讨论最好有个基础,于是整理出加法器介绍一文,希望起到抛砖引玉的作用,请大家批评指正。加法器设计介绍(1)随着大规模、高速度FPGA的广泛应用,基于FPGA的定制DSP应用日渐普遍,与传统DSP处理方法相比较具有更高的速度、设计灵活、易于更改等优点。常常应用于对设计方案和关键算法的验证。定制DSP应用使设计者可以为特定的设计提供最佳的实现方案并缩短了开发周期与成本。在DSP运算中,加法是最常用的,如何设计好加法器是FPGA/ASIC设计的一个重要问题。加法器的种类非常多,根据加数个数的不同,可以分为两个加数的加法器和多个加数的加法器;根据进位的处理方式不同,可以分为进位传播加法器、进位保存加法器等,其中进位传播加法器又有很多不同的实现方式,例如行波进位加法器、超前进位加法器、carry-skip加法器、carry-select加法器等,各种加法器之间的关系入图1所示。图1把加法器分为1-bit加法器、进位传播加法器(Carry-propagate adders)、进位保存加法器(Carry-save adders)和多操作数加法器(multi-operand adders)等4大类。其中1-bit加法器完成两个位宽为1比特的操作数相加,包括半加器(HA,Half Adder)、全加器(FA,Full Adder)等类型。进位传播加法器的种类比较多,有行波进位加法器(RCA,ripple-carry adder)、进位skip加法器(CSKA,carry-skip adder)、进位选择加法器(CSKA,carry-select adder)、进位递增加法器(CIA,carry-increment adder)、超前进位加法器(CLA,carry-lookahead adder)、并行前缀加法器(PPA,parallel-prefix adder)、条件累加加法器(COSA, conditional-sum adder)等,这样划分的根据是进位的处理方法不同。众所周知,加法器的关键路径在进位链上,例如为了实现一个32比特的加法器,如果不考虑来自低位的进位,那么可以用32个1-bit加法器,把两个操作数按位相加,经过1-bit加法器的延迟就可以得到加法的结果,这样的“加法器”面积小、速度快。但是实际情况却不是那么理想,高位的结果和低位的进位是密切相关的,因此在得到低位的进位之前,高位无法输出相加结果,也就是说第1位进位产生后,才能产生结果的第2比特和进位,然后产生第3比特的结果和进位,如此类推,可见,需要很长时间才能得到第32位的结果和进位。在这个过程中,由于进位传播的存在严重影响了加法器的速度,为了解决这个问题,人们设计了多种不同的进位传播方式,希望减小关键路径的长度,相应地产生了很多中不同地进位传播加法器。进位保存加法器(CSA)是一种特殊的加法器,它把进位作为加法的输出结果,而不作为中间结果并传递到高位去,从而避免了进位的传播过程。例如使用CSA实现1011000111时,相加的结果包括两个部分,一是不考虑进位的按位相加结果10001,第二部分是进位00110,最终的结果是把这两个部分加起来,即10001(001101),但是把“两个部分加起来”这个操作不是CSA的一部分。CSA加法器由3个输入(即两个操作数和1个进位输入),或者2个输入(只有两个操作数,没有进位输入)。CSA可以用多个全加器实现,CSA的延迟是个常数,与操作数的位数无关,这是一个很重要的特点。多操作数加法器(multi-operand adders)完成3个或以上操作数的相加,包括阵列加法器和树状加法树等,其中阵列加法器一般用CSA实现,CSA做多操作数的加法具有很大的优势。下次进一步介绍各种加法器的特点、结构和实现方法。亚稳态与设计可靠性 设计数字电路时大家都知道同步是非常重要的,特别当要输入一个信号到一个同步电路中,但是该信号由另一个时钟驱动时,这是要在接口处采取一些措施,使输入的异步信号同步化,否则电路将无法正常工作,因为输入端很可能出现亚稳态(Metastability),导致采样错误。这里我们对亚稳态的起因、危害、对可靠性的影响和消除仿真做一些介绍。 1亚稳态发生的原因 在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺、振荡、固定的某一电压值,而不是等于数据输入端D的值。这段之间成为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系。 2亚稳态的危害 由于输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值,因此亚稳态除了导致逻辑误判之外,输出01之间的中间电压值还会使下一级产生亚稳态(即导致亚稳态的传播)。 逻辑误判有可能通过电路的特殊设计减轻危害(如异步FIFO中Gray码计数器的作用),而亚稳态的传播则扩大了故障面,难以处理。 3亚稳态的解决办法 只要系统中有异步元件,亚稳态就是无法避免的,因此设计的电路首先要减少亚稳态导致错误的发生,其次要使系统对产生的错误不敏感。前者要靠同步来实现,而后者根据不同的设计应用有不同的处理办法。用同步来减少亚稳态发生机会的典型电路如图1所示。 在图1中,左边为异步输入端,经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态。其原理是即使第一个触发器的输出端存在亚稳态,经过一个CLK周期后,第二个触发器D端的电平仍未稳定的概率非常小,因此第二个触发器Q端基本不会产生亚稳态。注意,这里说的是“基本”,也就是无法“根除”,那么如果第二个触发器Q出现了亚稳态会有什么后果呢?后果的严重程度是有你的设计决定的,如果系统对产生的错误不敏感,那么系统可能正常工作,或者经过短暂的异常之后可以恢复正常工作,例如设计异步FIFO时使用格雷码计数器当读写地址的指针就是处于这方面的考虑。如果设计上没有考虑如何降低系统对亚稳态的敏感程度,那么一旦出现亚稳态,系统可能就崩溃了。 4亚稳态与系统可靠性 使用同步电路以后,亚稳态仍然有发生的可能,与此相连的是MTBF(Mean Time Between Failure),亚稳态的发生概率与时钟频率无关,但是MTBF与时钟有密切关系。 有文章提供了一个例子,某一系统在20MHz时钟下工作时,MTBF约为50年,但是时钟频率提高到40MHz时,MTBF只有1分钟!可见降低时钟频率可以大大减小亚稳态导致系统错误的出现,其原因在于,提供较长的resolution time可减小亚稳态传递到下一级的机会,提高系统的MTBF,如图2所示。 5总结 亚稳态与设计可靠性有非常密切的关系,当前对很多设计来说,实现需要的功能并不困难,难的是提高系统的稳定性、可靠性,较小亚稳态发生的概率,并降低系统对亚稳态错误的敏感程度可以提高系统的可靠性。 模块划分非常重要,除了关系到是否最大程度上发挥项目成员的协同设计能力,而且直接决定着设计的综合、实现时间。下面是一些模块划分的原则。 a.对每个同步设计的子模块的输出使用寄存器(registering)。也即用寄存器分割同步时序模块的原则。 使用寄存器的好处有:综合工具在编译综合时会将所分割的子模块中的组合电路和同步时序电路整体考虑。而且这种模块结构符合时序约束的习惯,便于使用时序约束熟悉进行约束。 b.将相关的逻辑或者可以复用的逻辑划分在同一模块内。 这样做的好处有,一方面将相关的逻辑和可以复用的逻辑划分在同一模块,可以最大程度的复用资源,减少设计消耗的面积。同时也更利于综合工具优化一个具体功能(操作)在时序上的关键路径。其原因是,综合工具只能同时考虑一部分逻辑,而所同时优化的逻辑单元就是模块,所以将相关功能划分在同一模块更有利于综合器的优化。 c.将不同优化目标的逻辑分开。 好的设计,在规划阶段,设计者就已经思考了设计的大概规模和关键路径,并对设计的优化目标有一个整体上的把握。对于时序紧张的部分,应该独立划分为一个模块,其优化目标为“speed”,这种划分方法便于设计者进行时序约束,也便于综合和实现工具进行优化。比如时序优化的利器Amplify,使用模块进行区域优化更方便一些。另一类矛盾集中在面积的设计,也应该划分成独立的模块,这类模块的优化目标是“Area”,同样将他们规划到一起,更有利于区域布局与约束。这种根据优化目标进行优化的方法的最大好处是,对于某个模块综合器仅仅需要考虑一种优化目标和策略,从而比较容易达到较好的优化效果。相反的如果同时考虑两种优化目标,会使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《谏逐客书》教学课件制作
- 《谁丢的鞋子》课件
- 公司行政部安全培训记录课件
- 亲子阅读课件
- 税务预算管理办法解读
- 亲子互动探索课件
- 《让我自己来》课件
- 蛛网膜下腔出血的护理
- 连锁餐饮研发部工作总结
- 事故管理安全培训课件
- 2025年数字解密:药食同源生意下最香的成分与赛道研究报告
- GB/T 12643-2025机器人词汇
- 实验室内质控记录表格完整
- 基层医疗机构抗菌药物合理使用
- GB∕T 17794-2021 柔性泡沫橡塑绝热制品
- 商业银行监管评级简表
- 肾动脉狭窄介入治疗PPT课件(PPT 30页)
- 10kV架空线路设计PPT课件(PPT 69页)
- (完整PPT)宋词的发展史课件
- 《近现代史纲要教学资料》中国近现代史纲要
- Q∕GDW 12174-2021 智能量测开关技术规范
评论
0/150
提交评论