gpt4 book ai didi

vhdl - 移动并添加一个 std_logic_vector(有 36 个但必须有 18 个元素)

转载 作者:行者123 更新时间:2023-12-02 08:30:59 25 4
gpt4 key购买 nike

当我尝试这个时,我遇到了一些来自 quartus 的奇怪错误。

这是代码(所有未签名和其他奇怪的函数都是我试图说服 Quartus 编译它的尝试。)

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

...
variable data : std_logic_vector(17 downto 0) := "000000000000000011";

...

-- 00000000111111000 original
-- 00000000000011111 shifted
-- 00000000000011000 result (AND)

data := std_logic_vector(unsigned(data) & shift_right(unsigned(data), 4));


-- 00000000011111000 original
-- 00000000111110000 shifted
-- 00000000111111000 result (OR)

data := std_logic_vector(unsigned(data) or shift_left(unsigned(data), 1));

我省略了很多代码,但损坏的部分保持不变。

我得到了

Error (10344): VHDL expression error at snake_driver.vhd(66): expression has 36 elements, but must have 18 elements

如何做对?

最佳答案

& 运算符与 VHDL 中的 and 运算符不同。您正在寻找 运算符来执行按位与运算。 & 是向量的连接运算符,在两个 18 位向量之间使用它会产生一个 36 位向量(同样是向量宽度不匹配),如您的错误消息所示。

关于vhdl - 移动并添加一个 std_logic_vector(有 36 个但必须有 18 个元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com