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

VHDL-2008语言支持

VHDL-2008语言支持

介绍

AMD Vivado™合成支持VHDL-2008标准的可合成子集。这个以下部分介绍了支持的子集以及使用它的过程。将Vivado设置为使用VHDL-2008有几种方法可以使用Vivado运行VHDL-2008文件。您可以转到源文件属性窗口,并从可用文件类型的下拉列表中设置类型:VHDL 2008。这个Vivado工具将文件类型设置为VHDL-2008。也可以使用Tcl控制台中的set_property命令将文件设置为VHDL-2008。这个语法如下:

set_property FILE_TYPE {VHDL 2008} [get_files <file>.vhd]

最后,在非项目或Tcl流中,用于在VHDL中读取的命令的VHDL-2008为跟随:

read_vhdl -vhdl2008 <file>.vhd

如果要读入多个文件,可以使用多个read_vhdl命令或使用一个命令创建多个文件,如下所示:

read_vhdl -vhdl2008 {a.vhd b.vhd c.vhd}

支持的VHDL-2008功能

Vivado支持以下VHDL-2008功能。

操作员

匹配关系运算符

VHDL-2008现在提供了返回位或std_logic类型的关系运算符。在上一个VHDL标准,关系运算符(=,<,>=…)返回布尔类型。对于新的类型,需要写成的代码:

if x = y then
out1 <= '1';
else
out1 <= '0';
end if;
Can now be written as:
out1 <= x ?= y;
下表列出了Vivado中支持的关系运算符。

最大和最小运算符

VHDL-2008中新的最大和最小运算符采用两个不同的值和分别返回较大或较小的。例如

out1 <= maximum(const1, const2);

移位运算符(rol、ror、sll、srl、sla和sra)

sla和sra运算符以前只定义了位和布尔元素。现在VHDL-2008标准在有符号库和无符号库中定义了它们。

一元逻辑归约算子

在VHDL的早期版本中,和、nand或等运算符取两个不同的值和返回了一个位或布尔值。对于VHDL-2008,添加了对这些的一元支持操作员。它们返回输入的逻辑函数。例如,代码:

out1 <= and("0101");

将这4个比特加在一起并返回0。具有一元支持的逻辑函数是:and,nand、or、nor、xor和xnor。

混合数组和标量逻辑运算符

以前在VHDL中,逻辑运算符的两个操作数需要具有相同的大小。

VHDL-2008支持在其中一个操作数是数组而另一个是时使用逻辑运算符标量。例如,要将一个比特与向量的所有比特进行“与”运算,需要以下代码:

out1(3) <= in1(3) and in2;
out1(2) <= in1(2) and in2;
out1(1) <= in1(1) and in2;
out1(0) <= in1(0) and in2;
This can now be replaced with the following:
out1<= in1 and in2;

声明

如果其他-如果和案例生成

以前在VHDL中,if generate语句采用以下形式:

if condition generate
--- statements
end generate;
An issue appears if you want to have different conditions; you would need to write multiple
generates and be very careful with the ordering of the generates. VHDL-2008 supports if
else-if generate statements.
if condition generate
---statements
elsif condition2 generate
---statements
else generate
---statements
end generate;
In addition, VHDL-2008 also offers case-generate statements:
case expressions generate
when condition =>
statements
when condition2 =>
statements
end generate;
Sequential Assignments
VHDL-2008 allows sequential signal and variable assignment with conditional signals. For
example, a register with an enable would be written as the following:
process(clk) begin
if clk'event and clk='1' then
if enable then
my_reg <= my_input;
end if;
end if;
end process;
With VHDL-2008, this can now be written as the following:
process(clk) begin
if clk'event and clk='1' then
my_reg <= my_input when enable else my_reg;
end if;
end process;
Using case? Statements
With VHDL-2008, the case statement has a way to deal with explicit don’t care assignments.
When using case? , the tool now evaluates explicit don’t care terms, as in the following
example:
process(clk) begin
if clk'event and clk='1' then
case? my_reg is
when "01--" => out1 <= in1;
when "000-" => out1 <= in2;
when "1111" => out1 <= in3;
when others => out1 <= in4;
end case?;
end if;
end process;
Using select? Statements
Like the case, the select statement now has a way to deal with explicit don’t care
assignments. When using the select? statement, the tool now evaluates explicit don’t care
terms, for example:
process(clk) begin
if clk'event and clk='1' then
with my_reg select?
out1 <= in1 when "11--",
in2 when "000-",
in3 when "1111",
in4 when others;
end if;
end process;

