(一)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. (转)MFC中获得各个类的指针/句柄 ID的总结

    http://www.cnblogs.com/ylhome/archive/2009/10/06/1578478.html 一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard ...

  2. 移动端Web开发注意点

    不用考虑浏览器兼容性 移动端开发主要对象是手持设备,其中绝大部分是IOS和Android系统,so,在开发此类页面时不必纠结IE和其他一些2B浏览器的兼容性,webkit是本次开发重点. 当然,不同版 ...

  3. sql复制数据表和表结构

    SQL复制数据表 (select * into 与 insert into) select * into 目标表名 from 源表名 insert into 目标表名(fld1, fld2) sele ...

  4. 畅通工程再续(MST)

    畅通工程再续 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  5. C语言内存对齐详解(2)

    接上一篇:C语言内存对齐详解(1) VC对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式.VC 中提供了#pr ...

  6. Cocos2d坐标系转换

    Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系(高中数学里面那种). 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右 ...

  7. 学习windows内核书籍推荐 ----------转自http://tieshow.iteye.com/blog/1565926

      虽然,多年java,正在java,看样子还得继续java.(IT小城,还是整java随意点)应用程序 运行于操作系统之上,  晓操作系统,方更晓应用程序. 主看windows,因为可玩性高,闭源才 ...

  8. 通过IIS调试ASP.NET项目

    当我们使用Visual Studio调试的时候,通常我们会选择VS自带的ASP.NET Developerment Server(也是默认选项),当第一次调试的时候(按F5或Ctrl+F5不调试直接打 ...

  9. SQL注入自学[第二学:注入环境的简单突破]

    /* 原文出处:珍惜少年时 留给原创一个ZBD机会. 加号即空格 */ 00x1 判断是否含有注入 http://127.0.0.1/1.php?id=3 and 1=1-- 返回正确的页面. htt ...

  10. ThreadLocal的设计与使用(原理篇)

    在jdk1.2推出时开始支持java.lang.ThreadLocal.在J2SE5.0中的声明为:            public class ThreadLocal<T> exte ...