BID = 122219
Marc10k Stammposter
   
Beiträge: 273 Wohnort: Erkelenz
|
Mein VHLD Programm soll 35 bit (jetzt aber erstmal 7) seriell übertragen nach dem die Run-Taste und der Modus abgefragt wurde. Es werden beim Sender und Empfänger die gleiche Clock benutzt. Bei ansteigender Flanke werden die Daten geschrieben und bei fallender dann gelesen.
Ich habe schon folgendes geschrieben:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Sender is
Port ( Reset : in std_logic;
Run : in std_logic;
Mode : in std_logic_vector(1 downto 0);
clock : in std_logic;
Data : out std_logic);
end Sender;
architecture Behavioral of Sender is
begin
process (Mode, Run, clock)
variable shift_reg: std_logic_vector(6 downto 0):= "1111111";
begin
if Run = '1' then
case Mode is
when "00" => -- good header, data segment 1 and checksum
Data <= '1';
for I in 0 to 6 loop
shift_reg := "0010010";
if (clock'event and clock = '1') then
shift_reg(6 downto 1) := shift_reg (5 downto 0);
Data <= shift_reg(6);
end if;
end loop;
when "01" => -- good header, data segment 2 and checksum
Data <= '1';
when "10" => -- invalid header, data segment 1, checksum
Data <= '1';
when "11" => -- good header, datasegment 2, invalid checksum
Data <= '1';
when others =>
Data <= 'X';
end case;
end if;
end process;
end Behavioral;
Nur leider bekommen ich immer folgende Fehlermeldung:
Signal Data cannot be synthesized, bad synchronous description.
Kennt jemand Abhilfe.
Gruss
Marcus
|