Behavioral Verilog

news2025/2/22 16:47:25

行为Verilog

Vivado synthesis支持行为Verilog硬件描述语言(VHDL),除了如另外指出的。

行为Verilog中的变量

•行为Verilog中的变量声明为整数。

•这些声明仅用于测试代码。Verilog提供诸如reg和用于实际硬件描述的导线。

•reg和wire之间的差异取决于变量是否在过程块(reg)或在连续分配(wire)中。

○ reg和wire的默认宽度都是一位(标量)。

○ 要为声明的reg或导线指定N位宽度(矢量),请使用左右位位置用冒号分隔的方括号定义。

○ 在Verilog-2001中,reg和wire数据类型可以是有符号的,也可以是无符号的。

变量声明示例

reg [3:0] arb_priority;
wire [31:0] arb_request;
wire signed [8:0] arb_signed;

初始值

在Verilog-2001中声明寄存器时对其进行初始化。

•初始值:

○ 是一个常数。

○ 不能依赖于早期的初始值。

○ 不能是函数或任务调用。

○ 可以是传播到寄存器的参数值。

○ 指定矢量的所有位。

•当您在声明中将寄存器指定为初始值时,Vivado synthesis会设置此值在全局复位或通电时在寄存器的输出上。

•当以这种方式分配值时:

○ 该值在Verilog文件中作为寄存器上的INIT属性携带。

○ 该值与任何本地重置无关。

将初始值分配给寄存器

将设置/重置(初始)值分配给寄存器。

•当寄存器复位线变为适当值时,将值分配给寄存器。看见下面的编码示例。

•将初始值分配给变量时:

○ 该值被实现为触发器,其输出由本地重置控制。

Initial Values Example One
reg arb_onebit = 1'b0;
reg [3:0] arb_priority = 4'b1011;
Initial Values Example Two
always @(posedge clk) begin
if (rst)
arb_onebit <= 1'b0;
end

Reg和Wire的阵列

Verilog允许reg和wire的阵列。

数组示例一

这个编码示例描述了一个由32个元素组成的数组。每个元素都有4位宽。

reg[3:0]mem_array[31:0];

阵列示例二

该编码示例描述了64个8位宽元素的阵列。这些元素可以是仅在结构Verilog代码中分配。

wire[7:0]mem_array[63:0];

多维阵列

Vivado合成支持最多二维的多维数组类型。

•多维阵列可以是:

○ 任何网络

○ 任何变量数据类型

•使用数组进行代码分配和算术运算。

•一次不能选择数组中的多个元素。

•不能将多维数组传递给:

○ 系统任务或功能

○ 常规任务或功能

多维阵列示例一

此编码示例描述了一个256 x 16线元素的阵列,每个元素8位。这些元素只能在结构Verilog代码中分配。

wire [7:0] array2 [0:255][0:15];

多维阵列示例二

此编码示例描述了256 x 8个寄存器元件的阵列,每个寄存器元件64位宽。这些

元素可以在行为Verilog代码中分配。

reg[63:0]regarray2[255:0][7:0];

数据类型

位数据类型的Verilog表示包含以下值:

•0=逻辑零

•1=逻辑一

•x=未知逻辑值

•z=高阻抗

支持的数据类型

•净

○ 金属丝

○ 魔杖

○ wor

•寄存器

○ 规则

○ 整数

•常数

○ 参数

○ 多维阵列(存储器)

网络和寄存器

Net和Registers可以是:

•单比特(标量)

•多位(矢量)

行为数据类型示例

此编码示例显示了在的声明部分中找到的示例Verilog数据类型Verilog模块。

wire net1; // single bit net
reg r1; // single bit register
tri [7:0] bus1; // 8 bit tristate bus
reg [15:0] bus1; // 15 bit register
reg [7:0] mem[0:127]; // 8x128 memory register
parameter state1 = 3'b001; // 3 bit constant
parameter component = "TMS380C16"; // string

法律声明

Vivado synthesis支持行为Verilog法律声明。

•以下陈述(变量和信号分配)是合法的:

○ variable=表达式

○ if(条件)语句

○ else语句

○ case(表达式),例如:

expression: statement
...
default: statement
endcase

○ for(variable=表达式;条件;variable=变量+表达式)语句

○ while(condition)语句

○ 永久声明

○ 功能和任务

•所有变量都声明为integer或reg。

•变量不能声明为连线。

