(一)Verilog HDL语法

一、模块

1、定义:一个电路模块/一种逻辑功能;

2、命名规则:只能是字母,数字,"$",或者’_’,且开头必须是字母或者”_”。区分大小写

3、Module的定义以及实例化

二、数据类型及常量变量

1、Verilog HDL有四种基本的值

(1)其中x和z不区分大小写;

(2)z也可以使用?表示,虽然不懂为什么不是表示未知……

2、Verilog HDL三类常量

(1)整型:

A、缺省十进制:1,-2;

B、基数表示:<位宽>’<进制><数字>

下划线(_)可以用来分隔数的表达式来提高易读性

eg:

(2)实数型:

1.235 ,-545.34,3.6e4

(3)字符串型:

“fuck”,一样有转义字符

3、Verilog HDL变量最主要的数据类型:

(1)线网类型:

A、 定义:

表示Verilog结构化元件间的物理连线。它的值由驱动元件的值来决定,例如连续赋值或者门的输出。如果没有驱动元件连接到线网,线网的缺省值为z。常用:wire

B、举例:

C、用处:

可用作任何方程式或元件的输入,assign语句或者元件的输出。

(2)寄存器类型:

A、定义:

表示一个抽象的数据储存单元(但不表示它就一定是综合寄存器)。寄存器的缺省值为x。常用:reg

B、举例:

Attention:

(1)在always语句和initial语句中的赋值对象只能是reg类型,reg类型信号也只能在always语句和initial语句中被赋值,

(2)所以,always、initial块外的赋值对象和连线用wire型信号,always、initial块内的赋值对象用reg型

三、运算符与运算表达式

1、运算符

“<=”:非阻塞语句,即这句话执行时,下一句语句也执行。

“==”:阻塞语句

2、表达式=操作数+运算符

(1)分类:

(2)优先级:

四、块语句:

1、定义:

两条或者多条语句的组合,主要有两种。

2、begin_end语句:顺序块

(1)块内的语句顺序执行

(2)每条语句的延时为相对前一句

(3)最后一句执行完,才能跳出该块

3、fork_join语句:并行块

(1)块内语句同时执行

(2)每条语句的延时为相对于进入块仿真的时间

(较为少用)

五、条件语句与循环语句

1、if else语句(需要在always块中使用)

if(表达式)   语句;
else if(表达式)  语句;
else   语句;
(多个语句需放在begin end间)

2、case语句:多分支语句(需要在always块中使用)

case(表达式)

分支:语句……

default:语句;

endcase

3、forever连续执行,常用于产生时钟信号

4、while执行语句

5、repeat

连续执行语句n次

repeat(表达式),在此表达式通常为常量表达式,表示重复次数。

begin语句;end

6、for

六、结构说明语句

1、initial

(1)仿真开始时对各变量的初始化

(2)生成激励波形作为电路的测试信号

(3)只执行一次

(4)程序模块中可有多个,并行执行

2、always

(1)格式:

(2)作用:

若触发条件满足,则被执行,满足一次执行一次,可由多个always块,并行执行,在always块中赋值的对象只能是reg语句。

3、function

(1)作用:返回一个用于表达式的值

(2)格式:

(3)规则:

A、不能包含时间控制语句

B、不能启动任务

C、至少有一个输入

D、必须存在给予函数名同名变量赋值语句

4、task

(1)作用:支持多种目的,可计算多个计算结果。

(2)格式:

(3)特点:

A、可定义自己的仿真时间单位

B、可定义自己的仿真时间单位,可启动其他的task和function。

七、阻塞赋值与非阻塞赋值

