|
Вопрос про ПЛИС в целом и VHDL, как описать адресуемый модуль |
|
|
|
Jul 18 2006, 19:54
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Здрасте. Пробовал воспользоваться поиском, ни к чему хорошему это не привело.
Вопроса 2.
Первый Можно ли описать такую вещ? Шину надо отпускать в 3 состояние (или high impedance не уверен что это одно и тоже) но при этом подтянуть ее к земле. В смысле чтобы если ее никто не дергает она ноль, но если кто ее дергает, конфликтов нет. Можно ли это сделать внутри ПЛИС? Это аналог того, что с наружи резюком к земле шинку подтянуть ну или к питанию. Если можно то лучше пример.
Второй Я как то его поднимал, и ответы меня устроили, но сейчас чуть другая ситуация. На плате 9 одинаковых ЦАП, хочется написать один интерфейсный модуль, а потом его размножить. Для этого надо писать модуль с возможностью задачи адреса (даже адресов). Как я понимаю это надо делать через Женерик или через внешнюю шину на которую константой задать адрес. Но вот беда, все что написано в женерике или передается снаружи не является статиком, и в кейз это запихать нельзя. На кейзе построен внутренний дешифратор адреса, каждый блок имеет несколько адресов. Я решил проблему описав кейз через иф и елсиф, но как то это криво. Как решают проблему профессионалы? Я имею ввиду как делаются по уму модули с меняемыми адресными пространствами? Пакедж не подойдет, потому что надо уметь создавать копии модулей с разными адресами.
И как бы подпункт этого вопроса, я потом все написанные модули объединяю в графике, мне так как то удобно, но вот вопрос, как нарисованному модулю задать параметры женерика? Есть ли какие методы, я вроде все обтыкал не нашел.
Ну вот и все, надеюсь вопросы не вызовут бурю негодования по поводу их несерьезности, заранее спасибо. Все это для Ксалинксов и среды ИСЕ 7.1, и VHDL, но ради эрудиции хотелось бы и про другие плис-среды услышать.
|
|
|
|
|
 |
Ответов
|
Jul 19 2006, 05:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898

|
Цитата(Golikov A. @ Jul 19 2006, 02:54)  ... в 3 состояние (или high impedance не уверен что это одно и тоже) ... Одно и тоже Цитата(Golikov A. @ Jul 19 2006, 02:54)  В смысле чтобы если ее никто не дергает она ноль, но если кто ее дергает, конфликтов нет. Можно ли это сделать внутри ПЛИС? Это аналог того, что с наружи резюком к земле шинку подтянуть ну или к питанию. Если можно то лучше пример. У Altera, такая возможность обзывается bus-hold. Это уже обсуждалось, вот, здесь, например, http://electronix.ru/forum/index.php?showt...&hl=pull-up
|
|
|
|
|
Jul 19 2006, 08:42
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
[quote name='dinam' date='Jul 19 2006, 09:14' post='135467'] [/quote] У Altera, такая возможность обзывается bus-hold. Это уже обсуждалось, вот, здесь, например, http://electronix.ru/forum/index.php?showt...&hl=pull-up[/quote] не совсем то! это если шина выходит наружу. А меня интересует как это реализовать внутри ПЛИС, то есть если внутри ПЛИС блоки все висят на одной шине, и когда не выбраны отпускают ее в Z, но вот хочется чтобы когда все ее в Z отпустили она была бы в нуле. Про instantiation. если я правильно понял сделать еще один блок который следит за шиной, и если все устройства ее отпустили делает шину нулевой, а если кто то держит то наружу выпускает то что на шине? Глобально это имелось ввиду? или я совсем ничего не понял... почему кейз не ест, ну наверное вот почему ADRES_WIDTH - определен в пакедже. generic (constant SDAC_ADR : std_logic_vector ((ADRES_WIDTH-1) downto 0) :=(others=>'0')); case ADR is when SDAC_ADR =>TimeOutAfterCS<="0000"; when others => Null; end case; Line 139. Choice SDAC_ADR is not a locally static expression. причем вот сейчас это пишу и это просто варнинг, а вчера это был еррор... Странно может устал вчера и не так что то понял, но смысл такой. Наверное через кейз можно.
|
|
|
|
|
Jul 19 2006, 09:25
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 13-07-06
Пользователь №: 18 795

|
[quote name='Golikov A.' date='Jul 19 2006, 11:42' post='135539'] [quote name='dinam' date='Jul 19 2006, 09:14' post='135467'] [/quote] У Altera, такая возможность обзывается bus-hold. Это уже обсуждалось, вот, здесь, например, http://electronix.ru/forum/index.php?showt...&hl=pull-up[/quote] не совсем то! это если шина выходит наружу. А меня интересует как это реализовать внутри ПЛИС, то есть если внутри ПЛИС блоки все висят на одной шине, и когда не выбраны отпускают ее в Z, но вот хочется чтобы когда все ее в Z отпустили она была бы в нуле. [/quote] Внутри ПЛИС нет как такового Z состояния. По-моему в втором спартане была что-то наподобие Z-состояния т.е. там была логика типа открытого коллектора и pullup резистора поэтому могли несколько нетов к одной точки подключаться. То что я предложил тебе написать, только лишь для того, чтоб синтезатор понял, какую логику ты хочешь построить. Потом при синтезе он ругнется что заменил, то что ты хотел, на комбинаторику. Вроде такого Xst:2040 - Unit GCTL: 2 multi-source signals are replaced by logic (pull-up yes): FXP_MAIN0/nREQOE, FXP_MAIN0/nREQOUT. Но это будет работать, если написано правильно. С кейсом работать generic не будет по определению. См. параграф 8.8 IEEE Standard VHDL Language Reference Manual
|
|
|
|
|
Jul 19 2006, 11:41
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 13-07-06
Пользователь №: 18 795

|
Цитата(andrew_b @ Jul 19 2006, 13:45)  Ничего подобного. В Спартанах 1 и 2 и во всех Виртексах внутри есть тристабильные буферы (BUFE, BUFT). Могу ошибаться, мне так говорили когда учили, значит в этом соврали  Сам не имел на практике дела с сп1/2 и вертексом
|
|
|
|
Сообщений в этой теме
Golikov A. Вопрос про ПЛИС в целом и VHDL Jul 18 2006, 19:54  dinam Цитата(Golikov A. @ Jul 19 2006, 15:42) н... Jul 19 2006, 08:50   andrew_b Цитата(dinam @ Jul 19 2006, 12:50) По хор... Jul 19 2006, 09:13    dinam Я разрабатываю схемы и пишу программы так, чтобы н... Jul 19 2006, 09:27     Golikov A. СПАСИБО ВСЕМ!
Оказалось сделать не универсаль... Jul 19 2006, 12:52      dinam Цитата(Golikov A. @ Jul 19 2006, 19:52) (... Jul 20 2006, 01:41       Golikov A. Цитата(dinam @ Jul 20 2006, 05:41) Цитата... Jul 21 2006, 10:26 seven7 Первый вопрос:
Если правильно понял вопрос, такое ... Jul 19 2006, 06:09 Wild Цитата(Golikov A. @ Jul 18 2006, 23:54) З... Jul 19 2006, 09:45
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|