表达

行为Verilog表达式包括:

•常数

•具有以下运算符的变量:

○ 算术

○ 必然的

-逐位

必然的

○ 关系的

○ 有条件的

逻辑运算符

逻辑运算符所属的类别(按位还是按逻辑)取决于它是否应用于涉及几个比特或单个比特的表达式。

支持的运算符

计算表达式

下表中的(==)和(!==)运算符为:

•特殊的比较运算符。

•用于模拟,查看变量是否分配了值(x)或(z)。

•通过合成处理为(==)或(!=)。

有关Verilog的更多信息,请参阅Vivado Design Suite用户指南:逻辑仿真(UG900)Vivado模拟的格式。

基于最常用运算符的求值表达式

阻碍

Vivado合成支持一些块语句,如下所示:

•块语句将语句分组在一起。它们由开始和结束关键字指定。块语句按照块中列出的顺序执行语句。

•Vivado合成仅支持顺序块。

•Vivado合成不支持并行块。

•所有过程语句都出现在模块内部定义的块中。

•两种程序块是初始块和始终块

•Verilog在每个块中使用开始和结束关键字来封装语句。因为初始块在合成过程中被忽略,总是只描述块。

•总是块通常采用以下格式。每一句话都是一项程序性任务以分号结尾的行。

always
begin
statement
.... end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1489007.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为od机试C卷-最长表达式求值

1 题目描述 提取字符串中的最长合法简单数学表达式子串&#xff0c;字符串长度最长的&#xff0c;并计算表达式的值&#xff0c;如果没有返回0。简单数学表达式只能包含以下内容0-9 数字&#xff0c;符号* 说明: 1.所有数字&#xff0c;计算结果都不超过 long 2.如果有多个长…

mysql学习笔记5——对表的修改操作

对表的列进行操作 对表可以进行创建create与删除drop&#xff0c;同时可以对表进行修改alter 修改字段 添加字段 删除具体的某一列 添加列时可以指定添加位置 对表的数据进行操作 select查询操作可以指定查询条件 删除具体数据&#xff08;而非删除表中某一列某一行&#xf…

简单聊聊http协议头参数之Content-Type和http状态码 415错误

大家好&#xff0c;我是G探险者。 今天聊一下http的状态码&#xff0c;415错误&#xff0c;因为项目里面使用了httpclient进行了远程服务调用&#xff0c;调用发送时&#xff0c;会有一个http header的参数设置。由于参数设置的问题经常会出现错误&#xff0c;导致调用失败&am…

Linux的进程的概念

目录 1.冯诺依曼体系结构&#xff08;硬件&#xff09; 2.操作系统(软件) 2.1概念 2.2设计os(操作系统)的目的 2.3如何理解管理 2.4系统调用和库函数概念 3.进程 3.1基本概念 3.2描述进程-PCB和组织进程 3.3ps axj指令 3.4查看进程 3.5通过系统调用获取进程表示符(P…

一篇了解电阻的使用

目录 一、电阻理论基础 1.电阻的定义 2.欧姆定律 3.电阻决定式 4.电阻的串并联​编辑 5.电阻的功率 6.温度对电阻的影响 二、电阻的选型 1.安装方式 2.电阻值 &#xff08;1&#xff09;电阻值的标称 &#xff08;2&#xff09;电阻值的确定 &#xff08;3&#x…

管家婆订货易在线商城 VshopProcess 任意文件上传漏洞复现

0x01 产品简介 管家婆订货易,帮助传统企业构建专属的订货平台,PC+微信+APP+小程序+h5商城5网合一,无缝对接线下的管家婆ERP系统,让用户订货更高效。支持业务员代客下单,支持多级推客分销,以客带客,拓展渠道。让企业的生意更轻松。 0x02 漏洞概述 管家婆订货易在线商城…

Fastwhisper + Pyannote 实现 ASR + 说话者识别

文章目录 前言一、faster-whisper简单介绍二、pyannote.audio介绍三、faster-whisper pyannote.audio 实现语者识别四、多说几句 前言 最近在研究ASR相关的业务&#xff0c;也是调研了不少模型&#xff0c;踩了不少坑&#xff0c;ASR这块&#xff0c;目前中文普通话效果最好的…

Java多态性的作用及解析

