- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有限状态机FSM指导 enum指导 状态赋值枚举,也用来将状态赋值捆绑到状态向量。 state_vector指导 定义状态寄存器和编码类型 状态机的描述也有综合指导。在RTL代码中,FSM指导向优化器传递状态机有关的特性信息。 这些指导有: FSM指导 `timescale 1ns/ 100ps module state4 (clock, reset, out); input reset, clock; output [1: 0] out; reg [1: 0] out; parameter /* ambit synthesis enum state_info */ stateA = 2b00, stateB = 2b01, stateC = 2b10, stateD = 2b11; reg [1: 0] /* ambit synthesis enum state_info */ state; reg [1: 0] /* ambit synthesis enum state_info */ nextstate; always @( posedge clock) /* ambit synthesis state_vector state -encoding one_hot */ if (reset) state = stateA; else state = nextstate; . . . 枚举名称定义 枚举名称限用于state、nextstate向量 定义状态寄存器并指定编码格式 资源共享 资源共享是指多节代码共享一组逻辑。例如: always @( a or b or c or d) if (a) out = b + c; else out = b + d; 没有资源共享 资源共享 资源共享与所用综合工具有关。但通常,要共享资源,表达式必须在同一个always块中的同一个条件语句中。 资源共享 资源共享可以由RTL代码控制。例如,可以改变编码风格强制资源共享。 if (a) out = b + c; else out = b + d; 原始代码 强制资源共享 temp = a ? c : d; out = b + temp; 或 out = b + (a ? c : d); 复杂操作符 大多数工具可以将它映射为一个乘法器。 专用宏单元库中可能有乘法器。宏单元库中的元件的复杂程度要比常规单元库高。 宏单元库可以包含部分可重用设计,如FIFO,加法器,减法器(各种结构),移位寄存器,计数器和解码器等。、 宏单元库还可以包括用户自定义的可重用块,由用户自己设计并综合。 复杂操作符是可以被识别为高层操作并被直接映射到一个向量库内以存在单元的操作。例如: out = a * b; 综合工具不能胜任的工作 时钟树 复杂的时钟方案 组合逻辑反馈循环和脉冲发生器 存储器,IO 专用宏单元 总做得和你一样好 综合工具不能胜任的工作 综合工具善于优化组合逻辑。但设计中有很大一部分不是组合逻辑。 例如,时钟树。时钟树是全局的、芯片范围的问题。在没有版图布局信息的情况下,要给出较优的结果,综合工具对块的大小有一定的限制。 综合工具不能很好地处理复杂时钟。通常,只允许要综合的块含有一个时钟。但设计中经常使用两相时钟或在双沿时钟。 综合工具不易实现脉冲产生逻辑,如单个脉冲,或结果依赖于反馈路径延迟的组合反馈逻辑。对这种情况,插入延迟元件使一个信号推迟到达的效果并不好。 不能用综合产生大块存储器,因为综合工具会用flip-flop实现。 不是所有的综合工具都能很好地从工艺库里挑选择大的单元或宏单元,这需要用户人工实例化。一些宏单元,例如大的结构规则的数据通路元件,最好使用生产商提供的硅编译器产生。 综合工具不保证产生最小结果。通常综合结果不如人工结果,只要你有足够的时间。 可编程逻辑器件相关问题 迄今为止,很多注释假定综合为ASIC。对FPGA,存在一些不同问题。所有ASIC综合工具以同样的方式工作,使用同样的优化算法,且目标工艺库的单元也是相似的。众所周知,FPGA使用不同的技术,EEPROM,SRAM和anti-fuse,且每个开发商有不同的构造块,这些块比ASIC使用的基本门要大很多。 对特定的FPGA,其结构是固定的,限制了静态时序分析的效用,因为ASIC的路径延迟变化的范围很大,而FPGA是可预测的。而且,FPGA设计
文档评论(0)