相关文章:

VHDL-2008语言支持

VHDL-2008语言支持 介绍 AMD Vivado™合成支持VHDL-2008标准的可合成子集。这个以下部分介绍了支持的子集以及使用它的过程。将Vivado设置为使用VHDL-2008有几种方法可以使用Vivado运行VHDL-2008文件。您可以转到源文件属性窗口&#xff0c;并从可用文件类型的下拉列表中设置…...

linux系统git的安装和配置

安装和配置 安装gitYum安装Git编译安装 运行 Git 前的配置配置git命令集配置过程 获取帮助 安装git Yum安装Git yum install git -y编译安装 编译安装可以安装较新版本的git Git下载地址&#xff1a; https://github.com/git/git/releases # 安装依赖关系 yum install curl-d…...

oracle11g数据库 冷备份与冷恢复

我们在做备份时&#xff0c;究竟需要备份数据库的哪些文件呢&#xff1f; 其实只需要备份数据文件和控制文件就可以了&#xff0c;其他的参数文件&#xff0c;重做日志文件以及口令文件与数据文件相比都非常小&#xff0c;所以在一般情况下都会一起备份。 冷备份步骤&#xf…...

考研数据结构算法机试训练1

中南大学上机压轴题 测试数据&#xff1a; 3 500 0.6 100 0.8 200 0.7 100 输出 390首先要对输入的折扣进行排序&#xff0c;优先使用比率低的z进行支付。 然后用lowcost记录目前多少钱是打过折的。T-lowcost就是剩余没打折的。 每次循环用上一个人的折扣额度。若所有人折扣额…...

SAP PO接口行项目json缺少中括号[]问题

PO接口小问题问题&#xff1a;如果需要同时传输DATA与ITEM&#xff0c;此处选择很重要&#xff0c;如果选择&#xff1a;HTTP Header ITEM将缺少[].需要注意 PO接口小问题 问题&#xff1a;如果需要同时传输DATA与ITEM&#xff0c;此处选择很重要&#xff0c;如果选择&#…...

STM32_DS18B20_1_芯片简介及初始化配置

DS18B20介绍 DS18B20数字温度计提供9位到12位摄氏度的温度测量&#xff0c;并具有非易失性&#xff0c;用户可编程的上下触发点的报警功能。DS18B20通过1线总线进行通信&#xff0c;根据定义&#xff0c;该总线只需要一条数据线&#xff0c;即可与中央微处理器进行通信…...

每天一个数据分析题(一百六十四)

关于OLAP系统&#xff0c;下列选项不正确的是&#xff08;&#xff09; A. 是基于数据仓库的信息进行分析处理过程 B. 用户数量相对较少&#xff0c;其用户主要是业务决策人员与管理人员 C. 对响应时间要求非常高。 D. 基础数据来源于生产系统的操作数据&#xff0c;也就是…...

单词倒排——c语言解法

以下是题目&#xff1a; 这个题中有三个点&#xff0c; 一个是将非字母的字符转换为空格&#xff0c; 第二是如果有两个连续的空格&#xff0c; 那么就可以将这两个连续的空格变成一个空格。 第三个点就是让单词倒排。 那么我们就可以将这三个点分别封装成三个函数。 还有就是…...

Python + Selenium —— 网页元素定位之class name定位!

class 属性可以为元素应用一个或者多个 CSS 样式类。 利用此属性可以与指定的 CSS 样式类关联起来&#xff0c;以此达到设置元素样式的功能。 可以这样理解&#xff0c;比如一个页面上的所有按钮&#xff0c;都想做成同样的样式&#xff0c;那么是不是要在每个按钮上写同样的 c…...

matlab simulink变压器温度仿真

