ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:19.47KB ,
资源ID:12288889      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12288889.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FPGA学习笔记书.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FPGA学习笔记书.docx

1、FPGA学习笔记书前序:1) 可编程逻辑器件分类:2) 简单可编程逻辑器件SPLD(包括:可编程制度存储器PROM、可编程逻辑阵列PLA、可编程阵列逻辑PAL、通用阵列逻辑GAL)3) 复杂可编程逻辑器件CPLD4) 现场可编程门阵列FPGA5) 在系统可编程逻辑器件ISPVerilog数字设计教程(第二版)学习笔记:第一章、Verilog HDl语言基本知识1)Verilog HDl语言是一门硬件语言,用于数字电子系统设计。允许设计者进行各种级别的逻辑设计,进行数字逻辑系统的仿真验证、时序分析、逻辑综合。Veilog HDl产生于1983年,有GDA公司首创。2)Verilog HDl与VH

2、Dl的比较:都是用于逻辑设计的硬件描述语言,都成为了IEEE的标准,Verilog HDl的全名是VHSIC Hardware Description Language,而VHSIC是Very High Speed Integerated Circuit的缩写词,意为高速集成电路,故VHDL的准确中文名字是高速集成电路的硬件描述语言。3)这几流程简介:自顶向下的设计的基本概念(书中的15页有介绍)层次管理的概念、使用的是模块的设计(包含设计开发和设计验证)、器件的优化和布局布线第二章、Verilog语法的基本概念1)一个简单的语句:always(sl or a or b)表示的意义是,只要输入

3、的是sl或a或b,其中若有一个变化时就执行下面的语句。2)Verilog用于模块的测试,分成的模块主要有两个类型:一种就是为了让模块最终能生成电路的结构;第二种只是为了测试所设计电路的逻辑功能是否正确。3)编写Verilog的时候要注意每一个模块都要进行端口的定义,并且要说明输入、输出端口,然后对模块的功能进行描述。在Verilog语言中/* */和/代表注释,“”表示被引用模块的端口。第三章、模块的结构、数据类型、变量和今本运算符号第一个内容:1)Verilog基本设计的单元是“模块”,有两个部分组成描述接口和描述逻辑功能(定义输入是如何影响输出的),Verilog程序包括4个主要部分:端口

4、定义、I/O说明、内部信号声明和功能定义。2)模块的端口定义:module 模块名(口1,口2,口3,)模块的端口表示的是模块的输入和输出口名,有几点要注意:首先就是,严格按照模块定义的端口来进行定义,不用标明原来原模块定义时的端口名;第二,引用的时候用“”的时候,它后面跟着的是定义时的端口号,而括号中的内容是连接的信号名(如果有个不明白的地方请看例2.7)3)I/O说明:主要就是声明端口是输入还是输出口,格式内容在书27页。4)内部信号说明:在模块内用到的和与端口有关的wire和reg类型变量声明。5)功能定义:用三种方法:第一种就是用assign声明、第二种就是用实例元件、第三种就是用“a

5、lways”块声明(在“always”模块内部是按照指定的顺序执行,因此它也叫做“过程块”)。但是三者如果同时在一个程序中出现的话,这三者都是并行的。6)要点补充:Verilog模块中的所有过程块、连续赋值语句、实例引用都是并行的;它们表示的是一种通过变量名互相连接的关系、同一模块中这三者出现的先后次序没有关系;只有后两个可以独立于过程块存在于模块的功能定义部分。第二个内容:数据类型及常量和变量:Verilog一共有19种数据类型,数据类型用来表述数字电路硬件中的数据储存和传送元素的,4个基本的类型是reg型、wire型、integer型、parameter型,其它类型在29页。1)常量:数字

6、(整数、x和z值、负数、下划线),参数型(用parameter来定义常量)2)变量:Wire型、reg型、memory型memmory型定义:reg7:0 mema255:0,这个定义的含义是定义了一个名为mema的存储器,这个存储器有256个8位存储器,换句话说就是定义了一个存储器组,而reg只是定义了一个存储器,举例说明regn-1 rega;是定义了一个n位的寄存器;而reg meman-1,0是定义了一个n第四章、运算符、赋值语句和结构说明语句1)&与、|或、!非,这三个逻辑运算符前两个是两目运算的,第三个的级别高于前两个的运算级别,这三个运算级别都高于数学运算级别。2)关系运算的时候

7、,如果声明的关系是真的,返回值为1,否则返回值为0,当关系是模糊的时候,返回值是不定值。关系运算符的级别低于算数运算符。3)主要是区别=和=,即双等号和三等号的区别。4)主要就是位移的运算,这个运算就是掌握,两个符号尖角在那个方向上,就向那个方向进行位移5)也就是所谓的大括号,含义就是把两个或是多个信号的某些位拼接起来进行运算操作,在拼接的表达式子中必须要指明位数的信号。6)缩减运算就像是多米诺骨牌一样,一位一位往后推,第一位和第二位先进性运算,再把结果和第三位进行运算,最终得到结果。书中42页7)要区分阻塞和非阻塞赋值(见书中44页)8)块语句有两种:一个是begin_end,是顺序块,一个

