我正在尝试为部分产品生成器编写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;
我在循环中的所有行中都出错了。也许我错误地实现了循环?任何帮助都会很棒。
感谢。
答案 0 :(得分:1)
VHDL中的信号分配运算符写为:
a <= b;
此外,您需要将loop
包裹在process
中,或者使用for...generate
结构而不是for...loop
这是一个顺序语句。