1、内容简介 略 48-可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 matlab simulink变压器温度仿真_哔哩哔哩_bilibili 4、参考论文 略 大型油浸风冷变压器绕组温度场分析_高原 基于顶层油温的变压器绕组热点温度计算改进模型_陈伟根 基于热电类比理论的油浸式电…...

设计模式七:责任链模式

文章目录 1、责任链模式2、spring中的责任链模式Spring InterceptorServlet FilterNetty 1、责任链模式 责任链模式为请求创建了一个接收者对象的链&#xff0c;在这种模式下&#xff0c;通常每个节点都包含对另一个节点者的引用。每个节点针对请求&#xff0c;处理自己感兴趣…...

Git,GitHub与GitLab分别是什么?有什么关系和区别?

Git 定义&#xff1a;Git 是一个分布式版本控制系统&#xff0c;用于跟踪文件的变化&#xff0c;并协助多人协作开发软件项目。作用&#xff1a;Git 可以在本地存储完整的项目历史记录&#xff0c;并允许开发者在不同的分支上进行独立的开发&#xff0c;最后将它们合并到主干分…...

【Spring连载】使用Spring Data访问 MongoDB----Template API 查询Documents

【Spring连载】使用Spring Data访问 MongoDB----Template API 查询Documents 一、 查询集合中的Documents二 选择字段三、 其他查询选项3.1 Hints3.2 游标批大小Cursor Batch Size3.3 Collations3.4 读取首选项Read Preference3.5 Comments 四、查询Distinct值五、GeoSpatial Q…...

git describe

git describe一般用于查看当前提交距离上次最近的tag是什么&#xff0c;并且还可以知道差了多少个commit&#xff0c;在工程实践当中是个非常好用的命令 如果git describe后面什么都不加的话&#xff0c;默认找的是最近的有注释的tag 如何打有注释的tag打注释&#xff1f; g…...

React Switch用法及手写Switch实现

问&#xff1a;如果注册的路由特别多&#xff0c;找到一个匹配项以后还会一直往下找&#xff0c;我们想让react找到一个匹配项以后不再继续了&#xff0c;怎么处理&#xff1f;答&#xff1a;<Switch>独特之处在于它只绘制子元素中第一个匹配的路由元素。 如果没有<Sw…...

PowerShell执行策略:确保脚本安全执行的关键

PowerShell执行策略&#xff1a;确保脚本安全执行的关键 在自动化和脚本任务管理中&#xff0c;PowerShell 是 Windows 系统管理员和自动化工程师的强大工具。但随着这种强大的能力也带来了安全风险&#xff0c;特别是在执行未经验证的脚本时。为了降低这种风险&#xff0c;Po…...

LeetCode 热题 100 | 图论(上)

目录 1 200. 岛屿数量 2 994. 腐烂的橘子 2.1 智障遍历法 2.2 仿层序遍历法 菜鸟做题&#xff0c;语言是 C 1 200. 岛屿数量 解题思路&#xff1a; 遍历二维数组&#xff0c;寻找 “1”&#xff08;若找到则岛屿数量 1&#xff09;寻找与当前 “1” 直接或间接连接在…...

跟着cherno手搓游戏引擎【25】封装2DRenderer,封装shader传参,自定义Texture

封装2DRenderer&#xff1a; Renderer.h: #include"ytpch.h" #include"Renderer.h" #include <Platform/OpenGL/OpenGLShader.h> #include"Renderer2D.h" namespace YOTO {Renderer::SceneData* Renderer::m_SceneData new Renderer::S…...

多个值时 if [ -z 报错 binary operator expected

if [ ! -z "\$client_pid" ]; then 报错: line 23: [: 662: binary operator expected 改成 if [[ ! -z "\$client_pid" ]]; then 即可。 unix - binary operator expected error when checking if a file with full pathname exists - Stack Overflo…...

如何使用ChatGPT创建一份优质简历

目录 第一步&#xff1a;明确目标和重点 第二步&#xff1a;与ChatGPT建立对话 第三步&#xff1a;整理生成的内容 第四步&#xff1a;注重行文风格 第五步&#xff1a;强调成就和量化结果 第六步&#xff1a;个性化和定制 第七步&#xff1a;反复修改和完善 总结 在现…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...