[转帖]FPGA/IC设计入门-FPGA入门(一)

[转帖]FPGA/IC设计入门1-FPGA入门

www.dicder.com/很长时间了,一直说要给5life一个惊喜,还在坛子上面发了一个檄文说要支持这里到底,一晃还是一个月。今天是冬至,晚上早早下了班回家和anyka一起过节;或许是因为今天把一个程序调通的原因,特别兴奋,上来发了一帖---ahan是何人?现在说说正题,帮助一下刚刚入门的朋友们,也算是学习IC设计三年的一个总结吧。----数字电路(fpga/asic)设计入门。
 
首先要知道自己在干什么?数字电路(fpga/asic)设计就是逻辑电路的实现,这样子说太窄了,因为asic还有不少是模拟的,呵呵。我们这里只讨论数字电路设计。实际上就是如何把我们从课堂上学到的逻辑电路使用原理图(很少有人用这个拉),或者硬件描述语言(Verilog/VHDL)来实现,或许你觉得这太简单了,其实再复杂的设计也就是用逻辑门电路搭起来的。你学习逻辑电路的时候或许会为卡拉图,触发器状态推倒公式而感到迷惑,但是其实有一点可以放心的是,实际设计中只要求你懂得接口时序和功能就可以了,用不着那么复杂得推倒公式,只要你能够用语言把逻辑关系表述清楚就可以了,具体这个逻辑关系采用什么门电路搭的,可以不关心,综合工具(synthesis tool)可以帮你处理。当然你要知道基本门电路的功能,比如D触发器,与门,非门,或门等的功能(不说多的,两输入的还是比较简单的)。---一句话,采用verilog或者VHDL描述设计对象的逻辑功能,这就是数字电路设计的任务!
 
说到这里入门必须要两个基本功:逻辑电路基础,硬件描述语言。有了这两个基本功,就算你其他都不会也能找到工作,呵呵,或许你会说,现在面试要问fpga,要问时序分析,有那么简单么?其实这些东西在你有了这两个基本功之后,其他的都可以慢慢学习。注意硬件描述语言和逻辑电路的学习可以同步学习,而且要牢记,学习硬件描述语言进步取决于你对电路的理解和你对仿真器的使用。为什么这样子说呢?因为硬件描述语言RTL(寄存器传输级)主要是用来给综合工具综合成电路的,所以要满足特定的coding style,这些coding style将对应这特定的逻辑,比如时序电路应该怎么写,组合电路怎么写,这是有一定约束的,为此若你对逻辑电路比较熟悉,你就知道自己写代码大体综合后会采用什么门电路来组成;另外,写代码就要仿真,这是不可以避免的---不仿真,你怎么知道自己写的代码符合设计的要求呢?能够熟练使用仿真器,你就有了调试代码的基本能力,否则,写再多的代码也没有用。这也是今天我感到兴奋的一个因素,目前正在使用vera验证语言,采用类C++的风格,对于习惯verilog的我开始还不习惯高级语言的调试环境,定位一个问题得花上一天;但是一旦你能够熟练使用编译仿真工具之后,你就会发现其实自己的很多想法可以很快的写成代码,并通过调试来提高自己对语言的理解。----学习的进步在于,把自己的想法用语言来实现,并调试验证是否正确。

转帖]FPGA/IC设计入门2-FPGA入门
fpga设计入门
 
这几天比较忙,我就多少写一点,积少成多:)
 
学习fpga应该从xilinxaltera器件的入手,这是当今世界最大的两家可编程器件供应商,当然学习fpga应该你具备一定的Verilog的基础。我们就用xilinx作为例子来讲解吧。
  fpga
的开发流程,首先是综合,布局布线,生成bit文件,最后下载。
 
综合,可以用synplify,也可以用synopsysfpga compiler,当然也可以用ISE自带的综合工具,Mentor也提供fpga开发的工具。作为入门,synplify是一个很好的选择,第一,可以熟悉电路结构,第二,作为入门你可以在synplify的综合流程中检查自己代码的质量。以前没有用LEDA做代码QA的时候,我是经常用synplify作为QA的工具的,当然你得对synplify的综合策略和综合报告比较熟悉才行。综合完毕之后生成EDIF文件。
 
作为xilinx,第三方的综合工具可以提供EDIF或者NCF文件,自带的XST综合工具输出的是NGC,与此同时,我们可能还会用到xilinxcorecore文件主要以edn形式存在;有了这些文件我们就进入implementation阶段,这个阶段分translateMapPAR三大部分,translate是把综合得到网表和core的网表文件转化为NGD文件,作为Map的输入,Map是把网表文件映射到Xilinx中的基本元件中,如sliceblockram等等,最后PAR也就是place and route,最后就可以生成bit文件了。推荐的书籍《FPGA/CPLD设计工具——Xilinx ISE5.x使用详解》,该书对整个设计流程有详细的描述,还介绍了很多高级技巧,不过对于asic设计人员,除非要做FPGA验证,否则没有必要看这些东西,因为学习FPGA就是一个完整的ASIC设计流程,不像做ASIC那样设计人员还分前端后端,做FPGA涉及的将会是很多因素,包括内部结构和板级的调试等等。
 
学习fpga除了学习开发流程之外,另外一方面是学习其内部结构。xilinxfpga的结构介绍如下:基本单元是LUT,由LUT组成SLICE,由SLICE组成CLB,具体多少个LUT组成SLICE,多少个SLICE组成CLB由不同的器件类型决定,可以参考datasheet。此外,就是Block RamDLL或者是DCM,还有DSP等。现在流行SOC,不少高端器件还嵌入了微处理器,有软核有硬核。学习硬件结构最好的入门书籍是 孟宪元 先生的书,虽然时间有点久了,不过从我看的书来看,只有他才是分析得最为彻底的。现在介绍这方面的书籍也多了,不过,有点要提醒的,用什么器件看什么器件的datasheet,没有必要把这个东西当教科书学,查一查就可以了。
 
学习fpga有机会买个板子自己写点程序跑一跑,应该是一件挺不错的事情。现在很多宽带通信应用的fpga设计有Serdes接口,DDR接口之类的,不是特殊要求,自己玩,估计也用不上那么复杂的,写几个状态机或者是UART就可以。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值