完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
从您在这里展示的图片中,您可以看到精心设计的图案。
精化只是综合的第一部分。 通常,您可以通过一系列步骤查看完整的合成过程: - 精心设计 - 应用约束 - 执行高级优化 - 执行技术映射 - 执行低级优化 我们的RTL以文本文件(用Verilog / VHDL / SystemVerilog编写)开头。 完整的综合过程是时间驱动的 - 在应用约束之前,大多数“实际工作”都无法完成。 但是,约束不能应用于“文本文件” - 它们需要应用于网表。 因此,第一步,详细说明,将我们的RTL文本文件非常直译,转换为一组互连的通用技术元素。 这基本上是通过模式匹配RTL代码结构到特定的通用技术元素(寄存器,锁存器,加法器,减法器,多路复用器等......)来完成的。 一旦我们有了这个网表,就可以应用约束,并可以执行后面的步骤。 请注意,高级和低级优化步骤都是在详细说明之后完成的。 因此,您正在查看的网表仅是详细说明的结果。 实际上,您可以看到这些工具完全实现了您的RTL代码。 第二个代码更清晰 - 它看到“总是@(posedge i_clk或negedge i_rst)开始if(!i_rst)”并说“这是一个异步清除的触发器 - 它会在“if(i_a)”中看到其他所有内容并说“这是芯片启用” - 它根据(i_b&& i_c)的结果将其余部分视为MUX,并实现AND门和MUX 第一个代码分析起来比较复杂,但如果你看一下,你会发现它也是RTL代码的字面翻译。 重要的是,在详细说明(生成这些示意图的时候)之后,还没有进行任何优化。 如果允许合成继续进行,它将继续进行优化步骤,很可能(但不能保证)这两个实现最终会得到相同或至少相似的结构和资源利用率。 话虽如此,很明显第二种形式“更好” - 原因很简单,对于我们人类(忘记工具)它更小更清晰。 第一种形式更复杂,更难理解。 我甚至认为第三种形式更简单: 总是@(posedge i_clk或negedge i_rst)开始 如果(!i_rst)开始 回覆 最后,我想对重置做一些评论。 您的复位信号是i_rst,但它是一个低电平有效的异步清零。 因此,至少,我会考虑以这样的方式命名此信号,以便您可以轻松识别它是低电平有效 - 至少是“i_rst_n”。 此外,它是异步的,所以我会考虑将其称为“i_arst_n”。 最后,虽然支持异步清除,但不建议使用它们 - Xilinx建议采用同步复位方法(甚至是一种最小化重置触发器数量的方法)...... Avrum 在原帖中查看解决方案 |
|
|
|
|
|
|
|
嗨@ alex_sun,
在第一种和第二种情况下,重置的场景是相同的。 正如您所看到的精心设计,您将看到2个i / p MUX和逻辑门。 请运行综合并比较原理图。 它应该是一样的。 谢谢,Arpan ----------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - - -请注意- 如果提供的信息有用,请将答案标记为“接受为解决方案”。给予您认为有用且回复的帖子。感谢Kudos .-------------------- -------------------------------------------------- ------------------------ |
|
|
|
从您在这里展示的图片中,您可以看到精心设计的图案。
精化只是综合的第一部分。 通常,您可以通过一系列步骤查看完整的合成过程: - 精心设计 - 应用约束 - 执行高级优化 - 执行技术映射 - 执行低级优化 我们的RTL以文本文件(用Verilog / VHDL / SystemVerilog编写)开头。 完整的综合过程是时间驱动的 - 在应用约束之前,大多数“实际工作”都无法完成。 但是,约束不能应用于“文本文件” - 它们需要应用于网表。 因此,第一步,详细说明,将我们的RTL文本文件非常直译,转换为一组互连的通用技术元素。 这基本上是通过模式匹配RTL代码结构到特定的通用技术元素(寄存器,锁存器,加法器,减法器,多路复用器等......)来完成的。 一旦我们有了这个网表,就可以应用约束,并可以执行后面的步骤。 请注意,高级和低级优化步骤都是在详细说明之后完成的。 因此,您正在查看的网表仅是详细说明的结果。 实际上,您可以看到这些工具完全实现了您的RTL代码。 第二个代码更清晰 - 它看到“总是@(posedge i_clk或negedge i_rst)开始if(!i_rst)”并说“这是一个异步清除的触发器 - 它会在“if(i_a)”中看到其他所有内容并说“这是芯片启用” - 它根据(i_b&& i_c)的结果将其余部分视为MUX,并实现AND门和MUX 第一个代码分析起来比较复杂,但如果你看一下,你会发现它也是RTL代码的字面翻译。 重要的是,在详细说明(生成这些示意图的时候)之后,还没有进行任何优化。 如果允许合成继续进行,它将继续进行优化步骤,很可能(但不能保证)这两个实现最终会得到相同或至少相似的结构和资源利用率。 话虽如此,很明显第二种形式“更好” - 原因很简单,对于我们人类(忘记工具)它更小更清晰。 第一种形式更复杂,更难理解。 我甚至认为第三种形式更简单: 总是@(posedge i_clk或negedge i_rst)开始 如果(!i_rst)开始 回覆 最后,我想对重置做一些评论。 您的复位信号是i_rst,但它是一个低电平有效的异步清零。 因此,至少,我会考虑以这样的方式命名此信号,以便您可以轻松识别它是低电平有效 - 至少是“i_rst_n”。 此外,它是异步的,所以我会考虑将其称为“i_arst_n”。 最后,虽然支持异步清除,但不建议使用它们 - Xilinx建议采用同步复位方法(甚至是一种最小化重置触发器数量的方法)...... Avrum |
|
|
|
只有小组成员才能发言,加入小组>>
2420 浏览 7 评论
2823 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2461 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1165浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
585浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
451浏览 1评论
2005浏览 0评论
729浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 10:53 , Processed in 1.458563 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号