Jump to content

    
Sign in to follow this  
studert

Подтяжка входов

Recommended Posts

Сейчас перевожу вход в третье состояние записав в него 1'dZ, а хочется перевести его в "слегка подтянутое к питанию". Чую, что такая возможность етсь (неиспользуемые пины можно подтянуть), но не могу найти синтаксис.

Share this post


Link to post
Share on other sites

В смысле VHDL'а это делается так:

 

some_std_logic_signal <='H'; --pullup

some_std_logic_signal <='L'; --pulldown

 

Вопрос в том, будет ли оно синтезироваться. Че-то не видел описания синтеза такой конструкции в описании XST.

Share this post


Link to post
Share on other sites
Сейчас перевожу вход в третье состояние записав в него 1'dZ, а хочется перевести его в "слегка подтянутое к питанию". Чую, что такая возможность етсь (неиспользуемые пины можно подтянуть), но не могу найти синтаксис.
На выбор:

  1. Примитивы pullup/pulldown
  2. Типы wire: tri0, tri1
  3. Присваивания в wire/assign с явно заданным strength
PS. Ничего из этого не синтезируется :crying:

Share this post


Link to post
Share on other sites

Как это, как это?

Примитивы синтезируются! В смысле вставляются при имплементации!

А что за ПЛИС? У Xilinx можно также в UCF-файле указать параметр пина PULLUP или PULLDOWN.

Короче, надо наверное сказать, что за ПЛИС у Вас.

 

Просто вопрос в теме "VHDL" - вот и отвечается с точки зрения ЯЗЫКА, а не реализации в железе.

Share this post


Link to post
Share on other sites
Как это, как это?

Примитивы синтезируются! В смысле вставляются при имплементации!

В доке на XST явно написанно, что все эти конструкции игнорируются :(

Так что НЕ ВСЕ синтезаторы их понимают

У Xilinx можно также в UCF-файле указать параметр пина PULLUP или PULLDOWN.
Угу, но не в Verilog'е (точнее в нем тоже можно, но в виде прагм/директив для синтезатора, а не конструкций языка)

 

Похоже придется сделать еще одну ревизию платы :( с резисторами.
Ищите в констрейнах, должно быть :rolleyes:

Share this post


Link to post
Share on other sites
Сейчас перевожу вход в третье состояние записав в него 1'dZ, а хочется перевести его в "слегка подтянутое к питанию". Чую, что такая возможность етсь (неиспользуемые пины можно подтянуть), но не могу найти синтаксис.

 

А Вы задачу озвучьте. Зачем это надо. Одно дело резисторы экономить на шине с открытым коллектором, другое дело в z состояние входы (Неиспользуемые), средствами пакета.

Share this post


Link to post
Share on other sites
На выбор:

  1. Примитивы pullup/pulldown
  2. Типы wire: tri0, tri1
  3. Присваивания в wire/assign с явно заданным strength
PS. Ничего из этого не синтезируется :crying:

Пишу на Verilog. Для моделирования необходимо следующее:

Есть модуль, входы которого при определенных условиях закорачиваются на его выходы. Если к данным входам модуля ничего не цепляется, то на соответствующих выходах должна быть слабо подтянутая единица. Если же на какой либо вход попадает 0, то соответствующий выход также должен стать 0. Как это написать? Целый день бьюсь...

 

 

Share this post


Link to post
Share on other sites
Сейчас перевожу вход в третье состояние записав в него 1'dZ, а хочется перевести его в "слегка подтянутое к питанию". Чую, что такая возможность етсь (неиспользуемые пины можно подтянуть), но не могу найти синтаксис.

3 способа как минимум на выбор (на примере ISE + XST ):

1. Пользовать примитив PULLUP.

2. Пользовать атрибут верилоговский с одноимённым названием.

3. Не совсем средствами языка, однако проблему решает : задать constraint в UCF файле.

Share this post


Link to post
Share on other sites
Сейчас перевожу вход в третье состояние записав в него 1'dZ

 

В современном цифровом дизайне очень рекомендуется избегать tristate logic и юзать BUS Multiplexing, т.к например Encounter Test просто хренеет от tristate contention и если (вдруг) тебе захочется продать свои IP кому-то, то лучше сразу делать их реюзабельными. :1111493779:

 

Вот что пишут Michael_Keating, Pierre_Bricaud в своем "Reuse Methodology Manual" (Kluver Academic Publishers, 2002)

 

 

3.5.2 Tristate vs. Mux Buses

 

When bus structures first migrated from boards onto chips, there was some contro-

versy over whether to use a tristate bus or a multiplexer-based bus. Tristate buses are

popular for board-level design, because they reduce the number of wires in the design.

However, tristate buses are problematic for on-chip interconnect. It is essential to

ensure that only one driver is active on the bus at any one time; any bus contention,

with multiple drivers active at the same time, can reduce the reliability of the chip sig-

nificantly. For high-performance buses, where we want to drive the bus on nearly

every cycle, this requirement can produce very timing-critical, technology-dependent

designs. Similarly, tristate buses must never be allowed to float; if they float to thresh-

old voltage, they can cause high currents in the receiver, again reducing long-term

chip reliability. Either some form of bus-keeper, or a guarantee that exactly one driver

is driving the bus at all times, is required. This requirement is particularly difficult to

meet during power-on.

 

Rule – For these reasons, we consider multiplexer-based buses to be the only accept-

able architecture for on-chip interconnect. Tristate buses should never be used on

chip.

 

Share this post


Link to post
Share on other sites
Подтяжка входов, Как это пишется в верилоге

Похоже придется сделать еще одну ревизию платы с резисторами.

Вы не с той стороны "копаете". Вам нужно посмотреть IO-примитивы для вашей конретной модели ПЛИС и напрямую поставить их в проект. Далеко не всё, что позволяет Verilog, можно реализовать. Повторюсь "пробовал, не синтезируется" - это не показатель. Отвлекитесь от этих попыток и возьмите документацию на Вашу ПЛИС.

 

3. Не совсем средствами языка, однако проблему решает : задать constraint в UCF файле.

Вариант. Но проект "в железе" и проект "на модели" тогда будут отличаться.

 

В современном цифровом дизайне очень рекомендуется избегать tristate logic и юзать BUS Multiplexing, т.к например

Ну вроде бы о том, чтобы использовать tristate logic внутри чипа речь и не идет.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this