[an error occurred while processing this directive]
Наста_а_а_а_вте на путь истинный :-)
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено Maksim 23 июня 2003 г. 23:20

Не подскажет ли, кто и зачем туда вставляет защёлку? Никак не могу понять.
Это сообщения выдаётся в HDL Editore Warning: Latch inferred in design 'rd_bl_hdl' read with
'hdlin_check_no_latch'. (HDL-307)

Смотрел тоже самое в Amplify - защёлка там есть ;-)
**********************************************************************
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;

entity rd_bl_hdl is
port (
clk : in STD_LOGIC;
rst : in STD_LOGIC;
start : in STD_LOGIC;
swap : in STD_LOGIC;
runt : in STD_LOGIC;
C_STOP : in STD_LOGIC;
imit : in STD_LOGIC;
--------------------------------------------------------------------
oe_a : out STD_LOGIC;
oe_b : out STD_LOGIC;
oe_c : out STD_LOGIC;
oe_d : out STD_LOGIC;
ao : out STD_LOGIC_VECTOR (1 downto 0);
stop : out STD_LOGIC;
we : out STD_LOGIC
);
end rd_bl_hdl;

architecture rd_bl_hdl_arch of rd_bl_hdl is
type STATE_TYPE is (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11);
signal CS, NS: STATE_TYPE;
signal stop_i, oe_ai, oe_bi, oe_ci, oe_di, we_i, oe_aii, oe_bii, oe_cii, oe_dii : STD_LOGIC;
signal ao_i : STD_LOGIC_VECTOR (1 downto 0);
begin
SYNC_PROC: process (CLK, RST)
begin
if (RST='1') then
CS <= S1;
stop <= '0';
ao <= "00";
oe_a <= '0';
oe_b <= '0';
oe_c <= '0';
oe_d <= '0';
we <= '0';
elsif (CLK'event and CLK = '1') then
CS <= NS;
stop <= stop_i;
ao <= ao_i;
oe_a <= oe_ai;
oe_b <= oe_bi;
oe_c <= oe_ci;
oe_d <= oe_di;
we <= we_i;
end if;
end process;
COMB_PROC: process (CS,start,swap,imit,C_STOP)
begin
case CS is
when S1 =>
if ((start='1' and swap='0') or (imit='1' and C_STOP='1')) then NS <= S2;
elsif (start='1' and swap='1') then NS <= S8;
else NS <= S1;
end if;
when S2 =>
NS <= S3;
when S3 =>
NS <= S4;
when S4 =>
NS <= S5;
when S5 =>
NS <= S6;
when S6 =>
NS <= S7;
when S7 =>
NS <= S1;

when S8 =>
NS <= S9;
when S9 =>
NS <= S10;
when S10 =>
NS <= S11;
when S11 =>
NS <= S6;
end case;
end process;
------------------------------------------------------------
process (CS)
begin
case CS is
when S2 => ao_i<="00";
when S3 => ao_i<="01";
when S4 => ao_i<="10";
when S5 => ao_i<="11";
when S8 => ao_i<="10";
when S9 => ao_i<="11";
when S10 => ao_i<="00";
when S11 => ao_i<="01";
when others => null ;
end case;
end process;


oe_aii <= '1' when (CS=S2 or CS=S8) else '0';
oe_bii <= '1' when (CS=S3 or CS=S9) else '0';
oe_cii <= '1' when (CS=S4 or CS=S10) else '0';
oe_dii <= '1' when (CS=S5 or CS=S11) else '0';

oe_ai <= oe_aii when (imit='0') else oe_cii;
oe_bi <= oe_bii when (imit='0') else oe_dii;
oe_ci <= oe_cii when (imit='0') else oe_aii;
oe_di <= oe_dii when (imit='0') else oe_bii;

we_i <= '1' when (CS=S2 or CS=S3 or CS=S4 or CS=S5 or CS=S8 or CS=S9 or CS=S10 or CS=S11) else '0';
stop_i <= '1' when ((CS=S6 or CS=S7) and runt='0' and imit='0') else '0';
end rd_bl_hdl_arch;

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru