2.4 Verilog HDL语句

2023-11-04


语句分为:赋值语句、块语句、条件语句、循环语句、结构说明语句、编译预处理语句

1 赋值语句、结构说明语句、阻塞与非阻塞

1.1 赋值语句

1.1.1 连续赋值语句assign

assign语句
 用于对wire型变量赋值,是描述组合逻辑最常用的方法之一。
 例如assign c=a&b; //a、b可以是wire型变量或寄存器变量,c必须是wire型变量或其他线网型变量。

1.1.2 过程赋值语局“=”和“<=

 用于对reg型变量赋值
 在过程块中使用过程赋值语句。

1.2 结构说明语句

1.2.1 结构说明语句always

always块包含一个或一个以上的语句(如:过程赋值语句、条件语句和循环语句等),在运行的全过程中,在时钟控制下被反复执行。
时钟有效边沿来了就执行
在always块中被赋值的只能是寄存器reg型变量。
always块的写法是:always @ (敏感信号表达式)
例如:
always @ (clk) //只要clk发生变化就触发
always @ (posedge clk) //clk上升沿触发
always @ (negedge clk) //clk下降沿触发
always @ (negedge clk1 or posedge clk2) // clk1下降沿触发,clk2上升
沿也触发
always @ (*)该语句所在模块的任何输入信号变化了都触发。

1.2.2 结构说明语句initial

initial语句用于对寄存器变量赋予初值
在这里插入图片描述
在这里插入图片描述

1.3 阻塞与非阻塞

阻塞的概念
在一个块语句中,如果有多条阻塞赋值语句,在前面的赋值语句没有完成之前,后面的语句就不能被执行,就像被阻塞了一样,因此称为阻塞赋值方式。
阻塞(blocking)赋值方式
 赋值符号为=,如 b = a ;

非阻塞的概念
多条非阻塞赋值在过程块内同时完成赋值操作,多条语句相当于同时执行!
非阻塞(non-blocking)赋值方式
 赋值符号为<=,如 b <= a ;
更多可以见:小梅哥Xilinx FPGA学习笔记9——语法(阻塞与非阻塞赋值)

1.3.1 阻塞的研究

c=b=i_a
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.2 非阻塞的研究

c是b的旧值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.3 非阻塞及阻塞的比较

在这里插入图片描述

2 条件语句

条件语句用于always或Initial过程块内部,主要包含if-else语句和case语句。

2.1 条件语句if

if-else语句用于判定所给条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if-else语句有3种形式。
在这里插入图片描述
 如果语句有多条组成,必须包含在begin和end之内。
 3种形式的if语句后面都有表达式,一般为逻辑表达式为关系表达式。当表达式的值为1,按真处理,若为0、x、z,按假处理。
 else语句不能单独使用,它是if语句的一部分
在这里插入图片描述

2.2 case语句

case语句是一种多分支选择语句,if只有两个分支可以选择,但是case可以直接处理多分支语句,这样程序看起来更直观简洁。
在这里插入图片描述

case(表达式) 
	分支表达式: 语句;
	分支表达式: 语句;
	… …
	默认项(default) 语句;
endcase

在这里插入图片描述
在这里插入图片描述
case语句的所有表达式的值的位宽必须相等。
 在case语句中,分支表达式每一位的值都是确定的(或者为0,或者为1);
 在casez语句中,若分支表达式某些位的值为高阻值z,则不考虑对这些位的比较;
 在casex语句中,若分支表达式某些位的值为z或不定值x,则不考虑对这些位的比较。
在这里插入图片描述

3 循环语句

 在Verilog中存在着多种循环语句,用来控制执行语句的执行次数。
在FPGA设计中,循环语句不一定能被综合,多用于在仿真代码生成仿真激励信号

3.1 循环语句forever

 forever语句: 连续执行的语句。
