1、Verilog的基础知识

Verilog的基础知识

目录

Verilog的基础知识

1.1、Verilog模块的定义与构成

1.2、基本语言要素

1.2.1、词法约定

1.2.2、数据类型

1.2.3、操作符及其表达式


1.1、Verilog模块的定义与构成

模块是Verilog层次化设计的基本构件,代表一个基本的功能单元。

每个模块由几个部分组成,包括模块名称、端口列表、数据类型说明、内部变量定义和电路功能描述等几个部分。

e.g.:

module module_name(port_list);

    port_type declarations;

    data type declarations;

    circuit functionality;

    timing specification;

endmodule

    模块的第一个要素是模块名称,定义的模块名称将唯一标识这个模块。模块名的定义和使用一般遵循以下原则:

  • 大小写敏感;
  • 避免使用Verilog的关键字;
  • 一般定义的名字含义与模块功能相关,便于使用、记忆;
  • 一般一个Verilog模块只保存为一个文件,保存该模块的文件名(文件扩展名为.v)常与模块名相同。这种做法并不是必须的,但便于设计结构的清晰,便于模块使用和管理。

    模块的端口是模块与外界环境交互的接口。在模块的定义中,包含一个可选的端口列表,端口列表紧跟在模块名后面,e.g.:module mult_acc(out,ina,inb,clk,clr);

端口的声明形式为:<port_type>[msb:lsb]<port_name>;其中[msb:lsb]为端口的位宽,缺省时端口为标量,port_name为端口名。

 

1.2、基本语言要素

1.2.1、词法约定

(1)  标识符

    标识符是模块、变量、端口、实例、函数、任务、有名块等对象的名称,用于唯一地标识该对象;由字母、数字、下划线_ 和$等排列而成。

    定义标识符需遵循以下命名规则

  • 首字母必须为字母或下划线,不能为数字或$;
  • 可以使一串字母、数字、美元符号$或下划线的排列;
  • 标识符长度一般<1024bit;
  • 对字母大小写敏感;
  • 系统任务和系统函数必须在标识符前加上$;
  • 避免使用Verilog HDL中的关键字。

    定义各类标识符时建议使用以下的命名习惯

  • 常数名、参数名大写且有确定意义;
  • 信号名、变量名、端口名小写;
  • 时钟名以clk、clock开头;
  • 低电平有效信号名为:信号名_n;
  • 模块名应有意义。

(2)字符串

    字符串是由双引号括起来的一个字符序列,必须在一行中书写完,不能包含回车符。

(3)  空白符和转义符

    空白符由空格符(\b)、制表符(\t)和换行符(\n)组成。

(4)  注释

    单行注释使用“//”开始,并在本行结束。多行注释分别使用“/*”“*/”作为开始和结束,可包含回车符,跨越多行,多行注释不允许嵌套。

(5)常量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值