一、连续赋值语句

连续赋值语句用于把值赋给线网型变量(不能为寄存器型变量赋值)

连续赋值语句的基本格式如下:

assign  目标变量名 = 驱动表达式;

其中assign是连续赋值命名的关键词。由assign引导的赋值语句的执行方式是,当等号右侧的驱动表达式中的任一信号变量发生变化时,此表达式即被计算一遍,并将获得的数据立即赋给等号左侧的变量名所标示的目标变量。

对于并行语句,无论有多少行语句,都是同时执行的,与语句的前后次序无关。以关键词assign引导的赋值语句实际上属于并行赋值语句,即在模块module_endmodule中所有的由assign引导的语句都是并行运行的。

例如:
module   F A _ D f (A, B, Cin, Sum, Cout ) ;
input    A, B, Cin;
output   Sum, Cout ;
assign   Sum = A ^B ^Cin;
assign   Cout = (A & Cin) | (B & Cin) | (A & B) ;
endmodule

在本例中,有两个连续赋值语句。这些赋值语句是并发的,与其书写的顺序无关。

二、过程赋值语句

用于对reg型变量赋值,有两种方式:阻塞式赋值,非阻塞式赋值。

1、阻塞式赋值

Verilog中,用“=”作为阻塞赋值语句的赋值符号,如y=b。

阻塞式赋值的特点是,一旦执行完当前的赋值语句,赋值目标变量y即刻获得来自等号右侧表达式的计算值。

2、非阻塞式赋值

Verilog中,用“<=”作为非阻塞赋值语句的赋值符号,如y<=b。

非阻塞式赋值的特点是,必须在块语句执行结束时,才整体完成赋值操作。

3、阻塞赋值和非阻塞式赋值主要区别

非阻塞(non-blocking)赋值方式 ( b<= a):
b的值被赋成新值a的操作, 并不是立刻完成的,而是在块结束时才完成;
块内的多条赋值语句在块结束时同时赋值;
硬件有对应的电路。

阻塞(blocking)赋值方式 ( b = a):
b的值立刻被赋成新值a;
完成该赋值语句后才能执行下一句的操作;
硬件没有对应的电路,因而综合结果未知。

EDA技术实用教程 | 复习三 | 不同类型的赋值语句相关推荐

  1. 微机计算机硬件技术实用教程知识点,微机接口技术实用教程1.ppt

    微机接口技术实用教程1 微机接口技术实用教程 第1章 微型计算机接口技术基础 第1章 微型计算机接口技术基础 1.1 接口技术概述 输入/输出(Input/Output,I/O)是计算机与外部世界交换 ...

  2. 在系统可编程器件一般使用计算机,eda技术与vhdl复习练习题.docx

    EDA技术与VHDL复习练习题 探<习题一 > 一.填空题 TOC \o "1-5" \h \z 1. PLD的中文含义是:. 2. ASIC的中文含义是: . 3.& ...

  3. JSP实用教程-第三章Tag文件与Tag标记

    目录 3.1 Tag文件 3.1.1Tag文件的结构 3.1.2Tag文件的保存 3.2 Tag标记 3.2.1 Tag文件和Tag标记 3.2.2 Tag标记的使用 3.2.3 Tag标记的运行原理 ...

  4. 数字逻辑与EDA技术期末考试复习重点

    数电重点 一.数制和码制 (1)常见数制,二进制和十进制的转换 (2)反码补码运算 (3)计算机以补码的方式存储(算原码),后面的常见编码了解一下 二.逻辑代数 (1)与或非.异或.同或器件真值表(怎 ...

  5. GeniE 实用教程(三)属性

    目 录 一.前言 二.材料属性 三.截面属性 3.1 梁横截面 3.2 板壳厚度 3.3 截面赋予 四.截面偏置 4.1 梁偏置 4.2 板壳偏置 五.局部轴方向 5.1 梁的局部轴 5.2 板壳的法 ...

  6. 基于c语言的ug二次开发,(完整)3_UG二次开发实用教程第三章(16页)-原创力文档...

    第 3 章 编程基础 3.1 UG/Open API 函数 3.1.1 函数名称的约定 UG/OpenAPI 共有两类名称约定.一个是标准的 UG/OpenAPI 的函数 名称约定:另一个是以前版本原 ...

  7. JAVA程序设计实用教程 第三章 习题3(2)

    3-15  什么是继承?继承机制的作用是什么?子类继承了父类的什么?子类不需要父类的成员时怎么办?能够删除他们吗?java语言允许一个类有多个父类吗?p83 继承是面向对象的核心特性,是实现抽象与共享 ...

  8. HydroD 实用教程(三)环境数据

    目 录 一.前言 二.Location 三.Wind Profile 四.Directions 五.Water 5.1 Wave Spectrums 5.2 Current Profile 5.3 F ...

  9. EDA技术使用教程实验

    转载于:https://www.cnblogs.com/bgd140206128/p/6537203.html

  10. 微机接口技术实用教程(第2版)-任向民,王克朝,宗明魁-课后答案

    详细 https://www.docin.com/p-1167893744.html

最新文章

  1. css规则_CSS规则,将使您的生活更轻松
  2. java批量事物管理_[疯狂Java]JDBC:事务管理、中间点、批量更新
  3. JavaScript编程知识
  4. 中国移动携手腾讯开展5G联合创新
  5. [leetcode]83.删除排序链表中的重复元素
  6. Service Fabric下删除实例并注销应用
  7. python自动化安装软件_python自动化安装源码软件包
  8. 默纳克系统服务器怎么看抱闸,默纳克抱闸制动力检测怎么关闭
  9. Python+OpenCV:傅里叶变换(Fourier Transform)
  10. 快应用开发教程【01】--环境与调试
  11. 如何将exe文件在linux下执行,[操作系统]如何在linux centos 环境下运行.exe文件
  12. 如何导出mysql数据库
  13. NVIDIA Riva中文手册 (五) —— Riva TTS语音合成API的使用
  14. 路由器、交换机、集线器的区别
  15. Cocoa设计模式(iOS常用设计模式) Cocoa Design Patterns
  16. 穿山甲android对接错误码40029,头条 穿山甲广告 错误码列表
  17. 项目二 管理与维护Linux系统
  18. 桐梓县春晖行动志愿者协会开展同心抗疫志愿服务保障工作
  19. monkeyrunner自动化测试工具--脚本实例
  20. linuxcnc 安装详细教程

热门文章

  1. c#退出应用程序办法
  2. java项目实战 学生信息管理系统(UI界面+连接数据库)
  3. 程序流程图生成器 程序源代码生成/转换成流程图 函数调用关系图
  4. PHP代码审计基础知识
  5. Linux下7款最佳的开源视频播放器
  6. SqlServer2005安装详解
  7. 广东省深圳市谷歌卫星地图下载
  8. 张口就来!国家java认证考试报名入口
  9. android html转ubb,将 html 转成 ubb代码的小脚本
  10. 【读书笔记《Android游戏编程之从零开始》】3.Android 游戏开发常用的系统控件(Button、Layout、ImageButton)