ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Verilog-数据类型

2021-10-02 15:02:51  阅读:169  来源: 互联网

标签:wire 数据类型 module Verilog 模块 out reg 赋值


数据类型

  • 基本数据类型:integer、parameter、reg和wire
  • 其他类型:类似tri0
  • 常量:数字、parameter
    1)其中<位宽>‘<进制><数字>表示常整数,
    2)x和z值:当表明位宽的数在某些位用来x和z来表示,只有他们在最左边的时候表示这几位上具有扩展性。对于?”号也表示z
    3)负数:-8’d5(要用5的补数进行标识)
    4)parameter:右边必须是常数。只在本模块中有用,如果在模块中要用,需要通过参数传递。这里还有一个localparm,仅适用于当前的module,不能进行传递参数
  • 模块实例引用时传递参数defparam
module m(a,b,out);//被引用模块
	parameter c= 7;
endmodule
module test

	m mk(a,b,out);
	defparam mk.c = 5;//例化模块名,和参数名
	//m #(4) mk(a,b,out);对模块m的实例引用
	...
endmodule

5)变量

  • nets type
    输出随输入的变化而变化,wire变量,是通过assign语句进行组合逻辑,缺省时为wire。其中wire[n-1:0] 数据m表示每条总线,位宽为n,共有m条总线。

  • register type
    可以看成是触发器,寄存器。然后主要使用过程块语句initial always task function等进行赋值,它需要明确的赋值,然后在重新赋值前保持原值。reg不一定都是触发器的组成,也可能是组合逻辑。

module w(a,b,out,c);
	input a,b;
	output out;
	reg out;
	wire c;
	assign c = a;//assign只能生产组合逻辑
	always @(b)//reg就可以生成由电平d的组合逻辑
		out < = ~b;
endmodule
  • memory type
    由若干个相同宽度的reg的向量组成的数组。
    类似reg[n-1:0] rega是一个n位的寄存器,reg mema[n-1:0]是由n个1位组成的寄存器组成的存储器。
    赋值方式不一样:n位寄存器可以用一条赋值语句赋值,存储器的赋值需要先指明该单元在这个存储器的地址后,再进行读写操作。例如:rega = 0;√,mema[1023:0] = 0;√,其中的1023是指明了存储单元的地址。

标签:wire,数据类型,module,Verilog,模块,out,reg,赋值
来源: https://blog.csdn.net/weixin_42705678/article/details/120585536

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有