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

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

Отправлено JohnKorsh 19 декабря 2005 г. 13:20

Не поможете ли разобраться с простым вопросом по VHDL ?

Пишу двунаправленную шину данных на RAM, состоящую из двух буферов с Z-выходами и логики управления.
Буферы соединены последовательно.
Вход первого - вход Data из кристалла, соединение входов и выходов - I/O DATA RAM, выход второго - DATA в кристалл.

Из кристалла симулятор (MOdelSIM 5.6e_p2) показывает всё нормально,
но в кристалл не "пишет" - на выходе второго буфера всё время Z,
(test-bench не привожу и так до фига места занял)
хотя после синтеза всё работает правильно.

____________________________________________________________________

Это Z-буфер:

ARCHITECTURE Z_BUF OF Z_BUF IS

BEGIN

L1: for i in (N - 1) downto 0 generate
D_OUT (i) <= D_IN (i) when (EN = '1') else 'Z';
end generate L1;

END Z_BUF;

___________________________________________________________________

Это компонент управления шиной данных:


ENTITY dat_ram_2 IS

PORT(
DATA_IN : IN std_logic_vector (7 downto 0); -- Data from AVR.
DATA_OUT : OUT std_logic_vector (7 downto 0); -- Data to AVR. !!! Вот здесь при симуляции Z.
IO_DATA : INOUT std_logic_vector (7 downto 0); -- I/O bus to RAM.
IO_WE : IN std_logic; -- FPGA IOWE.
IO_RE : IN std_logic; -- FPGA IORE.
IO_N : IN std_logic; -- FPGA ION.
RAM_WE : OUT std_logic; -- WE of the RAM.
RAM_OE : OUT std_logic; -- OE of the RAM.
RAM_CS : OUT std_logic); -- CS of the RAM.

END dat_ram_2 ;

--******************************************************************************

ARCHITECTURE dat_ram_2 OF dat_ram_2 IS

--------------------------------------------------------------------------------

component z_buf
GENERIC(
N : natural);
PORT(
D_IN : IN std_logic_vector (N-1 downto 0);
D_OUT : OUT std_logic_vector (N-1 downto 0);
EN : IN std_logic);
end component;

--------------------------------------------------------------------------------

signal int_bus : std_logic_vector (7 downto 0);
signal wire : std_logic_vector (1 to 2);

--------------------------------------------------------------------------------

BEGIN

D1: z_buf
generic map (n => 8)
port map (
DATA_IN,
int_bus,
WIRE (1));

--------------------------------------------------------------------------------

D2: z_buf
generic map (n => 8)
port map (
int_bus,
DATA_OUT,
WIRE (2));

--------------------------------------------------------------------------------

-- IO bus.

IO_DATA <= int_bus; -- !!! При симуляции данные на этих эти шинах не совпадают, почему ???

-- Control bus.

WIRE (1) <= IO_WE and IO_N and (not (IO_WE and IO_RE));
WIRE (2) <= IO_RE and IO_N and (not (IO_WE and IO_RE));
RAM_WE <= not (IO_WE);
RAM_OE <= not (IO_RE);
RAM_CS <= not (IO_N);

END dat_ram_2;

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

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

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

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


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru