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"
相关推荐
学步_技术3 天前
自动驾驶系列—深度剖析自动驾驶芯片SoC架构:选型指南与应用实战
人工智能·架构·自动驾驶·soc·芯片
网络研究院4 天前
安全中心 (SOC) 与 网络运营中心 (NOC)
网络·安全·soc·安全运营中心·noc·区别·网络运营中心
日晨难再4 天前
Verilog基础:$display系统函数和C语言中的库函数printf的区别
c语言·硬件工程·verilog·数字ic
日晨难再8 天前
Verilog基础:时序调度中的竞争(四)(描述时序逻辑时使用非阻塞赋值)
fpga开发·硬件工程·verilog·fpga·数字ic
思尔芯S2C10 天前
What is RISC-V?
fpga开发·soc·risc-v·eda·fpga原型验证·prototyping·verification
Liii40310 天前
【ARM】SOC的多核启动流程详解
arm开发·soc
FPGA狂飙10 天前
FPGA IP 和 开源 HDL 一般去哪找?
fpga开发·verilog·fpga·vivado·xilinx
小桶qa13 天前
握手传输 & 状态机序列检测(记忆科技笔试题)_2024年9月2日
verilog
看未来捏17 天前
【数字集成电路与系统设计】Chisel/Scala简介与Verilog介绍
scala·verilog·chisel
小桶qa18 天前
音频左右声道数据传输_2024年9月6日
音频·verilog