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

原创 2007年09月14日 15:24:00

[转帖]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就可以。

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【转】常见数字IC设计、FPGA工程师面试题

1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。 同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,...

【转】常见数字IC设计、FPGA工程师面试

常见数字IC设计、FPGA工程师面试   1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。 同步时序逻辑电路的特点:各触...

基于模型设计的FPGA开发与实现:基本流程(一)之入门小例子(二):秒表

MBD-FPGA 开发与实现 http://blog.sina.com.cn/McCrocodile 这个例子是演示在Simulink环境下借助Stateflow设计一个FSM是多简单的事情,即使生...

FPGA入门笔记三 RTL schematic验证你的RTL级设计

仍然使用开发板,SPARTAN6。难免有错,请不吝指正。 串口程序比点灯要复杂很多,比起来做项目的程序简单很多。

Verilog基础知识9(常见数字IC设计、FPGA工程师面试题 )

需求说明:Verilog设计 内容       :面试必备知识 来自       :时间的诗 原文:http://blog.sina.com.cn/s/blog_4dea7cad01017ai...

FPGA设计入门基础超级教程

  • 2009-07-28 20:05
  • 15.37MB
  • 下载

《FPGA入门教程》看书随笔——数字电路设计入门

1、数字电路设计的核心是逻辑设计。数字电路的逻辑值只有‘1’和‘0’,表征的是模拟 电压或电流的离散值,一般‘1’代表高电平,‘0’代表低电平。 2、当前的数字电路的电平标准常见的有:TTL、CMOS...

FPGA快速设计入门Xilinx

  • 2010-03-26 09:21
  • 1.66MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)