Bonjour,
je commence avec le VHDL. Donc la meilleur maniere d'apprendre, c'est de commencer à coder. Apres pas mal de recherche sur le net, je me rabats sur le forum parce j'ai trouvé aucune soluce.
J'essaye de realiser un " Scrambler ".
Ce registre se compose de 15 cases de 1bit. On realise un XOR sur les cases 15 et 14, puis ce resultat passe encore dans un XOR avec un bit d'entrée puis nous donne la sortie. La sortie du premier xor sur 14 et 15 est mise dans la premiere case du registre.
Pour mieux comprendre, c'est le schéma sur wikipedia. http://en.wikipedia.org/wiki/Scram [...] domizer%29
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.ALL;
USE ieee.numeric_std.all;
entity randomizer_test is
port (
clk : in std_logic;
bit_in : in std_logic;
bit_enab : in std_logic;
bit_reset: in std_logic;
bit_out: out std_logic
);
end randomizer_test;
architecture arc of randomizer_test is
signal reg : std_logic_vector(14 downto 0):="111111111111111";
signal porte_1 : std_logic;
signal porte_2 : std_logic;
begin
process(clk,bit_reset)
begin
if (bit_reset = '1') then
reg<="110110101010101";
elsif (rising_edge(clk) and clk='1' and bit_reset='0') then
if (bit_enab='1') then
porte_1 <= reg(14) xor reg(13);
porte_2 <= porte_1 xor bit_in;
reg(14 downto 1)<=reg(13 downto 0);
reg(0)<=porte_1;
end if;
end if;
end process;
bit_out<=porte_2;
end arc;
Donc le code ce compile bien. Mais quand je fais une simulation, et dans le registre reg, je n'ai aps du tout les bits que j'ai initialisé au depart.
En gros mon probleme c'est que je n'arrive pas à initialiser le registre avec ces bits 110110101010101. Quelqu'un aurait une soluce? Pourrait m'eclaircir sur comment rentrer des valeurs prédéfinir dans les bits b0...B15 des le depart.
Merci d'avance.