verilog基础:数据类型定义

这篇具有很好参考价值的文章主要介绍了verilog基础:数据类型定义。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

verilog中的数据类型大体可以分成net types和variable types。在verilog中的数据表示如下形式:

<bits>'<representation><value>

比如说4'b0001表示这个数据定义为四位宽,二进制类型,除此之外还可以定义为16进制4'h1,八进制4'01,十进制4'd1,除了这些常见数据之外,verilog还有两个特殊变量:'x'和'z','x'表示的是未知数据,'z'表示的是设置为高阻态,数据定义方法跟其他一样:4'bx。下面讲述数据类型

  1. net type

net数据用来描述不同组件之间的物理联系,本身不能用于存储数据或者驱动数据,通常使用assign来将数据复制到到线上,比如说:

assign a=1'b1;

wire

最常用的数据类型,我们使用线网类型来声明信号,这些信号是我们设计中非常基本的点对点连接,可以理解为电路中导线。

wire a;

assign a=1'b1;

wor&wand

这个类型的是将基本逻辑门插入电路,wor是逻辑或门,wand是逻辑与门,在我们使用这个类型的时候我们必须多次分配信号。我们这样做是因为每个赋值代表底层逻辑门的一个输入。我们可以很容易地在verilog中使用线类型来建模组合逻辑。因此,不建议使用wor和wand类型。

wor a;

wand b;

wire c,d;

//c也创建或门

assign a=c;

//d创建与门

assign b=d;

tri,triand,trior

使用这些类型的方式与wire、wor和wand类型完全相同。事实上,这些类型的功能完全相同。然而,我们可以使用它们来更清楚地显示我们的设计意图,verilog设计中也可以很容易地使用wire类型来表示它们的功能,不经常用。

tri a;

assign tri=1'bz;

suppy0 & supply1

我们可以使用这些类型将信号绑定到二进制1或0的常量值。由于这会产生一个与接地或Vcc相连的网络,因此我们不需要为这种类型分配数据,也能用wire来实现。

supply0 a;// assign a=0;

supply1 b;//b=1;

  1. variable type

我们在verilog中使用variable类型来存储值。当我们为变量类型赋值时,它会保持该值,直到再次赋值。

reg

verilog中最常用的变量类型是reg类型。每当需要在设计中存储值时,我们都可以使用此类型,用于对verilog中的组合逻辑进行建模。我们需要在always模块下使用赋值。

reg a;

always@(posedge clk)begin//时钟过后触发a

a<=b;

end

numeric variable type

verilog有两种常见的数字类型,整形和实型,出这两种之外的类型都用于单个数据位。

integer type

整数类型,是一个32位的2s补码数,可以用来表示verilog中任何整数,当我们使用整数类型时,我们为变量分配数值而不是二进制值,我们通常在verilog中使用整数作为常量或循环变量。

integer i;

for(i=0;i<=32;i=i+1)begin

a<=1;

end

real type

除了整数类型,我们还可以在verilog中使用实数类型。我们使用这种类型来存储非整数,即也有小数部分的数字。实数类型通常在verilog中实现为64位浮点数。因此,它不能直接合成,我们通常只在verilog的testbench使用真实类型,我们可以使用十进制或科学记数法为实数类型赋值。

real a;

a=2.5;

#1000

a=1e-3;

除了numerical type,所有的类型都是一个数据位宽我们在verilog中也可以通过数据总线来传输数据,因此可以定义数据位宽。size是[位宽-1:0]/[位宽:1]表示几个位宽

<type><size><variable_name>

reg [3:0] a;//a为4位宽

always@(posedge clk)begin

a<=4'b1010;

//a<=4'ha;//16进制

end

  1. 数组

我们还可以在verilog中创建和使用数组类型,我们只需在变量名后面添加一个额外的字段,该字段声明数组中有多少元素。<elements>字段来声明数组的大小。

<type><size><variable_name><elements>

reg [2:0] a [7:0];//3位宽的数组,数组中有8个元素

我们可以使用方括号访问数组类型中的各个元素。例如,下面的verilog代码显示了如何将5h值分配给示例数组中的最后一个元素。

a[7] =3'h5;