多态性是 Java 面向对象编程的一个重要特性,它的主要作用包括以下几个方面: 提高代码的可扩展性:多态性使得我们可以在不修改现有代码的情况下,通过继承和重写方法来添加新的行为。这意味着我们可以在不影响现有功能的前提下,对代码进行扩展和修改。 增强代码的可读性:使…

基础真空技术外国文献Fundamentals of Vacuum Technology

基础真空技术外国文献Fundamentals of Vacuum Technology

Maven构建MapReduce程序上传至虚拟机运行找不到jdbc.Driver

问题前置&#xff1a; Maven构建MapReduce程序&#xff0c; pom中已经写入jdbc驱动&#xff0c; 上传至虚拟机运行扔找不到jdbc.Driver, 具体报错&#xff1a;java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 第一步&#xff1a;确认pom…

2024022701-信息安全(二)——密码学

密码学的基本概念 密码学(Cryptology)&#xff1a; 研究信息系统安全保密的科学。 密码编码学(Cryptography)&#xff1a; 研究对信息进行编码,实现对信息的隐蔽。 密码分析学(Cryptanalytics) &#xff1a; 研究加密消息的破译或消息的伪造。 消息被称为明文(Plaintext)。 用…

LeetCode第125场双周赛个人题解

目录 100231. 超过阈值的最少操作数 I 原题链接 思路分析 AC代码 100232. 超过阈值的最少操作数 II 原题链接 思路分析 AC代码 100226. 在带权树网络中统计可连接服务器对数目 原题链接 思路分析 AC代码 100210. 最大节点价值之和 原题链接 思路分析 AC代码 10023…

【动态规划】第十一届蓝桥杯省赛第二场C++ C组《数字三角形》(c++)

1.题目描述 上图给出了一个数字三角形。 从三角形的顶部到底部有很多条不同的路径。 对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。 …

kafka启动命令、查看topic命令、查看消息内容命令

kafka启动命令 cd /opt/kafka/kafka_2.12-3.5.1/bin ./kafka-server-start.sh ../config/server.properties Windows环境下用kafka Tool 连不上虚拟机的broker报了unable to connect broker 0&#xff0c; 但是zookeeper可以连接上 server.properties的listeners改为listene…

Oracle定时任务和存储过程

--1.声明定时任务 DECLAREjob NUMBER; BIGIN dbms_job.sumit(job, --任务ID,系统定义的test_prcedure(19)&#xff0c;--调用存储过程&#xff1f;to_date(20240305 02:00&#xff0c;yyyymmdd hh24:mi) --任务开始时间sysdate1/(24*60) --任务执行周期 [每分钟执行…

1818294-46-0,马来酰亚胺-PEG8-羧酸,能够在各种酸碱条件下保持稳定的性能

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;1818294-46-0&#xff0c;马来酰亚胺-PEG8-羧酸&#xff0c;Mal PEG8 COOH&#xff0c;Maleimide PEG8 acid 一、基本信息 【产品简介】&#xff1a;Maleimide PEG8 acid is an excellent water-soluble compound t…

【玩转数据库mysql】最全mysql数据库安装使用教程,史上最详细保姆式喂饭教程(图文结合)

安装运行mysql目录 涉及知识写在前面演示效果一、mysql是否安装检测1.1 cmd命令行1.2 查看服务进程 二、下载mysql2.1 点击下载2.2 跳过登陆直接下载 三、解压配置并安装3.1 解压安装包3.2创建my.ini3.3 编辑my.ini,3.4 在bin目录输入cmd回车3.5初始化mysql&#xff08;找密码&…

大数据权限认证 Kerberos 部署

文章目录 1、什么是 Kerberos2、Kerberos 术语和原理2.1、Kerberos 术语2.1、Kerberos 原理 3、Kerberos 服务部署3.1、前置条件3.2、安装依赖3.3、配置 krb5.conf3.4、配置 kdc.conf3.5、配置 kadm5.acl3.6、安装 KDC 数据库3.7、启动服务3.8、创建 Kerberos 管理员3.9、创建普…

分巧克力 刷题笔记

/* 分巧克力 解题思路 二分 直接检查看答案是否符合题目条件 对于一块边长分别为x 和y的巧克力\\ 假设我们输入检查的数为k 其能分割成的 k*k 的巧克力的块数为 (x/k)*(y/k) 因为c里面的除法是下取整的所以我们不用考虑奇偶数 是否能整除 将每一块巧克力能分成的k*k的巧克力…