首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >比较if()条件下的std_logic_vector

比较if()条件下的std_logic_vector
EN

Stack Overflow用户
提问于 2017-04-17 21:24:53
回答 1查看 11.7K关注 0票数 0

我正在尝试将计数值(std_logic_vector)与定义的十六进制值进行比较。但我不会像下面这样得到结果

代码语言:javascript
运行
AI代码解释
复制
signal count : STD_LOGIC_VECTOR(res_bits-1 DOWNTO 0):= x"0000"; --res_bits =16
signal round : STD_LOGIC_VECTOR(res_bits-1 DOWNTO 0):= x"0000";
signal cnt : STD_LOGIC_VECTOR(res_bits-1 DOWNTO 0):= x"0000"; --res_bits =16
    process(clk_50)
begin
    if (falling_edge(clk_50)) then
        t(1)<=t(0); 
        t(0)<=A;
        t(3)<=t(2); 
        t(2)<=B;
        case (temp) is
            when "0001" => cnt<= cnt + '1';
            when "0010" => cnt<= cnt - '1';
            when "1000" => cnt<= cnt + '1';     
            when "1011" => cnt<= cnt - '1';

        end case;
        count <= cnt;
        if (count = x"0320") then --if count 800
            round <= round + '1';
            cnt <= x"0000";   -- reset cnt
            count <= x"0000";   -- reset count
        end if;
    end if;
end process;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 09:14:10

首先要做的是:你认为std_logic_vector是什么?std_logic_vector是一个std_logic数组。std_logic是一个已经被解析的std_ulogicstd_ulogic是一种定义数字电路中电气线路的状态的类型。但更重要的是:std_logic[_vector]类型,而不是整数类型。

如果要使用+-运算符进行算术运算,则应使用算术类型。在numeric_std中定义的signedunsigned最适合于此。所以不要使用use ieee.std_logic_arith.all(非标准),而要使用use ieee.numeric_std.all (在标准中定义)。

下一步,一些信息和复位信号.如果您决定设置res_bits = 17,该怎么办?然后

代码语言:javascript
运行
AI代码解释
复制
signal count : STD_LOGIC_VECTOR(res_bits-1 DOWNTO 0):= x"0000";

不会起作用。因此,为了获得最大的灵活性,请使用others将所有位设置为“0”。也就是说。

代码语言:javascript
运行
AI代码解释
复制
signal count : UNSIGNED(res_bits-1 DOWNTO 0) := (others => '0');

现在让我们看看这个过程..。嗯。temp有很多任务...但是你从来没有定义过temp。在这一点上帮不了你。

然后看看case语句。case (temp) is...。我看到的是1,2,4,7,8,等等...但是当temp为0时会发生什么呢?您需要为所有可能性定义一个when。但是如果你不想为这些案例做任何事情呢?就做null吧!例如。

代码语言:javascript
运行
AI代码解释
复制
case (temp) is
    when "0001" => cnt<= cnt + '1';
    [...]
    when "1110" => cnt<= cnt + '1';
    when others => null; -- <== required
end case;

case-statements的另一件事。将情况与管道符号组合。

代码语言:javascript
运行
AI代码解释
复制
case (temp) is
    when "0001" | "0111" | "1000" | "1110" => cnt <= cnt + '1';
    when "0010" | "0100" | "1011" | "1101" => cnt <= cnt - '1';
    when others => null;
end case;

