当前位置: 首页 > news >正文

Verilog基础:标识符的定义位置

相关阅读

Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm=1001.2014.3001.5482


        Verilog中的标识符种类有很多,本文将讨论这些标识符的定义位置并给出相关例子。

reg类型

模块命名空间

module test;*****reg [7:0] count_reg; // 模块命名空间中定义reg信号*****endmodule

        注意事项:如果reg类型不是数组形式,则可以赋初值。

块命名空间

命名块
module test;*****always@(*) begin: areg [7:0] count_reg; // 块命名空间中定义reg信号*****   end*****endmodule

        注意事项:reg类型不可以赋初值,且必须在命名块中的所有语句之前声明。

函数
module test;*****function func(input a);reg [7:0] count_reg; // 块命名空间中定义reg信号begin:*****   endendfunction*****endmodule

        注意事项:reg类型不可以赋初值,且必须在函数中的所有语句之前声明。

 

任务
module test;*****task task1;reg [7:0] count_reg; // 块命名空间中定义reg信号begin:*****   endendtask*****endmodule

        注意事项:reg类型不可以赋初值,且必须在任务中的所有语句之前声明。 

 

生成块命名空间

module test;*****generategenvar a;for(a=0; a<5; a=a+1) begin // 对于Verilog 2005标准,无需给块命名*****reg [7:0] count_reg; // 生成块命名空间中定义reg信号*****   endendgenerate*****endmodule

        注意事项:如果reg类型不是数组形式,则可以赋初值。 

integer类型

        与reg类型相同。

real类型

        与reg类型相同。

time类型

        与reg类型相同。

realtime类型

        与reg类型相同。

net大类

        net大类包括wire、wand、wor、tri、triand、trior、tri0、tri1、trireg、uwire、supply0、supply1类型。

模块命名空间

module test;*****wire [7:0] count_wire; // 模块命名空间中定义wire信号*****endmodule

        注意事项:如果net大类不是数组形式,则可以赋值(表达式可以是常量也可以是变量);如果为net大类指定了驱动强度,则必须赋值。

生成块命名空间

module test;*****generategenvar a;for(a=0; a<5; a=a+1) begin // 对于Verilog 2005标准,无需给块命名*****wire [7:0] count_wire; // 生成块命名空间中定义wire信号*****   endendgenerate*****endmodule

        注意事项:如果net大类不是数组形式,则可以赋值(表达式可以是常量也可以是变量);如果为net大类指定了驱动强度,则必须赋值。 

event类型

模块命名空间

module test;*****event tt; // 模块命名空间中定义event*****endmodule

块命名空间

命名块
module test;*****always@(*) begin: aevent tt; // 块命名空间中定义event*****   end*****endmodule

        注意事项:event类型必须在命名块中的所有语句之前声明。

函数
module test;*****function func(input a);event tt; // 块命名空间中定义eventbegin:*****   endendfunction*****endmodule

        注意事项:event类型必须在函数中的所有语句之前声明。 

 

任务
module test;*****task task1;event tt; // 块命名空间中定义eventbegin:*****   endendtask*****endmodule

        注意事项:event类型必须在任务中的所有语句之前声明。 

生成块命名空间

module test;*****generategenvar a;for(a=0; a<5; a=a+1) begin // 对于Verilog 2005标准,无需给块命名*****event tt; // 生成块命名空间中定义event*****   endendgenerate*****endmodule

localparam类型

模块命名空间

module test;*****localparam WIDTH = 5; // 模块命名空间中定义localparam*****endmodule

块命名空间

命名块
module test;*****always@(*) begin: alocalparam WIDTH = 5; // 块命名空间中定义localparam*****   end*****endmodule

        注意事项:localparam类型必须在命名块中的所有语句之前声明。 

函数
module test;*****function func(input a);localparam WIDTH = 5; // 块命名空间中定义localparambegin:*****   endendfunction*****endmodule

        注意事项:localparam类型必须在函数中的所有语句之前声明。  

任务
module test;*****task task1;localparam WIDTH = 5; // 块命名空间中定义localparambegin:*****   endendtask*****endmodule

        注意事项:localparam类型必须在函数中的所有语句之前声明。

生成块命名空间

module test;*****generategenvar a;for(a=0; a<5; a=a+1) begin // 对于Verilog 2005标准,无需给块命名*****localparam WIDTH = 5; // 生成块命名空间中定义localparam*****   endendgenerate*****endmodule

parameter类型

        与localparam类型类似,区别在于parameter类型不能在生成块命名空间中定义。

function类型

模块命名空间

module test;*****function func(input a); // 模块命名空间中定义function*****    endfunction *****endmodule

生成块命名空间

module test;*****generategenvar a;for(a=0; a<5; a=a+1) begin // 对于Verilog 2005标准,无需给块命名*****function func(input a); // 生成块命名空间中定义function*****    endfunction *****   endendgenerate*****endmodule

task类型

        与function类型相同。

相关文章:

  • Vue 中 this.$emit(‘mount‘) 的妙用
  • [C++][设计模式] : 单例模式(饿汉和懒汉)
  • 2.监控领域中行业黑话知识学习指南
  • 使用Ollama+open-webui搭建本地AI模型
  • 写实交互数字人:赋能消防知识科普,点亮智能交互讲解新未来
  • word表格批量转excel,提取表格数据到excel
  • SpringBoot+Junit在IDEA中实现查询数据库的单元测试
  • ⭐ Unity 实现屏幕涟漪效果:自动生成 \ 点击交互生成涟漪
  • 基于OpenCV和深度学习实现图像风格迁移
  • 分布式光纤测温及红外测温系统的区别?
  • 68、.NET Entity Framework(EF)
  • 每日Prompt:宫崎骏风格插画
  • YOLOv2 技术详解:目标检测的又一次飞跃
  • 大模型Prompt|提示工程的10个常见设计模式
  • 【数据传输常用命令】:docker常用命令
  • 1.ES介绍
  • Three.js搭建小米SU7三维汽车实战(4)场景搭建
  • Eureka 服务注册与发现原理和使用
  • 常见的几种排序算法
  • 预训练CNN网络的迁移学习(MATLAB例)
  • 武汉网站建设公司有哪些/建站开发
  • 校园网站建设必要性/seo网络排名优化技巧
  • 徐州网站建设公司官网/做电商一个月能挣多少钱
  • 做网站用php转html/百度指数 移民
  • 百度公司做网站可靠吗/seo行业网
  • 网站web建设/关键词优化方法有什么步骤