您现在的位置是:首页 > 正文

Verilog 语法task和function不可以使用initial和always

2024-02-29 14:16:53阅读 17

记录一下

如题,Verilog 语法task和function不可以使用initial和always

详细可参考:链接

do文件内是可以调用别的do文件的,如下图
在这里插入图片描述

---- 过程赋值 连续赋值
assign 无assign(过程性连续赋值除外) 有assign
符号 使用 “=” 或 “<=” 只使用“=”
位置 在always语句或initial语句中均可出现 不可出现于always语句和initial语句
执行条件 与周围其他语句有关 等号右端操作数的值发生变化时
用途 驱动寄存器 驱动线网

连续赋值:
1)语法上,有关键词“assign”来标识;
2)左侧被赋值的数据类型必须是线网型数据(wire);
3)连续赋值语句不能出现在过程快中(initial/always);
4)连续赋值语句主要用来对组合逻辑进行建模以及线网数据间进行描述;
5)连续赋值语句产生作用后,赋值表达式中信号的任何变化都将立即被反映到赋值线网型数据的取值上;
过程赋值:
1)语法上,没有关键词“assign”;
2)左侧被赋值的数据类型必须是寄存器类型的变量(reg);
3)过程性连续赋值语句只能出现在过程块中;
4)过程性连续赋值语句主要用来对时序逻辑电路进行行为描述;
5)在过程赋值语句的情况下,只有在过程赋值语句被执行时才执行赋值操作,语句执行完后被赋值变量的取值不再受到赋值表达式的影响;
过程性连续赋值语句:
在verilog HDL中,有两组过程性连续赋值语句可以实现连续赋值:assign-deassign,只能用于对寄存器型变量的连续赋值操作,而不能用来对线网型数据进行连续赋值操作;force-release,它不仅能对寄存器型变量产生作用,也对线网型数据产生作用。force语句的优先级高于assign 。
deassign 撤销对某一个寄存器型变量的连续赋值后,该寄存器变量仍然保持deassign操作之前的取值。
过程性连续赋值语句比普通的过程赋值语句有更高的优先级。
举例:异步清零的D触发器;

module dff_asyn_clear(
	input 		clk	,
	input		clr	,
	input		d	,
	output reg	q
);
always@(clr)begin 		//用于实现异步清零的always块,强制清零,过程性连续赋值语句的优先级高于过程赋值语句
	if(!clr)
		assign q =0 ;
	else
		deassign q;
end

always@(posedge clk)begin //用于实现D触发器正常工作的always块
	q = d;
end

endmodule

网站文章

  • 如何结合原厂MCU和开发环境与业内领先软件工具来加速关键任务型应用开发?...

    如何结合原厂MCU和开发环境与业内领先软件工具来加速关键任务型应用开发?...

    随着市场需求和汽车行业不断推进电动化、网联化、智能化和共享化等“新四化”,工程师将会面对越来越多的软件开发项目,去用高性能的、获得车规级和功能安全认证的MCU开发相关应用。将MCU供应商匹配提供的MCU开发环境,与业内领先的开发工具相结合,将会给开发人员带来开发效率和成果性能的大幅提升。本文以在汽车行业被广泛使用的S32K系列32位Arm Cortex汽车MCU为例,来介...

    2024-02-29 14:14:26
  • 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法

    在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法

    前言鉴于好多朋友说没有mac电脑,windows开发其实也差不了多远,只是个人习惯问题,而且吧,windows的电脑其实配环境也挺快的其实,我在这里再稍微补一个比较简单的windows环境部署,希望可...

    2024-02-29 14:14:18
  • 获取本地视频流

    思想: 获取本地视频流 1、navigator 提供视频流注册的一些活动 2、mediaDevices:提供访问连接媒体输入的设备(相机、麦克风、视频。。。) 3、getUserMedia 得到用户的设备,使用户开启设备权限 constraints 流的触发的参数,得到用户许可的参数 4、得到用户的视频流(媒体流)输出到video html代码 js代码

    2024-02-29 14:14:09
  • Linux系统中查看CPU信息的方法有哪些?

    这些是在Linux系统中查看CPU信息的常见方法。根据您的需求和具体环境,您可以选择适合您的方法来查看CPU信息。在Linux系统中,您可以使用多种方法来查看CPU信息。

    2024-02-29 14:10:25
  • 【.Net】.net获取exchange service用户日历会议数据或邮箱数据

    近期.net项目中,客户要求在定制化页面中展示指定用户的exchange日历会议数据以及邮箱内容数据,下面将详细来说一下实现过程

    2024-02-29 14:10:13
  • 用ini文件远程连接mysql

    最近改写个东西,又重新写了写MySql的连接。为了便于灵活应用,用读取ini文件的方式读取mysql连接参数。顺便学习了下ini文件。ini格式。ini文件由很多节组成。[NETWORK]//节host=*.*.*.*//host:键、IP:值user=rootpwd=//不写即为空读取:GetPrivateProfileString("NETWORK","host"...

    2024-02-29 14:10:06
  • ESP8266-12F 介绍与使用之程序烧录

    ESP8266-12F 介绍与使用之程序烧录

    ESP8266-12F 程序烧录 ESP8266 一.简介 前一段时间一直用ESP8266-12F开发板来学习开发,但是最近想做一些小的智能产品,像智能时钟以及温湿度检测等等,如果用一个完整的模块感觉...

    2024-02-29 14:08:25
  • Netty Codec框架

    Netty Codec框架

    什么是 Codec编写一个网络应用程序需要实现某种 codec (编解码器),codec的作用就是将原始字节数据与目标程序数据格式进行互转。网络中都是以字节码的数据形式来传输数据的,codec 由两部...

    2024-02-29 14:08:17
  • 对称块加密算法加密模式

    在现有的对称加密算法中,主要有4种加密处理模式,这4种加密处理模式一般是针对块加密算法而言的,如DES算法。这4种加密模式罗列如下: 模式中文描述 英文名称(Openssl缩写) 电子密码本模式 Electronic Code Book(ECB) 加密块链模式 Cipher Block Chaining(CBC) 加密反馈...

    2024-02-29 14:08:12
  • python:标准类型层级结构

    python:标准类型层级结构

    python:标准类型层级结构

    2024-02-29 14:08:05