Перейти к содержанию
    

Open Drain на выходном пине - возможно?

есть топ энтити

entity TOP is
port
(
    CLK     : in std_logic;
	RST     : in std_logic := '0';
		
	
	 SPARE_1      : out std_logic;
	 SPARE_2      : out std_logic;
	 SPARE_3      : out std_logic;
		
);

end TOP;

можно выход SPARE_1 сделать Open Drain? очень надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/21/2023 at 2:25 PM, Maverick_ said:
dout <= 'Z' when din='1' else '0';

а кто тогда din?

 

а понял. спасибо.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня вопрос-уточнение: для Альтеровских ПЛИС также достаточно будет в VHDL вместо '1' присваивать 'Z' выходному пину чтобы он сконфигурировался как open drain, и можно не пользоваться примитивом OpnDrn? В симуляторе попробовал, работает. А как оно в железе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 22.08.2023 в 10:17, MrGalaxy сказал:

У меня вопрос-уточнение: для Альтеровских ПЛИС также достаточно будет в VHDL вместо '1' присваивать 'Z' выходному пину чтобы он сконфигурировался как open drain, и можно не пользоваться примитивом OpnDrn? В симуляторе попробовал, работает. А как оно в железе?

Буфер OPNDRN эквивалентен буферу TRI, у которого на вход IN поступает логический ноль, а на вход OE произвольный сигнал. При включенной опции Automatic Open-Drain компилятор преобразует в буфер OPNDRN:

буфер TRI, на вход IN которого поступает логический ноль, а на вход OE произвольный сигнал;

буфер TRI, на вход IN  которого подается инверсное значение сигнала, подаваемого на вход OE;

assign out_data = in_data ? 1'bz : in_data;
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 22.08.2023 в 19:24, sazh сказал:

Буфер OPNDRN эквивалентен буферу TRI, у которого на вход IN поступает логический ноль, а на вход OE произвольный сигнал. При включенной опции Automatic Open-Drain компилятор преобразует в буфер OPNDRN:

буфер TRI, на вход IN которого поступает логический ноль, а на вход OE произвольный сигнал;

буфер TRI, на вход IN  которого подается инверсное значение сигнала, подаваемого на вход OE;

Получается без примитивов не обойтись? Только языком он не синтезируется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в принципе примитив компилируется

-- Add the library and use clauses before the design unit declaration
library altera; 
use altera.altera_primitives_components.all;
-- Instantiating OPNDRN
	<instance_name> : OPNDRN
	-- <data_out> may feed an inout pin
	port map (a_in => <data_in>, a_out => <data_out>);

хотя обнаружил и такой темплет

-- Altera devices contain tri-state buffers in the I/O.  Thus, an open-drain 
-- buffer must feed a top-level I/O in the final design.  Otherwise, the 
-- Quartus Prime software will convert the open-drain buffer into logic.
<target> <= '0' when (<output_enable> = '1') else 'Z';

 

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 23.08.2023 в 21:26, MrGalaxy сказал:

Получается без примитивов не обойтись? Только языком он не синтезируется?

Можно и нужно обойтись без примитивов. Посмотрите в rtl просмотрщике и map просмотрщике.

module open_dr 
(
input  in_data,
output out_data
);

assign out_data = in_data ? 1'bz : 1'b0;
//assign out_data = in_data ? 1'bz : in_data;

endmodule
 Скачайте документ от xilinx xst.pdf. Ранние версии. Это поможет перейти с графического редактора на язык описания аппаратуры. Какой понравится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...