CASE 奇偶校验器
CASE odd parity checker
我是 vhdl 的新手,正在尝试在进程中使用 Case 编写 vhdl 奇偶校验检查器。当我编译时没有错误,但由于某种原因输出的输出矢量波形是平坦的。我究竟做错了什么?有人可以帮我解决这个问题或指出正确的方向吗?还有其他方法吗?
这是我的代码:
library ieee;
use ieee.std_logic_1164.all;
entity test3 is
port (
w, x, y, z : in std_logic;
g1_562 : out std_logic);
end entity test3;
architecture sig of test3 is
signal inputs : std_logic_vector(3 downto 0);
signal outputs: std_logic;
begin
process(inputs) is
begin
case inputs is
when "0000" => outputs <= '1';
when "0011" => outputs <= '1';
when "0101" => outputs <= '1';
when "0110" => outputs <= '1';
when "1001" => outputs <= '1';
when "1010" => outputs <= '1';
when "1100" => outputs <= '1';
when "1111" => outputs <= '1';
when others => outputs <= '0';
g1_562 <= outputs;
end case;
end process;
end architecture sig;
输出为:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
但应该是:1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1
谢谢
您的信号 inputs
从未分配给任何东西。您需要在连接输入 w、x、y 和 z 的过程之外添加一行。如:
inputs <= w & x & y & z;
您还应该将 g1_562 <= outputs;
移到进程之外。
我是 vhdl 的新手,正在尝试在进程中使用 Case 编写 vhdl 奇偶校验检查器。当我编译时没有错误,但由于某种原因输出的输出矢量波形是平坦的。我究竟做错了什么?有人可以帮我解决这个问题或指出正确的方向吗?还有其他方法吗?
这是我的代码:
library ieee;
use ieee.std_logic_1164.all;
entity test3 is
port (
w, x, y, z : in std_logic;
g1_562 : out std_logic);
end entity test3;
architecture sig of test3 is
signal inputs : std_logic_vector(3 downto 0);
signal outputs: std_logic;
begin
process(inputs) is
begin
case inputs is
when "0000" => outputs <= '1';
when "0011" => outputs <= '1';
when "0101" => outputs <= '1';
when "0110" => outputs <= '1';
when "1001" => outputs <= '1';
when "1010" => outputs <= '1';
when "1100" => outputs <= '1';
when "1111" => outputs <= '1';
when others => outputs <= '0';
g1_562 <= outputs;
end case;
end process;
end architecture sig;
输出为:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
但应该是:1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1
谢谢
您的信号 inputs
从未分配给任何东西。您需要在连接输入 w、x、y 和 z 的过程之外添加一行。如:
inputs <= w & x & y & z;
您还应该将 g1_562 <= outputs;
移到进程之外。