Verilog 入门(二)(Verilog 语言要素)

文章目录

标识符

Verilog HDL 中的标识符(identifier )可以是任意一组字母数字$ 符号和 _(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。

转义标识符(escaped identifier)可以在一条标识符中包含任何可打印字符。转义标识符以 \(反斜线)符号开头,以空白结尾。

Verilog HDL 定义了一系列保留字,叫做关键词 ,它仅用于某些上下文中。注意只有小写的关键词才是保留字。例如,标识符 always(这是个关键词)与标识符 ALWAYS(非关键词)是不同的。

注释

在 Verilog HDL 中有两种形式的注释。

c 复制代码
/* 第一种形式:可以扩展至
   多行 */

// 第二张形式:在本行结束。

格式

Verilog HDL 区分大小写。也就是说大小写不同的标识符是不同的。此外, Verilog HDL 是自由格式的,即结构可以跨越多行编写,也可以在一行内编写。

例如

c 复制代码
initial begin Top=3'b001; #2 Top=3'b011; end

和下面的指令一样:

c 复制代码
initial
  begin
    Top = 3'b001;
    #2 Top = 3'b011;
  end

系统任务和函数

$ 字符开始的标识符表示系统任务或系统函数。任务提供了一种封装行为的机制。这种机制可在设计的不同部分被调用。任务可以返回 0 个或多个值。函数除只能返回一个值以外与任务相同。此外,函数在 0 时刻执行,即不允许延迟,而任务可以带有延迟。

c 复制代码
$display("Hi, you have reached LT today");
/* $display 系统任务在新的一行中显示。 */
$time
// 该系统任务返回当前的模拟时间

值集合

Verilog HDL 有下列四种基本的值:

  1. 0:逻辑 0 或"假"
  2. 1:逻辑 1 或"真"
  3. x:未知
  4. z:高阻

注意这四种值的解释都内置于语言中。如一个为 z 的值总是意味着高阻抗,一个为 0 的值通常是指逻辑 0。Verilog HDL中的常量是由以上这四类基本值组成的。

Verilog HDL 中有三类常量:

  1. 整型
  2. 实数型
  3. 字符串型

下划线符号 _ 可以随意用在整数或实数中,它们就数量本身没有意义。它们能用来提高易读性;唯一的限制是下划线符号不能用作为首字符。

数据类型

Verilog HDL 有两大类数据类型。

  1. 线网类型。。net type 表示 Verilog 结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为 z。
  2. 寄存器类型 。register type 表示一个抽象的数据存储单元,它只能在 always 语句和 initial 语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。

参数

参数是一个常量。参数经常用于定义时延和变量的宽度。使用参数说明的参数只被赋值一次。参数说明形式如下:

c 复制代码
parameter param1 = const_expr1, param2 = const_expr2, ...,
          paramN = const_exprN;

下面为具体实例:

c 复制代码
parameter LINELENGTH = 132, ALL_X_S = 16'bx;
parameter BIT = 1, BYTE = 8, PI = 3.14;
parameter STROBE_DELAY = (BYTE + BIT) / 2;
parameter TQ_FILE = " /home/bhasker/TEST/add.tq"
相关推荐
热爱学习地派大星1 天前
Xilinx FPGA功耗评估
fpga开发·verilog·vivado·fpga功耗·xpe
进击的奶龙2 天前
21verilog函数
verilog·基础语法
tiantianuser20 天前
RDMA简介7之RoCE v2可靠传输
服务器·fpga开发·verilog·xilinx·rdma·可编程逻辑
SELSL20 天前
关于MCU、MPU、SoC、DSP四大类型芯片
嵌入式硬件·mcu·mpu·soc·ds
9527华安1 个月前
国产安路FPGA纯verilog图像缩放,工程项目解决方案,提供5套TD工程源码和技术支持
fpga开发·verilog·图像缩放·双线性插值·安路fpga
tiantianuser1 个月前
RDMA简介5之RoCE v2队列
fpga开发·verilog·fpga·rdma·高速传输·rocev2
迎风打盹儿1 个月前
FPGA仿真中阻塞赋值(=)和非阻塞赋值(<=)区别
verilog·fpga·阻塞赋值·非阻塞赋值·testbench仿真
tiantianuser1 个月前
RDMA简介3之四种子协议对比
verilog·fpga·vivado·rdma·高速传输
可编程芯片开发1 个月前
基于FPGA的DES加解密系统verilog实现,包含testbench和开发板硬件测试
fpga开发·des·verilog·加解密
头发够用的程序员1 个月前
小米玄戒O1架构深度解析(一):十核异构设计与缓存层次详解
缓存·架构·硬件架构·soc