当前位置:  开发笔记 > 编程语言 > 正文

多路复用器比其他逻辑更"昂贵"吗?

如何解决《多路复用器比其他逻辑更"昂贵"吗?》经验,为你挑选了1个好方法。

这主要是出于好奇.

我最近一直在研究的一些VHDL代码中的一个片段类似于以下内容:

led_q <= (pwm_d and ch_ena) when pwm_ena = '1' else ch_ena;

当然,这是一种多模式表达.但它也等同于以下基本逻辑表达式(至少在忽略非二进制状态时):

led_q <= ch_ena and (pwm_d or not pwm_ena);

当在FPGA中实际实现时,逻辑利用率或效率方面的"比"更好吗?是否最好使用一个而不是另一个,或者编译器是否足够智能以自己选择"最佳"?

(好奇的是,表达式的目的是定义LED的状态 - 如果ch_ena为假,它应该始终关闭,因为通道被禁用,否则它应该是固定的或根据闪烁pwm_d,根据pwm_ena(PWM启用).我认为第一种形式比第二种形式更明显地描述了这一点,尽管实现第二种形式并不太难.)



1> Morten Zilme..:

对于一个简单的逻辑表达式,如所示,合成工具可以轻松创建一个完整的真值表,表达式很可能被转换为内部真值表,然后直接映射到可用的FPGA LUT资源.由于真值表对于两个等价表达式是相同的,因此硬件也将是相同的.

但是,对于无法生成完整真值表的复杂表达式,例如在使用算术运算时和/或专用资源可用时,综合工具可以选择保持与原始VHDL更密切相关的内部表示代码,在这种情况下,即使对于等效表达式,VHDL编码样式也会对结果逻辑产生很大影响.

最后,实现是特定于工具的,因此找出生成逻辑的最佳方法是使用特定工具进行尝试,特别是对于设计的大型或时序关键部分,实现至关重要.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有