然后是信号分配。应用于信号的值直到下一个增量周期才会被应用。但是直到这个过程完成之后,这个增量循环才会发生。例如:

  • 进程启动时,想象cnt=799=x"031F“和temp="0001”。
  • case语句中,选择cnt <= cnt + 1。这个操作被安排在下一个增量周期,坚果cnt现在将保持799。
  • 所以,在count <= cnt;,799将被安排分配给count,而不是800!但由于此操作也是计划的,count目前仍将具有其旧值(可能为798 )。
  • 这意味着在if (count =中,count仍将被视为798。由于推断出额外的寄存器,count还需要两个时钟周期才能达到800。

您可能应该在流程中为临时值使用变量。但是要注意你在做什么:变量在进程结束时失去了它们的值,并且永远不应该在进程之外使用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43459885

复制
相关文章
【幅频均衡带通滤波器】基于FPGA的幅频均衡带通滤波器的设计[通俗易懂]
带通滤波器在数字幅频均衡功率放大器中一个重要的组成部分,在介绍带通滤波器之前,我们首先来详细介绍一下数字幅频均衡功率放大器。
全栈程序员站长
2022/10/02
3930
【幅频均衡带通滤波器】基于FPGA的幅频均衡带通滤波器的设计[通俗易懂]
MYSQL索引条件下推的简单测试
自MySQL 5.6开始,在索引方面有了一些改进,比如索引条件下推(Index condition pushdown,ICP),严格来说属于优化器层面的改进。 如果简单来理解,就是优化器会尽可能的把index condition的处理从Server层下推到存储引擎层。举一个例子,有一个表中含有组合索引idx_cols包含(c1,c2,…,cn)n个列,如果在c1上存在范围扫描的where条件,那么剩余的c2,…,cn这n-1个上索引都无法用来提取和过滤数据,而ICP就是把这个事情优化一下。 我们在MySQL
jeanron100
2018/03/21
1.7K0
本地存储条件下的热迁移
每个读者都可能会问这样一个问题,虚拟机用的好好的,为啥要迁移呀?也就是迁移的价值和目的在哪里。在数据中心的日常运维中,常常要处理下面几种场景和需求,了解了这些需求,这个问题也就有了答案。 需求 1:物理机器硬件系统的维护,故障修复和升级(upgrade),但运行在这台物理机器上的虚拟机不能关机,因为用户重要的服务跑在上面。 需求 2:物理机器软件系统升级,打补丁(patch),为了不影响上面跑的虚拟机,在升级和打补丁之前,需要把虚拟机迁移到别的物理机器上。 需求 3:一个物理机器上的负载太重,需要减少一些虚拟机来释放资源。 需求 4:在一个 cluster 里,有的物理机上的虚拟机太多,有的物理机上虚拟机太少,需要做一下资源平衡。
后端云
2018/10/24
2.2K0
本地存储条件下的热迁移
神奇的 SQL 之 ICP → 索引条件下推
  正式讲 ICP 之前了,我们先将相关的概念捋一捋,知道的就当回顾,不知道的就当了解了,这有助于对 ICP 的理解
青石路
2020/03/11
1.5K0
Bellhop 海底地形起伏条件下的传播特性
在所有实例中,我们均采用 Munk 深海声速剖面,界于 0 到 5000m 深度之间,声源频率 50Hz,位于 1000m 深度,声线步距 100m,声线70根,出射角扇面为 -13°~ 13°,海底声速1600m/s,海底密度 1.8g/cm3,海底衰减系数 0.8 dB/λ,海洋环境如下图所示:
Gnep@97
2023/08/10
1.1K0
Bellhop 海底地形起伏条件下的传播特性
MySQL的索引条件下推(index condition pushdown,ICP)
用户表联合索引(name, age)为例,现在需检索表中“名字第一个字是张,且年龄是10的所有男孩”:
JavaEdge
2022/10/28
8860
MySQL的索引条件下推(index condition pushdown,ICP)
项目分享 | 基于可编程逻辑器件的信号检测装置
【摘要】利用可编程逻辑器件 FPGA 芯片代替单片机来控制 A/D 器件对信号的输入进行采样工作的设计方法。整个设计用 VHDL 语言描述,在 ABB PLC 下进行软件编程实现正确的 A/D 器件的工作时序,用 LED 显示出信号频率及峰值。
AI 电堂
2022/04/01
3990
项目分享 | 基于可编程逻辑器件的信号检测装置
golang模板渲染可控的条件下可以做什么?
昨天ByteCTF逼我翻了一天的npm手册,一天速成nodejs,,, 今天美团决赛逼我一天速成golang,真的麻了
h0cksr
2023/05/18
6450
多选择条件下的建索引规则 顶
一般来说,SQL语句where选择条件下有两种情况,1,、等值查询,2、范围查询。
算法之名
2019/08/20
6110
MySQL 索引条件下推 Index Condition Pushdown
MySQL 索引条件下推 Index Condition Pushdown 出现在MySQL5.6及之后的版本中,能大幅提升查询效率,原因如下:
保持热爱奔赴山海
2019/09/17
1.4K3
System Generator从入门到放弃(五)-Black Box调用HDL代码
System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成HDL文件,或者网表,可以在ISE中进行调用。或者直接生成比特流下载文件。能够加快DSP系统的开发进度。
碎碎思
2020/06/29
2.1K0
数学杂谈:限制条件下的均匀分布考察
这个问题其实感觉比上述连续的情况还要简单一些,我们只需要将其视为排列组合问题即可进行解答,即视为分堆问题,将
codename_cys
2022/11/29
7310
数学杂谈:限制条件下的均匀分布考察
基于FPGA的USB接口控制器设计(VHDL)(下)
今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇。今天带来第三篇,下篇,FPGA 固件开发、USB驱动和软件开发。话不多说,上货。
FPGA技术江湖
2020/12/30
1.5K0
SAP MM 分期付款条件下的付款方式
近日收到所在项目上的某用户报告的一个问题,说是某个采购订单发票里的付款方式与财务凭证里的付款方式不一致,让帮忙解释一下。
SAP虾客
2021/01/23
1.2K0
基于 FPGA 的 UART 控制器设计(附代码)
今天给大侠带来基于FPGA的 UART 控制器设计(VHDL)(下),由于篇幅较长,分三篇。今天带来第三篇,下篇,使用 FPGA 实现 UART。话不多说,上货。
FPGA技术江湖
2022/02/16
1.6K0
基于 FPGA 的 UART 控制器设计(附代码)
Presto查询执行过程和索引条件下推分析
《Presto 分布式SQL查询引擎及原理分析》详细介绍了Presto 的数据模型、技术架构,解释了Presto 对于查询分析有着较高性能。任何SQL引擎,执行过程都是比较复杂的。本篇文章来详细分析 Presto SQL的执行过程以及Presto Connector对索引条件下推良好扩展性技术原理。
yuanyi928
2020/05/20
4.4K0
VHDL实现编码器和译码器
版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/89303112
zy010101
2019/05/25
1.1K0
数据的比较
equals()是用来比较两个数据是否相等的,当两数据相等时,返回true;当两数据相异时,返回false.
用户10788736
2023/10/16
1400
Verilog代码转VHDL代码经验总结
你已经习惯某种语言,也发现语言不是学习FPGA时需要考虑的问题,它仅仅是硬件描述语言工具而已。可是,当你发现一份和你使用语言不同的代码作为参考时,你又开始想:
网络交换FPGA
2019/10/29
3.8K0
Verilog代码转VHDL代码经验总结
ASK1在氧化应激条件下的激活 | MedChemExpress
糖尿病不可怕,可怕的地方是并发症。糖尿病肾脏病变是糖尿病最常见也是最严重的并发症之一,糖尿病肾病为糖尿病主要的微血管并发症,主要指糖尿病性肾小球硬化症,一种以血管损害为主的肾小球病变。糖尿病肾病进而发展成尿毒症,是糖尿病主要的死亡原因之一。糖尿病肾病是导致终末期肾衰竭的主要原因,与心血管疾病关系密切,这也是糖尿病的致死率增加的原因之一。
MedChemExpress
2023/02/17
3210
ASK1在氧化应激条件下的激活 | MedChemExpress

相似问题

Vhdl比较std_logic_vector

23

比较std_logic_vector的位数

18

比较长std_logic_vector与零

410

比较std_logic_vector与多个常量

12

仅使用std_logic_vector包将std_logic_vector与常量进行比较

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文