打印

FPGA设计中的编程技巧

[复制链接]
1376|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2012-10-17 12:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘 要:在数字系统设计中,FPGA设计已成为数字系统设计领
域中的重要方式之一,在电子、通信等领域得到了广泛应用。本文以Verilog HDL为例,讨
论了在进行FPGA设计中编写代码的技巧。
  关键词:FPGA;Verilog;编程技巧;数字系统计

1引言
  
随着电子技术的发展,芯片的复杂程度越来越高,人们对数万门乃至数百万门电路设计的
需求也越来越多。采用硬件描述语言HDL的设计方式应运而生,而在利用硬件描述语言HDL进
FPGA
设计时,高效的代码有利于得到较为理想的电路。
  Verilog HDL因其提供了非常精炼和易读的语法而受到广大硬件工程师的青睐。本文
讨论了在进行FPGA设计中,如何通过编写Verilog HDL代码达到预期的设计要求。

2设计技巧
2.1
如何减少关键路径上的组合逻辑单元数
  在FPGA中每条关键路径上的逻辑单元都会增加一定的时延。因此为了保证关键路径能满足时
序约束,设计时必须考虑在关键路径上如何减少逻辑单元的使用。下面的例子说明了如何减
少关键路径上的逻辑单元个数。
  首先假设“critical”所经的路径是一条关键路径,在下面的例子中“critical”经过了2
个逻辑单元。
  
  
  为了减少“critical”所经过的逻辑单元数,对程序进行如下的修改,使“critical”经过
的逻辑单元变为1
个。

相关帖子

沙发
星星之火红|  楼主 | 2012-10-17 12:58 | 只看该作者
2.2资源共享
  资源共享能减少宏单元的使用数量,因此在设计时同样可以通过编写合适的程序来达到资源共享的目的。下面举一个简单的例子来说明。
  下面是1个二选一选择器和2个加法器。
  
  
  为了能够加大资源的利用率,重新书写代码已达到资源共享目的。
  
  
2.3为优化逻辑而进行的复制
  设计人员在利用综合工具对可编程逻辑器件进行综合时,都会面临一个问题,即综合工具并 不能对复杂的设计实现最佳的布局、布线结果。大多数综合工具都有一个扇出控制。因此,为了优化设计,建议在设计代码中产生复制逻辑,许多综合工具都可以优化复制,但必须告诉综合工具保持其重复逻辑。
2.3.1复制组合逻辑
  如果一个扇出大于1的组合逻辑不能在CLB内部实现,这时需要对组合逻辑进行复制。下面给出组合逻辑复制的例子。
  
  
  可以重新书写代码达到组合逻辑复制的目的。
  


  
2.3.2复制触发器
  为了优化设计,可对大扇出信号的触发器进行复制。因为大扇出信号能减缓布线速度,并增加布线的难度。可以通过复制触发器解决2个问题:减小扇出,缩短布线延迟;复制后每个触发器可以驱动芯片的不同区域,有利于布线。下面给出复制触发器的例子。
  
  
  修改设计代码,可将触发器进行复制,降低tri_end的扇出。
  

使用特权

评论回复
板凳
星星之火红|  楼主 | 2012-10-17 12:59 | 只看该作者
2.5阶层化设计
  随着人们设计的电路的逻辑越来越复杂,采用传统的平坦式设计来设计电路,已经不能满足
设计人员的要求。因此出现了阶层化设计,即将设计任务分解到可控制模块中的方法形成阶
层结构。采用阶层化设计有利设计的保存、继承。对每一个功能模块,设计人员可以建立通
用的功能模块库,既便于与其他功能模块接口,又可以再次使用,避免重复劳动。在将一个
设计划分为几个模块时,最好以寄存器作为划分模块的边界。这样有利于综合器综合出速度
更快的电路。下面这个例子说明了如何寄存模块的输出。


  
  
  为了寄存模块的输出,可对代码进行如下的修改。
  
3
结语
  随着硬件描述语言HDL被广泛接受,掌握好硬件描述语言HDL对缩短开发时间,提高设计效率
大有裨益。

参考文献

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