(一)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. android- FileProvider崩溃 - NPE试图调用一个空字符串XmlResourceParser(FileProvider crash - npe attempting to invoke XmlResourceParser on a null String)

    问题: This is a part of my manifest: <?xml version="1.0" encoding="utf-8"?> ...

  2. 移动前端调式页面--weinre

    一:远程调式工具---weinre 阅读目录 一:远程调式工具---weinre 二: 安装weinre 三: 访问weinre及在页面上调用 四:多用户 回到顶部 一:远程调式工具---weinre ...

  3. java笔记--反射机制之基础总结与详解

    一.反射之实例化Class类的5种方式: java的数据类型可以分为两类,即引用类型和原始类型(即基本数据类型). 对于每种类型的对象,java虚拟机会实例化不可变的java.lang.Class对象 ...

  4. IOS8修改状态栏颜色

    IOS8修改状态栏颜色 http://blog.csdn.net/suelu/article/details/43701913 使用了storyboard,直接view controller里面设置s ...

  5. [codeforces 549]G. Happy Line

    [codeforces 549]G. Happy Line 试题描述 Do you like summer? Residents of Berland do. They especially love ...

  6. 找不到提交和更新按钮,subversion不见了,无法更新和上传代码

    1.查看settings/plugins/下有没有subversion 插件,如果有,确保勾上. 2.VCS->Enable Version Control Integration...

  7. 一些Linux的路径

    系统引导时启动        /etc/rc.d/rc.local

  8. 【Python】Django 如何直接返回404 被 curl,wget 捕获到

    代码示例: from django.http import Http404, HttpResponseNotFound #raise Http404(filename) return HttpResp ...

  9. intellij idea 如何更改编辑器文本字体和大小

    换上了intellij idea之后,第一件事就是想要改变下文字字体,因为在我这个27寸的2k分辨率的屏幕上,文字显然太小了. intellij idea字体设值分成两部分,一部分是UI部分字体字号设 ...

  10. Android 和iOS 创建本地通知

    1 Android 中的发送本地通知的逻辑如下 先实例化Notification.Builder,再用builder创建出具体的Notification,创建时要指定好启动用的PendingInten ...