关注、星标公众,直达精彩内容

公众号:ZYNQ

整理:watchman

Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能,一起来学习吧。

1、逻辑

四值电平逻辑:0(假)、1(真)、x(不确定)、z(高阻/浮动)

x和z代表的位数:十六进制-4位、八进制-3位、二进制-1位

数的最高位是x、z、0时,自动赋值扩展剩余更高位;数的最高位是1时,用0扩展剩余更高位。

2、常量

使用带基数的形式表示常量:

  • 指明位数的数字( '):

用十进制数表示位宽;             基数格式包括十进制(d)、十六进制(h)、二进制(b)、八进制(o);             0~1、a/A~f/F

  • 不指明位数的数字 :不指定基数格式时默认为十进制数;默认位宽与计算机有关(最小32位)。

3、定义标识符来表示常量

公式:parameter 参数名=常量表达式

例子:

parameter BIT=1,BYTE=8,PI=3.14;parameter DELAY=(BYTE+BIT)/2;

4、强度值:supply(驱动)、strong(驱动)、pull(驱动)、large(存储)、weak(驱动)、medium(存储)、small(存储)、highz(高阻) 按程度由强到弱排序

  • 各类线网中,只有trireg类型可以存储强度(large、medium、small三等级)

  • 强度值解决不同强度驱动源之间的赋值冲突。

  • 不同强度信号驱动同一个线网,结果服从高强度信号。同强度多个信号竞争,结果为不确定值。

5、线网类型 net type

线网net:硬件单元间的连接。由连接器件输出端连续驱动。

数据类型:wire,wand,wor,tri,triand,trior,trireg....

线网用wire声明,值由驱动源决定。默认值为z(trireg类型线网默认值为x),默认位宽为1。

定义格式:wire[n-1:0]变量名1,变量名2,...,变量名n;

wire a,b;                    //声明两个线网类型变量a,bwire [7:0] databus;          //声明一个8位宽的线网类型变量databuswire [32:1] busA,busB,busC;  //声明3个位宽为32的线网类型变量busA,busB,busC

6、寄存器类型 register type

寄存器:存储元件,被改写前保持原数值。

寄存器型变量只能在initial或always内部被赋值。

寄存器未被赋值前,默认为x。

寄存器类型 功能说明
reg 用于行为描述中对寄存器型变量的说明。无符号数
integer 32位带符号的整数型变量。默认位宽是宿主机的位数,域具体实现有关,最小32位。计算中认为是有符号的数,用二进制补码的形式储存。不可使用位矢量integer [3:0] num;×
real 64位带符号的实数型变量,实数不带范围,默认为0。用十进制或科学计数法(3e6=3000000)当实数值被赋给一个integer型变量时,只保留整数部分的值,小数点后面的值被截掉。
time 64位无符号的时间型变量 ,时间寄存器用time来声明,宽度与具体实现有关,最小为64位。用于存储仿真的时间,只存无符号数。每个time型变量存储一个至少64位的时间值。调用$time可得当前的仿真时间

如果没有明确地说明寄存器型变量reg是多位宽的矢量,则寄存器变量的位宽为1位。

定义格式:reg[n-1:0]变量名1,变量名2,...,变量名n;

reg clock;                      //声明一个寄存器变量clockreg [3:0] counter;               //声明一个4位宽的寄存器变量counter

integer型变量例子:

integer counter;                //声明一个整型变量counterinitial      counter=-1;               //将-1以补码的形式存储在counter中      //只有寄存器类型的变量才能在initial内部被赋值

real型变量例子:

real delta;             //声明一个实数型变量deltainitial    begin        delta=4e10;      //给delta赋值        delta=2.13;    endinteger i;               //声明一个整型变量iinitial    i=delta;             //i得到的值是2(只将实数2.13的整数部分赋给i)

time型变量例子:

time current_time;           //声明一个事件类型的变量 current_timeinitial      current_time=$time;    //保存当前的仿真时间到变量current_time中

‧  END  

推荐阅读:ZYNQ 学习专辑

关注视频,直达精彩内容

verilog赋多位值_Verilog入门学习笔记——第一弹相关推荐

  1. 数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载、安装与配置(图文详解步骤2022)

    数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步骤2022) 文章目录 数据库学习笔记第一弹--MySQL8.0和MySQL5.7的下载.安装与配置(图文详解步 ...

  2. verilog赋多位值_verilog中的default应该赋什么样的值

    Q:在状态机的case语句中,最后要加上默认项default,可是我看到有的书上写的是一个确定的状态,有的则是不定态xxx,到底应该写那个啊?求助! A1:取决于case条件是否完备啦 如果你的cas ...

  3. verilog赋多位值_verilog赋值

    我现在要用且只能用八位的拨片开关对两个四位变量t1l,t1h赋值,且这两个变量t1l,t1h是要输出的,所以我编了一下程序,先通过拨片开关对输入变量d0,d1赋值,然后将d0,d1的值赋给t1l,t1 ...

  4. 原创 OpenCV3编程入门 学习笔记(总)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_36163358/article/ ...

  5. OpenCV3编程入门 学习笔记(总)

    OpenCV3编程入门 学习笔记 2018.12.12-2018.12.29 此博客为在看过毛星云版<OpenCV3编程入门>后所总结的一本笔记,可供复习使用. 文章目录 OpenCV3编 ...

  6. ROS中的roslaunch命令和launch文件(ROS入门学习笔记四)

    ROS中的基本对象和概念学习笔记(ROS入门学习笔记一) ROS中创建工作区和包(ROS入门学习笔记二) ROS功能包中CMakeLists.txt的说明(ROS入门学习笔记三) 1.roslaunc ...

  7. UE4入门学习笔记——纪念学习虚幻引擎满一周年

    UE4入门学习笔记 前言: 今天是正式学习ue4一周年.一年前的今天,我结束了PBR流程的学习,怀揣着对游戏制作的热爱,正式开始学习ue4,继续追寻儿时的那个大厂梦.谁也没想到,一年后的今天,我会在T ...

  8. Java入门学习笔记——郝斌(一)概述及面向对象

    Java入门学习笔记--郝斌 1.Java概述 java的起源和发展 java的特点 java的应用领域 java学习目标 环境变量的设置 为什么要设置path? path的设置 有关classpat ...

  9. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

最新文章

  1. linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
  2. ansible+powershell DSC 可以管理windows server了
  3. “RPC好,还是RESTful好?”
  4. html函数中怎么写超链接,如何调用html超链接中的函数
  5. 大数据与数据挖掘考试题_2017-2019年全国Ⅱ卷高考考点数据分析(理综合)
  6. 烽火2640路由器命令行手册-12-IBM网络配置命令
  7. L2C中CtempGen层语义保持证明中环境匹配的定义
  8. 前端处理后台返回的流数据
  9. GitHub上整理的一些工具[转载]
  10. 信捷plc485通信上位机_常用通信接口汇总
  11. SetTimer函数和 KillTimer函数
  12. 使用Easy CHM制作java API chm文件
  13. 计算机专业设计(论文)内容及要求,计算机专业毕业设计要求.doc
  14. 准确率(accuracy)、精确率(Precision)、召回率(Recall)
  15. hololens凝视物体、单击双击、语音控制、蓝牙
  16. 微观经济学之供给与需求--第一章第二章
  17. CommaFeed:仿Google Readerd的RSS阅读器
  18. 每日一题——分发糖果
  19. Java常见面试题 + 答案汇总
  20. aria2c rpc php,Mac上配置 aria2c 神器

热门文章

  1. jquery中的$(function(){})和document.ready(function(){})和jQuery(function () {}
  2. 云计算与 Cloud Native | 数人云CEO王璞@KVM分享实录
  3. 为什么redhat6/centos6里看到的网卡是em*?
  4. 【Spark亚太研究院系列丛书】Spark实战高手之-构建Spark集群-安装Ubuntu系统(3)
  5. Web下的整体测试 --性能测试及优化思路
  6. 不同的载体 不同的商业模式
  7. 845. 数组中的最长山脉
  8. mysql _bin编码_mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
  9. exists查询慢_8个SQL查询效率优化原则
  10. oracle 10g安装企业版,企业版Oracle10g的安装-过程