当前位置: 首页 > news >正文

SystemVerilog Constants、Processes

SystemVerilog提供了三种类型的精化时间常数:

•参数:与最初的Verilog标准相同,可以以相同的方式使用。

•localparameter:与参数类似,但不能被上层覆盖模块。

•specparam:用于指定延迟和定时值;因此,该值不是

在Vivado合成中得到支持。

还有一个名为const的运行时常量声明。

类型运算符

类型运算符允许将参数指定为数据类型,这允许模块具有

不同实例的不同类型的参数。

铸造

在SystemVerilog中,将一种数据类型的值分配给不同的数据类型是非法的。

但是,解决方法是使用强制转换运算符(')。强制转换运算符转换数据类型

在不同类型之间分配时。用法是:

casting_type'(表达式)

casting_type是以下类型之一:

•整数类型

•non_integer_type

•real_type

•无符号常量

•用户创建的签名值类型

聚合数据类型

在聚合数据类型中,存在结构和并集,如下所述小节。

结构

结构是可以作为一个值或单个成员引用的数据集合结构的。这类似于记录的VHDL概念。用于指定的格式

结构为:

struct{struct_member1;struct_mmember2;…struct_mmberx;}struct_name;

工会

并集是可以以不同方式引用的数据的单个部分。的格式指定并集是:

typedef联合打包的{union_mber1;union_mber 2…union_mmberx;}

unions_name;

打包和非打包阵列

Vivado synthesis同时支持打包和非打包阵列:

逻辑[5:0]sig1//压缩阵列逻辑sig2[5:0]//非压缩数组具有预定宽度的数据类型不需要声明的压缩维度:

整数sig3//等效于逻辑符号[31:0]sig3

Processes
Always Procedures
There are four always procedures:
• always
• always_comb
• always_latch
• always_ff
The procedure always_comb describes combinational logic. A sensitivity list is inferred by the
logic driving the always_comb statement.
For always you must provide the sensitivity list. The following examples use a sensitivity list of
in1 and in2 :
always@(in1 or in2)
out1 = in1 & in2;
always_comb out1 = in1 & in2;
The procedure always_latch provides a quick way to create a latch. Like always_comb , a
sensitivity list is inferred, but you must specify a control signal for the latch enable, as in the
following example:
always_latch
if(gate_en) q <= d;
The procedure always_ff is a way to create Flip-Flops. Again, you must specify a sensitivity
list:
always_ff@(posedge clk)
out1 <= in1;

阻止语句

块语句提供了一种将语句集分组在一起的机制。顺序块在陈述的前后各有一个开头和结尾。块可以声明自己的变量,以及变量是特定于该块的。顺序块也可以具有与关联的名称那个街区。格式如下:

begin [: block name]
[declarations]
[statements]
end [: block name]
begin : my_block logic temp;
temp = in1 & in2; out1 = temp;
end : my_block

在前面的示例中,块名称也在结束语句之后指定。这使得代码可读性更强,但不是必需的。

注意:Vivado合成中不支持并行块(或分叉连接块)。

程序时间控制

SystemVerilog有两种类型的定时控制:

•延迟控制:指定语句执行之间的时间量。这不是对合成有用,Vivado合成在创建逻辑的同时忽略了时间语句任务。

•事件控制:使分配与特定事件一起发生;例如

总是@(posedge clk)。这是Verilog的标准配置,但SystemVerilog包含额外的功能。

逻辑或运算符是一种提供任意数量的事件的能力,因此任何事件都会触发声明的执行。要执行此操作,请使用特定的或,或在中用逗号分隔敏感度列表。例如,以下两个语句是相同的:

always@(a or b or c)
always@(a,b,c)

SystemVerilog还支持隐式事件表达式@*。这有助于消除由于灵敏度列表不正确而导致的模拟不匹配。

例如

Logic always@* begin

有关模拟的Verilog格式,请参阅Vivado设计套件用户指南:逻辑模拟(UG900)。

操作员

Vivado合成支持以下SystemVerilog运算符:

• Assignment operators ( =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, <<<=,
>>>= )
• Unary operators ( +, -, !, ~, &, ~&, |, ~|, ^, ~^, ^~ )
• Increment/decrement operators (++, -- )
• Binary operators ( +, -, *, /, %, ==, ~=, ===, ~==, &&, ||, **, <, <=, >,
>=, &, |, ^, ^~, ~^, >>, <<, >>>, <<< )
Note : A**B is supported if A is a power of 2 or B is a constant.
• Conditional operator ( ? : )
• Concatenation operator ( {...} )

签名表达式

Vivado合成同时支持有符号和无符号运算。信号可以声明为

未签名或已签名。例如

logic [5:0] reg1;
logic signed [5:0] reg2;

相关文章:

SystemVerilog Constants、Processes

SystemVerilog提供了三种类型的精化时间常数&#xff1a; •参数&#xff1a;与最初的Verilog标准相同&#xff0c;可以以相同的方式使用。 •localparameter&#xff1a;与参数类似&#xff0c;但不能被上层覆盖模块。 •specparam&#xff1a;用于指定延迟和定时值&#x…...

交易平台开发:构建安全/高效/用户友好的在线交易生态圈

在数字化浪潮的推动下&#xff0c;农产品现货大宗商品撮合交易平台已成为连接全球买家与卖家的核心枢纽。随着电子商务的飞速发展&#xff0c;一个安全、高效、用户友好的交易平台对于促进交易、提升用户体验和增加用户黏性至关重要。本文将深入探讨交易平台开发的关键要素&…...

Linux系统之部署复古游戏平台

Linux系统之部署复古游戏平台 前言一、项目介绍1.1 项目简介1.2 项目特点1.3 游戏平台介绍二、本次实践介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 安装Docker环境3.2 检查Docker服务状态3.3 检查Docker版本3.4 检查docker compose 版本四、构建…...

开源计算机视觉库opencv-python详解

开源计算机视觉库opencv-python详解 OpenCV-Python的核心功能&#xff1a;安装OpenCV-Python&#xff1a;使用OpenCV-Python的基本步骤&#xff1a;OpenCV-Python的高级应用&#xff1a;注意事项&#xff1a;OpenCV-Python的高级应用示例&#xff1a;1. 人脸识别2. 目标跟踪3. …...

Vue开发实例(十)Tabs标签页打开、关闭与路由之间的关系

创建标签页 一、创建标签页二、点击菜单展示新标签页1、将标签数据作为全局使用2、菜单点击增加标签页3、处理重复标签4、关闭标签页 三、点击标签页操作问题1&#xff1a;点击标签页选中菜单进行高亮展示问题2&#xff1a;点击标签页路由也要跳转 四、解决bug 先展示最终效果 …...

基于51单片机的智能火灾报警系统

基于51单片机的智能火灾报警系统 摘要&#xff1a; 本文提出了一种基于51单片机的智能火灾报警系统。该系统采用烟雾传感器和温度传感器来检测火灾的发生&#xff0c;并通过单片机进行数据处理和报警控制。此外&#xff0c;该系统还具有无线通信功能&#xff0c;可以实时将火灾…...

【数据结构】堆的TopK问题

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解堆的TopK问题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 前言二. TopK三. 代码 一. 前言 TOP-K问题&#xff1a;即求数据结合中前K个最大的元…...

Vue后台管理系统笔记-01

npm&#xff08;Node Package Manager&#xff09;和 yarn 是两个常用的包管理工具&#xff0c;用于在 Node.js 项目中安装、管理和更新依赖项。它们有以下几个区别&#xff1a; 性能和速度&#xff1a;在包的安装和下载方面&#xff0c;yarn 通常比 npm 更快速。yarn 使用了并…...

飞天使-学以致用-devops知识点3-安装jenkins

文章目录 构建带maven环境的jenkins 镜像安装jenkinsjenkins yaml 文件安装插件jenkins 配置k8s创建用户凭证 构建带maven环境的jenkins 镜像 # 构建带 maven 环境的 jenkins 镜像 docker build -t 192.168.113.122:8858/library/jenkins-maven:jdk-11 .# 登录 harbor docker …...

08、MongoDB -- MongoDB 的 集合关联($lookup 和 DBRef 实现集合关联)

目录 MongoDB 的 集合关联演示前提&#xff1a;登录单机模式的 mongodb 服务器命令登录【test】数据库的 mongodb 客户端命令登录【admin】数据库的 mongodb 客户端命令 SQL 术语 与 Mongodb 的对应关系使用 $lookup 实现集合关联语法格式添加测试数据1、查询出订单数量大于6&a…...

前方高能,又一波Smartbi签约喜报来袭

近期&#xff0c;交通银行、厦门国际银行、中原农业保险、江苏中天科技等多家知名企业签约Smartbi&#xff0c;携手Smartbi实现数据驱动业务新增长。 Smartbi数10年专注于商业智能BI与大数据分析软件与服务&#xff0c;为各行各业提供提供一站式商业智能平台&#xff08;PaaS&a…...

蓝桥杯倒计时 41天 - 二分答案-最大通过数-妮妮的月饼工厂

最大通过数 思路&#xff1a;假设左边能通过 x 关&#xff0c;右边能通过 y 关&#xff0c;x∈[0,n]&#xff0c;通过二分&#xff0c;在前缀和中枚举右边通过的关卡数&#xff0c;保存 xy 的最大值。 #include<bits/stdc.h> using namespace std; typedef long long ll…...

【JavaSE】泛型

系列文章目录 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 学习泛型之前请大家先详细地了解一下&#xff0c;关于Java…...

APS(高级计划与调度系统)难度超高,ERP在它面前就是弟弟。

一、APS定义和功能模块 APS系统是Advanced Planning and Scheduling System&#xff08;高级计划与调度系统&#xff09;的缩写。它是一种计划和调度管理软件系统&#xff0c;旨在帮助企业优化生产计划和资源调度&#xff0c;提高生产效率和响应能力。 APS系统利用先进的算法和…...

ArmV8架构

Armv8/armv9架构入门指南 — Armv8/armv9架构入门指南 v1.0 documentation 上面只是给了一个比较好的参考文档 其他内容待补充...

[论文笔记] Open-sora 2、视频数据集介绍 MSR-VTT

MSR-VTT COVE - Computer Vision Exchange 论文参考:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/06/cvpr16.msr-vtt.tmei_-1.pdf 用于视频理解的大规模视频基准,特别是将视频翻译为文本的新兴任务。这是通过从商业视频搜索引擎收集 257 个热门查询…...

【Windows 常用工具系列 14 -- windows 网络驱动映射】

文章目录 windows 网络驱动映射 windows 网络驱动映射 映射网络驱动器的意思是将局域网中的某个目录映射成本地驱动器号。 在windows上将服务器目录映射到本地盘&#xff1a; 进入到服务器执行下面命令既可以看到对应的 IP地址&#xff1a; 将对应的IP地址填入上图中。 映…...

Java中使用Jsoup实现网页内容爬取与Html内容解析并使用EasyExcel实现导出为Excel文件

场景 Pythont通过request以及BeautifulSoup爬取几千条情话&#xff1a; Pythont通过request以及BeautifulSoup爬取几千条情话_爬取情话-CSDN博客 Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本&#xff1a; Node-RED中使用html节点爬取HTML网页资料之爬…...

闫震海:腾讯音乐空间音频技术的发展和应用 | 演讲嘉宾公布

一、3D 音频 3D 音频分论坛将于3月27日同期举办&#xff01; 3D音频技术不仅能够提供更加真实、沉浸的虚拟世界体验&#xff0c;跨越时空的限制&#xff0c;探索未知的世界。同时&#xff0c;提供更加丰富、立体的情感表达和交流方式&#xff0c;让人类能够更加深入地理解彼此&…...

Java基础 - 6 - 面向对象(二)

Java基础 - 6 - 面向对象&#xff08;一&#xff09;-CSDN博客 二. 面向对象高级 2.1 static static叫做静态&#xff0c;可以修饰成员变量、成员方法 2.1.1 static修饰成员变量 成员变量按照有无static修饰&#xff0c;分为两种&#xff1a;类变量、实例变量&#xff08;对象…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...