逻辑设计方法学【1】 -- 常用设计技术

使用HDL代码进行设计的时候,需要注意所选取的综合工具是哪一种,无论是FPGA开发套件自带的综合工具(synthesis tools)还是第三方的综合工具,它们对同一段HDL语言综合结果都有可能不同,综合工具有可能违背设计者的最初设计想法,优化掉某些设计。所以在实际设计过程中,需要对所使用的综合工具有比较清楚的了解。但是在实际使用综合工具的时候,设计者是很难清楚地知道综合工具是怎样对HDL语句进行综合。那么折中的方法是参考每一家FPGA厂商所提供的HDL coding guidelines。尽可能地使用基于综合工具所提供的HDL模板。以使综合器在综合(synthesis)和实现(implement)以达到最佳的性能。


即使每种综合器的算法不同导致综合结果有差异,但还是有一些常见的比较通用的设计技术,使设计者在设计的过程中做到规范设计。


下面就介绍一些设计中需要规避的设计方法。


1.避免在设计中出现组合环路

我们知道,同步设计是数字设计中最推荐最安全的设计方法。同步设计中,所有反馈回路都应该包含寄存器(同步设计)。但如果在反馈回路中,没有使用寄存器而是直接使用组合逻辑构成环路,这种组合环路就违背了同步设计原理。组合环路对设计是一种冒险,在遇见组合环路时,有些综合器会报错(ERROR),提示这是不可综合的;但有些综合器只会给出警告(WARNING),这点在设计的时候需要注意查看相关log。


在同步设计中我们使用always语句和阻塞语句来实现同步环路,这是没有问题的。但如果某些设计初学者,把其中的always和阻塞语句换成了always和非阻塞语句,这样就形成了组合环路。具体参考下面的HDL代码描述:

al
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值