在VHDL中递增std_逻辑_向量

在VHDL中递增std_逻辑_向量,vhdl,Vhdl,我开始使用VHDL,我有一个小问题。我想给标准逻辑向量加1。我看到这个问题已经被问过了,但仍然不起作用。我就是这么做的 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity lesson10c is port (signal calculateur : std_ulogic_vector (1 downto 0)); end lesson10c; architecture behavio

我开始使用VHDL,我有一个小问题。我想给标准逻辑向量加1。我看到这个问题已经被问过了,但仍然不起作用。我就是这么做的

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

entity lesson10c is 
  port (signal calculateur :  std_ulogic_vector (1 downto 0));
end lesson10c;

architecture behaviour of lesson10c is
begin 
  calculateur <= "00";

  process(calculateur)
  begin
    for i in 0 to 3 loop
    calculateur <= std_ulogic_vector(unsigned(calculateur)+1);
    end loop;
  end process;

end behaviour;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体课程10c是
端口(信号计算器:标准逻辑向量(1到0));
第10c课结束;
lesson10c的建筑行为是
开始

calculateur您看到的错误是由于您的代码在两个不同的进程中驱动了calculateur
。请记住,这是一种硬件描述语言,而不是编程语言

calculateur <= "00";

process(calculateur)
begin
  for i in 0 to 3 loop
  calculateur <= std_ulogic_vector(unsigned(calculateur)+1);
  end loop;
end process;

calculateur您看到的错误是由于您的代码在两个不同的进程中驱动了
calculateur
。请记住,这是一种硬件描述语言,而不是编程语言

calculateur <= "00";

process(calculateur)
begin
  for i in 0 to 3 loop
  calculateur <= std_ulogic_vector(unsigned(calculateur)+1);
  end loop;
end process;

calculateur您的问题比增加
std\u逻辑\u向量
更基本。你似乎认为你在写软件。你不是,你是在设计硬件


VHDL中的每个进程(无论是显式的还是隐式的)都会推断出一块硬件。你有两个过程:一个是显式的(
process(calculateur)
),另一个是隐式的(
calculateur你的问题比增加一个
std\u逻辑向量
)更为根本。你似乎认为你在写软件。你不是,你在设计硬件


VHDL中的每个进程(无论是显式的还是隐式的)都会推断出一块硬件。您有两个进程:一个是显式的(
process(calculateur)
),另一个是隐式的(
calculateur嗨,Jean,欢迎来到SO!为了改进你的问题,请看一下这里:还请学习如何格式化你的帖子。只需使用
integer
类型并添加4…为什么要使其难以复制。请注意,在合成之前,什么Quartus和错误也演示了你可以模拟。使用解析的数据类型y你会得到“X”,而未解析的数据类型会导致模拟中的错误。嗨,Jean,欢迎来到SO!请看一下这里以改进你的问题:请学习如何格式化你的帖子。只需使用
整数
类型并加上4…为什么要使其难以复制。注意什么夸脱和错误也表明你可以在合成之前进行模拟。使用已解析的数据类型,您将得到“X”,而未解析的数据类型将导致模拟中出现错误。