当前位置: 首页 > 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;反复修改和完善 总结 在现…...

别再手动拖节点了!用DBC文件一键生成CANoe仿真工程(.dbc/.arxml格式详解)

告别低效&#xff1a;用DBC/ARXML文件自动化构建CANoe工程的终极指南 在汽车电子测试领域&#xff0c;时间就是金钱。当资深工程师还在手动拖拽节点、逐个配置信号时&#xff0c;聪明的测试人员早已掌握数据库驱动的自动化工程构建方法。本文将彻底改变你使用CANoe的方式——不…...

如何用Obsidian微信读书插件3步构建个人知识库

如何用Obsidian微信读书插件3步构建个人知识库 【免费下载链接】obsidian-weread-plugin Obsidian Weread Plugin is a plugin to sync Weread(微信读书) hightlights and annotations into your Obsidian Vault. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-were…...

Voron 2.4开源项目:重新定义高速高精度3D打印的模块化解决方案

Voron 2.4开源项目&#xff1a;重新定义高速高精度3D打印的模块化解决方案 【免费下载链接】Voron-2 Voron 2 CoreXY 3D Printer design 项目地址: https://gitcode.com/gh_mirrors/vo/Voron-2 Voron 2.4是一款完全开源的CoreXY架构3D打印机设计&#xff0c;代表着桌面级…...

如何用Driver Store Explorer清理Windows驱动垃圾,轻松释放20GB磁盘空间

如何用Driver Store Explorer清理Windows驱动垃圾&#xff0c;轻松释放20GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Windows系统驱动程序管理一直是普通用户的痛点&…...

避开这些坑!中南大学853信号系统备考指南:从吴大正到奥本海默,真题风格变化全解析

中南大学853信号与系统备考全攻略&#xff1a;从教材变迁到真题实战 备考中南大学电子信息类专业的研究生考试&#xff0c;853信号与系统这门专业课往往是决定成败的关键科目。近年来&#xff0c;这门课程的考查方式和难度发生了显著变化——从早期以吴大正教材为主的套路化命题…...

DoL汉化美化整合包构建指南:5分钟掌握自动化打包技巧

DoL汉化美化整合包构建指南&#xff1a;5分钟掌握自动化打包技巧 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS DoL-Lyra 构建系统是一个专为 Degrees of Lewdity 游戏打造的自动化打包工具&#x…...

当LLM输出准确率突破99.2%,内容运营KPI考核体系必须重写的4个硬性条件(奇点大会技术委员会强制建议稿)

第一章&#xff1a;当LLM输出准确率突破99.2%&#xff0c;内容运营KPI考核体系必须重写的4个硬性条件&#xff08;奇点大会技术委员会强制建议稿&#xff09; 2026奇点智能技术大会(https://ml-summit.org) 当大语言模型在标准行业测试集&#xff08;如ContentQA-2025 v3.1&am…...

L1-058改变句子

#include<stdio.h> #include<string.h>int main() {char s[1000];fgets(s,sizeof(s),stdin);int lenstrlen(s);//注意&#xff0c;要去掉fgets读取的换行符if(len>0&&s[len-1]\n){s[len-1]\0;len--;}int i0,count0;while(i<len){if(s[i]6)//判断有多…...

ViGEmBus:如何让Windows系统完美识别虚拟游戏手柄?

ViGEmBus&#xff1a;如何让Windows系统完美识别虚拟游戏手柄&#xff1f; 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 你是否曾经遇到过这样的困扰&…...

DRM驱动开发避坑指南:为什么你的drmModeAddFB调用失败了?常见参数错误排查

DRM驱动开发避坑指南&#xff1a;为什么你的drmModeAddFB调用失败了&#xff1f;常见参数错误排查 在DRM&#xff08;Direct Rendering Manager&#xff09;驱动开发中&#xff0c;drmModeAddFB和drmModeAddFB2接口是创建帧缓冲区的核心API。然而&#xff0c;许多开发者在初次使…...