集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 3172|回复: 5

【我与FPGA】一点一滴学习历程之二

[复制链接]
zhiweiqiang33 发表于 2015-12-9 10:50:25 | 显示全部楼层 |阅读模式
FPGA的设计流程一般分为这样的几个过程,设计输入,约束,综合,仿真,实现,加载配置与调试。

核心设计流程如下:
一、RTL代码编写(一般为HDL语言的输入)

二、编写Testbench和仿真:(这部分的作用是验证设计的电路是否正确,功能是否符合设计要求,也叫功能仿真或者前仿真,这时的仿真对象是RTL代码,不包含逻辑和布线的延迟信息,纯粹的逻辑功能的验证)提供一个仿真的验证激励就是要用HDL语言编写TEstbench。Testbench编写要使用行为级语言。

三、综合及时序分析
综合是把HDL描述转化为使用基本门电路以及厂家库提供的基本单元进行描述的网表的过程。综合时要注意一些约束,最重要的约束是管脚约束,目的是使输入输出信息号与PCB板走线引脚对应一致。有时还需要附加时序约束。综合输出的是esif或者是edn格式的网表。

四、实现:
把综合输出的网表适配到FPGA上的过程叫实现。实现过程包括翻译,映射,布线三个步骤。之后可能进行后仿真步骤,一般可以省略。
五、加载配置与调试:上一步生成的配置文件通过集成开发环境就可以配置到FPGA上了。

学习心得:
之前看学testbench的时候,看了特权同学的视频,觉得给了我一些启发,然后果断去图书馆借了《深入浅出玩转FPGA》,一口气读了6个笔记,感觉收获颇丰啊:

关于代码的优化,不同的语法写出来的同一功能的硬件实现是不一样的,这取决于,综合的软件的不同,但是随着软件版本的升级,其识别这样功能的能力是越来越强,使其趋近于相同,比如if else 语句和case语句实现相同功能的时候,if语句趋向于优先级的结构,而case语句是趋向于并行结构,在今后的代码编写中也要注意不同语法结构生成的RTL视图的差异,以及Technology Map Viewer。

还有一个之前理解错误的地方,4比如:reg  LED_OUT ;是定义了一个这样的一个寄存器是寄存器的名字,而其他的变量可以理解为不同的信号线上的名字,之前的理解有混淆。

更深一步理解了FPGA内部是怎么一回事了,假如要用到一个四输入的与门,其内部就会分配一个4输入LUT,而当有5输入时,就会分配两个LUT 了,因为每一个都是四输入的。这样在分配的时候注意这一点可以优化资源,但是鱼和熊掌不能兼得。

在编写注释的时候,要让其明白这一句话在整个系统代码中是什么作用,而不是这句语法本身的作用,因为看代码的一般语法还是理解的,需要获取的信息是这样的语法在整个系统中实现了什么样的功能。

关于复位,有同步复位和异步复位。同步复位会多产生一个门,原因是异步复位用到了寄存器上存在的复位端,而同步没有。


至芯科技@支哥@微信号:zhi2793725733;
博客地址:http://blog.sina.com.cn/u/5764299898

 楼主| zhiweiqiang33 发表于 2016-1-10 11:02:35 | 显示全部楼层
夏宇闻老师说:“在学习FPGA这门技术面前,我们不看学历,不谈出身,不论背景;只要你有集成电路设计这方面的兴趣,具备一定的数字电路基础,我们就有足够的信心,让你通过100天的学习,把你培养成为一名合格的FPGA工程师。”
至芯科技2016年1月12号开设FPGA工程师寒假培训班,欢迎前来试听课程!
至芯科技2016年2月27号开设FPGA工程师就业培训班,欢迎前来试听课程!
寒假班开课时间:2016/1/12(西安,北京同步开课)
就业班开课时间:2016/2/27(西安,北京同步开课)
西安分中心地址:西安市高新区唐延路与锦业二路十字逸翠园i都会1号楼1单元403
电话:18910579910 QQ:2793725733
 楼主| zhiweiqiang33 发表于 2016-5-18 18:07:21 | 显示全部楼层
FPGA的设计流程一般分为这样的几个过程,设计输入,约束,综合,仿真,实现,加载配置与调试。
 楼主| zhiweiqiang33 发表于 2016-5-25 12:22:49 | 显示全部楼层
新手入门 看看
 楼主| zhiweiqiang33 发表于 2017-6-4 11:03:05 | 显示全部楼层
初学者可以看看 很实用
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-11-23 11:53 , Processed in 0.068053 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表