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 天前
OV5640 相机开发流程
fpga开发·verilog·ov5640·双目相机·相机开发
ChipCamp4 天前
ChipCamp探索系列 -- 1. Soft-Core RISC-V on FPGA
fpga开发·verilog·risc-v
数字硬鉴6 天前
PCIe Base Specification解析(八)
芯片设计·soc·pcie·arm架构·cpu设计
FPGA小迷弟14 天前
京微齐力系列FPGA---- Debugware IP核使用教程!!!
物联网·fpga开发·硬件架构·verilog·fpga
月光技术杂谈22 天前
上海RISC-V峰会-香山开源RISC-V CPU随想随记
verilog·risc-v·chisel·vhdl·香山·开源cpu·xiangshan
可编程芯片开发24 天前
基于FPGA的多级流水线加法器verilog实现,包含testbench测试文件
fpga开发·verilog·加法器·多级流水线
平凡灵感码头1 个月前
什么是 Bootloader?怎么把它移植到 STM32 上?
linux·soc
进击的奶龙1 个月前
02VCS_使用教程
verilog·仿真·eda
热爱学习地派大星1 个月前
Xilinx FPGA功耗评估
fpga开发·verilog·vivado·fpga功耗·xpe
进击的奶龙1 个月前
21verilog函数
verilog·基础语法