广告

原创 FPGA小结之硬件与语言的关系

2010-7-8 21:54 846 0 分类: FPGA/CPLD
FPGA是一种可编程逻辑器件,这说明两点:FPGA可编程特性表明其灵活性,同时逻辑器件说明其是主要的功能是形成数字逻辑电路。早期的FPGA是用原理图方式进行设计,这种方式很直接,设计直接逻辑网表层面进行表达。这样的好处是设计者非常清楚设计的逻辑层次和甚至可以预测映射到FPGA资源后的情况。比如,简单的四输入与门,或者一个加法器。因为设计很清楚逻辑层次,这样就能用最好的算法结构和最适合FPGA资源的逻辑设计,让设计的逻辑能运行更高的速度,以及更少的资源使用。

现在FPGA设计往往使用抽象度更高的HDL。虽然这提高了设计效率,让层次更低的逻辑网表类似的东西交给综合器去处理,但这也导致初学者往往沉迷于HDL语法本身,而不注意语句与硬件之间的映射关系。这会导致代码层面上的不可控,从而导致FPGA资源使用效率低下,设计时序出现问题。这点比较像C语言描述的高效与汇编语言运行快速和节省存储空间的关系。而在设计FPGA这种与硬件和底层密切相关的可编程器件时,就特别需要注意语言与实际资源的关系。

一条HDL代码最先被综合器综合成标准逻辑网表,然后再映射到FPGA硬件资源上去,然后在一定规则和约束下进行布局布线到器件,最后生成FPGA配置文件。作为FPGA设计者,需要在编写HDL阶段就要考虑到代码的综合情况,以及与FPGA资源的映射关系,这样才能使设计更好地利用FPGA资源的一些特性,从而在时序和面积,甚至功耗上得到优化。因此进行FPGA设计时需要了解如下几点:

  1.FPGA资源结构特性,包括其可编程逻辑块,全局时钟,IOB结构等等
  2.综合器对HDL语言的综合情况
  3.设计本身的速度与面积要求


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
henry23 2010-09-21 13:59
autotools使用流程
autotools使用流程正如前面所言,autotools是系列工具,读者首先要确认系统是否装了以下工具(可以用which命令进行查看)。 · aclocal · autoscan · autoco...
henry23 2010-09-14 15:48
linux--/etc/network/interface
auto loiface lo inet loopback静态无线: auto wlan0iface wlan0 inet static  address 192.168.3.186  netmask...
henry23 2010-06-05 22:55
选择食物标准
最近看了几期湖南台的百科全说,把饮食注意总结了一下选择食物标准1.抗氧化能力强2.纤维素含量高3.升糖指数低4.不饱和脂肪酸多蛋类1.一天最多吃一个鸡蛋,胆固醇含量270mg左右2.不要吃咸蛋/皮蛋/...
henry23 2010-05-28 21:07
EZ-FX2 USB开发
这段时间一直在弄EZ-FX2(LP),现在总结一下。EX-FX2(LP)支持USB2.0高速设备接口,内部集成了一个高性能51单片机,高速USB2.0接口引擎,内部RAM/FIFO,以及GPIF(通用...
henry23 2010-05-03 12:49
开通EDN博客了
五一,在寝室给自己放了个假。虽然可以很忙,但是我需要控制一下节奏,让自己重回高效状态。浏览了一年多的EDN,看了很多高手的文章,让我收获不少,也让我决定开博。我准备用这个博客记录我的工作和一些感想。...
我要评论
0
0
广告
关闭 热点推荐上一条 /1 下一条