格式:forever begin语句块end
forever常用于仿真代码中。

 仿真的时间单位,可以在系统中设置,也可以在仿真文件的开始加上:`timescale 1ns / 1ps //时间单位1ns, 精度1ps
 仿真程序代码【1】和【2】是等价的,都是产生20个时间单位的方波,占空比50%。
在这里插入图片描述

3.2 循环语句repeat

 repeat语句: 连续执行n次的语句。
格式:repeat(表达式) begin语句块end

 其中 **“表达式”**用于指定循环次数,可以是一个整数、变量或者数值表达式。如果是变量或者数值表达式,其数值只在第一次循环时得到计算,从而得到确定循环次数。

 repeat语句也常用于仿真。例如:

repeat (10) 
begin
#10 clk=0;
#10 clk=1;
end

3.3 循环语句while

 while语句: 执行语句,直至某个条件不满足。
格式:while(表达式) begin语句块end

 表达式是循环执行条件表达式,代表了循环体得到继续重复执行时必须满足的条件,通常是一个逻辑表达式
在每一次执行循环体之前,都需要对这个表达式是否成立进行判断。while 语句在执行时,首先判断循环执行条件表达式是否为真,如果真,执行后面的语句块, 然后再重新判断循环执行条件表达式是否为真,直到条件表达式不为真为止退出循环。
在执行语句中,如果没有改变循环执行条件表达式的值的语句,循环就成为死循环。
在这里插入图片描述
在这里插入图片描述

3.4 循环语句for

for 语句: 三个部分
for(表达式1;表达式2;表达式3)
for(循环变量赋初值;循环执行条件;循环变量增值)。

例如 for(i=0;i<=7;i=i+1)。
 如果要让系统能够综合,那么循环的次数一定是固定的
 程序实例实现了统计输入的8位数据in中1的个数,每个时钟上升沿统计一次。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2.4 Verilog HDL语句 的相关文章

  • stm32f1一路互补PWM大功率DCDC降压方案

    stm32f1 ucc27211 tl431大功率dcdc电路 源码程序
  • OVP电路应用(一)_12V电源_DIO1280

    目录 前言 一 基本信息 二 基本电气特性 1 PIN定义 2 电气特性 3 OVP值的设置 4 时序 5 其他 三 实际设计案例 1 电路原理图 PCB Layout 2 测试 3 问题与对策 四 USB的VBUS应用 其他举例 1 电路
  • 【详解】指令系统中跳转指令与OF,SF,CF,ZF的关系

    目录 无符号跳转表示法 有符号跳转表示法 无符号跳转表示法详解 有符号跳转表示法详解 无符号跳转表示法 小于 大于等于 小于等于 大于 有符号跳转表示法 小于 大于等于 小于等于 大于 无符号跳转表示法详解 我在学习这部分的最大的困惑点就是
  • AD中如何对圆形PCB板进行铺铜

    因为之前做了一块圆形的PCB板子 所以在铺铜时候发现圆形铺铜我该怎么快速去铺 于是查了一下网上 大部分人是推荐先圈出一个圆弧 然后在通过快捷键TVG或者是按下 shift 空格 但是我发现不适合我 于是我分享一下自己的方法 我们如果要对圆形
  • 模拟电路设计(33)---电源变换器简介

    概述 电子设备都需要供电 其电能来源于火力 水力 核子发电厂提供的交流电 这些交流电通过电源设备变换为直流电 但是 这种直流电源不符合需要 仍需变换 这称为DC DC变换 常规的变换器是串联线性稳压电源 其调整元件工作于线性放大区 通过的电
  • 获取时间和脸颊、下颚线灯模式

    电流检测的应用 电路检测电路常用于 高压短路保护 电机控制 DC DC换流器 系统功耗管理 二次电池的电流管理 蓄电池管理等电流检测等场景 对于大部分应用 都是通过感测电阻两端的压降测量电流 一般使用电流通过时的压降为数十mV 数百mV的电
  • EMC经典问答85问(75-77问)

    75 某个手持测试产品 可以电池供电 同时也可以采取外置适配器供电方式 适配器单独带负载辐射发射 RE 测试可以通过 手持产品在电池供电情况下辐射发射 RE 也可以通过 并且余量都比较大 但是在带外置适配器的情况下 却在 160M 频率左右
  • 直流-直流(DC-DC)变换电路

    直流 直流 DC DC 变换电路 可以将一种直流电源经过变换电路后输出另一种具有不同输出特性的直流电源 可以是一种固定电压或可调电压的直流电 按照电路拓扑结构的不同 DC DC变换电路可以分成两种形式 不带隔离变压器的DC DC变换电路和带
  • N沟道和P沟道MOS管的四个不同点

    作者 快捷芯 功率半导体创新品牌 1 芯片材质不同 虽然芯片都是硅基 但是掺杂的材质是不同 使得N沟道MOS管是通过电子形成电流沟道 P沟道MOS管是用空穴流作为载流子 具体原理可以参考一些教科书 属于工艺方面的问题 2 同等参数P沟道MO
  • AD20/Altium designer——如何对PCB添加图片丝印、自定义LOGO、专属图案

    本篇介绍如何在PCB添加图案丝印并调节大小 主要步骤 图片转单色图 bmp格式 复制粘贴进word文档 再次复制到AD 1 选择图片用电脑自带的画图软件打开 2 将图片另存为 bmp格式 3 查看图片效果是否理想 图片是否需要取反色 选做
  • 常用集成运放电路合集(简洁易懂,附Multisim仿真文件)

    电赛初试培训整理的常用的集成运放电路集合 尽可能地追求全面 本文省略繁琐的推导过程 直接给出电路及其功能 以便读者使用时进行查阅 由于每个电路的介绍可能相对简略 实际使用或学习时可在站内查阅资料 网上资料丰富 在此不再赘述 本文目的是提供一
  • CAN FD基础

    CAN FD基础 一 CAN FD与CAN 2 0的区别 1 CAN FD的优势 该协议能够支持更高的速率 可以更快的刷写ECU 在单个数据帧内传送率可达64字节 避免了经常发生的数据分拆传输的状况 对汽车行业而言 CAN FD协议显得非常
  • 2023 华子(华为)硬件岗位面试2

    写在前面 本内容仅作参考 如有侵权或者其他问题 立马删除 也仅作为笔者个人经历或者回忆 不一定完全准确 一切都在改变 也祝愿大家面试顺利 顺利取得自己心仪的offer 编辑切换为居中 添加图片注释 不超过 140 字 可选 本次是业务主管面
  • 硬件工程师-三极管

    目录 一 机械开关 二 三极管的种类 三 NPN型三极管 N型三极管 四 PNP型三极管 编辑 五 三极管公式 NPN型三极管 PNP型三极管 六 NPN管的继续讲解 三极管的导通电压 PNP管也是一样 三极管的三种状态 判断三极管是放大还
  • DC/DC闭环控制的丘克(Cuk)变换电路原理设计及实验仿真

    如果将降压 Buck 变换电路和升压 Boost 变换电路的拓扑结构进行对偶变换 即Boost变换电路和Buck变换电路串联在一起得到一种新的电路拓扑结构 丘克 CUK 变换电路 如图所示 Cuk变换电路的输入和输出均有电感 增加电感的值
  • 波端口的使用

    波导端口代表了计算域的一种特殊边界条件 它既可以激发能量 也可以吸收能量 这种端口模拟了连接到该结构的无限长波导 波导模式从结构向边界平面传播 从而以非常低的反射水平离开计算域 当端口中的波导模式与结构内部波导的模式完全匹配时 可以实现非常
  • ADS Via Designer 快速建模举例

    如何快速地对设计中的差分过孔进行建模 是layout前仿真中经常遇到的问题 好在目前主流的仿真软件都提供了独立的过孔建模向导 可以很方便地进行操作 本文以ADS提供的Via Designer向导为例 展示如何快速完成过孔的建模操作 以下图所
  • 无线网络管理系统与无线路由器的区别

    第5章 波形发生器软件设计 本章我们将介绍系统的软件设计 系统中控制软件占有很重要的地位 它不仅要产生波形数据 控制波形的发生 还要控制显示电路和键盘电路 因此系统软件的好坏直接决定着系统的功能和稳定 5 1软件的总体结构 在本系统中 由于
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • 如何正确使用RC滤波网络

    众所周知 最有效的滤波电路应靠近噪声源放置 滤波的作用是对噪声电流进行及时有效地阻止和转移 实际设计中 工程师经常使用高的串联阻抗 电阻 电感和铁氧体 阻止电流 并使用低的并联阻抗 电容 转移电流 通常情况下 我们期望滤波器可以对噪声信号衰

随机推荐

  • 基于概率论的分类方法:朴素贝叶斯

    需要分类器做出分类决策 可以使分类器给出各个类别的概率估计值 然后选择概率最高的作为其的类别 在这里使用到了概率论中的贝叶斯公式 P A B P A P B A P B 其中P A B 是后验概率 P A 是先验概率 P B A P B 为
  • Python数据分析与展示第三课

    Matplotlib是python优秀的数据可视化第三方库 数据可视化 将数据以特定的图形图像的形式展现出来 Matplotlib由各种可视化的类构成的 使用方式 import matplotlib pyplot as plt as plt
  • 论文收录引用证明常见问题汇总

    学术论文在毕业 评职称 保研 考博 留学等方面均有重要意义 因此往往需要开具检索证明 然而 开具检索证明的前提是论文必须被收录 1 什么是论文收录引用证明 论文收录引用证明是用来证明作者在科研领域中的实力和成就 当用户需要查询其论文在指定数
  • 单链表实现多项式相加

    这个小项目用C语言实现 代码中有我的注释 思路 用链表的每个节点存储表达式的每一项 因此每个链表就是一个表达式 链表节点类型的定义 struct Node DataType elem 项的系数 Variate ch 常量和变量的标志 规定如
  • rand()每次产生的随机数都一样

    写了个程序 每次产生的随机数都是一样的 在调用之前已经初始化了随机数种子 用的是当前时间 可是还是得到一样的数 for int i 0 i lt 100000 i srand unsigned time NULL cout lt
  • shiro入门

    1 概述 Apache Shiro 是一个功能强大且易于使用的 Java 安全 权限 框架 借助 Shiro 您可以快速轻松地保护任何应用程序一一从最小的移动应用程序到最大的 Web 和企业应用程序 作用 Shiro可以帮我们完成 认证 授
  • Vue中获取input输入框值

  • 一个“制作午餐”的故事,帮助你理解并发和并行(上)

    导读 这是一个关于 午餐时间 的小故事 用于阐述 threading asyncio multiprocessing cloud functions 等内容 为了方便阅读并理解文章的内容 全文分上 下两篇 上篇主要讲解并发 下篇重点讲解并行
  • runtime交换方法的正确姿势

    runtime交换方法的正确姿势 说到Objective C大家就会想到黑魔法runtime 不知道runtime是什么的看这里 runtime是开源的 源码在这里 本文主要讲解如何利用runtime正确的交换方法 将会提到两种方式去交换
  • 在Linux的终端中显示BMPString的内容

    在上一篇博文中 介绍了如何在 Windows 的控制台界面下输出 BMPString 的内容 但是那里的方法在 Linux 下不适用 如果将那里的示例代码放到 Linux 下执行 输出的结果为乱码 产生乱码的原因在于 wchar t 类型的
  • 数据挖掘——第一章:概述

    文章目录 1 数据分析与数据挖掘 1 1 数据分析 1 2 数据挖掘 1 3 知识发现 KDD 的过程 1 4 数据分析与数据挖掘的区别 1 5 数据分析与数据挖掘的联系 2 分析与挖掘的数据类型 2 1 数据库数据 2 2 数据仓库数据
  • 思科网络配置简单学习

    一 VLAN 什么是VLAN 虚拟局域网 为什么要引入VLAN 1 交换机分割了冲突域 但是不能分割广播域 2 交换机端口数量增多 网络中广播增多 降低了网络的效率 3 目的为了分割广播域 VLAN的优势 广播控制 提高安全性 提高带宽利用
  • UDP \TCP详详详详解,你想要的全都有(呕心沥血)

    前言 因特网为应用层提供了两种截然不同的可用运输层协议 一个是UDP 用户数据报协议 一个是TCP 传输控制协议 这两种协议无论是在开发过程中 还是面试问答中 都相当重要 先了解两个定义 多路分解 将运输层报文段中的数据交付到正确的套接字
  • 2023 年 30 种顶级自动化测试工具

    当您想运行测试自动化时 天空是极限 甚至超越极限 技术发展如此之快 与 10 年前相比 您可以减少时间并保持更高的工作效率 如果 Selenium 是您首选的自动化测试工具 您就不必忍受 Selenium 给您带来的限制 相反 您可以从各种
  • Python基础知识(一):变量与赋值、运算符、数据类型及位运算

    学习目标 了解python的基本概念 变量类型 运算符 及数据类型 了解python的位运算 原码 反码和补码 注释 在 Python 中 表示注释 作用于整行 或者 表示区间注释 在三引号之间的所有内容被注释 在Pycharm或者Jupy
  • matlab 安装mingw64

    1 下载mingw64 MinGW w64 for 32 and 64 bit Windows download SourceForge net 解压到没有空格的路径 好像必须在c盘 否则可以出现 错误使用 configuremingw 无
  • List元素为类对象,按照类对象属性去重的解决办法

    很多小伙伴在开发中会遇到一个场景 就是List集合中存储的是类对象 我们想要根据类对象属性去重 这种场景该如何做呢 解决办法 大家都知道对象的equals默认是按照对象的应用地址去进行比较的 所以想要对象去重 关键就在于重写equals方法
  • 三极管驱动继电器详解

    http www 21ic com jichuzhishi analog basic 2015 08 24 638790 html
  • 基于STM32的多功能心电信号监测系统设计

    1 系统总体方案设计 系统由STM32F103微处理器模块 ADS1292R心电采集模块 LMT70体表温度传感器模块 ESP8266无线WiFi模块 MMA955L加速度计模块 系统电源 PC服务端等组成 STM32F103作为主控制器实
  • 2.4 Verilog HDL语句

    语句 1 赋值语句 结构说明语句 阻塞与非阻塞 1 1 赋值语句 1 1 1 连续赋值语句assign 1 1 2 过程赋值语局 和 lt 1 2 结构说明语句 1 2 1 结构说明语句always 1 2 2 结构说明语句initial