8、语句到下一个语句都有一个延迟的时间,这个延迟的时间就是每一条语句的仿真时间;另一个是fork_join,是并行块,每一条块内的语句都是并行执行的,延迟时间可以自己在每一条语句中控制,换句话说就是顺序语句是按语句位置来计算起始时间和结束时间,而并行块是按照时间位置的排序进行起始时间和结束时间的计算的。第六章 结构语句、系统任务、函数语句和显示系统任务第一个内容:1)所有模块都从属于下面的语句:initial语句(只执行一次)、always语句(不断运行知道程序结束)、task语句、function语句2)initial语句:可以用来赋初值,并且不需要任何的仿真时间;另一个用途就是,生成激励波形作

9、为电路的测试仿真信号。3)awlays语句:always语句总和一个时序控制相结合在一起用,看是否满足触发条件(一定要和时序相结合否则会被锁死)always的补充内容:always中的or可以用逗号来隔开;always(a,b,c,d,.)这种情况有的时候会落下某一个输入,所以用always(*)代替所有输入,如果有看不明白的话看书中的81页;always语句可以和wait结合在82页第四个内容1)$display和$write任务:都是输出信息的功能,不同点在于display可以自动地再输出之后进行换行,而write则不是这样。说明在书中的91页中在这部分的内容中主要时注意一点,就是数据输出

10、的宽度,在书中的93页,还有就是有关于X,x,z的内容,在94页。2)打开文件、写文件、关闭文件第七章 调试用系统任务和常用编译预处理语句1)系统任务 $monitor2)时间度量系统函数$time和$realtime:time受到时间尺度比例的影响,输出的时间总是时间尺度的倍数,并且输出的总是整数。realtime作用和time是一样的,但是realtime返回的数字是一个实型数,也是一时间尺度为基准的。(书中101、102页)3)系统任务$finish的作用是退出仿真器,返回操作系统,也就是结束仿真的过程。4)$stop是把EDA工具(仿真器)设置成暂停的模式,提供一个交互式的提示符,把控

11、制权交给用户。5)系统任务$readmemb(每一个数字是2进制)和$readmemh(每一个数字是16进制):都是从文件中读取数据到存储器中,可以再仿真的任何时刻被执行使用。6)系统任务$random:提供了一个产生随机数的手段用法$random % b,其中b是大于0的,且产生的数字实在(-b+1)到(b-1)之间的随机数字,也可以通过位并接操作产生0到(b-1 )的随机数字,利用这个任务可以产生随即脉冲序列(105页)7)预编译处理(预编译处理命令前面都有开头,这个符号对应的上键盘符是):利用宏定义可以提高程序的可移植性和可读性,有关于宏定义的说明在107页。8)“文件包含处理” inc

12、lude一个源文件可以将另一个源文件全都包含进来,即将另一个文件包含在本文件之中,简单的说就像是c语言中调用函数的作用相类似(具体说明在书中109页例7.9)9)时间尺度timescale:定义模块中的时间单位和时间精度都必须是整数,其有效数字是1、10、100,单位是s、ms、s、ns、ps、fs。10)条件编译命令ifdef、else、endif:具体内容看例7.13第九章、Verilog HDL模型的不同抽象级别Verilog语法支持数字电路5种不同的描述方法:系统级、算法级、RTL级、门级、开关级前三种是行为级,第四种属于结构级第一个内容门级结构描述1)有关于门类型的关键字有26个,a

13、nd、nand、nor、or、xor、xnor、buf、not2)要注意说明门类型的引用的时候,输出和输入的顺序:书的131页上有具体的例子。3)用已经设计的模块构成更高级别的模块:引用的词语用的是flop,(具体的内容见132页)第二个内容Verilog HDL的行为描述建模1) Veilog语言的核心思路就是:利用比较直观的行为描述来开始设计过程,仿真测试后,利用一种工具把行为模块自动转化成为门级结构,再次经过Verilog仿真测试验证后,完成了逻辑设计,在进行后面的制造工作。(行为级转化成门级结构的工具是综合器)2)对于模块进行检验需要产生信号,输入到已设计的模块中去,并检查已设计模块的输出,这就是编写测试模块。3)一个语法event:它用来定义一个事件以便在后面的操作中触发这一事件,触发方式#timen(触发时刻)-(事件名)例子9.4重要4)行为建模的思路:通过行为建模把一个复杂的系统分解成可操作的若干个的模块。第三个内容 用户定义的原语1)用户定义的原语UDp:开头用primitive,结束用endprimitive2)UDp遵守的要点:定义primitive的语法;强调只有一个输出,说明列表的第一位;可以有多个输入;只有0,1,x三种逻辑值;端口变量必须是标量;只有输出端能定义为寄存器类型变量;initial用于为时序电路内部赋初值;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1