参考:An Introduction to Verilog Data Types and Arrays - FPGA Tutorial

这是个好网站!文章来源地址https://www.toymoban.com/news/detail-513245.html

到了这里,关于verilog基础:数据类型定义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通过自动装箱和拆箱解释所定义基础数据类型和其对应封装类的区别

     在刷软中的时候涉及到了值传递和地址传递传参的区别,其中提到不管是将基础数据类型的变量传值给对象数据类型的变量还是反过来都属于值传递,究其原因就是期间发生了自动装箱和拆箱,所以特地去查了相关资料  以Intrger为例子   Integer i =520; 等价于 Integer i = Int

    2024年02月04日
    浏览(40)
  • FPGA设计Verilog基础之Verilog全局变量和局部变量定义

    注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料 ,将在公众号 CTO Plus 发布,请关注公众号: CTO Plus   在Verilog中,变量可以分为全局变量和局部变量两种类型。全局变量在整个模块中都可以使用,而局部变量只能在某个特定的代码块中使用。

    2024年02月15日
    浏览(37)
  • 100天精通Golang(基础入门篇)——第5天: Go语言中的数据类型学习

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月08日
    浏览(44)
  • Verilog语言中的线型wire变量与寄存器类型reg变量讲解

    (1)创建wire线型 (2)在always块中要赋值的不能是wire类型,只能是reg类型 (3)输入类型不能是reg类型 (4)输出reg类型,但没有触发条件时,软件会自动将触发器综合掉

    2024年02月16日
    浏览(46)
  • verilog数据类型和数组

    本文将讨论 verilog 中常用的数据类型,包括对数据表示、线网类型、变量类型和数组,分享一下使用方法和注意事项。 编写 verilog代码 时,经常需要在代码中表示数据值,可以将这些数据表示为2进制、8进制、10进制或16进制值。 特别是verilog中需要定义数据的位宽,因为ver

    2024年02月15日
    浏览(31)
  • 深入浅出学Verilog--数据类型

            在Verilog可以用4种数值来描述其构建的电路的电平逻辑,除了 event类型 和 real类型 外,几乎所有的数据类型都可以用这4种数值来表示 。 0:代表 逻辑0 ,或者条件“ 假 ” 1:代表 逻辑1 ,或者条件“ 真 ” x或X:代表 未知值 。意味着不确定,可能是逻辑0,也可能是

    2024年02月07日
    浏览(37)
  • 【FPGA学习记录3-1】Verilog语法之Verilog的数据类型

    写在前面 本科时学过FPGA的相关课程,因此对于Verilog相关语法的学习重在回顾。 1.Verilog的数据类型 Verilog 最常用的 2 种数据类型就是 线(wire)与寄存器(reg) ,其余类型可以理解为这两种数据类型的扩展或辅助。 1.1wire类型 wire 类型表示硬件单元之间的物理连线,由其连接

    2024年02月02日
    浏览(42)
  • Verilog Tutorial(2)数据类型和数组简介

    在自己准备写verilog教程之前,参考了许多资料----FPGA Tutorial网站的这套verilog教程即是其一。这套教程写得不错,只是没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。 这是网站原文:https://fpgatutorial.com/verilog/ 这是系列导航:Verilog教程系列文章导航 在这篇

    2023年04月25日
    浏览(31)
  • Verilog数据类型/常量/变量[学习笔记day3]

    1 数据类型 数据类型是用来表示数字电路中的 数据存储 和 传递单元 。 Verilog HDL中共有19种数据类型,其中 最基本的有4种 : 常:integer型 parameter型 变:reg型 wire型 其他:large, medium, scalared, small, time, tri, tri0, tri1, triand, trior, trireg, vectored, wand, wor等。 2 常量 在程序运行过程中

    2024年02月05日
    浏览(42)
  • Verilog基础:表达式中的整数常量(integer)

    相关文章 Verilog基础专栏 https://blog.csdn.net/weixin_45791458/category_12263729.html ​         整数常量可以由十进制、十六进制、八进制或二进制格式指定。         整数常量有两种表现形式。         第一种表现形式是一个简单的十进制数,应指定为0到9的数字序列,可以选

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包