FPGA学习的更多相关文章

  1. [整理]FPGA学习资料汇总

    01.特权同学倾情奉献海量FPGA学习资料 http://pan.baidu.com/s/1pJIb32F

  2. 如何学习FPGA?FPGA学习必备的基础知识

    如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA   基础知识       FPGA已成为现今的技术热点之一,无论学生还是工程师都希望 ...

  3. 芯航线FPGA学习套件之4*4矩阵键盘模块测试手册

    芯航线FPGA学习套件之4*4矩阵键盘模块测试手册   本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的矩阵键盘模块的测试方法:   连接开发板,如下所示: 2.将矩阵键盘模块与开发板按如下图所 ...

  4. 芯航线FPGA学习套件之多通道串行ADDA(TLV1544,TLC5620)模块测试手册

    芯航线FPGA学习套件之多通道串行ADDA模块测试手册   本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的ADDA模块的测试方法:   连接开发板,如下所示: 2.将ADDA V1.1模块与开 ...

  5. FPGA学习之基本结构

    如何学习FPGA中提到第一步:学习.了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程.既然要开始学习FPGA,那么就应该从其基本结构开始.以下内容是我 ...

  6. 第二篇-FPGA学习之RoadMap

    古语云:知己知彼,百战不殆.那么既然选择了FPGA之路,欲练此功,必先-- 必先了解清楚,FPGA的特点,FPGA善于/不善于解决什么类型问题,以及FPGA应用的方向,FPGA学习的要素等等. 一.F ...

  7. FPGA学习笔记(二)——FPGA学习路线及开发流程

    ###### [该随笔部分内容转载自小梅哥]       ######### 一.FPGA学习路线 工具使用 -> 语法学习 -> 逻辑设计 -> IP使用 ->接口设计 -& ...

  8. FPGA学习网站

    1.  OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到.进入后,选择project或者由 http//www.opencores.org/browse.c ...

  9. FPGA学习的一些误区

    转载自网络,作者不详. 我常年担任多个有关FPGA学习研讨的QQ群管理员,长期以来很多新入群的菜鸟们总是在重复的问一些非常简单但是又让新手困惑不解的问题.作为管理员经常要给这些菜鸟们普及基础知识,但是 ...

  10. FPGA学习体会

    我是安徽工程大学电子信息科学与技术专业的学生刘美花,在v3学院的培训结束了,这十几天的培训对我来说还是挺有意义的,不过中间也有一些波折.还记得刚开始的时候和老师还有各个学校的学生不太熟,心中有诸多不满 ...

随机推荐

  1. iOS-AFN "Request failed: unacceptable content-type: text/plain"

    今天使用AFN测试程序时,返回如下错误 这是由于AFN默认不支持http返回结果为"text/plain"这种类型所致. 解决办法: 找到AFN框架中的AFURLResponseS ...

  2. 标准库errno.h 查看错误代码编号,errno:4 与error:2

    log 里报错,errno:4   与errno:2 查了一下 errno.h   --------下文来自百度百科 errno 编辑 errno 是记录系统的最后一次错误代码.代码是一个int型的值 ...

  3. 马化腾:办公用QQ休闲用微信[Dream Catchers论坛]

    近日,香港大学举办以创新创业为主题的Dream Catchers论坛.其中腾讯董事局主席马化腾在下午两点四十五分在李兆基会议中心做了专题演讲,分享了自己的创业经历并回答了媒体人张力奋有关产品.整整对手 ...

  4. Bridge 使用

  5. pure MVC框架目标与好处

    框架一瞥 PureMVC是一个为创建基于经典MVC元设计模式应用的轻量级框架. 此框架是开源且免费的,已经被AS2,AS3,Java,C#以及其他流行语言所实现.这也允许在多样的平台上开发,包括: l ...

  6. ssh和mvc理论基础

    ssh中mvc到底指的什么 mvcsshhibernatespringstrutsioc在SSH整合的架构中,Spring充当了一个容器的作用,Spring使用IOC和AOP技术接管了Hibernat ...

  7. myeclipse2014破解过程

    之前装的是10,后来没事试试装了2014,然后再破解2014后发现2010的证书就失效了,之前在网上也没找到方法,这段时间也没管,今天又自己想办法试了试,发现成功了!下边是我在网上找的破解方法的破解步 ...

  8. WAF绕过神器 (过安全狗、智创SQL注入)

    WAF绕过神器 (过安全狗.智创SQL注入) 发布时间:-- :10文章来源:网络文章作者:panni007 点击次数: 次 分享到: QQ空间 QQ微博 新浪微博 开心网 人人网 摘要:起因: by ...

  9. swift 中String,Int 等类型使用注意,整理中

    swfit中的String和Int是 struct定义的,不同于NSString和NSNumber, 如果想在一个数组中同时包含String和Int,那么这个数组要声明为[Any] 而不是 [AnyO ...

  10. 浅谈mysql集群

    一.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committe ...