第2章 fpga设计基础

第2章 fpga设计基础

ID:17611549

大小:306.00 KB

页数:33页

时间:2018-09-03

第2章  fpga设计基础_第1页
第2章  fpga设计基础_第2页
第2章  fpga设计基础_第3页
第2章  fpga设计基础_第4页
第2章  fpga设计基础_第5页
资源描述:

《第2章 fpga设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2章FPGA设计基础2.1VerilogHDL基础知识2.1.1概述硬件描述语言HDL(HardwareDescriptionLanguage)是一种用形式化方法来描述数字电路和数字逻辑系统的硬件描述语言,有两种类型:VHDL和VerilogHDL。 举个例子,在传统的设计方法中,对2输入的与门,我们可能需要到标准器件库中调出一个74系列的器件,但在硬件描述语言中,“&”就是一个与门的形式描述,“C=A&B”就是一个2输入与门的描述,而“and”就是一个与门器件。VerilogHDL语言具有这样的描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的

2、时延和波形产生机制。所有这些都使用同一种建模语言,可综合的Verilog模块可以构成一个可靠的复杂IP软核和固核模块。VerilogHDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。VerilogHDL语言从C编程语言中继承了多种操作符和结构。VerilogHDL模型可以是实际电路的不同级别的抽象,主要指:(1)系统级(2)算法级(3)RTL级(4)门级(5)开关级,前三种属于行为级描述。VHDL侧重于系统级描述,从而更多的为系统级设计人员所采用;Verilog侧重于电路级描述,从而更多的为电路级设计

3、人员所采用。Verilog非常容易掌握,只需有C语言编程基础,就可很快上手。2.1.2Verilog与C语言的比较虽然Verilog语言是从C语言过渡而来的,其某些语法与C语言接近,但存在如下几方面的本质区别:1.Verilog是一种硬件语言,最终是为了产生实际的硬件电路或对硬件电路进行仿真;C语言是一种软件语言,是控制硬件来实现某些功能;2.C语言只要是语法正确,都是可以编译执行的;而Verilog语言有可综合的限制,即在所有的verilog语句中,只有一部分可以被综合,而另外的部分则不能被综合,只能用来仿真;1.C语言是一种软件编程语言,其基本思想是语句的循序执行,而Verilog语

4、言的基本思想是模块的并行执行;4.利用Verilog编程时,要时刻记得Verilog是硬件语言,要时刻将Verilog与硬件电路对应起来。Verilog语言是在C语言的基础之上发展起来的,他们有着类似的语意,C语言和Verilog的很多关键字和运算符都可以对应起来。表2-1中列出了常用的C与Verilog相对应的关键字与控制结构。表2-1常用的C与Verilog相对应的关键字与控制结构CVerilogsub-functionmodule,function,taskif-then-elseif-then-elseCaseCase{,}begin,endForForWhileWhileBre

5、akDisableDefineDefineIntIntPrintfmonitor,display,strobe表2-2列出了C与Verilog相对应的运算符。表2-2常用的C与Verilog相对应的运算符CVerilog功能**乘//除++加--减%%取模!!反逻辑&&&&逻辑且

6、

7、

8、

9、逻辑或>>大于<<小于>=>=大于等于<=<=小于等于====等于!=!=不等于~~位反相&&按位逻辑与

10、

11、按位逻辑或^^按位逻辑异或~^~^按位逻辑同或>>>>右移<<<<左移?:?:同等於if-else敘述2.1.3采用自顶向下的设计方法随着技术的发展,一个芯片上往往集成了几十万到几百万个器件,传统的

12、自底向上的设计方法已不太现实。因此,一个设计往往从系统级设计开始,把系统划分成几个大的基本的功能模块,每个功能模块再按一定的规则分成下一个层次的基本单元,如此一直划分下去。自顶向下的设计方法可用图2-1所示的树状结构表示。系统级的顶层模块模块A模块B模块C模块B1模块B2模块C1图2-1TOP-DOWN设计思想通过自顶向下的设计方法,可实现设计的结构化,可使一个复杂的系统设计由多个设计者分工合作,还可以实现层次化的管理。2.1.4模块模块(module)是Verilog的基本描述单位,用于描述某个设计的功能或结构及与其他模块通信的外部端口。模块在概念上可等同于一个器件,尤如调用通用器件(

13、与门、三态门等)或通用宏单元(计数器、ALU、CPU)等。因此,一个模块可在另一个模块中调用。一个设计是由一个个模块(module)构成的,模块是以module开始,endmodule结束,模块包括模块的端口定义部分和逻辑功能描述部分。模块的端口定义部分,即该模块的端口声明定义了该模块的管脚名,是该模块与其他模块通讯的外部接口,相当于器件的pin。模块的内容,包括I/O说明,内部信号、调用模块等的声明语句和功能定义语句。I/O说明定

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。