Я первый пользователь, поэтому, пожалуйста, несите меня.Ошибка тестирования 8-бит LFSR, записанный на VHDL
Часть простой игры, которую мы должны выполнить для назначения, включает в себя запись генератора псевдослучайных чисел в виде 8-битного LFSR. Я пишу свой код с помощью Xilinx ISE, мои заметки и пример, приведенный здесь:
http://www.oocities.org/siliconvalley/screen/2257/vhdl/lfsr/lfsr.html
Теперь код делает синтезировать, но дает мне предупреждения, касающиеся списка чувствительности. Однако, когда я запускаю тестовый стенд, я получаю все значения U для pseudo_rand. Я понимаю, что этот генератор случайных чисел будет внутренним, поэтому не должно быть выхода, но когда я пишу код с псевдо-графом в качестве сигнала (этот вариант в настоящее время прокомментирован), он не отображается в симуляции.
Ниже приведен код для ЛРСОС следует код для соответствующего испытательного стенда:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity LFSR_3_16_2013 is
port( clk: in std_logic;
rst: in std_logic;
pseu_rand: out std_logic_vector(7 downto 0));
end LFSR_3_16_2013;
architecture Behavioral of LFSR_3_16_2013 is
--signal clk: std_logic;
--signal rst: std_logic;
signal seed: std_logic_vector(7 downto 0):= "10000000";
signal biffer: std_logic_vector(7 downto 0);
--signal pseu_rand: std_logic_vector(7 downto 0);
begin
lfsr : PROCESS(clk,rst)
begin
if(rst='0') then
--pseu_rand <= seed;
biffer <= seed;
pseu_rand <= biffer;
elsif (clk'event and clk='1') then
--pseu_rand(0) <= pseu_rand(7) xor pseu_rand(6);
--pseu_rand(7 downto 1) <= pseu_rand(6 downto 0);
biffer(0) <= biffer(7) xor biffer(6);
biffer(7 downto 1) <= biffer(6 downto 0);
pseu_rand <= biffer;
end if;
end process lfsr;
end Behavioral;
А теперь испытательный стенд:
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY LFSR_tb_3_16_2013 IS
END LFSR_tb_3_16_2013;
ARCHITECTURE behavior OF LFSR_tb_3_16_2013 IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT LFSR_3_16_2013
PORT(
clk : IN std_logic;
rst : IN std_logic;
pseu_rand : OUT std_logic_vector(7 downto 0)
);
END COMPONENT;
--Inputs
signal clk : std_logic := '0';
signal rst : std_logic := '0';
--Outputs
signal pseu_rand : std_logic_vector(7 downto 0);
-- Clock period definitions
constant clk_period : time := 10 ns;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: LFSR_3_16_2013 PORT MAP (
clk => clk,
rst => rst,
pseu_rand => pseu_rand
);
-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100 ns.
wait for 100 ns;
wait for clk_period*10;
-- insert stimulus here
rst <= '1';
wait;
end process;
END;
Любая помощь будет принята с благодарностью, я довольно сильно.
Спасибо, Юсиф Нуризаде
Я наклеил ваш код, скомпилировал и запустил его. Кажется, что работает (нет нас для меня) ... –