书籍推荐:
数字电路的书籍 —— http://book.douban.com/subject/1231872/
Verilog HDL 的书籍 —— http://book.douban.com/subject/11717006/
数字电路:这本书不仅涵盖了一般数字电路的组合电路、时序电路、寄存器传输、储存器以及可编程逻辑电路(FPGA 就是其中一种),还有比较好的添加了计算机的指令集结构、处理器设计等计算机方面的内容,这样整本书就很系统的介绍了硬件电路系统的整体框架。
语言学习:初学 FPGA 的话,时序和组合部分内容看的差不多后,就可以学 Verilog/VHDL,弄懂其语言所表示的数字电路结构很重要,如计数器,编/译码器,寄存器电路,阻塞与非阻塞,还有状态机的跳转,模块的例化,信号的延时等等,这些内容在进行数字电路设计的时,在心中有个大概的框图,或者把这些电路模型画出来,从模块图-寄存器传输级-基本逻辑门依次画出,因为你要清楚你写的语句是否真达到了你想要的电路结构,功能时序等,这些推荐的书中都有可以参考综合出来的电路。在Moselsim环境下进行代码练习,可以写测试文件,看波形,是否达到了所要的结果。
电路烧入:经过前两个阶段的初步学习,接下来将写好的 Verilog 代码通过 ISE 或者 QuartusII 烧入板子(一般是 Xilinx or Altera的开发板),这个网上有很多教程,可以很容易搜到。正常来说这个阶段问题会比较多,会明显感觉到硬件描述语言与 C 语言的差别,它需要你自己去认真考虑分析电路的时序情况,这时候自己要反复总结Verilog语言后面所代表的电路结构,以及它不像 C 一样是一条语句一条语句的顺序执行,而是并发执行的,所以一般在进行比较复杂的功能实现时,要先划分好各个模块的功能,即采用 Top - down 的方法,再进行 Coding。
————————————2016.03.08————————————
今天更新,添加一些verilog/VHDL与集成电路以及FPGA相关的内容,~~~~~希望喜欢~~~~
传统的数字集成电路的设计输入法是用原理图来完成的,但随着集成度的提高和系统的复杂,以及大规模电路发展的必然趋势,使得EDA(电子设计自动化)工具设计方式逐渐替代传统的手工方式。
从摩尔定律曲线可以看出,80年代左右的 微处理器晶体管数/DIE 从几万到一百万左右,这如果还是用手工布局布线画版图,难度是不言而喻的,任何一个细节出问题都会使芯片罢工,而且功能完整性是很难仿真验证的。
图a 是Intel的第四个CPU4004,1971年手工布局布线设计出来2300个晶体管的版图,从周围的引脚可以看出是DIP封装,其pin在20以内。
图b 是Pentium4处理器,2000年设计(绝大部分是EDA完成)的千万量级数目的晶体管,具有划时代意义的处理器,采用PGA封装于底部,pin为四百多个。
如果几十万以上的IC还是用手工法,我想想就绝望了。所以随着集成电路系统化和高度集成化,HDL从80年代左右开始逐渐发展起来,VHDL于1987年成为IEEEDE标准,而Verilog为1992年,目前也是像C++等语言一样隔几年有新的改进版本出现。
接下来关于FPGA的概述(干货),详细请参考链接:
Advanced Digital Design with the Verilog HDL (2nd Edition) (豆瓣)
FPGA主要由三部分构成:1.逻辑单元阵列LCA(logic cell array);2.内部可配置逻辑电路CLB(configurable logic block);3.输入输出模块IOB(input output block)与内部连线(interconnect)。如下图所示,其中Switch Matrix的作用和CLB一致。
与传统PAL、GAL以及CPLD相比,FPGA具有不同的结构,一般利用小型查找表(16x1 RAM)来实现组合逻辑,每个查找表LUT(look-up table)连接到一个DFF触发器的输入端,触发器再来驱动其他逻辑电路或驱动 I/O,由此构成能实现组合和时序电路。
FPGA的逻辑是通过内部SRAM载入编程数据来实现的,存储在SRAM中的值决定逻辑单元的功能,以及各模块之间或模块与 I/O 间的连接方式,并最终决定FPGA的实现功能。
如实现 X = f(G[3:0],F[3:0])函数的各种逻辑组合:
其中 X 和Y输出为组合逻辑,XQ 和YQ 输出为时许逻辑,G[3:0] 和F[3:0] 为四输入信号,通过H模块对逻辑进行选择配置。
下面这张图像上的电路模块没找到书源,是以前看书做的笔记,举了几个例子,关于逻辑表达式所对应的可配置逻辑器件结构,请“”欣赏“” 。
references:
Chu P P. Embedded SoPC Design with NIOS II Processor and Verilog Examples[M]. John Wiley & Sons, 2012.
Ciletti M D. Advanced digital design with the Verilog HDL[M]. Upper Saddle River: Prentice Hall, 2003.
Chu P P. FPGA prototyping by Verilog examples: Xilinx Spartan-3 version[M]. John Wiley & Sons, 2011.
Rabaey J M, Chandrakasan A P, Nikolic B. Digital integrated circuits[M]. Englewood Cliffs: Prentice hall, 2002.
https://zh.wikipedia.org/wiki
~~~~~~~~有时间再更新~~~~~~~~