0

我正在尝试为部分产品生成器编写 VHDL 代码。代码如下:

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_signed.all;
use ieee.numeric_std.all;
entity boothencoder_ppg is
port(Y: in std_logic_vector(53 downto 1);
     X: in std_logic_vector(53 downto 1);
     PPG: out std_logic_vector(53 downto 1)
     );
end boothencoder_ppg;
architecture behavioral of boothencoder_ppg is
signal U, SFT, W, M, A: std_logic;
    begin
    for m in 1 to 53 loop
    U = Y(m+1) xnor Y(m);
    SFT = Y(m-1) xnor Y(m);
    W = U and SFT;
    M = SFT? X(m-1) : X(m);
    A = M xor Y(m+1);
    PPG = A nor W;
    end loop;
end behavioral;

我在循环中的所有行中都出现错误。也许我错误地实现了循环?任何帮助都会很棒。

谢谢。

4

1 回答 1

1

VHDL 中的信号赋值运算符写为:

a <= b;

此外,您需要将您loop的 a包装起来process或使用一个for...generate构造而不是 a for...loop,它是一个顺序语句。

于 2012-11-27T08:11:59.420 回答