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"
相关推荐
啄缘之间2 天前
1.【SVA】什么是SVA?
经验分享·学习·测试用例·verilog·sva
SDAU20053 天前
verilog计数器中增减操作之资源占用
verilog
学习FPGA的电气小兴兴6 天前
基于FPGA的CORDIC向量模式实现arctan运算,Verilog HDL实现
嵌入式硬件·fpga开发·数字信号处理·verilog·fpga·cordic·arctan
学习FPGA的电气小兴兴12 天前
基于FPGA的CORDIC旋转模式实现sin和cos运算
fpga开发·信号处理·数字信号处理·verilog·fpga·verilog hdl·cordic
FPGA开源工坊19 天前
ISP图像处理--Bayer Raw格式
图像处理·人工智能·verilog·fpga·isp
qq_1508419921 天前
用verilog语言在Quartus Prime Lite 18中对CPLD EPM570T100C5进行编程
verilog·quartus·cpld
深念Y1 个月前
订阅管理及节点过滤实践(技术笔记)
linux·网络·arm·优化·日志·工具·soc
芯路行者1 个月前
4.4 HDLBits —— 更多时序逻辑电路
fpga开发·verilog·fpga·hdlbits
芯路行者1 个月前
7 HDLBits —— 验证:编写测试激励文件
fpga开发·verilog·fpga·hdlbits
芯路行者1 个月前
4.1 HDLBits —— 时序逻辑电路之锁存器与触发器
fpga开发·verilog·fpga·hdlbits